@omnitron-dev/omnitron 0.3.5 → 0.4.6

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 (267) hide show
  1. package/README.md +296 -6
  2. package/bin/{pnpmfile-sdk.mjs → pnpmfile-sdk.js} +13 -0
  3. package/bin/sdk.d.ts +19 -0
  4. package/bin/sdk.js +932 -0
  5. package/dist/BUILD.json +2 -2
  6. package/dist/cli/omnitron.js +14 -6
  7. package/dist/cli/omnitron.js.map +1 -1
  8. package/dist/commands/stack.d.ts +2 -5
  9. package/dist/commands/stack.d.ts.map +1 -1
  10. package/dist/commands/stack.js +32 -0
  11. package/dist/commands/stack.js.map +1 -1
  12. package/dist/commands/status.d.ts.map +1 -1
  13. package/dist/commands/status.js +1 -0
  14. package/dist/commands/status.js.map +1 -1
  15. package/dist/daemon/daemon-client.d.ts +3 -15
  16. package/dist/daemon/daemon-client.d.ts.map +1 -1
  17. package/dist/daemon/daemon-client.js +4 -0
  18. package/dist/daemon/daemon-client.js.map +1 -1
  19. package/dist/daemon/daemon.d.ts +5 -11
  20. package/dist/daemon/daemon.d.ts.map +1 -1
  21. package/dist/daemon/daemon.js +28 -42
  22. package/dist/daemon/daemon.js.map +1 -1
  23. package/dist/daemon/daemon.rpc-service.d.ts +3 -15
  24. package/dist/daemon/daemon.rpc-service.d.ts.map +1 -1
  25. package/dist/daemon/daemon.rpc-service.js +27 -3
  26. package/dist/daemon/daemon.rpc-service.js.map +1 -1
  27. package/dist/daemon/darwin-owner-evidence.js +1 -1
  28. package/dist/daemon/darwin-owner-evidence.js.map +1 -1
  29. package/dist/daemon/execution-capabilities.d.ts +1 -1
  30. package/dist/daemon/execution-capabilities.d.ts.map +1 -1
  31. package/dist/daemon/execution-capabilities.js +3 -3
  32. package/dist/daemon/execution-capabilities.js.map +1 -1
  33. package/dist/daemon/execution-client.d.ts +4 -0
  34. package/dist/daemon/execution-client.d.ts.map +1 -1
  35. package/dist/daemon/execution-client.js +28 -6
  36. package/dist/daemon/execution-client.js.map +1 -1
  37. package/dist/daemon/execution-host.d.ts +4 -11
  38. package/dist/daemon/execution-host.d.ts.map +1 -1
  39. package/dist/daemon/execution-host.js +3 -9
  40. package/dist/daemon/execution-host.js.map +1 -1
  41. package/dist/daemon/execution-owner.d.ts.map +1 -1
  42. package/dist/daemon/execution-owner.js +2 -16
  43. package/dist/daemon/execution-owner.js.map +1 -1
  44. package/dist/daemon/execution-shutdown.d.ts +1 -1
  45. package/dist/daemon/execution-shutdown.d.ts.map +1 -1
  46. package/dist/daemon/managed-owner-build.d.ts +4 -0
  47. package/dist/daemon/managed-owner-build.d.ts.map +1 -1
  48. package/dist/daemon/managed-owner-build.js +14 -2
  49. package/dist/daemon/managed-owner-build.js.map +1 -1
  50. package/dist/daemon/managed-runtime.js +1 -1
  51. package/dist/daemon/managed-runtime.js.map +1 -1
  52. package/dist/daemon/owner-reconciliation.d.ts.map +1 -1
  53. package/dist/daemon/owner-reconciliation.js +1 -2
  54. package/dist/daemon/owner-reconciliation.js.map +1 -1
  55. package/dist/daemon/system-guardian-cgroup.js +1 -1
  56. package/dist/daemon/system-guardian-cgroup.js.map +1 -1
  57. package/dist/infrastructure/existing-containers.d.ts +25 -0
  58. package/dist/infrastructure/existing-containers.d.ts.map +1 -0
  59. package/dist/infrastructure/existing-containers.js +183 -0
  60. package/dist/infrastructure/existing-containers.js.map +1 -0
  61. package/dist/infrastructure/infrastructure.service.d.ts +14 -1
  62. package/dist/infrastructure/infrastructure.service.d.ts.map +1 -1
  63. package/dist/infrastructure/infrastructure.service.js +118 -9
  64. package/dist/infrastructure/infrastructure.service.js.map +1 -1
  65. package/dist/infrastructure/stack-infra-manager.d.ts +8 -2
  66. package/dist/infrastructure/stack-infra-manager.d.ts.map +1 -1
  67. package/dist/infrastructure/stack-infra-manager.js +46 -9
  68. package/dist/infrastructure/stack-infra-manager.js.map +1 -1
  69. package/dist/monitoring/log-journal.d.ts.map +1 -1
  70. package/dist/monitoring/log-journal.js +1 -2
  71. package/dist/monitoring/log-journal.js.map +1 -1
  72. package/dist/operations.d.ts +1 -0
  73. package/dist/operations.d.ts.map +1 -1
  74. package/dist/operations.js +1 -0
  75. package/dist/operations.js.map +1 -1
  76. package/dist/orchestrator/bootstrap-loader.d.ts +2 -0
  77. package/dist/orchestrator/bootstrap-loader.d.ts.map +1 -1
  78. package/dist/orchestrator/bootstrap-loader.js +2 -1
  79. package/dist/orchestrator/bootstrap-loader.js.map +1 -1
  80. package/dist/orchestrator/classic-launcher.d.ts.map +1 -1
  81. package/dist/orchestrator/classic-launcher.js +2 -1
  82. package/dist/orchestrator/classic-launcher.js.map +1 -1
  83. package/dist/orchestrator/execution-contract.d.ts +2 -3
  84. package/dist/orchestrator/execution-contract.d.ts.map +1 -1
  85. package/dist/orchestrator/file-watcher.d.ts +11 -23
  86. package/dist/orchestrator/file-watcher.d.ts.map +1 -1
  87. package/dist/orchestrator/file-watcher.js +57 -42
  88. package/dist/orchestrator/file-watcher.js.map +1 -1
  89. package/dist/orchestrator/orchestrator.service.d.ts +10 -5
  90. package/dist/orchestrator/orchestrator.service.d.ts.map +1 -1
  91. package/dist/orchestrator/orchestrator.service.js +117 -20
  92. package/dist/orchestrator/orchestrator.service.js.map +1 -1
  93. package/dist/project/bootstrap-metadata.d.ts +1 -1
  94. package/dist/project/bootstrap-metadata.d.ts.map +1 -1
  95. package/dist/project/bootstrap-metadata.js +3 -2
  96. package/dist/project/bootstrap-metadata.js.map +1 -1
  97. package/dist/project/node-stack-stop.d.ts +2 -1
  98. package/dist/project/node-stack-stop.d.ts.map +1 -1
  99. package/dist/project/node-stack-stop.js +5 -1
  100. package/dist/project/node-stack-stop.js.map +1 -1
  101. package/dist/release/closure-library-path.d.ts +8 -2
  102. package/dist/release/closure-library-path.d.ts.map +1 -1
  103. package/dist/release/closure-library-path.js +72 -28
  104. package/dist/release/closure-library-path.js.map +1 -1
  105. package/dist/release/local-installation.d.ts +2 -0
  106. package/dist/release/local-installation.d.ts.map +1 -1
  107. package/dist/release/local-installation.js +1 -1
  108. package/dist/release/local-installation.js.map +1 -1
  109. package/dist/release/portable-archive.d.ts +3 -0
  110. package/dist/release/portable-archive.d.ts.map +1 -1
  111. package/dist/release/portable-archive.js +13 -7
  112. package/dist/release/portable-archive.js.map +1 -1
  113. package/dist/release/registry-framework.d.ts +25 -0
  114. package/dist/release/registry-framework.d.ts.map +1 -1
  115. package/dist/release/registry-framework.js +51 -3
  116. package/dist/release/registry-framework.js.map +1 -1
  117. package/dist/release/target-runtime.d.ts +4 -0
  118. package/dist/release/target-runtime.d.ts.map +1 -1
  119. package/dist/release/target-runtime.js +9 -0
  120. package/dist/release/target-runtime.js.map +1 -1
  121. package/dist/services/host-upgrade.d.ts +2 -0
  122. package/dist/services/host-upgrade.d.ts.map +1 -1
  123. package/dist/services/host-upgrade.js +6 -2
  124. package/dist/services/host-upgrade.js.map +1 -1
  125. package/dist/services/infrastructure.rpc-service.d.ts +8 -0
  126. package/dist/services/infrastructure.rpc-service.d.ts.map +1 -1
  127. package/dist/services/infrastructure.rpc-service.js +90 -10
  128. package/dist/services/infrastructure.rpc-service.js.map +1 -1
  129. package/dist/services/kernel-rollout.service.d.ts.map +1 -1
  130. package/dist/services/kernel-rollout.service.js +1 -2
  131. package/dist/services/kernel-rollout.service.js.map +1 -1
  132. package/dist/services/migration-process.d.ts +1 -0
  133. package/dist/services/migration-process.d.ts.map +1 -1
  134. package/dist/services/migration-process.js +4 -2
  135. package/dist/services/migration-process.js.map +1 -1
  136. package/dist/services/pipeline-definition.d.ts.map +1 -1
  137. package/dist/services/pipeline-definition.js +32 -6
  138. package/dist/services/pipeline-definition.js.map +1 -1
  139. package/dist/services/pipeline.service.d.ts +7 -1
  140. package/dist/services/pipeline.service.d.ts.map +1 -1
  141. package/dist/services/pipeline.service.js +106 -13
  142. package/dist/services/pipeline.service.js.map +1 -1
  143. package/dist/services/project.rpc-service.d.ts +6 -5
  144. package/dist/services/project.rpc-service.d.ts.map +1 -1
  145. package/dist/services/project.rpc-service.js +13 -0
  146. package/dist/services/project.rpc-service.js.map +1 -1
  147. package/dist/services/project.service.d.ts +24 -6
  148. package/dist/services/project.service.d.ts.map +1 -1
  149. package/dist/services/project.service.js +327 -59
  150. package/dist/services/project.service.js.map +1 -1
  151. package/dist/services/remote-deployer.service.d.ts.map +1 -1
  152. package/dist/services/remote-deployer.service.js +3 -0
  153. package/dist/services/remote-deployer.service.js.map +1 -1
  154. package/dist/shared/dto/backend.d.ts +3 -0
  155. package/dist/shared/dto/backend.d.ts.map +1 -1
  156. package/dist/shared/dto/backend.js.map +1 -1
  157. package/dist/shared/dto/pipelines.d.ts +54 -5
  158. package/dist/shared/dto/pipelines.d.ts.map +1 -1
  159. package/dist/shared/dto/pipelines.js +0 -7
  160. package/dist/shared/dto/pipelines.js.map +1 -1
  161. package/dist/shared/dto/project.d.ts +60 -0
  162. package/dist/shared/dto/project.d.ts.map +1 -1
  163. package/dist/shared/dto/services.d.ts +26 -17
  164. package/dist/shared/dto/services.d.ts.map +1 -1
  165. package/dist/shared/dto/services.js.map +1 -1
  166. package/dist/workers/system-worker-manager.d.ts +1 -2
  167. package/dist/workers/system-worker-manager.d.ts.map +1 -1
  168. package/dist/workers/system-worker-manager.js +5 -3
  169. package/dist/workers/system-worker-manager.js.map +1 -1
  170. package/package.json +17 -16
  171. package/webapp/dist/BUILD.json +2 -2
  172. package/webapp/dist/assets/{access-DUjabwNX.js → access-B2gXuoMG.js} +1 -1
  173. package/webapp/dist/assets/{access-BvKK9dEv.js → access-I0f72P9m.js} +1 -1
  174. package/webapp/dist/assets/{admin-data-table-BKSDI8sU.js → admin-data-table-CAEL2f-m.js} +1 -1
  175. package/webapp/dist/assets/{alert-uBG6r9NW.js → alert-BdJ2uaY0.js} +1 -1
  176. package/webapp/dist/assets/{alerts-CzN6OqX5.js → alerts-DeVkMXWo.js} +1 -1
  177. package/webapp/dist/assets/{apps-G_Lm6m4F.js → apps-9SuDvyGQ.js} +1 -1
  178. package/webapp/dist/assets/{audit-CLMpdBzG.js → audit-DT8cY7Ys.js} +1 -1
  179. package/webapp/dist/assets/backend-status.store-BbBE9cn8.js +4 -0
  180. package/webapp/dist/assets/{card-DkH32gMY.js → card-DaUEmUI5.js} +1 -1
  181. package/webapp/dist/assets/{chart-BpGXlCJc.js → chart-BKXP2ter.js} +1 -1
  182. package/webapp/dist/assets/{client-DFnuv2z3.js → client-CgyTwq9g.js} +1 -1
  183. package/webapp/dist/assets/{code-editor-DK6Tmmxv.js → code-editor-JVuQ4m-z.js} +1 -1
  184. package/webapp/dist/assets/{comparison-bars-BtC0dHjF.js → comparison-bars-Ds5Dt1oj.js} +1 -1
  185. package/webapp/dist/assets/{confirm-dialog-BbGsAz7_.js → confirm-dialog-BayExVbF.js} +1 -1
  186. package/webapp/dist/assets/{console-keyboard-D3YCA0yU.js → console-keyboard-uSLt92dB.js} +1 -1
  187. package/webapp/dist/assets/{containers-BsFwprq4.js → containers-DkXTgcrY.js} +1 -1
  188. package/webapp/dist/assets/{controls-C5W8gHU4.js → controls-CqeGPnaF.js} +1 -1
  189. package/webapp/dist/assets/{dashboard-BN7rKE5n.js → dashboard-By5yPuOf.js} +1 -1
  190. package/webapp/dist/assets/{dashboard-builder-BXFxWjXP.js → dashboard-builder-C0hvBwkd.js} +1 -1
  191. package/webapp/dist/assets/{deploy-progress-CUUwlYtQ.js → deploy-progress-B39cvvCE.js} +1 -1
  192. package/webapp/dist/assets/{deploy-release-dialog-58lGZDNk.js → deploy-release-dialog-CnzaO_xL.js} +1 -1
  193. package/webapp/dist/assets/{deployments-DEzjHerg.js → deployments-BXP943hA.js} +1 -1
  194. package/webapp/dist/assets/{detail-pXPk4O0E.js → detail-B84RgiOb.js} +1 -1
  195. package/webapp/dist/assets/{detail-Dj3gxaH0.js → detail-CVXDks9-.js} +1 -1
  196. package/webapp/dist/assets/{detail-CBn9pjJU.js → detail-D9DixtaK.js} +1 -1
  197. package/webapp/dist/assets/{empty-content-7jOFhG4C.js → empty-content-eyDOuOVp.js} +1 -1
  198. package/webapp/dist/assets/{error-boundary-CLLI8PWw.js → error-boundary-CQmDr_HS.js} +1 -1
  199. package/webapp/dist/assets/{event-fields-CiyqrRO8.js → event-fields-C7p2a2HY.js} +1 -1
  200. package/webapp/dist/assets/{files-DigwXndm.js → files-BsfGT3t6.js} +2 -2
  201. package/webapp/dist/assets/{icons-OboZgWSt.js → icons-B9Ct8PJ9.js} +1 -1
  202. package/webapp/dist/assets/index-BEfv96EF.js +1 -0
  203. package/webapp/dist/assets/{label-B1SF0RTL.js → label-avMhe08g.js} +1 -1
  204. package/webapp/dist/assets/{log-level-filter-Bcn31D1F.js → log-level-filter-oaUGdbpk.js} +1 -1
  205. package/webapp/dist/assets/{logs-DrsBbLfb.js → logs-iC1OEDv3.js} +1 -1
  206. package/webapp/dist/assets/{metric-chart-M-kI-XOt.js → metric-chart-CSa_qv4F.js} +1 -1
  207. package/webapp/dist/assets/{metrics-D5cDZTEo.js → metrics-CKCmcGKw.js} +1 -1
  208. package/webapp/dist/assets/{mui-Cd711nOk.js → mui-B3fJdIMc.js} +1 -1
  209. package/webapp/dist/assets/{mui-CdB_p2lt.js → mui-Bdr6Ks5j.js} +1 -1
  210. package/webapp/dist/assets/{mui-Db5J-QUd.js → mui-CADnFGCx.js} +1 -1
  211. package/webapp/dist/assets/{mui-AnEgAVjz.js → mui-CMWGTMXv.js} +1 -1
  212. package/webapp/dist/assets/{mui-DyT2n1lx.js → mui-CN3dT7bb.js} +1 -1
  213. package/webapp/dist/assets/{mui-BwsIrivo.js → mui-CPEkFAPo.js} +1 -1
  214. package/webapp/dist/assets/{mui-dLCwWoMw.js → mui-D3qAWvfZ.js} +1 -1
  215. package/webapp/dist/assets/{mui-D5m7fDCh.js → mui-D7tBU80e.js} +1 -1
  216. package/webapp/dist/assets/{mui-59N0OVRa.js → mui-DaJavAoc.js} +1 -1
  217. package/webapp/dist/assets/{mui-BXSXx9c9.js → mui-SNRRJ_vi.js} +1 -1
  218. package/webapp/dist/assets/{nodes-CwwZZuu4.js → nodes-DtLyXH0V.js} +1 -1
  219. package/webapp/dist/assets/{operation-status-Bm1x1wTz.js → operation-status-DHyYOT7G.js} +1 -1
  220. package/webapp/dist/assets/{page-breadcrumbs-fR7Jmpp4.js → page-breadcrumbs-3R8RZ3nA.js} +1 -1
  221. package/webapp/dist/assets/pipelines-Do2NAAqK.js +3 -0
  222. package/webapp/dist/assets/{project.store-DuCgv6Eq.js → project.store-D5IR3fo9.js} +1 -1
  223. package/webapp/dist/assets/{projects-TBAdpCeX.js → projects-BqlGbzeG.js} +1 -1
  224. package/webapp/dist/assets/{realtime.store-hfxZD2DU.js → realtime.store-C8D235-B.js} +1 -1
  225. package/webapp/dist/assets/{release-bits-BJ6i23y0.js → release-bits-IehuBssK.js} +1 -1
  226. package/webapp/dist/assets/{release-build-panel-BNXkwNE1.js → release-build-panel-C48hP_9w.js} +1 -1
  227. package/webapp/dist/assets/{release-deployment-state-gN8ZT3aq.js → release-deployment-state-BfmxZP4Y.js} +1 -1
  228. package/webapp/dist/assets/{releases-CXXKUh-v.js → releases-Cm0RV5Xu.js} +1 -1
  229. package/webapp/dist/assets/{search-input-C0MHI8vO.js → search-input-SWD1dXxD.js} +1 -1
  230. package/webapp/dist/assets/settings-DwuEPQGg.js +1 -0
  231. package/webapp/dist/assets/sign-in-CQ-WeS5A.js +1 -0
  232. package/webapp/dist/assets/{skeleton-BmWDJWF9.js → skeleton-BnVxAoeX.js} +1 -1
  233. package/webapp/dist/assets/{snackbar-DSPmjMyi.js → snackbar-CRX6eqRT.js} +1 -1
  234. package/webapp/dist/assets/{stack-health-status-BIv2C10x.js → stack-health-status-DfErRNb1.js} +1 -1
  235. package/webapp/dist/assets/{stack-start-notice-D-AH_bzn.js → stack-start-notice-NkYDjR-f.js} +1 -1
  236. package/webapp/dist/assets/{stacks-WY_ynkON.js → stacks-BOGCfW90.js} +1 -1
  237. package/webapp/dist/assets/{store-bqUBn2A4.js → store-DtTtbc9H.js} +1 -1
  238. package/webapp/dist/assets/{system-info-DXMwo6gl.js → system-info-Cw-xywgI.js} +1 -1
  239. package/webapp/dist/assets/{table-BOWT6Y9d.js → table-D-so_B1p.js} +1 -1
  240. package/webapp/dist/assets/{table-viewport-Bp4pq-c_.js → table-viewport-DdZ1yAKm.js} +1 -1
  241. package/webapp/dist/assets/{tabs-k5NPGLnJ.js → tabs-DGqBkXh_.js} +1 -1
  242. package/webapp/dist/assets/{terminal-QWBau-Us.js → terminal-Bbl0XNeB.js} +1 -1
  243. package/webapp/dist/assets/{topology-C_Qp1RqW.js → topology-DmrRy7nN.js} +1 -1
  244. package/webapp/dist/assets/{topology-metadata-dialog-BivuU2y6.js → topology-metadata-dialog-Dpfp4YF1.js} +1 -1
  245. package/webapp/dist/assets/{traces-By0rdfDC.js → traces-CKHsOabJ.js} +1 -1
  246. package/webapp/dist/assets/{use-stack-context-8yaHaN8L.js → use-stack-context-BuraYaeY.js} +1 -1
  247. package/webapp/dist/assets/webapp-D8h_eabt.js +35 -0
  248. package/webapp/dist/console-version.json +1 -1
  249. package/webapp/dist/index.html +34 -34
  250. package/webapp/dist/logo.svg +1 -80
  251. package/bin/sdk.d.mts +0 -8
  252. package/bin/sdk.mjs +0 -580
  253. package/dist/monitoring/process-lifetime.d.ts +0 -11
  254. package/dist/monitoring/process-lifetime.d.ts.map +0 -1
  255. package/dist/monitoring/process-lifetime.js +0 -45
  256. package/dist/monitoring/process-lifetime.js.map +0 -1
  257. package/dist/shared/host-boot-identity.d.ts +0 -12
  258. package/dist/shared/host-boot-identity.d.ts.map +0 -1
  259. package/dist/shared/host-boot-identity.js +0 -89
  260. package/dist/shared/host-boot-identity.js.map +0 -1
  261. package/webapp/dist/assets/index-Bo9An3pJ.js +0 -1
  262. package/webapp/dist/assets/omnitron-logo-koMCbsCv.js +0 -1
  263. package/webapp/dist/assets/pipelines-BrfTjf6Y.js +0 -3
  264. package/webapp/dist/assets/settings-B3egRvbI.js +0 -1
  265. package/webapp/dist/assets/sign-in-9q-Nfy83.js +0 -1
  266. package/webapp/dist/assets/webapp-BO_WoB_z.js +0 -35
  267. package/webapp/dist/favicon.png +0 -0
@@ -1,4 +1,4 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dist-DQmjHv4-.js","assets/rolldown-runtime-CNOWq4Kh.js","assets/dist-BUDn8hLh.js","assets/dist-Ci5pYRbx.js","assets/dist-DsGmKwmk.js","assets/dist-De9Fty7a.js"])))=>i.map(i=>d[i]);
2
- import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{Yt as r,qt as i}from"./mui-BTN91yBK.js";import{_n as a,a as o,gn as s,o as c}from"./mui-CdB_p2lt.js";import{H as l,V as u}from"./mui-BXSXx9c9.js";import{n as d,r as f}from"./context-FIuwpd9_.js";import{a as p,s as ee}from"./model-ZEXEHm0l.js";import{n as m,t as te}from"./preload-helper-DzCYNvzR.js";import{$ as ne,At as h,B as g,Dt as re,E as ie,Et as ae,G as _,H as oe,J as se,K as ce,L as le,Mt as v,Nt as ue,O as y,Ot as de,Pt as fe,Q as pe,R as b,S as x,St as me,T as he,Tt as ge,U as _e,V as ve,W as ye,X as be,Z as xe,_t as S,a as Se,at as Ce,b as we,bt as Te,d as Ee,dt as De,et as Oe,ft as ke,g as Ae,gt as C,h as je,ht as Me,it as Ne,j as Pe,jt as Fe,kt as Ie,lt as w,mt as T,n as Le,nt as Re,ot as ze,p as Be,pt as Ve,q as He,s as Ue,st as We,t as Ge,tt as Ke,ut as qe,v as Je,vt as Ye,w as Xe,wt as E,x as Ze,y as Qe,z as $e}from"./dist-BUDn8hLh.js";import{a as et,n as tt,r as nt,s as rt,t as it}from"./dist-De9Fty7a.js";function at(e,t){return({state:n,dispatch:r})=>{if(n.readOnly)return!1;let i=e(t,n);return i?(r(n.update(i)),!0):!1}}function ot(e,t){let n=e.languageDataAt(`commentTokens`,t,1);return n.length?n[0]:{}}function st(e,{open:t,close:n},r,i){let a=e.sliceDoc(r-Kt,r),o=e.sliceDoc(i,i+Kt),s=/\s*$/.exec(a)[0].length,c=/^\s*/.exec(o)[0].length,l=a.length-s;if(a.slice(l-t.length,l)==t&&o.slice(c,c+n.length)==n)return{open:{pos:r-s,margin:s&&1},close:{pos:i+c,margin:c&&1}};let u,d;i-r<=100?u=d=e.sliceDoc(r,i):(u=e.sliceDoc(r,r+Kt),d=e.sliceDoc(i-Kt,i));let f=/^\s*/.exec(u)[0].length,p=/\s*$/.exec(d)[0].length,ee=d.length-p-n.length;return u.slice(f,f+t.length)==t&&d.slice(ee,ee+n.length)==n?{open:{pos:r+f+t.length,margin:+!!/\s/.test(u.charAt(f+t.length))},close:{pos:i-p-n.length,margin:+!!/\s/.test(d.charAt(ee-1))}}:null}function ct(e){let t=[];for(let n of e.selection.ranges){let r=e.doc.lineAt(n.from),i=n.to<=r.to?r:e.doc.lineAt(n.to);i.from>r.from&&i.from==n.to&&(i=n.to==r.to+1?r:e.doc.lineAt(n.to-1));let a=t.length-1;a>=0&&t[a].to>r.from?t[a].to=i.to:t.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:i.to})}return t}function lt(e,t,n=t.selection.ranges){let r=n.map(e=>ot(t,e.from).block);if(!r.every(e=>e))return null;let i=n.map((e,n)=>st(t,r[n],e.from,e.to));if(e!=2&&!i.every(e=>e))return{changes:t.changes(n.map((e,t)=>i[t]?[]:[{from:e.from,insert:r[t].open+` `},{from:e.to,insert:` `+r[t].close}]))};if(e!=1&&i.some(e=>e)){let e=[];for(let t=0,n;t<i.length;t++)if(n=i[t]){let i=r[t],{open:a,close:o}=n;e.push({from:a.pos-i.open.length,to:a.pos+a.margin},{from:o.pos-o.margin,to:o.pos+i.close.length})}return{changes:e}}return null}function ut(e,t,n=t.selection.ranges){let r=[],i=-1;ranges:for(let{from:e,to:a}of n){let n=r.length,o=1e9,s;for(let n=e;n<=a;){let c=t.doc.lineAt(n);if(s==null&&(s=ot(t,c.from).line,!s))continue ranges;if(c.from>i&&(e==a||a>c.from)){i=c.from;let e=/^\s*/.exec(c.text)[0].length,t=e==c.length,n=c.text.slice(e,e+s.length)==s?e:-1;e<c.text.length&&e<o&&(o=e),r.push({line:c,comment:n,token:s,indent:e,empty:t,single:!1})}n=c.to+1}if(o<1e9)for(let e=n;e<r.length;e++)r[e].indent<r[e].line.text.length&&(r[e].indent=o);r.length==n+1&&(r[n].single=!0)}if(e!=2&&r.some(e=>e.comment<0&&(!e.empty||e.single))){let e=[];for(let{line:t,token:n,indent:i,empty:a,single:o}of r)(o||!a)&&e.push({from:t.from+i,insert:n+` `});let n=t.changes(e);return{changes:n,selection:t.selection.map(n,1)}}if(e!=1&&r.some(e=>e.comment>=0)){let e=[];for(let{line:t,comment:n,token:i}of r)if(n>=0){let r=t.from+n,a=r+i.length;t.text[a-t.from]==` `&&a++,e.push({from:r,to:a})}return{changes:e}}return null}function dt(e={}){return[Zt,Xt.of(e),g.domEventHandlers({beforeinput(e,t){let n=e.inputType==`historyUndo`?Qt:e.inputType==`historyRedo`?$t:null;return n?(e.preventDefault(),n(t)):!1}})]}function ft(e,t){return function({state:n,dispatch:r}){if(!t&&n.readOnly)return!1;let i=n.field(Zt,!1);if(!i)return!1;let a=i.pop(e,n,t);return a?(r(a),!0):!1}}function pt(e,t,n,r){let i=t+1>n+20?t-n-1:0,a=e.slice(i,t);return a.push(r),a}function mt(e,t){let n=[],r=!1;return e.iterChangedRanges((e,t)=>n.push(e,t)),t.iterChangedRanges((e,t,i,a)=>{for(let e=0;e<n.length;){let t=n[e++],o=n[e++];a>=t&&i<=o&&(r=!0)}}),r}function ht(e,t){return e.ranges.length==t.ranges.length&&e.ranges.filter((e,n)=>e.empty!=t.ranges[n].empty).length===0}function gt(e,t){return e.length?t.length?e.concat(t):e:t}function _t(e,t){if(e.length){let n=e[e.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-nn));return r.length&&r[r.length-1].eq(t)?e:(r.push(t),pt(e,e.length-1,1e9,n.setSelAfter(r)))}return[P.selection([t])]}function vt(e){let t=e[e.length-1],n=e.slice();return n[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),n}function yt(e,t){if(!e.length)return e;let n=e.length,r=F;for(;n;){let i=bt(e[n-1],t,r);if(i.changes&&!i.changes.empty||i.effects.length){let t=e.slice(0,n);return t[n-1]=i,t}t=i.mapped,n--,r=i.selectionsAfter}return r.length?[P.selection(r)]:F}function bt(e,t,n){let r=gt(e.selectionsAfter.length?e.selectionsAfter.map(e=>e.map(t)):F,n);if(!e.changes)return P.selection(r);let i=e.changes.map(t),a=t.mapDesc(e.changes,!0),o=e.mapped?e.mapped.composeDesc(a):a;return new P(i,E.mapEffects(e.effects,t),o,e.startSelection.map(a),r)}function D(e,t){return C.create(e.ranges.map(t),e.mainIndex)}function O(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:`select`})}function k({state:e,dispatch:t},n){let r=D(e.selection,n);return!r.eq(e.selection,!0)&&(t(O(e,r)),!0)}function xt(e,t){return C.cursor(t?e.to:e.from)}function St(e,t){return k(e,n=>n.empty?e.moveByChar(n,t):xt(n,t))}function A(e){return e.textDirectionAt(e.state.selection.main.head)==$e.LTR}function Ct(e,t){return k(e,n=>n.empty?e.moveByGroup(n,t):xt(n,t))}function wt(e,t,n){if(t.type.prop(n))return!0;let r=t.to-t.from;return r&&(r>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function Tt(e,t,n){let r=he(e).resolveInner(t.head),i=n?Pe.closedBy:Pe.openedBy;for(let a=t.head;;){let t=n?r.childAfter(a):r.childBefore(a);if(!t)break;wt(e,t,i)?r=t:a=n?t.to:t.from}let a=r.type.prop(i),o,s;return s=a&&(o=n?x(e,r.from,1):x(e,r.to,-1))&&o.matched?n?o.end.to:o.end.from:n?r.to:r.from,C.cursor(s,n?-1:1)}function Et(e,t){return k(e,n=>{if(!n.empty)return xt(n,t);let r=e.moveVertically(n,t);return r.head==n.head?e.moveToLineBoundary(n,t):r})}function Dt(e){let t=e.scrollDOM.clientHeight<e.scrollDOM.scrollHeight-2,n=0,r=0,i;if(t){for(let t of e.state.facet(g.scrollMargins)){let i=t(e);i?.top&&(n=Math.max(i?.top,n)),i?.bottom&&(r=Math.max(i?.bottom,r))}i=e.scrollDOM.clientHeight-n-r}else i=(e.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:n,marginBottom:r,selfScroll:t,height:Math.max(e.defaultLineHeight,i-5)}}function Ot(e,t){let n=Dt(e),{state:r}=e,i=D(r.selection,r=>r.empty?e.moveVertically(r,t,n.height):xt(r,t));if(i.eq(r.selection))return!1;let a;if(n.selfScroll){let t=e.coordsAtPos(r.selection.main.head),o=e.scrollDOM.getBoundingClientRect(),s=o.top+n.marginTop,c=o.bottom-n.marginBottom;t&&t.top>s&&t.bottom<c&&(a=g.scrollIntoView(i.main.head,{y:`start`,yMargin:t.top-s}))}return e.dispatch(O(r,i),{effects:a}),!0}function j(e,t,n){let r=e.lineBlockAt(t.head),i=e.moveToLineBoundary(t,n);if(i.head==t.head&&i.head!=(n?r.to:r.from)&&(i=e.moveToLineBoundary(t,n,!1)),!n&&i.head==r.from&&r.length){let n=/^\s*/.exec(e.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;n&&t.head!=r.from+n&&(i=C.cursor(r.from+n))}return i}function kt(e,t,n){let r=!1,i=D(e.selection,t=>{let i=x(e,t.head,-1)||x(e,t.head,1)||t.head>0&&x(e,t.head-1,1)||t.head<e.doc.length&&x(e,t.head+1,-1);if(!i||!i.end)return t;r=!0;let a=i.start.from==t.head?i.end.to:i.end.from;return n?C.range(t.anchor,a):C.cursor(a)});return r?(t(O(e,i)),!0):!1}function M(e,t,n){let r=D(e.state.selection,e=>{e.undirectional&&e.head>=e.anchor!=t&&(e=C.range(e.head,e.anchor));let r=n(e);return C.range(e.anchor,r.head,r.goalColumn,r.bidiLevel||void 0,r.assoc)});return!r.eq(e.state.selection)&&(e.dispatch(O(e.state,r)),!0)}function At(e,t){return M(e,t,n=>e.moveByChar(n,t))}function jt(e,t){return M(e,t,n=>e.moveByGroup(n,t))}function Mt(e,t){return M(e,t,n=>e.moveVertically(n,t))}function Nt(e,t){return M(e,t,n=>e.moveVertically(n,t,Dt(e).height))}function Pt(e,t){let{state:n}=e,r=n.selection,i=n.selection.ranges.slice();for(let r of n.selection.ranges){let a=n.doc.lineAt(r.head);if(t?a.to<e.state.doc.length:a.from>0)for(let n=r;;){let r=e.moveVertically(n,t);if(r.head<a.from||r.head>a.to){i.some(e=>e.head==r.head)||i.push(r);break}if(r.head==n.head)break;n=r}}return i.length!=r.ranges.length&&(e.dispatch(O(n,C.create(i,i.length-1))),!0)}function N(e,t){if(e.state.readOnly)return!1;let n=`delete.selection`,{state:r}=e,i=r.changeByRange(r=>{let{from:i,to:a}=r;if(i==a){let o=t(r);o<i?(n=`delete.backward`,o=Ft(e,o,!1)):o>i&&(n=`delete.forward`,o=Ft(e,o,!0)),i=Math.min(i,o),a=Math.max(a,o)}else i=Ft(e,i,!1),a=Ft(e,a,!0);return i==a?{range:r}:{changes:{from:i,to:a},range:C.cursor(i,i<r.head?-1:1)}});return!i.changes.empty&&(e.dispatch(r.update(i,{scrollIntoView:!0,userEvent:n,effects:n==`delete.selection`?g.announce.of(r.phrase(`Selection deleted`)):void 0})),!0)}function Ft(e,t,n){if(e instanceof g)for(let r of e.state.facet(g.atomicRanges).map(t=>t(e)))r.between(t,t,(e,r)=>{e<t&&r>t&&(t=n?r:e)});return t}function It(e){let t=[],n=-1;for(let r of e.selection.ranges){let i=e.doc.lineAt(r.from),a=e.doc.lineAt(r.to);if(!r.empty&&r.to==a.from&&(a=e.doc.lineAt(r.to-1)),n>=i.number){let e=t[t.length-1];e.to=a.to,e.ranges.push(r)}else t.push({from:i.from,to:a.to,ranges:[r]});n=a.number+1}return t}function Lt(e,t,n){if(e.readOnly)return!1;let r=[],i=[];for(let t of It(e)){if(n?t.to==e.doc.length:t.from==0)continue;let a=e.doc.lineAt(n?t.to+1:t.from-1),o=a.length+1;if(n){r.push({from:t.to,to:a.to},{from:t.from,insert:a.text+e.lineBreak});for(let n of t.ranges)i.push(C.range(Math.min(e.doc.length,n.anchor+o),Math.min(e.doc.length,n.head+o)))}else{r.push({from:a.from,to:t.from},{from:t.to,insert:e.lineBreak+a.text});for(let e of t.ranges)i.push(C.range(e.anchor-o,e.head-o))}}return r.length?(t(e.update({changes:r,scrollIntoView:!0,selection:C.create(i,e.selection.mainIndex),userEvent:`move.line`})),!0):!1}function Rt(e,t,n){if(e.readOnly)return!1;let r=[];for(let t of It(e))n?r.push({from:t.from,insert:e.doc.slice(t.from,t.to)+e.lineBreak}):r.push({from:t.to,insert:e.lineBreak+e.doc.slice(t.from,t.to)});let i=e.changes(r);return t(e.update({changes:i,selection:e.selection.map(i,n?1:-1),scrollIntoView:!0,userEvent:`input.copyline`})),!0}function zt(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n=he(e).resolveInner(t),r=n.childBefore(t),i=n.childAfter(t),a;return r&&i&&r.to<=t&&i.from>=t&&(a=r.type.prop(Pe.closedBy))&&a.indexOf(i.name)>-1&&e.doc.lineAt(r.to).from==e.doc.lineAt(i.from).from&&!/\S/.test(e.sliceDoc(r.to,i.from))?{from:r.to,to:i.from}:null}function Bt(e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let r=t.changeByRange(n=>{let{from:r,to:i}=n,a=t.doc.lineAt(r),o=!e&&r==i&&zt(t,r);e&&(r=i=(i<=a.to?a:t.doc.lineAt(i)).to);let s=new Le(t,{simulateBreak:r,simulateDoubleBreak:!!o}),c=Ae(s,r);for(c??=Fe(/^\s*/.exec(t.doc.lineAt(r).text)[0],t.tabSize);i<a.to&&/\s/.test(a.text[i-a.from]);)i++;o?{from:r,to:i}=o:r>a.from&&r<a.from+100&&!/\S/.test(a.text.slice(0,r))&&(r=a.from);let l=[``,Qe(t,c)];return o&&l.push(Qe(t,s.lineIndent(a.from,-1))),{changes:{from:r,to:i,insert:ae.of(l)},range:C.cursor(r+1+l[1].length)}});return n(t.update(r,{scrollIntoView:!0,userEvent:`input`})),!0}}function Vt(e,t){let n=-1;return e.changeByRange(r=>{let i=[];for(let a=r.from;a<=r.to;){let o=e.doc.lineAt(a);o.number>n&&(r.empty||r.to>o.from)&&(t(o,i,r),n=o.number),a=o.to+1}let a=e.changes(i);return{changes:i,range:C.range(a.mapPos(r.anchor,1),a.mapPos(r.head,1))}})}var Ht,Ut,Wt,Gt,Kt,qt,Jt,Yt,Xt,Zt,Qt,$t,en,tn,P,F,nn,rn,I,an,on,sn,cn,ln,un,dn,fn,pn,mn,hn,gn,_n,vn,yn,bn,xn,Sn,Cn,wn,Tn,En,Dn,On,kn,An,jn,Mn,Nn,Pn,Fn,In,Ln,Rn,zn,Bn,Vn,Hn,Un,Wn,Gn,Kn,qn,Jn,Yn,Xn,Zn,Qn,$n,er,tr,nr,rr,ir,ar,or,sr,cr,lr,ur,dr,fr,pr,mr,hr,gr,_r,vr,yr,br;function xr(){return(xr=e((()=>{fe(),Oe(),Ze(),le(),Ht=e=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=ot(e.state,n.from);return r.line?Ut(e):r.block?Gt(e):!1},Ut=at(ut,0),Wt=at(lt,0),Gt=at((e,t)=>lt(e,t,ct(t)),0),Kt=50,qt=De.define(),Jt=De.define(),Yt=Ye.define(),Xt=Ye.define({combine(e){return h(e,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,r)=>e(n,r)||t(n,r)})}}),Zt=ge.define({create(){return I.empty},update(e,t){let n=t.state.facet(Xt),r=t.annotation(qt);if(r){let i=P.fromTransaction(t,r.selection),a=r.side,o=a==0?e.undone:e.done;return o=i?pt(o,o.length,n.minDepth,i):_t(o,t.startState.selection),new I(a==0?r.rest:o,a==0?o:r.rest)}let i=t.annotation(Jt);if((i==`full`||i==`before`)&&(e=e.isolate()),t.annotation(re.addToHistory)===!1)return t.changes.empty?e:e.addMapping(t.changes.desc);let a=P.fromTransaction(t),o=t.annotation(re.time),s=t.annotation(re.userEvent);return a?e=e.addChanges(a,o,s,n,t):t.selection&&(e=e.addSelection(t.startState.selection,o,s,n.newGroupDelay)),(i==`full`||i==`after`)&&(e=e.isolate()),e},toJSON(e){return{done:e.done.map(e=>e.toJSON()),undone:e.undone.map(e=>e.toJSON())}},fromJSON(e){return new I(e.done.map(P.fromJSON),e.undone.map(P.fromJSON))}}),Qt=ft(0,!1),$t=ft(1,!1),en=ft(0,!0),tn=ft(1,!0),P=class e{constructor(e,t,n,r,i){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=r,this.selectionsAfter=i}setSelAfter(t){return new e(this.changes,this.effects,this.mapped,this.startSelection,t)}toJSON(){return{changes:this.changes?.toJSON(),mapped:this.mapped?.toJSON(),startSelection:this.startSelection?.toJSON(),selectionsAfter:this.selectionsAfter.map(e=>e.toJSON())}}static fromJSON(t){return new e(t.changes&&Ve.fromJSON(t.changes),[],t.mapped&&ke.fromJSON(t.mapped),t.startSelection&&C.fromJSON(t.startSelection),t.selectionsAfter.map(C.fromJSON))}static fromTransaction(t,n){let r=F;for(let e of t.startState.facet(Yt)){let n=e(t);n.length&&(r=r.concat(n))}return!r.length&&t.changes.empty?null:new e(t.changes.invert(t.startState.doc),r,void 0,n||t.startState.selection,F)}static selection(t){return new e(void 0,F,void 0,void 0,t)}},F=[],nn=200,rn=/^(input\.type|delete)($|\.)/,I=class e{constructor(e,t,n=0,r=void 0){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=r}isolate(){return this.prevTime?new e(this.done,this.undone):this}addChanges(t,n,r,i,a){let o=this.done,s=o[o.length-1];return o=s&&s.changes&&!s.changes.empty&&t.changes&&(!r||rn.test(r))&&(!s.selectionsAfter.length&&n-this.prevTime<i.newGroupDelay&&i.joinToEvent(a,mt(s.changes,t.changes))||r==`input.type.compose`)?pt(o,o.length-1,i.minDepth,new P(t.changes.compose(s.changes),gt(E.mapEffects(t.effects,s.changes),s.effects),s.mapped,s.startSelection,F)):pt(o,o.length,i.minDepth,t),new e(o,F,n,r)}addSelection(t,n,r,i){let a=this.done.length?this.done[this.done.length-1].selectionsAfter:F;return a.length>0&&n-this.prevTime<i&&r==this.prevUserEvent&&r&&/^select($|\.)/.test(r)&&ht(a[a.length-1],t)?this:new e(_t(this.done,t),this.undone,n,r)}addMapping(t){return new e(yt(this.done,t),yt(this.undone,t),this.prevTime,this.prevUserEvent)}pop(e,t,n){let r=e==0?this.done:this.undone;if(r.length==0)return null;let i=r[r.length-1],a=i.selectionsAfter[0]||(i.startSelection?i.startSelection.map(i.changes.invertedDesc,1):t.selection);if(n&&i.selectionsAfter.length)return t.update({selection:i.selectionsAfter[i.selectionsAfter.length-1],annotations:qt.of({side:e,rest:vt(r),selection:a}),userEvent:e==0?`select.undo`:`select.redo`,scrollIntoView:!0});if(i.changes){let n=r.length==1?F:r.slice(0,r.length-1);return i.mapped&&(n=yt(n,i.mapped)),t.update({changes:i.changes,selection:i.startSelection,effects:i.effects,annotations:qt.of({side:e,rest:n,selection:a}),filter:!1,userEvent:e==0?`undo`:`redo`,scrollIntoView:!0})}return null}},I.empty=new I(F,F),an=[{key:`Mod-z`,run:Qt,preventDefault:!0},{key:`Mod-y`,mac:`Mod-Shift-z`,run:$t,preventDefault:!0},{linux:`Ctrl-Shift-z`,run:$t,preventDefault:!0},{key:`Mod-u`,run:en,preventDefault:!0},{key:`Alt-u`,mac:`Mod-Shift-u`,run:tn,preventDefault:!0}],on=e=>St(e,!A(e)),sn=e=>St(e,A(e)),cn=e=>Ct(e,!A(e)),ln=e=>Ct(e,A(e)),typeof Intl<`u`&&Intl.Segmenter,un=e=>k(e,t=>Tt(e.state,t,!A(e))),dn=e=>k(e,t=>Tt(e.state,t,A(e))),fn=e=>Et(e,!1),pn=e=>Et(e,!0),mn=e=>Ot(e,!1),hn=e=>Ot(e,!0),gn=e=>k(e,t=>j(e,t,!0)),_n=e=>k(e,t=>j(e,t,!1)),vn=e=>k(e,t=>j(e,t,!A(e))),yn=e=>k(e,t=>j(e,t,A(e))),bn=e=>k(e,t=>e.moveToLineBoundary(t,!1,!1)),xn=e=>k(e,t=>e.moveToLineBoundary(t,!0,!1)),Sn=({state:e,dispatch:t})=>kt(e,t,!1),Cn=e=>At(e,!A(e)),wn=e=>At(e,A(e)),Tn=e=>jt(e,!A(e)),En=e=>jt(e,A(e)),Dn=e=>{let t=!A(e);return M(e,t,n=>Tt(e.state,n,t))},On=e=>{let t=A(e);return M(e,t,n=>Tt(e.state,n,t))},kn=e=>Mt(e,!1),An=e=>Mt(e,!0),jn=e=>Nt(e,!1),Mn=e=>Nt(e,!0),Nn=e=>M(e,!0,t=>j(e,t,!0)),Pn=e=>M(e,!1,t=>j(e,t,!1)),Fn=e=>{let t=!A(e);return M(e,t,n=>j(e,n,t))},In=e=>{let t=A(e);return M(e,t,n=>j(e,n,t))},Ln=e=>M(e,!1,t=>C.cursor(e.lineBlockAt(t.head).from)),Rn=e=>M(e,!0,t=>C.cursor(e.lineBlockAt(t.head).to)),zn=({state:e,dispatch:t})=>(t(O(e,{anchor:0})),!0),Bn=({state:e,dispatch:t})=>(t(O(e,{anchor:e.doc.length})),!0),Vn=({state:e,dispatch:t})=>(t(O(e,{anchor:e.selection.main.anchor,head:0})),!0),Hn=({state:e,dispatch:t})=>(t(O(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),Un=({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:`select`})),!0),Wn=({state:e,dispatch:t})=>{let n=It(e).map(({from:t,to:n})=>C.undirectionalRange(t,Math.min(n+1,e.doc.length)));return t(e.update({selection:C.create(n),userEvent:`select`})),!0},Gn=({state:e,dispatch:t})=>{let n=D(e.selection,t=>{let n=he(e),r=n.resolveStack(t.from,1);if(t.empty){let e=n.resolveStack(t.from,-1);e.node.from>=r.node.from&&e.node.to<=r.node.to&&(r=e)}for(let e=r;e;e=e.next){let{node:n}=e;if((n.from<t.from&&n.to>=t.to||n.to>t.to&&n.from<=t.from)&&e.next)return C.undirectionalRange(n.from,n.to)}return t});return!n.eq(e.selection)&&(t(O(e,n)),!0)},Kn=e=>Pt(e,!1),qn=e=>Pt(e,!0),Jn=({state:e,dispatch:t})=>{let n=e.selection,r=null;return n.ranges.length>1?r=C.create([n.main]):n.main.empty||(r=C.create([C.cursor(n.main.head)])),r?(t(O(e,r)),!0):!1},Yn=(e,t,n)=>N(e,r=>{let i=r.from,{state:a}=e,o=a.doc.lineAt(i),s,c;if(n&&!t&&i>o.from&&i<o.from+200&&!/[^ \t]/.test(s=o.text.slice(0,i-o.from))){if(s[s.length-1]==` `)return i-1;let e=Fe(s,a.tabSize)%je(a)||je(a);for(let t=0;t<e&&s[s.length-1-t]==` `;t++)i--;c=i}else c=v(o.text,i-o.from,t,t)+o.from,c==i&&o.number!=(t?a.doc.lines:1)?c+=t?1:-1:!t&&/[\ufe00-\ufe0f]/.test(o.text.slice(c-o.from,i-o.from))&&(c=v(o.text,c-o.from,!1,!1)+o.from);return c}),Xn=e=>Yn(e,!1,!0),Zn=e=>Yn(e,!0,!1),Qn=(e,t)=>N(e,n=>{let r=n.head,{state:i}=e,a=i.doc.lineAt(r),o=i.charCategorizer(r);for(let e=null;;){if(r==(t?a.to:a.from)){r==n.head&&a.number!=(t?i.doc.lines:1)&&(r+=t?1:-1);break}let s=v(a.text,r-a.from,t)+a.from,c=a.text.slice(Math.min(r,s)-a.from,Math.max(r,s)-a.from),l=o(c);if(e!=null&&l!=e)break;(c!=` `||r!=n.head)&&(e=l),r=s}return r}),$n=e=>Qn(e,!1),er=e=>Qn(e,!0),tr=e=>N(e,t=>{let n=e.lineBlockAt(t.head).to;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),nr=e=>N(e,t=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)}),rr=e=>N(e,t=>{let n=e.moveToLineBoundary(t,!0).head;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),ir=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(e=>({changes:{from:e.from,to:e.to,insert:ae.of([``,``])},range:C.cursor(e.from)}));return t(e.update(n,{scrollIntoView:!0,userEvent:`input`})),!0},ar=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(t=>{if(!t.empty||t.from==0||t.from==e.doc.length)return{range:t};let n=t.from,r=e.doc.lineAt(n),i=n==r.from?n-1:v(r.text,n-r.from,!1)+r.from,a=n==r.to?n+1:v(r.text,n-r.from,!0)+r.from;return{changes:{from:i,to:a,insert:e.doc.slice(n,a).append(e.doc.slice(i,n))},range:C.cursor(a)}});return!n.changes.empty&&(t(e.update(n,{scrollIntoView:!0,userEvent:`move.character`})),!0)},or=({state:e,dispatch:t})=>Lt(e,t,!1),sr=({state:e,dispatch:t})=>Lt(e,t,!0),cr=({state:e,dispatch:t})=>Rt(e,t,!1),lr=({state:e,dispatch:t})=>Rt(e,t,!0),ur=e=>{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(It(t).map(({from:e,to:n})=>(e>0?e--:n<t.doc.length&&n++,{from:e,to:n}))),r=D(t.selection,t=>{let n;if(e.lineWrapping){let r=e.lineBlockAt(t.head),i=e.coordsAtPos(t.head,t.assoc||1);i&&(n=r.bottom+e.documentTop-i.bottom+e.defaultLineHeight/2)}return e.moveVertically(t,!0,n)}).map(n);return e.dispatch({changes:n,selection:r,scrollIntoView:!0,userEvent:`delete.line`}),!0},dr=Bt(!1),fr=Bt(!0),pr=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),r=new Le(e,{overrideIndentation:e=>n[e]??-1}),i=Vt(e,(t,i,a)=>{let o=Ae(r,t.from);if(o==null)return;/\S/.test(t.text)||(o=0);let s=/^\s*/.exec(t.text)[0],c=Qe(e,o);(s!=c||a.from<t.from+s.length)&&(n[t.from]=o,i.push({from:t.from,to:t.from+s.length,insert:c}))});return i.changes.empty||t(e.update(i,{userEvent:`indent`})),!0},mr=({state:e,dispatch:t})=>!e.readOnly&&(t(e.update(Vt(e,(t,n)=>{n.push({from:t.from,insert:e.facet(we)})}),{userEvent:`input.indent`})),!0),hr=({state:e,dispatch:t})=>!e.readOnly&&(t(e.update(Vt(e,(t,n)=>{let r=/^\s*/.exec(t.text)[0];if(!r)return;let i=Fe(r,e.tabSize),a=0,o=Qe(e,Math.max(0,i-je(e)));for(;a<r.length&&a<o.length&&r.charCodeAt(a)==o.charCodeAt(a);)a++;n.push({from:t.from+a,to:t.from+r.length,insert:o.slice(a)})}),{userEvent:`delete.dedent`})),!0),gr=e=>(e.setTabFocusMode(),!0),_r=[{key:`Ctrl-b`,run:on,shift:Cn,preventDefault:!0},{key:`Ctrl-f`,run:sn,shift:wn},{key:`Ctrl-p`,run:fn,shift:kn},{key:`Ctrl-n`,run:pn,shift:An},{key:`Ctrl-a`,run:bn,shift:Ln},{key:`Ctrl-e`,run:xn,shift:Rn},{key:`Ctrl-d`,run:Zn},{key:`Ctrl-h`,run:Xn},{key:`Ctrl-k`,run:tr},{key:`Ctrl-Alt-h`,run:$n},{key:`Ctrl-o`,run:ir},{key:`Ctrl-t`,run:ar},{key:`Ctrl-v`,run:hn}],vr=[{key:`ArrowLeft`,run:on,shift:Cn,preventDefault:!0},{key:`Mod-ArrowLeft`,mac:`Alt-ArrowLeft`,run:cn,shift:Tn,preventDefault:!0},{mac:`Cmd-ArrowLeft`,run:vn,shift:Fn,preventDefault:!0},{key:`ArrowRight`,run:sn,shift:wn,preventDefault:!0},{key:`Mod-ArrowRight`,mac:`Alt-ArrowRight`,run:ln,shift:En,preventDefault:!0},{mac:`Cmd-ArrowRight`,run:yn,shift:In,preventDefault:!0},{key:`ArrowUp`,run:fn,shift:kn,preventDefault:!0},{mac:`Cmd-ArrowUp`,run:zn,shift:Vn},{mac:`Ctrl-ArrowUp`,run:mn,shift:jn},{key:`ArrowDown`,run:pn,shift:An,preventDefault:!0},{mac:`Cmd-ArrowDown`,run:Bn,shift:Hn},{mac:`Ctrl-ArrowDown`,run:hn,shift:Mn},{key:`PageUp`,run:mn,shift:jn},{key:`PageDown`,run:hn,shift:Mn},{key:`Home`,run:_n,shift:Pn,preventDefault:!0},{key:`Mod-Home`,run:zn,shift:Vn},{key:`End`,run:gn,shift:Nn,preventDefault:!0},{key:`Mod-End`,run:Bn,shift:Hn},{key:`Enter`,run:dr,shift:dr},{key:`Mod-a`,run:Un},{key:`Backspace`,run:Xn,shift:Xn,preventDefault:!0},{key:`Delete`,run:Zn,preventDefault:!0},{key:`Mod-Backspace`,mac:`Alt-Backspace`,run:$n,preventDefault:!0},{key:`Mod-Delete`,mac:`Alt-Delete`,run:er,preventDefault:!0},{mac:`Mod-Backspace`,run:nr,preventDefault:!0},{mac:`Mod-Delete`,run:rr,preventDefault:!0}].concat(_r.map(e=>({mac:e.key,run:e.run,shift:e.shift}))),yr=[{key:`Alt-ArrowLeft`,mac:`Ctrl-ArrowLeft`,run:un,shift:Dn},{key:`Alt-ArrowRight`,mac:`Ctrl-ArrowRight`,run:dn,shift:On},{key:`Alt-ArrowUp`,run:or},{key:`Shift-Alt-ArrowUp`,run:cr},{key:`Alt-ArrowDown`,run:sr},{key:`Shift-Alt-ArrowDown`,run:lr},{key:`Mod-Alt-ArrowUp`,run:Kn},{key:`Mod-Alt-ArrowDown`,run:qn},{key:`Escape`,run:Jn},{key:`Mod-Enter`,run:fr},{key:`Alt-l`,mac:`Ctrl-l`,run:Wn},{key:`Mod-i`,run:Gn,preventDefault:!0},{key:`Mod-[`,run:hr},{key:`Mod-]`,run:mr},{key:`Mod-Alt-\\`,run:pr},{key:`Shift-Mod-k`,run:ur},{key:`Shift-Mod-\\`,run:Sn},{key:`Mod-/`,run:Ht},{key:`Alt-A`,mac:`Ctrl-A`,run:Wt},{key:`Ctrl-m`,mac:`Shift-Alt-m`,run:gr}].concat(vr),br={key:`Tab`,run:mr,shift:hr}})))()}function Sr(e){try{return new RegExp(e,Vr),!0}catch{return!1}}function Cr(e,t){if(t>=e.length)return t;let n=e.lineAt(t),r;for(;t<n.to&&(r=n.text.charCodeAt(t-n.from))>=56320&&r<57344;)t++;return t}function wr(e){let t=[Qr,Zr];return e&&t.push(Jr.of(e)),t}function Tr(e,t,n,r){return(n==0||e(t.sliceDoc(n-1,n))!=T.Word)&&(r==t.doc.length||e(t.sliceDoc(r,r+1))!=T.Word)}function Er(e,t,n,r){return e(t.sliceDoc(n,n+1))==T.Word&&e(t.sliceDoc(r-1,r))==T.Word}function Dr(e,t){let{main:n,ranges:r}=e.selection,i=e.wordAt(n.head),a=i&&i.from==n.from&&i.to==n.to;for(let n=!1,i=new V(e.doc,t,r[r.length-1].to);;)if(i.next(),i.done){if(n)return null;i=new V(e.doc,t,0,Math.max(0,r[r.length-1].from-1)),n=!0}else{if(n&&r.some(e=>e.from==i.value.from))continue;if(a){let t=e.wordAt(i.value.from);if(!t||t.from!=i.value.from||t.to!=i.value.to)continue}return i.value}}function Or(e,t,n){return(r,i,a,o)=>n&&!n(r,i,a,o)?!1:e(r>=o&&i<=o+a.length?a.slice(r-o,i-o):t.doc.sliceString(r,i),t,r,i)}function L(e,t,n,r){let i;return e.wholeWord&&(i=kr(t.doc,t.charCategorizer(t.selection.main.head))),e.test&&(i=Or(e.test,t,i)),new V(t.doc,e.unquoted,n,r,e.caseSensitive?void 0:e=>e.toLowerCase(),i)}function kr(e,t){return(n,r,i,a)=>((a>n||a+i.length<r)&&(a=Math.max(0,n-2),i=e.sliceString(a,Math.min(e.length,r+2))),(t(jr(i,n-a))!=T.Word||t(Mr(i,n-a))!=T.Word)&&(t(Mr(i,r-a))!=T.Word||t(jr(i,r-a))!=T.Word))}function Ar(e,t,n){return(r,i,a)=>(!n||n(r,i,a))&&e(a[0],t,r,i)}function R(e,t,n,r){let i;return e.wholeWord&&(i=Nr(t.charCategorizer(t.selection.main.head))),e.test&&(i=Ar(e.test,t,i)),new Hr(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:i},n,r)}function jr(e,t){return e.slice(v(e,t,!1),t)}function Mr(e,t){return e.slice(t,v(e,t))}function Nr(e){return(t,n,r)=>!r[0].length||(e(jr(r.input,r.index))!=T.Word||e(Mr(r.input,r.index))!=T.Word)&&(e(Mr(r.input,r.index+r[0].length))!=T.Word||e(jr(r.input,r.index+r[0].length))!=T.Word)}function z(e){return t=>{let n=t.state.field(W,!1);return n&&n.query.spec.valid?e(t,n):mi(t)}}function Pr(e){return e.state.facet(H).createPanel(e)}function Fr(e,t){let n=e.selection.main,r=n.empty||n.to>n.from+100?``:e.sliceDoc(n.from,n.to);if(t&&!r)return t;let i=e.facet(H);return new ti({search:t?.literal??i.literal?r:r.replace(/\n/g,`\\n`),caseSensitive:t?.caseSensitive??i.caseSensitive,literal:t?.literal??i.literal,regexp:t?.regexp??i.regexp,wholeWord:t?.wholeWord??i.wholeWord})}function Ir(e){let t=se(e,Pr);return t&&t.dom.querySelector(`[main-field]`)}function Lr(e){let t=Ir(e);t&&t==e.root.activeElement&&t.select()}function B(e,t){return e.state.phrase(t)}function Rr(e,{from:t,to:n}){let r=e.state.doc.lineAt(t),i=e.state.doc.lineAt(n).to,a=Math.max(r.from,t-q),o=Math.min(i,n+q),s=e.state.sliceDoc(a,o);if(a!=r.from){for(let e=0;e<q;e++)if(!J.test(s[e+1])&&J.test(s[e])){s=s.slice(e);break}}if(o!=i){for(let e=s.length-1;e>s.length-q;e--)if(!J.test(s[e-1])&&J.test(s[e])){s=s.slice(0,e);break}}return g.announce.of(`${e.state.phrase(`current match`)}. ${s} ${e.state.phrase(`on line`)} ${r.number}.`)}var zr,V,Br,Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr,Yr,Xr,Zr,Qr,$r,ei,H,ti,ni,ri,ii,U,ai,W,oi,si,ci,li,G,K,ui,di,fi,pi,mi,hi,gi,_i,q,J,vi,yi;function bi(){return(bi=e((()=>{Oe(),fe(),qe(),zr=typeof String.prototype.normalize==`function`?e=>e.normalize(`NFKD`):e=>e,V=class{constructor(e,t,n=0,r=e.length,i,a){this.test=a,this.value={from:0,to:0,precise:!1},this.done=!1,this.matches=[],this.buffer=``,this.bufferPos=0,this.iter=e.iterRange(n,r),this.bufferStart=n,this.normalize=i?e=>i(zr(e)):zr,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return de(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=ue(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=Ie(e);let r=this.normalize(t);if(r.length)for(let e=0,i=n,a=!0;;e++){let n=r.charCodeAt(e),o=this.match(n,i,a,this.bufferPos+this.bufferStart,e==r.length-1);if(o)return this.value=o,this;if(e==r.length-1)break;a&&e<t.length&&t.charCodeAt(e)==n?i++:a=!1}}}match(e,t,n,r,i){let a=null;for(let t=0;t<this.matches.length;){let n=this.matches[t],o=!1;this.query.charCodeAt(n.index)==e&&(n.index==this.query.length-1?a={from:n.from,to:r,precise:i&&n.precise}:(n.index++,o=!0)),o?t++:this.matches.splice(t,1)}return this.query.charCodeAt(0)==e&&(this.query.length==1?a={from:t,to:r,precise:n&&i}:this.matches.push({from:t,index:1,precise:n})),a&&this.test&&!this.test(a.from,a.to,this.buffer,this.bufferStart)&&(a=null),a}},typeof Symbol<`u`&&(V.prototype[Symbol.iterator]=function(){return this}),Br={from:-1,to:-1,match:/.*/.exec(``),precise:!0},Vr=`gm`+(/x/.unicode==null?``:`u`),Hr=class{constructor(e,t,n,r=0,i=e.length){if(this.text=e,this.to=i,this.curLine=``,this.done=!1,this.value=Br,/\\[sWDnr]|\n|\r|\[\^/.test(t))return new Gr(e,t,n,r,i);this.re=new RegExp(t,Vr+(n?.ignoreCase?`i`:``)),this.test=n?.test,this.iter=e.iter();let a=e.lineAt(r);this.curLineStart=a.from,this.matchPos=Cr(e,r),this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),this.iter.lineBreak?this.curLine=``:(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine=``:this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let n=this.curLineStart+t.index,r=n+t[0].length;if(this.matchPos=Cr(this.text,r+ +(n==r)),n==this.curLineStart+this.curLine.length&&this.nextLine(),(n<r||n>this.value.to)&&(!this.test||this.test(n,r,t)))return this.value={from:n,to:r,precise:!0,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),e=0;else return this.done=!0,this}}},Ur=new WeakMap,Wr=class e{constructor(e,t){this.from=e,this.text=t}get to(){return this.from+this.text.length}static get(t,n,r){let i=Ur.get(t);if(!i||i.from>=r||i.to<=n){let i=new e(n,t.sliceString(n,r));return Ur.set(t,i),i}if(i.from==n&&i.to==r)return i;let{text:a,from:o}=i;return o>n&&(a=t.sliceString(n,o)+a,o=n),i.to<r&&(a+=t.sliceString(i.to,r)),Ur.set(t,new e(o,a)),new e(n,a.slice(n-o,r-o))}},Gr=class{constructor(e,t,n,r,i){this.text=e,this.to=i,this.done=!1,this.value=Br,this.matchPos=Cr(e,r),this.re=new RegExp(t,Vr+(n?.ignoreCase?`i`:``)),this.test=n?.test,this.flat=Wr.get(e,r,this.chunkEnd(r+5e3))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let e=this.flat.from+t.index,n=e+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(e,n,t)))return this.value={from:e,to:n,precise:!0,match:t},this.matchPos=Cr(this.text,n+ +(e==n)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Wr.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}},typeof Symbol<`u`&&(Hr.prototype[Symbol.iterator]=Gr.prototype[Symbol.iterator]=function(){return this}),Kr=e=>{let t=He(e,`cm-goto-line`);if(t){let e=t.dom.querySelector(`input[type=text]`);return e&&e.select(),!0}let{state:n}=e,r=String(n.doc.lineAt(e.state.selection.main.head).number),{close:i,result:a}=ze(e,{class:`cm-goto-line`,label:n.phrase(`Go to line`),input:{type:`text`,name:`line`,value:r},focus:!0,submitLabel:n.phrase(`go`)});return a.then(t=>{let r=t&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(t.elements.line.value);if(!r){e.dispatch({effects:i});return}let a=n.doc.lineAt(n.selection.main.head),[,o,s,c,l]=r,u=c?+c.slice(1):0,d=s?+s:a.number;if(s&&l){let e=d/100;o&&(e=e*(o==`-`?-1:1)+a.number/n.doc.lines),d=Math.round(n.doc.lines*e)}else s&&o&&(d=d*(o==`-`?-1:1)+a.number);let f=n.doc.line(Math.max(1,Math.min(n.doc.lines,d))),p=C.cursor(f.from+Math.max(0,Math.min(u,f.length)));e.dispatch({effects:[i,g.scrollIntoView(p.from,{y:`center`})],selection:p})}),!0},qr={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},Jr=Ye.define({combine(e){return h(e,qr,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}}),Yr=b.mark({class:`cm-selectionMatch`}),Xr=b.mark({class:`cm-selectionMatch cm-selectionMatch-main`}),Zr=ve.fromClass(class{constructor(e){this.decorations=this.getDeco(e)}update(e){(e.selectionSet||e.docChanged||e.viewportChanged)&&(this.decorations=this.getDeco(e.view))}getDeco(e){let t=e.state.facet(Jr),{state:n}=e,r=n.selection;if(r.ranges.length>1)return b.none;let i=r.main,a,o=null;if(i.empty){if(!t.highlightWordAroundCursor)return b.none;let e=n.wordAt(i.head);if(!e)return b.none;o=n.charCategorizer(i.head),a=n.sliceDoc(e.from,e.to)}else{let e=i.to-i.from;if(e<t.minSelectionLength||e>200)return b.none;if(t.wholeWords){if(a=n.sliceDoc(i.from,i.to),o=n.charCategorizer(i.head),!(Tr(o,n,i.from,i.to)&&Er(o,n,i.from,i.to)))return b.none}else if(a=n.sliceDoc(i.from,i.to),!a)return b.none}let s=[];for(let r of e.visibleRanges){let e=new V(n.doc,a,r.from,r.to);for(;!e.next().done;){let{from:r,to:a}=e.value;if((!o||Tr(o,n,r,a))&&(i.empty&&r<=i.from&&a>=i.to?s.push(Xr.range(r,a)):(r>=i.to||a<=i.from)&&s.push(Yr.range(r,a)),s.length>t.maxMatches))return b.none}}return b.set(s)}},{decorations:e=>e.decorations}),Qr=g.baseTheme({".cm-selectionMatch":{backgroundColor:`#99ff7780`},".cm-searchMatch .cm-selectionMatch":{backgroundColor:`transparent`}}),$r=({state:e,dispatch:t})=>{let{selection:n}=e,r=C.create(n.ranges.map(t=>e.wordAt(t.head)||C.cursor(t.head)),n.mainIndex);return!r.eq(n)&&(t(e.update({selection:r})),!0)},ei=({state:e,dispatch:t})=>{let{ranges:n}=e.selection;if(n.some(e=>e.from===e.to))return $r({state:e,dispatch:t});let r=e.sliceDoc(n[0].from,n[0].to);if(e.selection.ranges.some(t=>e.sliceDoc(t.from,t.to)!=r))return!1;let i=Dr(e,r);return i?(t(e.update({selection:e.selection.addRange(C.range(i.from,i.to),!1),effects:g.scrollIntoView(i.to)})),!0):!1},H=Ye.define({combine(e){return h(e,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new _i(e),scrollToMatch:e=>g.scrollIntoView(e)})}}),ti=class{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||``,this.valid=!!this.search&&(!this.regexp||Sr(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord,this.test=e.test}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(e,t)=>t==`n`?`
2
+ import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{Yt as r,qt as i}from"./mui-BTN91yBK.js";import{_n as a,a as o,gn as s,o as c}from"./mui-Bdr6Ks5j.js";import{H as l,V as u}from"./mui-SNRRJ_vi.js";import{n as d,r as f}from"./context-FIuwpd9_.js";import{a as p,s as ee}from"./model-ZEXEHm0l.js";import{n as m,t as te}from"./preload-helper-DzCYNvzR.js";import{$ as ne,At as h,B as g,Dt as re,E as ie,Et as ae,G as _,H as oe,J as se,K as ce,L as le,Mt as v,Nt as ue,O as y,Ot as de,Pt as fe,Q as pe,R as b,S as x,St as me,T as he,Tt as ge,U as _e,V as ve,W as ye,X as be,Z as xe,_t as S,a as Se,at as Ce,b as we,bt as Te,d as Ee,dt as De,et as Oe,ft as ke,g as Ae,gt as C,h as je,ht as Me,it as Ne,j as Pe,jt as Fe,kt as Ie,lt as w,mt as T,n as Le,nt as Re,ot as ze,p as Be,pt as Ve,q as He,s as Ue,st as We,t as Ge,tt as Ke,ut as qe,v as Je,vt as Ye,w as Xe,wt as E,x as Ze,y as Qe,z as $e}from"./dist-BUDn8hLh.js";import{a as et,n as tt,r as nt,s as rt,t as it}from"./dist-De9Fty7a.js";function at(e,t){return({state:n,dispatch:r})=>{if(n.readOnly)return!1;let i=e(t,n);return i?(r(n.update(i)),!0):!1}}function ot(e,t){let n=e.languageDataAt(`commentTokens`,t,1);return n.length?n[0]:{}}function st(e,{open:t,close:n},r,i){let a=e.sliceDoc(r-Kt,r),o=e.sliceDoc(i,i+Kt),s=/\s*$/.exec(a)[0].length,c=/^\s*/.exec(o)[0].length,l=a.length-s;if(a.slice(l-t.length,l)==t&&o.slice(c,c+n.length)==n)return{open:{pos:r-s,margin:s&&1},close:{pos:i+c,margin:c&&1}};let u,d;i-r<=100?u=d=e.sliceDoc(r,i):(u=e.sliceDoc(r,r+Kt),d=e.sliceDoc(i-Kt,i));let f=/^\s*/.exec(u)[0].length,p=/\s*$/.exec(d)[0].length,ee=d.length-p-n.length;return u.slice(f,f+t.length)==t&&d.slice(ee,ee+n.length)==n?{open:{pos:r+f+t.length,margin:+!!/\s/.test(u.charAt(f+t.length))},close:{pos:i-p-n.length,margin:+!!/\s/.test(d.charAt(ee-1))}}:null}function ct(e){let t=[];for(let n of e.selection.ranges){let r=e.doc.lineAt(n.from),i=n.to<=r.to?r:e.doc.lineAt(n.to);i.from>r.from&&i.from==n.to&&(i=n.to==r.to+1?r:e.doc.lineAt(n.to-1));let a=t.length-1;a>=0&&t[a].to>r.from?t[a].to=i.to:t.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:i.to})}return t}function lt(e,t,n=t.selection.ranges){let r=n.map(e=>ot(t,e.from).block);if(!r.every(e=>e))return null;let i=n.map((e,n)=>st(t,r[n],e.from,e.to));if(e!=2&&!i.every(e=>e))return{changes:t.changes(n.map((e,t)=>i[t]?[]:[{from:e.from,insert:r[t].open+` `},{from:e.to,insert:` `+r[t].close}]))};if(e!=1&&i.some(e=>e)){let e=[];for(let t=0,n;t<i.length;t++)if(n=i[t]){let i=r[t],{open:a,close:o}=n;e.push({from:a.pos-i.open.length,to:a.pos+a.margin},{from:o.pos-o.margin,to:o.pos+i.close.length})}return{changes:e}}return null}function ut(e,t,n=t.selection.ranges){let r=[],i=-1;ranges:for(let{from:e,to:a}of n){let n=r.length,o=1e9,s;for(let n=e;n<=a;){let c=t.doc.lineAt(n);if(s==null&&(s=ot(t,c.from).line,!s))continue ranges;if(c.from>i&&(e==a||a>c.from)){i=c.from;let e=/^\s*/.exec(c.text)[0].length,t=e==c.length,n=c.text.slice(e,e+s.length)==s?e:-1;e<c.text.length&&e<o&&(o=e),r.push({line:c,comment:n,token:s,indent:e,empty:t,single:!1})}n=c.to+1}if(o<1e9)for(let e=n;e<r.length;e++)r[e].indent<r[e].line.text.length&&(r[e].indent=o);r.length==n+1&&(r[n].single=!0)}if(e!=2&&r.some(e=>e.comment<0&&(!e.empty||e.single))){let e=[];for(let{line:t,token:n,indent:i,empty:a,single:o}of r)(o||!a)&&e.push({from:t.from+i,insert:n+` `});let n=t.changes(e);return{changes:n,selection:t.selection.map(n,1)}}if(e!=1&&r.some(e=>e.comment>=0)){let e=[];for(let{line:t,comment:n,token:i}of r)if(n>=0){let r=t.from+n,a=r+i.length;t.text[a-t.from]==` `&&a++,e.push({from:r,to:a})}return{changes:e}}return null}function dt(e={}){return[Zt,Xt.of(e),g.domEventHandlers({beforeinput(e,t){let n=e.inputType==`historyUndo`?Qt:e.inputType==`historyRedo`?$t:null;return n?(e.preventDefault(),n(t)):!1}})]}function ft(e,t){return function({state:n,dispatch:r}){if(!t&&n.readOnly)return!1;let i=n.field(Zt,!1);if(!i)return!1;let a=i.pop(e,n,t);return a?(r(a),!0):!1}}function pt(e,t,n,r){let i=t+1>n+20?t-n-1:0,a=e.slice(i,t);return a.push(r),a}function mt(e,t){let n=[],r=!1;return e.iterChangedRanges((e,t)=>n.push(e,t)),t.iterChangedRanges((e,t,i,a)=>{for(let e=0;e<n.length;){let t=n[e++],o=n[e++];a>=t&&i<=o&&(r=!0)}}),r}function ht(e,t){return e.ranges.length==t.ranges.length&&e.ranges.filter((e,n)=>e.empty!=t.ranges[n].empty).length===0}function gt(e,t){return e.length?t.length?e.concat(t):e:t}function _t(e,t){if(e.length){let n=e[e.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-nn));return r.length&&r[r.length-1].eq(t)?e:(r.push(t),pt(e,e.length-1,1e9,n.setSelAfter(r)))}return[P.selection([t])]}function vt(e){let t=e[e.length-1],n=e.slice();return n[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),n}function yt(e,t){if(!e.length)return e;let n=e.length,r=F;for(;n;){let i=bt(e[n-1],t,r);if(i.changes&&!i.changes.empty||i.effects.length){let t=e.slice(0,n);return t[n-1]=i,t}t=i.mapped,n--,r=i.selectionsAfter}return r.length?[P.selection(r)]:F}function bt(e,t,n){let r=gt(e.selectionsAfter.length?e.selectionsAfter.map(e=>e.map(t)):F,n);if(!e.changes)return P.selection(r);let i=e.changes.map(t),a=t.mapDesc(e.changes,!0),o=e.mapped?e.mapped.composeDesc(a):a;return new P(i,E.mapEffects(e.effects,t),o,e.startSelection.map(a),r)}function D(e,t){return C.create(e.ranges.map(t),e.mainIndex)}function O(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:`select`})}function k({state:e,dispatch:t},n){let r=D(e.selection,n);return!r.eq(e.selection,!0)&&(t(O(e,r)),!0)}function xt(e,t){return C.cursor(t?e.to:e.from)}function St(e,t){return k(e,n=>n.empty?e.moveByChar(n,t):xt(n,t))}function A(e){return e.textDirectionAt(e.state.selection.main.head)==$e.LTR}function Ct(e,t){return k(e,n=>n.empty?e.moveByGroup(n,t):xt(n,t))}function wt(e,t,n){if(t.type.prop(n))return!0;let r=t.to-t.from;return r&&(r>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function Tt(e,t,n){let r=he(e).resolveInner(t.head),i=n?Pe.closedBy:Pe.openedBy;for(let a=t.head;;){let t=n?r.childAfter(a):r.childBefore(a);if(!t)break;wt(e,t,i)?r=t:a=n?t.to:t.from}let a=r.type.prop(i),o,s;return s=a&&(o=n?x(e,r.from,1):x(e,r.to,-1))&&o.matched?n?o.end.to:o.end.from:n?r.to:r.from,C.cursor(s,n?-1:1)}function Et(e,t){return k(e,n=>{if(!n.empty)return xt(n,t);let r=e.moveVertically(n,t);return r.head==n.head?e.moveToLineBoundary(n,t):r})}function Dt(e){let t=e.scrollDOM.clientHeight<e.scrollDOM.scrollHeight-2,n=0,r=0,i;if(t){for(let t of e.state.facet(g.scrollMargins)){let i=t(e);i?.top&&(n=Math.max(i?.top,n)),i?.bottom&&(r=Math.max(i?.bottom,r))}i=e.scrollDOM.clientHeight-n-r}else i=(e.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:n,marginBottom:r,selfScroll:t,height:Math.max(e.defaultLineHeight,i-5)}}function Ot(e,t){let n=Dt(e),{state:r}=e,i=D(r.selection,r=>r.empty?e.moveVertically(r,t,n.height):xt(r,t));if(i.eq(r.selection))return!1;let a;if(n.selfScroll){let t=e.coordsAtPos(r.selection.main.head),o=e.scrollDOM.getBoundingClientRect(),s=o.top+n.marginTop,c=o.bottom-n.marginBottom;t&&t.top>s&&t.bottom<c&&(a=g.scrollIntoView(i.main.head,{y:`start`,yMargin:t.top-s}))}return e.dispatch(O(r,i),{effects:a}),!0}function j(e,t,n){let r=e.lineBlockAt(t.head),i=e.moveToLineBoundary(t,n);if(i.head==t.head&&i.head!=(n?r.to:r.from)&&(i=e.moveToLineBoundary(t,n,!1)),!n&&i.head==r.from&&r.length){let n=/^\s*/.exec(e.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;n&&t.head!=r.from+n&&(i=C.cursor(r.from+n))}return i}function kt(e,t,n){let r=!1,i=D(e.selection,t=>{let i=x(e,t.head,-1)||x(e,t.head,1)||t.head>0&&x(e,t.head-1,1)||t.head<e.doc.length&&x(e,t.head+1,-1);if(!i||!i.end)return t;r=!0;let a=i.start.from==t.head?i.end.to:i.end.from;return n?C.range(t.anchor,a):C.cursor(a)});return r?(t(O(e,i)),!0):!1}function M(e,t,n){let r=D(e.state.selection,e=>{e.undirectional&&e.head>=e.anchor!=t&&(e=C.range(e.head,e.anchor));let r=n(e);return C.range(e.anchor,r.head,r.goalColumn,r.bidiLevel||void 0,r.assoc)});return!r.eq(e.state.selection)&&(e.dispatch(O(e.state,r)),!0)}function At(e,t){return M(e,t,n=>e.moveByChar(n,t))}function jt(e,t){return M(e,t,n=>e.moveByGroup(n,t))}function Mt(e,t){return M(e,t,n=>e.moveVertically(n,t))}function Nt(e,t){return M(e,t,n=>e.moveVertically(n,t,Dt(e).height))}function Pt(e,t){let{state:n}=e,r=n.selection,i=n.selection.ranges.slice();for(let r of n.selection.ranges){let a=n.doc.lineAt(r.head);if(t?a.to<e.state.doc.length:a.from>0)for(let n=r;;){let r=e.moveVertically(n,t);if(r.head<a.from||r.head>a.to){i.some(e=>e.head==r.head)||i.push(r);break}if(r.head==n.head)break;n=r}}return i.length!=r.ranges.length&&(e.dispatch(O(n,C.create(i,i.length-1))),!0)}function N(e,t){if(e.state.readOnly)return!1;let n=`delete.selection`,{state:r}=e,i=r.changeByRange(r=>{let{from:i,to:a}=r;if(i==a){let o=t(r);o<i?(n=`delete.backward`,o=Ft(e,o,!1)):o>i&&(n=`delete.forward`,o=Ft(e,o,!0)),i=Math.min(i,o),a=Math.max(a,o)}else i=Ft(e,i,!1),a=Ft(e,a,!0);return i==a?{range:r}:{changes:{from:i,to:a},range:C.cursor(i,i<r.head?-1:1)}});return!i.changes.empty&&(e.dispatch(r.update(i,{scrollIntoView:!0,userEvent:n,effects:n==`delete.selection`?g.announce.of(r.phrase(`Selection deleted`)):void 0})),!0)}function Ft(e,t,n){if(e instanceof g)for(let r of e.state.facet(g.atomicRanges).map(t=>t(e)))r.between(t,t,(e,r)=>{e<t&&r>t&&(t=n?r:e)});return t}function It(e){let t=[],n=-1;for(let r of e.selection.ranges){let i=e.doc.lineAt(r.from),a=e.doc.lineAt(r.to);if(!r.empty&&r.to==a.from&&(a=e.doc.lineAt(r.to-1)),n>=i.number){let e=t[t.length-1];e.to=a.to,e.ranges.push(r)}else t.push({from:i.from,to:a.to,ranges:[r]});n=a.number+1}return t}function Lt(e,t,n){if(e.readOnly)return!1;let r=[],i=[];for(let t of It(e)){if(n?t.to==e.doc.length:t.from==0)continue;let a=e.doc.lineAt(n?t.to+1:t.from-1),o=a.length+1;if(n){r.push({from:t.to,to:a.to},{from:t.from,insert:a.text+e.lineBreak});for(let n of t.ranges)i.push(C.range(Math.min(e.doc.length,n.anchor+o),Math.min(e.doc.length,n.head+o)))}else{r.push({from:a.from,to:t.from},{from:t.to,insert:e.lineBreak+a.text});for(let e of t.ranges)i.push(C.range(e.anchor-o,e.head-o))}}return r.length?(t(e.update({changes:r,scrollIntoView:!0,selection:C.create(i,e.selection.mainIndex),userEvent:`move.line`})),!0):!1}function Rt(e,t,n){if(e.readOnly)return!1;let r=[];for(let t of It(e))n?r.push({from:t.from,insert:e.doc.slice(t.from,t.to)+e.lineBreak}):r.push({from:t.to,insert:e.lineBreak+e.doc.slice(t.from,t.to)});let i=e.changes(r);return t(e.update({changes:i,selection:e.selection.map(i,n?1:-1),scrollIntoView:!0,userEvent:`input.copyline`})),!0}function zt(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n=he(e).resolveInner(t),r=n.childBefore(t),i=n.childAfter(t),a;return r&&i&&r.to<=t&&i.from>=t&&(a=r.type.prop(Pe.closedBy))&&a.indexOf(i.name)>-1&&e.doc.lineAt(r.to).from==e.doc.lineAt(i.from).from&&!/\S/.test(e.sliceDoc(r.to,i.from))?{from:r.to,to:i.from}:null}function Bt(e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let r=t.changeByRange(n=>{let{from:r,to:i}=n,a=t.doc.lineAt(r),o=!e&&r==i&&zt(t,r);e&&(r=i=(i<=a.to?a:t.doc.lineAt(i)).to);let s=new Le(t,{simulateBreak:r,simulateDoubleBreak:!!o}),c=Ae(s,r);for(c??=Fe(/^\s*/.exec(t.doc.lineAt(r).text)[0],t.tabSize);i<a.to&&/\s/.test(a.text[i-a.from]);)i++;o?{from:r,to:i}=o:r>a.from&&r<a.from+100&&!/\S/.test(a.text.slice(0,r))&&(r=a.from);let l=[``,Qe(t,c)];return o&&l.push(Qe(t,s.lineIndent(a.from,-1))),{changes:{from:r,to:i,insert:ae.of(l)},range:C.cursor(r+1+l[1].length)}});return n(t.update(r,{scrollIntoView:!0,userEvent:`input`})),!0}}function Vt(e,t){let n=-1;return e.changeByRange(r=>{let i=[];for(let a=r.from;a<=r.to;){let o=e.doc.lineAt(a);o.number>n&&(r.empty||r.to>o.from)&&(t(o,i,r),n=o.number),a=o.to+1}let a=e.changes(i);return{changes:i,range:C.range(a.mapPos(r.anchor,1),a.mapPos(r.head,1))}})}var Ht,Ut,Wt,Gt,Kt,qt,Jt,Yt,Xt,Zt,Qt,$t,en,tn,P,F,nn,rn,I,an,on,sn,cn,ln,un,dn,fn,pn,mn,hn,gn,_n,vn,yn,bn,xn,Sn,Cn,wn,Tn,En,Dn,On,kn,An,jn,Mn,Nn,Pn,Fn,In,Ln,Rn,zn,Bn,Vn,Hn,Un,Wn,Gn,Kn,qn,Jn,Yn,Xn,Zn,Qn,$n,er,tr,nr,rr,ir,ar,or,sr,cr,lr,ur,dr,fr,pr,mr,hr,gr,_r,vr,yr,br;function xr(){return(xr=e((()=>{fe(),Oe(),Ze(),le(),Ht=e=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=ot(e.state,n.from);return r.line?Ut(e):r.block?Gt(e):!1},Ut=at(ut,0),Wt=at(lt,0),Gt=at((e,t)=>lt(e,t,ct(t)),0),Kt=50,qt=De.define(),Jt=De.define(),Yt=Ye.define(),Xt=Ye.define({combine(e){return h(e,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,r)=>e(n,r)||t(n,r)})}}),Zt=ge.define({create(){return I.empty},update(e,t){let n=t.state.facet(Xt),r=t.annotation(qt);if(r){let i=P.fromTransaction(t,r.selection),a=r.side,o=a==0?e.undone:e.done;return o=i?pt(o,o.length,n.minDepth,i):_t(o,t.startState.selection),new I(a==0?r.rest:o,a==0?o:r.rest)}let i=t.annotation(Jt);if((i==`full`||i==`before`)&&(e=e.isolate()),t.annotation(re.addToHistory)===!1)return t.changes.empty?e:e.addMapping(t.changes.desc);let a=P.fromTransaction(t),o=t.annotation(re.time),s=t.annotation(re.userEvent);return a?e=e.addChanges(a,o,s,n,t):t.selection&&(e=e.addSelection(t.startState.selection,o,s,n.newGroupDelay)),(i==`full`||i==`after`)&&(e=e.isolate()),e},toJSON(e){return{done:e.done.map(e=>e.toJSON()),undone:e.undone.map(e=>e.toJSON())}},fromJSON(e){return new I(e.done.map(P.fromJSON),e.undone.map(P.fromJSON))}}),Qt=ft(0,!1),$t=ft(1,!1),en=ft(0,!0),tn=ft(1,!0),P=class e{constructor(e,t,n,r,i){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=r,this.selectionsAfter=i}setSelAfter(t){return new e(this.changes,this.effects,this.mapped,this.startSelection,t)}toJSON(){return{changes:this.changes?.toJSON(),mapped:this.mapped?.toJSON(),startSelection:this.startSelection?.toJSON(),selectionsAfter:this.selectionsAfter.map(e=>e.toJSON())}}static fromJSON(t){return new e(t.changes&&Ve.fromJSON(t.changes),[],t.mapped&&ke.fromJSON(t.mapped),t.startSelection&&C.fromJSON(t.startSelection),t.selectionsAfter.map(C.fromJSON))}static fromTransaction(t,n){let r=F;for(let e of t.startState.facet(Yt)){let n=e(t);n.length&&(r=r.concat(n))}return!r.length&&t.changes.empty?null:new e(t.changes.invert(t.startState.doc),r,void 0,n||t.startState.selection,F)}static selection(t){return new e(void 0,F,void 0,void 0,t)}},F=[],nn=200,rn=/^(input\.type|delete)($|\.)/,I=class e{constructor(e,t,n=0,r=void 0){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=r}isolate(){return this.prevTime?new e(this.done,this.undone):this}addChanges(t,n,r,i,a){let o=this.done,s=o[o.length-1];return o=s&&s.changes&&!s.changes.empty&&t.changes&&(!r||rn.test(r))&&(!s.selectionsAfter.length&&n-this.prevTime<i.newGroupDelay&&i.joinToEvent(a,mt(s.changes,t.changes))||r==`input.type.compose`)?pt(o,o.length-1,i.minDepth,new P(t.changes.compose(s.changes),gt(E.mapEffects(t.effects,s.changes),s.effects),s.mapped,s.startSelection,F)):pt(o,o.length,i.minDepth,t),new e(o,F,n,r)}addSelection(t,n,r,i){let a=this.done.length?this.done[this.done.length-1].selectionsAfter:F;return a.length>0&&n-this.prevTime<i&&r==this.prevUserEvent&&r&&/^select($|\.)/.test(r)&&ht(a[a.length-1],t)?this:new e(_t(this.done,t),this.undone,n,r)}addMapping(t){return new e(yt(this.done,t),yt(this.undone,t),this.prevTime,this.prevUserEvent)}pop(e,t,n){let r=e==0?this.done:this.undone;if(r.length==0)return null;let i=r[r.length-1],a=i.selectionsAfter[0]||(i.startSelection?i.startSelection.map(i.changes.invertedDesc,1):t.selection);if(n&&i.selectionsAfter.length)return t.update({selection:i.selectionsAfter[i.selectionsAfter.length-1],annotations:qt.of({side:e,rest:vt(r),selection:a}),userEvent:e==0?`select.undo`:`select.redo`,scrollIntoView:!0});if(i.changes){let n=r.length==1?F:r.slice(0,r.length-1);return i.mapped&&(n=yt(n,i.mapped)),t.update({changes:i.changes,selection:i.startSelection,effects:i.effects,annotations:qt.of({side:e,rest:n,selection:a}),filter:!1,userEvent:e==0?`undo`:`redo`,scrollIntoView:!0})}return null}},I.empty=new I(F,F),an=[{key:`Mod-z`,run:Qt,preventDefault:!0},{key:`Mod-y`,mac:`Mod-Shift-z`,run:$t,preventDefault:!0},{linux:`Ctrl-Shift-z`,run:$t,preventDefault:!0},{key:`Mod-u`,run:en,preventDefault:!0},{key:`Alt-u`,mac:`Mod-Shift-u`,run:tn,preventDefault:!0}],on=e=>St(e,!A(e)),sn=e=>St(e,A(e)),cn=e=>Ct(e,!A(e)),ln=e=>Ct(e,A(e)),typeof Intl<`u`&&Intl.Segmenter,un=e=>k(e,t=>Tt(e.state,t,!A(e))),dn=e=>k(e,t=>Tt(e.state,t,A(e))),fn=e=>Et(e,!1),pn=e=>Et(e,!0),mn=e=>Ot(e,!1),hn=e=>Ot(e,!0),gn=e=>k(e,t=>j(e,t,!0)),_n=e=>k(e,t=>j(e,t,!1)),vn=e=>k(e,t=>j(e,t,!A(e))),yn=e=>k(e,t=>j(e,t,A(e))),bn=e=>k(e,t=>e.moveToLineBoundary(t,!1,!1)),xn=e=>k(e,t=>e.moveToLineBoundary(t,!0,!1)),Sn=({state:e,dispatch:t})=>kt(e,t,!1),Cn=e=>At(e,!A(e)),wn=e=>At(e,A(e)),Tn=e=>jt(e,!A(e)),En=e=>jt(e,A(e)),Dn=e=>{let t=!A(e);return M(e,t,n=>Tt(e.state,n,t))},On=e=>{let t=A(e);return M(e,t,n=>Tt(e.state,n,t))},kn=e=>Mt(e,!1),An=e=>Mt(e,!0),jn=e=>Nt(e,!1),Mn=e=>Nt(e,!0),Nn=e=>M(e,!0,t=>j(e,t,!0)),Pn=e=>M(e,!1,t=>j(e,t,!1)),Fn=e=>{let t=!A(e);return M(e,t,n=>j(e,n,t))},In=e=>{let t=A(e);return M(e,t,n=>j(e,n,t))},Ln=e=>M(e,!1,t=>C.cursor(e.lineBlockAt(t.head).from)),Rn=e=>M(e,!0,t=>C.cursor(e.lineBlockAt(t.head).to)),zn=({state:e,dispatch:t})=>(t(O(e,{anchor:0})),!0),Bn=({state:e,dispatch:t})=>(t(O(e,{anchor:e.doc.length})),!0),Vn=({state:e,dispatch:t})=>(t(O(e,{anchor:e.selection.main.anchor,head:0})),!0),Hn=({state:e,dispatch:t})=>(t(O(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),Un=({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:`select`})),!0),Wn=({state:e,dispatch:t})=>{let n=It(e).map(({from:t,to:n})=>C.undirectionalRange(t,Math.min(n+1,e.doc.length)));return t(e.update({selection:C.create(n),userEvent:`select`})),!0},Gn=({state:e,dispatch:t})=>{let n=D(e.selection,t=>{let n=he(e),r=n.resolveStack(t.from,1);if(t.empty){let e=n.resolveStack(t.from,-1);e.node.from>=r.node.from&&e.node.to<=r.node.to&&(r=e)}for(let e=r;e;e=e.next){let{node:n}=e;if((n.from<t.from&&n.to>=t.to||n.to>t.to&&n.from<=t.from)&&e.next)return C.undirectionalRange(n.from,n.to)}return t});return!n.eq(e.selection)&&(t(O(e,n)),!0)},Kn=e=>Pt(e,!1),qn=e=>Pt(e,!0),Jn=({state:e,dispatch:t})=>{let n=e.selection,r=null;return n.ranges.length>1?r=C.create([n.main]):n.main.empty||(r=C.create([C.cursor(n.main.head)])),r?(t(O(e,r)),!0):!1},Yn=(e,t,n)=>N(e,r=>{let i=r.from,{state:a}=e,o=a.doc.lineAt(i),s,c;if(n&&!t&&i>o.from&&i<o.from+200&&!/[^ \t]/.test(s=o.text.slice(0,i-o.from))){if(s[s.length-1]==` `)return i-1;let e=Fe(s,a.tabSize)%je(a)||je(a);for(let t=0;t<e&&s[s.length-1-t]==` `;t++)i--;c=i}else c=v(o.text,i-o.from,t,t)+o.from,c==i&&o.number!=(t?a.doc.lines:1)?c+=t?1:-1:!t&&/[\ufe00-\ufe0f]/.test(o.text.slice(c-o.from,i-o.from))&&(c=v(o.text,c-o.from,!1,!1)+o.from);return c}),Xn=e=>Yn(e,!1,!0),Zn=e=>Yn(e,!0,!1),Qn=(e,t)=>N(e,n=>{let r=n.head,{state:i}=e,a=i.doc.lineAt(r),o=i.charCategorizer(r);for(let e=null;;){if(r==(t?a.to:a.from)){r==n.head&&a.number!=(t?i.doc.lines:1)&&(r+=t?1:-1);break}let s=v(a.text,r-a.from,t)+a.from,c=a.text.slice(Math.min(r,s)-a.from,Math.max(r,s)-a.from),l=o(c);if(e!=null&&l!=e)break;(c!=` `||r!=n.head)&&(e=l),r=s}return r}),$n=e=>Qn(e,!1),er=e=>Qn(e,!0),tr=e=>N(e,t=>{let n=e.lineBlockAt(t.head).to;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),nr=e=>N(e,t=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)}),rr=e=>N(e,t=>{let n=e.moveToLineBoundary(t,!0).head;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),ir=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(e=>({changes:{from:e.from,to:e.to,insert:ae.of([``,``])},range:C.cursor(e.from)}));return t(e.update(n,{scrollIntoView:!0,userEvent:`input`})),!0},ar=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(t=>{if(!t.empty||t.from==0||t.from==e.doc.length)return{range:t};let n=t.from,r=e.doc.lineAt(n),i=n==r.from?n-1:v(r.text,n-r.from,!1)+r.from,a=n==r.to?n+1:v(r.text,n-r.from,!0)+r.from;return{changes:{from:i,to:a,insert:e.doc.slice(n,a).append(e.doc.slice(i,n))},range:C.cursor(a)}});return!n.changes.empty&&(t(e.update(n,{scrollIntoView:!0,userEvent:`move.character`})),!0)},or=({state:e,dispatch:t})=>Lt(e,t,!1),sr=({state:e,dispatch:t})=>Lt(e,t,!0),cr=({state:e,dispatch:t})=>Rt(e,t,!1),lr=({state:e,dispatch:t})=>Rt(e,t,!0),ur=e=>{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(It(t).map(({from:e,to:n})=>(e>0?e--:n<t.doc.length&&n++,{from:e,to:n}))),r=D(t.selection,t=>{let n;if(e.lineWrapping){let r=e.lineBlockAt(t.head),i=e.coordsAtPos(t.head,t.assoc||1);i&&(n=r.bottom+e.documentTop-i.bottom+e.defaultLineHeight/2)}return e.moveVertically(t,!0,n)}).map(n);return e.dispatch({changes:n,selection:r,scrollIntoView:!0,userEvent:`delete.line`}),!0},dr=Bt(!1),fr=Bt(!0),pr=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),r=new Le(e,{overrideIndentation:e=>n[e]??-1}),i=Vt(e,(t,i,a)=>{let o=Ae(r,t.from);if(o==null)return;/\S/.test(t.text)||(o=0);let s=/^\s*/.exec(t.text)[0],c=Qe(e,o);(s!=c||a.from<t.from+s.length)&&(n[t.from]=o,i.push({from:t.from,to:t.from+s.length,insert:c}))});return i.changes.empty||t(e.update(i,{userEvent:`indent`})),!0},mr=({state:e,dispatch:t})=>!e.readOnly&&(t(e.update(Vt(e,(t,n)=>{n.push({from:t.from,insert:e.facet(we)})}),{userEvent:`input.indent`})),!0),hr=({state:e,dispatch:t})=>!e.readOnly&&(t(e.update(Vt(e,(t,n)=>{let r=/^\s*/.exec(t.text)[0];if(!r)return;let i=Fe(r,e.tabSize),a=0,o=Qe(e,Math.max(0,i-je(e)));for(;a<r.length&&a<o.length&&r.charCodeAt(a)==o.charCodeAt(a);)a++;n.push({from:t.from+a,to:t.from+r.length,insert:o.slice(a)})}),{userEvent:`delete.dedent`})),!0),gr=e=>(e.setTabFocusMode(),!0),_r=[{key:`Ctrl-b`,run:on,shift:Cn,preventDefault:!0},{key:`Ctrl-f`,run:sn,shift:wn},{key:`Ctrl-p`,run:fn,shift:kn},{key:`Ctrl-n`,run:pn,shift:An},{key:`Ctrl-a`,run:bn,shift:Ln},{key:`Ctrl-e`,run:xn,shift:Rn},{key:`Ctrl-d`,run:Zn},{key:`Ctrl-h`,run:Xn},{key:`Ctrl-k`,run:tr},{key:`Ctrl-Alt-h`,run:$n},{key:`Ctrl-o`,run:ir},{key:`Ctrl-t`,run:ar},{key:`Ctrl-v`,run:hn}],vr=[{key:`ArrowLeft`,run:on,shift:Cn,preventDefault:!0},{key:`Mod-ArrowLeft`,mac:`Alt-ArrowLeft`,run:cn,shift:Tn,preventDefault:!0},{mac:`Cmd-ArrowLeft`,run:vn,shift:Fn,preventDefault:!0},{key:`ArrowRight`,run:sn,shift:wn,preventDefault:!0},{key:`Mod-ArrowRight`,mac:`Alt-ArrowRight`,run:ln,shift:En,preventDefault:!0},{mac:`Cmd-ArrowRight`,run:yn,shift:In,preventDefault:!0},{key:`ArrowUp`,run:fn,shift:kn,preventDefault:!0},{mac:`Cmd-ArrowUp`,run:zn,shift:Vn},{mac:`Ctrl-ArrowUp`,run:mn,shift:jn},{key:`ArrowDown`,run:pn,shift:An,preventDefault:!0},{mac:`Cmd-ArrowDown`,run:Bn,shift:Hn},{mac:`Ctrl-ArrowDown`,run:hn,shift:Mn},{key:`PageUp`,run:mn,shift:jn},{key:`PageDown`,run:hn,shift:Mn},{key:`Home`,run:_n,shift:Pn,preventDefault:!0},{key:`Mod-Home`,run:zn,shift:Vn},{key:`End`,run:gn,shift:Nn,preventDefault:!0},{key:`Mod-End`,run:Bn,shift:Hn},{key:`Enter`,run:dr,shift:dr},{key:`Mod-a`,run:Un},{key:`Backspace`,run:Xn,shift:Xn,preventDefault:!0},{key:`Delete`,run:Zn,preventDefault:!0},{key:`Mod-Backspace`,mac:`Alt-Backspace`,run:$n,preventDefault:!0},{key:`Mod-Delete`,mac:`Alt-Delete`,run:er,preventDefault:!0},{mac:`Mod-Backspace`,run:nr,preventDefault:!0},{mac:`Mod-Delete`,run:rr,preventDefault:!0}].concat(_r.map(e=>({mac:e.key,run:e.run,shift:e.shift}))),yr=[{key:`Alt-ArrowLeft`,mac:`Ctrl-ArrowLeft`,run:un,shift:Dn},{key:`Alt-ArrowRight`,mac:`Ctrl-ArrowRight`,run:dn,shift:On},{key:`Alt-ArrowUp`,run:or},{key:`Shift-Alt-ArrowUp`,run:cr},{key:`Alt-ArrowDown`,run:sr},{key:`Shift-Alt-ArrowDown`,run:lr},{key:`Mod-Alt-ArrowUp`,run:Kn},{key:`Mod-Alt-ArrowDown`,run:qn},{key:`Escape`,run:Jn},{key:`Mod-Enter`,run:fr},{key:`Alt-l`,mac:`Ctrl-l`,run:Wn},{key:`Mod-i`,run:Gn,preventDefault:!0},{key:`Mod-[`,run:hr},{key:`Mod-]`,run:mr},{key:`Mod-Alt-\\`,run:pr},{key:`Shift-Mod-k`,run:ur},{key:`Shift-Mod-\\`,run:Sn},{key:`Mod-/`,run:Ht},{key:`Alt-A`,mac:`Ctrl-A`,run:Wt},{key:`Ctrl-m`,mac:`Shift-Alt-m`,run:gr}].concat(vr),br={key:`Tab`,run:mr,shift:hr}})))()}function Sr(e){try{return new RegExp(e,Vr),!0}catch{return!1}}function Cr(e,t){if(t>=e.length)return t;let n=e.lineAt(t),r;for(;t<n.to&&(r=n.text.charCodeAt(t-n.from))>=56320&&r<57344;)t++;return t}function wr(e){let t=[Qr,Zr];return e&&t.push(Jr.of(e)),t}function Tr(e,t,n,r){return(n==0||e(t.sliceDoc(n-1,n))!=T.Word)&&(r==t.doc.length||e(t.sliceDoc(r,r+1))!=T.Word)}function Er(e,t,n,r){return e(t.sliceDoc(n,n+1))==T.Word&&e(t.sliceDoc(r-1,r))==T.Word}function Dr(e,t){let{main:n,ranges:r}=e.selection,i=e.wordAt(n.head),a=i&&i.from==n.from&&i.to==n.to;for(let n=!1,i=new V(e.doc,t,r[r.length-1].to);;)if(i.next(),i.done){if(n)return null;i=new V(e.doc,t,0,Math.max(0,r[r.length-1].from-1)),n=!0}else{if(n&&r.some(e=>e.from==i.value.from))continue;if(a){let t=e.wordAt(i.value.from);if(!t||t.from!=i.value.from||t.to!=i.value.to)continue}return i.value}}function Or(e,t,n){return(r,i,a,o)=>n&&!n(r,i,a,o)?!1:e(r>=o&&i<=o+a.length?a.slice(r-o,i-o):t.doc.sliceString(r,i),t,r,i)}function L(e,t,n,r){let i;return e.wholeWord&&(i=kr(t.doc,t.charCategorizer(t.selection.main.head))),e.test&&(i=Or(e.test,t,i)),new V(t.doc,e.unquoted,n,r,e.caseSensitive?void 0:e=>e.toLowerCase(),i)}function kr(e,t){return(n,r,i,a)=>((a>n||a+i.length<r)&&(a=Math.max(0,n-2),i=e.sliceString(a,Math.min(e.length,r+2))),(t(jr(i,n-a))!=T.Word||t(Mr(i,n-a))!=T.Word)&&(t(Mr(i,r-a))!=T.Word||t(jr(i,r-a))!=T.Word))}function Ar(e,t,n){return(r,i,a)=>(!n||n(r,i,a))&&e(a[0],t,r,i)}function R(e,t,n,r){let i;return e.wholeWord&&(i=Nr(t.charCategorizer(t.selection.main.head))),e.test&&(i=Ar(e.test,t,i)),new Hr(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:i},n,r)}function jr(e,t){return e.slice(v(e,t,!1),t)}function Mr(e,t){return e.slice(t,v(e,t))}function Nr(e){return(t,n,r)=>!r[0].length||(e(jr(r.input,r.index))!=T.Word||e(Mr(r.input,r.index))!=T.Word)&&(e(Mr(r.input,r.index+r[0].length))!=T.Word||e(jr(r.input,r.index+r[0].length))!=T.Word)}function z(e){return t=>{let n=t.state.field(W,!1);return n&&n.query.spec.valid?e(t,n):mi(t)}}function Pr(e){return e.state.facet(H).createPanel(e)}function Fr(e,t){let n=e.selection.main,r=n.empty||n.to>n.from+100?``:e.sliceDoc(n.from,n.to);if(t&&!r)return t;let i=e.facet(H);return new ti({search:t?.literal??i.literal?r:r.replace(/\n/g,`\\n`),caseSensitive:t?.caseSensitive??i.caseSensitive,literal:t?.literal??i.literal,regexp:t?.regexp??i.regexp,wholeWord:t?.wholeWord??i.wholeWord})}function Ir(e){let t=se(e,Pr);return t&&t.dom.querySelector(`[main-field]`)}function Lr(e){let t=Ir(e);t&&t==e.root.activeElement&&t.select()}function B(e,t){return e.state.phrase(t)}function Rr(e,{from:t,to:n}){let r=e.state.doc.lineAt(t),i=e.state.doc.lineAt(n).to,a=Math.max(r.from,t-q),o=Math.min(i,n+q),s=e.state.sliceDoc(a,o);if(a!=r.from){for(let e=0;e<q;e++)if(!J.test(s[e+1])&&J.test(s[e])){s=s.slice(e);break}}if(o!=i){for(let e=s.length-1;e>s.length-q;e--)if(!J.test(s[e-1])&&J.test(s[e])){s=s.slice(0,e);break}}return g.announce.of(`${e.state.phrase(`current match`)}. ${s} ${e.state.phrase(`on line`)} ${r.number}.`)}var zr,V,Br,Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr,Yr,Xr,Zr,Qr,$r,ei,H,ti,ni,ri,ii,U,ai,W,oi,si,ci,li,G,K,ui,di,fi,pi,mi,hi,gi,_i,q,J,vi,yi;function bi(){return(bi=e((()=>{Oe(),fe(),qe(),zr=typeof String.prototype.normalize==`function`?e=>e.normalize(`NFKD`):e=>e,V=class{constructor(e,t,n=0,r=e.length,i,a){this.test=a,this.value={from:0,to:0,precise:!1},this.done=!1,this.matches=[],this.buffer=``,this.bufferPos=0,this.iter=e.iterRange(n,r),this.bufferStart=n,this.normalize=i?e=>i(zr(e)):zr,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return de(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=ue(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=Ie(e);let r=this.normalize(t);if(r.length)for(let e=0,i=n,a=!0;;e++){let n=r.charCodeAt(e),o=this.match(n,i,a,this.bufferPos+this.bufferStart,e==r.length-1);if(o)return this.value=o,this;if(e==r.length-1)break;a&&e<t.length&&t.charCodeAt(e)==n?i++:a=!1}}}match(e,t,n,r,i){let a=null;for(let t=0;t<this.matches.length;){let n=this.matches[t],o=!1;this.query.charCodeAt(n.index)==e&&(n.index==this.query.length-1?a={from:n.from,to:r,precise:i&&n.precise}:(n.index++,o=!0)),o?t++:this.matches.splice(t,1)}return this.query.charCodeAt(0)==e&&(this.query.length==1?a={from:t,to:r,precise:n&&i}:this.matches.push({from:t,index:1,precise:n})),a&&this.test&&!this.test(a.from,a.to,this.buffer,this.bufferStart)&&(a=null),a}},typeof Symbol<`u`&&(V.prototype[Symbol.iterator]=function(){return this}),Br={from:-1,to:-1,match:/.*/.exec(``),precise:!0},Vr=`gm`+(/x/.unicode==null?``:`u`),Hr=class{constructor(e,t,n,r=0,i=e.length){if(this.text=e,this.to=i,this.curLine=``,this.done=!1,this.value=Br,/\\[sWDnr]|\n|\r|\[\^/.test(t))return new Gr(e,t,n,r,i);this.re=new RegExp(t,Vr+(n?.ignoreCase?`i`:``)),this.test=n?.test,this.iter=e.iter();let a=e.lineAt(r);this.curLineStart=a.from,this.matchPos=Cr(e,r),this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),this.iter.lineBreak?this.curLine=``:(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine=``:this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let n=this.curLineStart+t.index,r=n+t[0].length;if(this.matchPos=Cr(this.text,r+ +(n==r)),n==this.curLineStart+this.curLine.length&&this.nextLine(),(n<r||n>this.value.to)&&(!this.test||this.test(n,r,t)))return this.value={from:n,to:r,precise:!0,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),e=0;else return this.done=!0,this}}},Ur=new WeakMap,Wr=class e{constructor(e,t){this.from=e,this.text=t}get to(){return this.from+this.text.length}static get(t,n,r){let i=Ur.get(t);if(!i||i.from>=r||i.to<=n){let i=new e(n,t.sliceString(n,r));return Ur.set(t,i),i}if(i.from==n&&i.to==r)return i;let{text:a,from:o}=i;return o>n&&(a=t.sliceString(n,o)+a,o=n),i.to<r&&(a+=t.sliceString(i.to,r)),Ur.set(t,new e(o,a)),new e(n,a.slice(n-o,r-o))}},Gr=class{constructor(e,t,n,r,i){this.text=e,this.to=i,this.done=!1,this.value=Br,this.matchPos=Cr(e,r),this.re=new RegExp(t,Vr+(n?.ignoreCase?`i`:``)),this.test=n?.test,this.flat=Wr.get(e,r,this.chunkEnd(r+5e3))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let e=this.flat.from+t.index,n=e+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(e,n,t)))return this.value={from:e,to:n,precise:!0,match:t},this.matchPos=Cr(this.text,n+ +(e==n)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Wr.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}},typeof Symbol<`u`&&(Hr.prototype[Symbol.iterator]=Gr.prototype[Symbol.iterator]=function(){return this}),Kr=e=>{let t=He(e,`cm-goto-line`);if(t){let e=t.dom.querySelector(`input[type=text]`);return e&&e.select(),!0}let{state:n}=e,r=String(n.doc.lineAt(e.state.selection.main.head).number),{close:i,result:a}=ze(e,{class:`cm-goto-line`,label:n.phrase(`Go to line`),input:{type:`text`,name:`line`,value:r},focus:!0,submitLabel:n.phrase(`go`)});return a.then(t=>{let r=t&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(t.elements.line.value);if(!r){e.dispatch({effects:i});return}let a=n.doc.lineAt(n.selection.main.head),[,o,s,c,l]=r,u=c?+c.slice(1):0,d=s?+s:a.number;if(s&&l){let e=d/100;o&&(e=e*(o==`-`?-1:1)+a.number/n.doc.lines),d=Math.round(n.doc.lines*e)}else s&&o&&(d=d*(o==`-`?-1:1)+a.number);let f=n.doc.line(Math.max(1,Math.min(n.doc.lines,d))),p=C.cursor(f.from+Math.max(0,Math.min(u,f.length)));e.dispatch({effects:[i,g.scrollIntoView(p.from,{y:`center`})],selection:p})}),!0},qr={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},Jr=Ye.define({combine(e){return h(e,qr,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}}),Yr=b.mark({class:`cm-selectionMatch`}),Xr=b.mark({class:`cm-selectionMatch cm-selectionMatch-main`}),Zr=ve.fromClass(class{constructor(e){this.decorations=this.getDeco(e)}update(e){(e.selectionSet||e.docChanged||e.viewportChanged)&&(this.decorations=this.getDeco(e.view))}getDeco(e){let t=e.state.facet(Jr),{state:n}=e,r=n.selection;if(r.ranges.length>1)return b.none;let i=r.main,a,o=null;if(i.empty){if(!t.highlightWordAroundCursor)return b.none;let e=n.wordAt(i.head);if(!e)return b.none;o=n.charCategorizer(i.head),a=n.sliceDoc(e.from,e.to)}else{let e=i.to-i.from;if(e<t.minSelectionLength||e>200)return b.none;if(t.wholeWords){if(a=n.sliceDoc(i.from,i.to),o=n.charCategorizer(i.head),!(Tr(o,n,i.from,i.to)&&Er(o,n,i.from,i.to)))return b.none}else if(a=n.sliceDoc(i.from,i.to),!a)return b.none}let s=[];for(let r of e.visibleRanges){let e=new V(n.doc,a,r.from,r.to);for(;!e.next().done;){let{from:r,to:a}=e.value;if((!o||Tr(o,n,r,a))&&(i.empty&&r<=i.from&&a>=i.to?s.push(Xr.range(r,a)):(r>=i.to||a<=i.from)&&s.push(Yr.range(r,a)),s.length>t.maxMatches))return b.none}}return b.set(s)}},{decorations:e=>e.decorations}),Qr=g.baseTheme({".cm-selectionMatch":{backgroundColor:`#99ff7780`},".cm-searchMatch .cm-selectionMatch":{backgroundColor:`transparent`}}),$r=({state:e,dispatch:t})=>{let{selection:n}=e,r=C.create(n.ranges.map(t=>e.wordAt(t.head)||C.cursor(t.head)),n.mainIndex);return!r.eq(n)&&(t(e.update({selection:r})),!0)},ei=({state:e,dispatch:t})=>{let{ranges:n}=e.selection;if(n.some(e=>e.from===e.to))return $r({state:e,dispatch:t});let r=e.sliceDoc(n[0].from,n[0].to);if(e.selection.ranges.some(t=>e.sliceDoc(t.from,t.to)!=r))return!1;let i=Dr(e,r);return i?(t(e.update({selection:e.selection.addRange(C.range(i.from,i.to),!1),effects:g.scrollIntoView(i.to)})),!0):!1},H=Ye.define({combine(e){return h(e,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new _i(e),scrollToMatch:e=>g.scrollIntoView(e)})}}),ti=class{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||``,this.valid=!!this.search&&(!this.regexp||Sr(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord,this.test=e.test}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(e,t)=>t==`n`?`
3
3
  `:t==`r`?`\r`:t==`t`?` `:`\\`)}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new ii(this):new ri(this)}getCursor(e,t=0,n){let r=e.doc?e:S.create({doc:e});return n??=r.doc.length,this.regexp?R(this,r,t,n):L(this,r,t,n)}},ni=class{constructor(e){this.spec=e}},ri=class extends ni{constructor(e){super(e)}nextMatch(e,t,n){let r=L(this.spec,e,n,e.doc.length).nextOverlapping();if(r.done){let n=Math.min(e.doc.length,t+this.spec.unquoted.length);r=L(this.spec,e,0,n).nextOverlapping()}return r.done||r.value.from==t&&r.value.to==n?null:r.value}prevMatchInRange(e,t,n){for(let r=n;;){let n=Math.max(t,r-1e4-this.spec.unquoted.length),i=L(this.spec,e,n,r),a=null;for(;!i.nextOverlapping().done;)a=i.value;if(a)return a;if(n==t)return null;r-=1e4}}prevMatch(e,t,n){let r=this.prevMatchInRange(e,0,t);return r||=this.prevMatchInRange(e,Math.max(0,n-this.spec.unquoted.length),e.doc.length),r&&(r.from!=t||r.to!=n)?r:null}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,t){let n=L(this.spec,e,0,e.doc.length),r=[];for(;!n.next().done;){if(r.length>=t)return null;r.push(n.value)}return r}highlight(e,t,n,r){let i=L(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(n+this.spec.unquoted.length,e.doc.length));for(;!i.next().done;)r(i.value.from,i.value.to)}},ii=class extends ni{nextMatch(e,t,n){let r=R(this.spec,e,n,e.doc.length).next();return r.done&&(r=R(this.spec,e,0,t).next()),r.done?null:r.value}prevMatchInRange(e,t,n){for(let r=1;;r++){let i=Math.max(t,n-r*1e4),a=R(this.spec,e,i,n),o=null;for(;!a.next().done;)o=a.value;if(o&&(i==t||o.from>i+10))return o;if(i==t)return null}}prevMatch(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,n)=>{if(n==`&`)return e.match[0];if(n==`$`)return`$`;for(let t=n.length;t>0;t--){let r=+n.slice(0,t);if(r>0&&r<e.match.length)return e.match[r]+n.slice(t)}return t})}matchAll(e,t){let n=R(this.spec,e,0,e.doc.length),r=[];for(;!n.next().done;){if(r.length>=t)return null;r.push(n.value)}return r}highlight(e,t,n,r){let i=R(this.spec,e,Math.max(0,t-250),Math.min(n+250,e.doc.length));for(;!i.next().done;)r(i.value.from,i.value.to)}},U=E.define(),ai=E.define(),W=ge.define({create(e){return new oi(Fr(e).create(),null)},update(e,t){for(let n of t.effects)n.is(U)?e=new oi(n.value.create(),e.panel):n.is(ai)&&(e=new oi(e.query,n.value?Pr:null));return e},provide:e=>We.from(e,e=>e.panel)}),oi=class{constructor(e,t){this.query=e,this.panel=t}},si=b.mark({class:`cm-searchMatch`}),ci=b.mark({class:`cm-searchMatch cm-searchMatch-selected`}),li=ve.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(W))}update(e){let t=e.state.field(W);(t!=e.startState.field(W)||e.docChanged||e.selectionSet||e.viewportChanged)&&(this.decorations=this.highlight(t))}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return b.none;let{view:n}=this,r=new me;for(let t=0,i=n.visibleRanges,a=i.length;t<a;t++){let{from:o,to:s}=i[t];for(;t<a-1&&s>i[t+1].from-500;)s=i[++t].to;e.highlight(n.state,o,s,(e,t)=>{let i=n.state.selection.ranges.some(n=>n.from==e&&n.to==t);r.add(e,t,i?ci:si)})}return r.finish()}},{decorations:e=>e.decorations}),G=z((e,{query:t})=>{let{to:n}=e.state.selection.main,r=t.nextMatch(e.state,n,n);if(!r)return!1;let i=C.single(r.from,r.to),a=e.state.facet(H);return e.dispatch({selection:i,effects:[Rr(e,r),a.scrollToMatch(i.main,e)],userEvent:`select.search`}),Lr(e),!0}),K=z((e,{query:t})=>{let{state:n}=e,{from:r}=n.selection.main,i=t.prevMatch(n,r,r);if(!i)return!1;let a=C.single(i.from,i.to),o=e.state.facet(H);return e.dispatch({selection:a,effects:[Rr(e,i),o.scrollToMatch(a.main,e)],userEvent:`select.search`}),Lr(e),!0}),ui=z((e,{query:t})=>{let n=t.matchAll(e.state,1e3);return!n||!n.length?!1:(e.dispatch({selection:C.create(n.map(e=>C.range(e.from,e.to))),userEvent:`select.search.matches`}),!0)}),di=({state:e,dispatch:t})=>{let n=e.selection;if(n.ranges.length>1||n.main.empty)return!1;let{from:r,to:i}=n.main,a=[],o=0;for(let t=new V(e.doc,e.sliceDoc(r,i));!t.next().done;){if(a.length>1e3)return!1;t.value.from==r&&(o=a.length),a.push(C.range(t.value.from,t.value.to))}return t(e.update({selection:C.create(a,o),userEvent:`select.search.matches`})),!0},fi=z((e,{query:t})=>{let{state:n}=e,{from:r,to:i}=n.selection.main;if(n.readOnly)return!1;let a=t.nextMatch(n,r,r);if(!a)return!1;let o=a,s=[],c,l,u=[];o.precise?o.from==r&&o.to==i&&(l=n.toText(t.getReplacement(o)),s.push({from:o.from,to:o.to,insert:l}),o=t.nextMatch(n,o.from,o.to),u.push(g.announce.of(n.phrase(`replaced match on line $`,n.doc.lineAt(r).number)+`.`))):o=t.nextMatch(n,o.from,o.to);let d=e.state.changes(s);return o&&(c=C.single(o.from,o.to).map(d),u.push(Rr(e,o)),u.push(n.facet(H).scrollToMatch(c.main,e))),e.dispatch({changes:d,selection:c,effects:u,userEvent:`input.replace`}),!0}),pi=z((e,{query:t})=>{if(e.state.readOnly)return!1;let n=[];for(let r of t.matchAll(e.state,1e9)){let{from:e,to:i,precise:a}=r;a&&n.push({from:e,to:i,insert:t.getReplacement(r)})}if(!n.length)return!1;let r=e.state.phrase(`replaced $ matches`,n.length)+`.`;return e.dispatch({changes:n,effects:g.announce.of(r),userEvent:`input.replace.all`}),!0}),mi=e=>{let t=e.state.field(W,!1);if(t&&t.panel){let n=Ir(e);if(n&&n!=e.root.activeElement){let r=Fr(e.state,t.query.spec);r.valid&&e.dispatch({effects:U.of(r)}),n.focus(),n.select()}}else e.dispatch({effects:[ai.of(!0),t?U.of(Fr(e.state,t.query.spec)):E.appendConfig.of(yi)]});return!0},hi=e=>{let t=e.state.field(W,!1);if(!t||!t.panel)return!1;let n=se(e,Pr);return n&&n.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:ai.of(!1)}),!0},gi=[{key:`Mod-f`,run:mi,scope:`editor search-panel`},{key:`F3`,run:G,shift:K,scope:`editor search-panel`,preventDefault:!0},{key:`Mod-g`,run:G,shift:K,scope:`editor search-panel`,preventDefault:!0},{key:`Escape`,run:hi,scope:`editor search-panel`},{key:`Mod-Shift-l`,run:di},{key:`Mod-Alt-g`,run:Kr},{key:`Mod-d`,run:ei,preventDefault:!0}],_i=class{constructor(e){this.view=e;let t=this.query=e.state.field(W).query.spec;this.commit=this.commit.bind(this),this.searchField=w(`input`,{value:t.search,placeholder:B(e,`Find`),"aria-label":B(e,`Find`),class:`cm-textfield`,name:`search`,form:``,"main-field":`true`,onchange:this.commit,onkeyup:this.commit}),this.replaceField=w(`input`,{value:t.replace,placeholder:B(e,`Replace`),"aria-label":B(e,`Replace`),class:`cm-textfield`,name:`replace`,form:``,onchange:this.commit,onkeyup:this.commit}),this.caseField=w(`input`,{type:`checkbox`,name:`case`,form:``,checked:t.caseSensitive,onchange:this.commit}),this.reField=w(`input`,{type:`checkbox`,name:`re`,form:``,checked:t.regexp,onchange:this.commit}),this.wordField=w(`input`,{type:`checkbox`,name:`word`,form:``,checked:t.wholeWord,onchange:this.commit});function n(e,t,n){return w(`button`,{class:`cm-button`,name:e,onclick:t,type:`button`},n)}this.dom=w(`div`,{onkeydown:e=>this.keydown(e),class:`cm-search`},[this.searchField,n(`next`,()=>G(e),[B(e,`next`)]),n(`prev`,()=>K(e),[B(e,`previous`)]),n(`select`,()=>ui(e),[B(e,`all`)]),w(`label`,null,[this.caseField,B(e,`match case`)]),w(`label`,null,[this.reField,B(e,`regexp`)]),w(`label`,null,[this.wordField,B(e,`by word`)]),...e.state.readOnly?[]:[w(`br`),this.replaceField,n(`replace`,()=>fi(e),[B(e,`replace`)]),n(`replaceAll`,()=>pi(e),[B(e,`replace all`)])],w(`button`,{name:`close`,onclick:()=>hi(e),"aria-label":B(e,`close`),type:`button`},[`×`])])}commit(){let e=new ti({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:U.of(e)}))}keydown(e){Ce(this.view,e,`search-panel`)?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?K:G)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),fi(this.view))}update(e){for(let t of e.transactions)for(let e of t.effects)e.is(U)&&!e.value.eq(this.query)&&this.setQuery(e.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(H).top}},q=30,J=/[\s\.,:;?!]/,vi=g.baseTheme({".cm-panel.cm-search":{padding:`2px 6px 4px`,position:`relative`,"& [name=close]":{position:`absolute`,top:`0`,right:`4px`,backgroundColor:`inherit`,border:`none`,font:`inherit`,padding:0,margin:0},"& input, & button, & label":{margin:`.2em .6em .2em 0`},"& input[type=checkbox]":{marginRight:`.2em`},"& label":{fontSize:`80%`,whiteSpace:`pre`}},"&light .cm-searchMatch":{backgroundColor:`#ffff0054`},"&dark .cm-searchMatch":{backgroundColor:`#00ffff8a`},"&light .cm-searchMatch-selected":{backgroundColor:`#ff6a0054`},"&dark .cm-searchMatch-selected":{backgroundColor:`#ff00ff8a`}}),yi=[W,Te.low(li),vi]})))()}function Y(e,t=null,n=0){let r=null;return e.between(n,1e9,(e,n,{spec:i})=>{if(!(t&&i.diagnostics.indexOf(t)<0)){if(!r)r=new Mi(e,n,t||i.diagnostics[0]);else if(i.diagnostics.indexOf(r.diagnostic)<0)return!1;else r=new Mi(r.from,n,r.diagnostic)}}),r}function xi(e,t){let n=t.pos,r=t.end||n,i=e.state.facet(Q).hideOn(e,n,r);if(i!=null)return i;let a=e.startState.doc.lineAt(t.pos);return!!(e.effects.some(e=>e.is(Ni))||e.changes.touchesRange(a.from,Math.max(a.to,r)))}function Si(e,t){return e.field(Z,!1)?t:t.concat(E.appendConfig.of(Ki))}function Ci(e,t,n){let{diagnostics:r}=e.state.field(Z),i,a=-1,o=-1;r.between(t-+(n<0),t+ +(n>0),(e,r,{spec:s})=>{if(t>=e&&t<=r&&(e==r||(t>e||n>0)&&(t<r||n<0)))return i=s.diagnostics,a=e,o=r,!1});let s=e.state.facet(Q).tooltipFilter;return i&&s&&(i=s(i,e.state)),i?{pos:a,end:o,above:!0,create(){return{dom:wi(e,i)}}}:null}function wi(e,t){return w(`ul`,{class:`cm-tooltip-lint`},t.map(t=>Di(e,t,!1)))}function Ti(e,t){return e?t?(n,r)=>t(e(n,r),r):e:t}function Ei(e){let t=[];if(e)actions:for(let{name:n}of e){for(let e=0;e<n.length;e++){let r=n[e];if(/[a-zA-Z]/.test(r)&&!t.some(e=>e.toLowerCase()==r.toLowerCase())){t.push(r);continue actions}}t.push(``)}return t}function Di(e,t,n){let r=n?Ei(t.actions):[];return w(`li`,{class:`cm-diagnostic cm-diagnostic-`+t.severity},w(`span`,{class:`cm-diagnosticText`},t.renderMessage?t.renderMessage(e):t.message),t.actions?.map((n,i)=>{let a=!1,o=r=>{if(r.preventDefault(),a)return;a=!0;let i=Y(e.state.field(Z).diagnostics,t);i&&n.apply(e,i.from,i.to)},{name:s}=n,c=r[i]?s.indexOf(r[i]):-1,l=c<0?s:[s.slice(0,c),w(`u`,s.slice(c,c+1)),s.slice(c+1)],u=n.markClass?` `+n.markClass:``;return w(`button`,{type:`button`,class:`cm-diagnosticAction`+u,onclick:o,onmousedown:o,"aria-label":` Action: ${s}${c<0?``:` (access key "${r[i]})"`}.`},l)}),t.source&&w(`div`,{class:`cm-diagnosticSource`},t.source))}function Oi(e,t=`viewBox="0 0 40 40"`){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${t}>${encodeURIComponent(e)}</svg>')`}function ki(e){return Oi(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${e}" fill="none" stroke-width=".7"/>`,`width="6" height="3"`)}function Ai(e){return e==`error`?4:e==`warning`?3:e==`info`?2:1}function ji(e){let t=`hint`,n=1;for(let r of e){let e=Ai(r.severity);e>n&&(n=e,t=r.severity)}return t}var Mi,X,Ni,Pi,Fi,Z,Ii,Li,Ri,zi,Bi,Q,Vi,Hi,Ui,Wi,Gi,Ki;function qi(){return(qi=e((()=>{Oe(),fe(),qe(),Mi=class{constructor(e,t,n){this.from=e,this.to=t,this.diagnostic=n}},X=class e{constructor(e,t,n){this.diagnostics=e,this.panel=t,this.selected=n}static init(t,n,r){let i=r.facet(Q).markerFilter;i&&(t=i(t,r));let a=t.slice().sort((e,t)=>e.from-t.from||e.to-t.to),o=new me,s=[],c=0,l=r.doc.iter(),u=0,d=r.doc.length;for(let e=0;;){let t=e==a.length?null:a[e];if(!t&&!s.length)break;let n,r;if(s.length)n=c,r=s.reduce((e,t)=>Math.min(e,t.to),t&&t.from>n?t.from:1e8);else{if(n=t.from,n>d)break;r=t.to,s.push(t),e++}for(;e<a.length;){let t=a[e];if(t.from==n&&(t.to>t.from||t.to==n))s.push(t),e++,r=Math.min(t.to,r);else{r=Math.min(t.from,r);break}}r=Math.min(r,d);let i=!1;if(s.some(e=>e.from==n&&(e.to==r||r==d))&&(i=n==r,!i&&r-n<10)){let e=n-(u+l.value.length);e>0&&(l.next(e),u=n);for(let e=n;;){if(e>=r){i=!0;break}if(!l.lineBreak&&u+l.value.length>e)break;e=u+l.value.length,u+=l.value.length,l.next()}}let f=ji(s);if(i)o.add(n,n,b.widget({widget:new Vi(f),diagnostics:s.slice()}));else{let e=s.reduce((e,t)=>t.markClass?e+` `+t.markClass:e,``);o.add(n,r,b.mark({class:`cm-lintRange cm-lintRange-`+f+e,diagnostics:s.slice(),inclusiveEnd:s.some(e=>e.to>r)}))}if(c=r,c==d)break;for(let e=0;e<s.length;e++)s[e].to<=c&&s.splice(e--,1)}let f=o.finish();return new e(f,n,Y(f))}},Ni=E.define(),Pi=E.define(),Fi=E.define(),Z=ge.define({create(){return new X(b.none,null,null)},update(e,t){if(t.docChanged&&e.diagnostics.size){let n=e.diagnostics.map(t.changes),r=null,i=e.panel;if(e.selected){let i=t.changes.mapPos(e.selected.from,1);r=Y(n,e.selected.diagnostic,i)||Y(n,null,i)}!n.size&&i&&t.state.facet(Q).autoPanel&&(i=null),e=new X(n,i,r)}for(let n of t.effects)if(n.is(Ni)){let r=t.state.facet(Q).autoPanel?n.value.length?Ui.open:null:e.panel;e=X.init(n.value,r,t.state)}else n.is(Pi)?e=new X(e.diagnostics,n.value?Ui.open:null,e.selected):n.is(Fi)&&(e=new X(e.diagnostics,e.panel,n.value));return e},provide:e=>[We.from(e,e=>e.panel),g.decorations.from(e,e=>e.diagnostics)]}),Ii=b.mark({class:`cm-lintRange cm-lintRange-active`}),Li=e=>{let t=e.state.field(Z,!1);t&&t.panel||e.dispatch({effects:Si(e.state,[Pi.of(!0)])});let n=se(e,Ui.open);return n&&n.dom.querySelector(`.cm-panel-lint ul`).focus(),!0},Ri=e=>{let t=e.state.field(Z,!1);return!t||!t.panel?!1:(e.dispatch({effects:Pi.of(!1)}),!0)},zi=e=>{let t=e.state.field(Z,!1);if(!t)return!1;let n=e.state.selection.main,r=Y(t.diagnostics,null,n.to+1);return!r&&(r=Y(t.diagnostics,null,0),!r||r.from==n.from&&r.to==n.to)?!1:(e.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0}),_e(e,r.from,1,{tooltip:Gi,until:e=>e.docChanged||e.newSelection.main.head<r.from||e.newSelection.main.head>r.to}),!0)},Bi=[{key:`Mod-Shift-m`,run:Li,preventDefault:!0},{key:`F8`,run:zi}],Q=Ye.define({combine(e){return{sources:e.map(e=>e.source).filter(e=>e!=null),...h(e.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:Ti,tooltipFilter:Ti,needsRefresh:(e,t)=>e?t?n=>e(n)||t(n):e:t,hideOn:(e,t)=>e?t?(n,r,i)=>e(n,r,i)||t(n,r,i):e:t,autoPanel:(e,t)=>e||t})}}}),Vi=class extends oe{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return w(`span`,{class:`cm-lintPoint cm-lintPoint-`+this.sev})}},Hi=class{constructor(e,t){this.diagnostic=t,this.id=`item_`+Math.floor(Math.random()*4294967295).toString(16),this.dom=Di(e,t,!0),this.dom.id=this.id,this.dom.setAttribute(`role`,`option`)}},Ui=class e{constructor(e){this.view=e,this.items=[];let t=t=>{if(!(t.ctrlKey||t.altKey||t.metaKey)){if(t.keyCode==27)Ri(this.view),this.view.focus();else if(t.keyCode==38||t.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(t.keyCode==40||t.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(t.keyCode==36)this.moveSelection(0);else if(t.keyCode==35)this.moveSelection(this.items.length-1);else if(t.keyCode==13)this.view.focus();else if(t.keyCode>=65&&t.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:n}=this.items[this.selectedIndex],r=Ei(n.actions);for(let i=0;i<r.length;i++)if(r[i].toUpperCase().charCodeAt(0)==t.keyCode){let t=Y(this.view.state.field(Z).diagnostics,n);t&&n.actions[i].apply(e,t.from,t.to)}}else return;t.preventDefault()}},n=e=>{for(let t=0;t<this.items.length;t++)this.items[t].dom.contains(e.target)&&this.moveSelection(t)};this.list=w(`ul`,{tabIndex:0,role:`listbox`,"aria-label":this.view.state.phrase(`Diagnostics`),onkeydown:t,onclick:n}),this.dom=w(`div`,{class:`cm-panel-lint`},this.list,w(`button`,{type:`button`,name:`close`,"aria-label":this.view.state.phrase(`close`),onclick:()=>Ri(this.view)},`×`)),this.update()}get selectedIndex(){let e=this.view.state.field(Z).selected;if(!e)return-1;for(let t=0;t<this.items.length;t++)if(this.items[t].diagnostic==e.diagnostic)return t;return-1}update(){let{diagnostics:e,selected:t}=this.view.state.field(Z),n=0,r=!1,i=null,a=new Set;for(e.between(0,this.view.state.doc.length,(e,o,{spec:s})=>{for(let e of s.diagnostics){if(a.has(e))continue;a.add(e);let o=-1,s;for(let t=n;t<this.items.length;t++)if(this.items[t].diagnostic==e){o=t;break}o<0?(s=new Hi(this.view,e),this.items.splice(n,0,s),r=!0):(s=this.items[o],o>n&&(this.items.splice(n,o-n),r=!0)),t&&s.diagnostic==t.diagnostic?s.dom.hasAttribute(`aria-selected`)||(s.dom.setAttribute(`aria-selected`,`true`),i=s):s.dom.hasAttribute(`aria-selected`)&&s.dom.removeAttribute(`aria-selected`),n++}});n<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)r=!0,this.items.pop();this.items.length==0&&(this.items.push(new Hi(this.view,{from:-1,to:-1,severity:`info`,message:this.view.state.phrase(`No diagnostics`)})),r=!0),i?(this.list.setAttribute(`aria-activedescendant`,i.id),this.view.requestMeasure({key:this,read:()=>({sel:i.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:e,panel:t})=>{let n=t.height/this.list.offsetHeight;e.top<t.top?this.list.scrollTop-=(t.top-e.top)/n:e.bottom>t.bottom&&(this.list.scrollTop+=(e.bottom-t.bottom)/n)}})):this.selectedIndex<0&&this.list.removeAttribute(`aria-activedescendant`),r&&this.sync()}sync(){let e=this.list.firstChild;function t(){let t=e;e=t.nextSibling,t.remove()}for(let n of this.items)if(n.dom.parentNode==this.list){for(;e!=n.dom;)t();e=n.dom.nextSibling}else this.list.insertBefore(n.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=Y(this.view.state.field(Z).diagnostics,this.items[e].diagnostic);t&&this.view.dispatch({selection:{anchor:t.from,head:t.to},scrollIntoView:!0,effects:Fi.of(t)})}static open(t){return new e(t)}},Wi=g.baseTheme({".cm-diagnostic":{padding:`3px 6px 3px 8px`,marginLeft:`-1px`,display:`block`,whiteSpace:`pre-wrap`},".cm-diagnostic-error":{borderLeft:`5px solid #d11`},".cm-diagnostic-warning":{borderLeft:`5px solid orange`},".cm-diagnostic-info":{borderLeft:`5px solid #999`},".cm-diagnostic-hint":{borderLeft:`5px solid #66d`},".cm-diagnosticAction":{font:`inherit`,border:`none`,padding:`2px 4px`,backgroundColor:`#444`,color:`white`,borderRadius:`3px`,marginLeft:`8px`,cursor:`pointer`},".cm-diagnosticSource":{fontSize:`70%`,opacity:.7},".cm-lintRange":{backgroundPosition:`left bottom`,backgroundRepeat:`repeat-x`,paddingBottom:`0.7px`},".cm-lintRange-error":{backgroundImage:ki(`#f11`)},".cm-lintRange-warning":{backgroundImage:ki(`orange`)},".cm-lintRange-info":{backgroundImage:ki(`#999`)},".cm-lintRange-hint":{backgroundImage:ki(`#66d`)},".cm-lintRange-active":{backgroundColor:`#ffdd9980`},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:`relative`,"&:after":{content:`""`,position:`absolute`,bottom:0,left:`-2px`,borderLeft:`3px solid transparent`,borderRight:`3px solid transparent`,borderBottom:`4px solid #d11`}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:`orange`}},".cm-lintPoint-info":{"&:after":{borderBottomColor:`#999`}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:`#66d`}},".cm-panel.cm-panel-lint":{position:`relative`,"& ul":{maxHeight:`100px`,overflowY:`auto`,"& [aria-selected]":{backgroundColor:`#ddd`,"& u":{textDecoration:`underline`}},"&:focus [aria-selected]":{background_fallback:`#bdf`,backgroundColor:`Highlight`,color_fallback:`white`,color:`HighlightText`},"& u":{textDecoration:`none`},padding:0,margin:0},"& [name=close]":{position:`absolute`,top:`0`,right:`2px`,background:`inherit`,border:`none`,font:`inherit`,padding:0,margin:0}},"&dark .cm-lintRange-active":{backgroundColor:`#86714a80`},"&dark .cm-panel.cm-panel-lint ul":{"& [aria-selected]":{backgroundColor:`#2e343e`}}}),Gi=ne(Ci,{hideOn:xi}),Ki=[Z,g.decorations.compute([Z],e=>{let{selected:t,panel:n}=e.field(Z);return!t||!n||t.from==t.to?b.none:b.set([Ii.range(t.from,t.to)])}),Gi,Wi]})))()}var Ji;function Yi(){return(Yi=e((()=>{Oe(),fe(),Ze(),xr(),bi(),rt(),qi(),Ji=[Re(),xe(),pe(),dt(),Ee(),_(),ce(),S.allowMultipleSelections.of(!0),Je(),Xe(Ue,{fallback:!0}),Se(),tt(),it(),Ne(),ye(),be(),wr(),Ke.of([...nt,...yr,...gi,...an,...Be,...et,...Bi])]})))()}function Xi(e){let t=e.state.selection.main,n=e.state.doc.lineAt(t.head);return{line:n.number,column:t.head-n.from+1,selected:t.to-t.from}}function Zi(e,t){let n=t=>[t.main,t.light,t.dark,t.darker,t.lighter].find(t=>t&&i(t,e.palette.background.default)>=4.5)??e.palette.text.primary;return[Xe(Ge.define([{tag:y.keyword,color:n(e.palette.primary)},{tag:[y.string,y.special(y.string)],color:n(e.palette.success)},{tag:[y.number,y.bool,y.null],color:n(e.palette.warning)},{tag:[y.function(y.variableName),y.typeName],color:n(e.palette.info)},{tag:y.comment,color:e.palette.text.secondary,fontStyle:`italic`},{tag:[y.name,y.punctuation,y.operator],color:e.palette.text.primary},{tag:y.invalid,color:n(e.palette.error),textDecoration:`underline`}])),g.theme({"&":{height:`100%`,color:e.palette.text.primary,backgroundColor:e.palette.background.default},".cm-scroller":{overflow:`auto`,fontFamily:`ui-monospace, SFMono-Regular, Menlo, monospace`,fontSize:`13px`,lineHeight:`1.65`},".cm-content":{padding:`12px 0`,caretColor:e.palette.primary.main},".cm-gutters":{backgroundColor:e.palette.background.paper,color:e.palette.text.secondary,border:`none`},".cm-activeLine, .cm-activeLineGutter":{backgroundColor:e.palette.action.hover},"&.cm-focused":{outline:`none`},".cm-panels":{backgroundColor:e.palette.background.paper,color:e.palette.text.primary},".cm-search":{display:`flex`,flexWrap:`wrap`,alignItems:`center`,gap:`4px`,padding:`6px`},".cm-textfield":{minWidth:`80px`,maxWidth:`100%`,color:e.palette.text.primary,backgroundColor:e.palette.background.default,border:`1px solid ${e.palette.divider}`,borderRadius:`4px`},".cm-button":{color:e.palette.text.primary,backgroundImage:`none`,backgroundColor:e.palette.action.hover,border:`1px solid ${e.palette.divider}`,borderRadius:`4px`}},{dark:t})]}function Qi({initial:e,name:t,readOnly:n,active:r=!0,wrap:i=!1,onChange:o,onSave:s,onPosition:l}){let d=(0,$.useRef)(null),p=(0,$.useRef)(null),m=(0,$.useRef)({onChange:o,onSave:s,onPosition:l});m.current={onChange:o,onSave:s,onPosition:l};let ne=a(),{settings:h}=f(),re=c(`(prefers-color-scheme: dark)`),ie=h.mode===`system`?re:h.mode===`dark`,ae=(0,$.useMemo)(()=>Zi(ne,ie),[ne,ie]),_=(0,$.useRef)({visual:new Me,language:new Me,policy:new Me,wrap:new Me,label:new Me}),oe=(0,$.useRef)({initial:e,ending:ee(e)});return(0,$.useEffect)(()=>{if(!d.current)return;let{ending:e}=oe.current,t=new g({parent:d.current,state:S.create({doc:oe.current.initial,extensions:[Ji,_.current.visual.of([]),_.current.language.of([]),_.current.policy.of([]),_.current.wrap.of([]),_.current.label.of([]),Ke.of([{key:`Mod-s`,run:e=>(e.state.facet(S.readOnly)||m.current.onSave(),!0)},br]),S.lineSeparator.of(e===`mixed`?`
4
4
  `:e),g.updateListener.of(e=>{e.docChanged&&m.current.onChange(e.state.sliceDoc()),(e.docChanged||e.selectionSet)&&m.current.onPosition?.(Xi(e.view))})]})});return p.current=t,()=>{p.current=null,t.destroy()}},[]),(0,$.useEffect)(()=>{let e=p.current;if(!e)return;let r=n||oe.current.ending===`mixed`;e.dispatch({effects:[_.current.visual.reconfigure(ae),_.current.policy.reconfigure([S.readOnly.of(r),g.editable.of(!r)]),_.current.wrap.reconfigure(i?g.lineWrapping:[]),_.current.label.reconfigure(g.contentAttributes.of({"aria-label":`Edit ${t}`,"data-keyboard-focus":``,tabindex:`0`,spellcheck:`false`}))]})},[ae,n,i,t]),(0,$.useEffect)(()=>{let e=!1;return(/\.jsonc?$/.test(t)?te(()=>import(`./dist-DQmjHv4-.js`).then(e=>e.json()),__vite__mapDeps([0,1,2,3])):/\.[cm]?[jt]sx?$/.test(t)?te(()=>import(`./dist-DsGmKwmk.js`).then(e=>e.javascript({typescript:/tsx?$/.test(t),jsx:/[jt]sx$/.test(t)})),__vite__mapDeps([4,1,2,5,3])):Promise.resolve([])).then(t=>{e||p.current?.dispatch({effects:_.current.language.reconfigure(t)})}).catch(()=>void 0),()=>{e=!0}},[t]),(0,$.useEffect)(()=>{if(!r)return;let e=requestAnimationFrame(()=>{let e=p.current;e&&(e.requestMeasure(),e.focus(),m.current.onPosition?.(Xi(e)))});return()=>cancelAnimationFrame(e)},[r]),(0,$i.jsx)(u,{ref:d,"data-keyboard-region":`File editor`,"data-keyboard-native":!0,sx:{flex:1,minHeight:0,minWidth:0,overflow:`hidden`,"& > .cm-editor":{height:`100%`}}})}var $,$i;function ea(){return(ea=e((()=>{$=t(),l(),o(),s(),r(),d(),fe(),Oe(),xr(),Ze(),ie(),Yi(),p(),$i=n(),m()})))()}ea();export{Qi as default};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{t}from"./react-BN8qLIAi.js";import{H as n,V as r}from"./mui-BXSXx9c9.js";import{B as i,z as a}from"./mui-Cd711nOk.js";import{_ as o,v as s}from"./mui-BwsIrivo.js";function c({label:e,items:t,format:n}){let i=t.reduce((e,t)=>Math.max(e,t.value),0);return(0,l.jsx)(o,{component:`ul`,"aria-label":e,spacing:1.25,sx:{m:0,p:0,listStyle:`none`,minWidth:0},children:t.map(e=>(0,l.jsxs)(r,{component:`li`,sx:{display:`grid`,gridTemplateColumns:`minmax(0, 1fr) auto`,gap:.5,alignItems:`baseline`},children:[(0,l.jsx)(a,{component:`span`,variant:`body2`,sx:{overflowWrap:`anywhere`},children:e.name}),(0,l.jsx)(a,{component:`span`,variant:`body2`,sx:{fontVariantNumeric:`tabular-nums`},children:n(e.value)}),(0,l.jsx)(r,{"aria-hidden":!0,sx:{gridColumn:`1 / -1`,overflow:`hidden`,height:3,bgcolor:`action.hover`},children:(0,l.jsx)(r,{sx:{height:`100%`,bgcolor:`primary.main`},style:{width:`${i>0?e.value/i*100:0}%`}})})]},e.id))})}var l;function u(){return(u=e((()=>{n(),s(),i(),l=t()})))()}export{u as n,c as t};
1
+ import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{t}from"./react-BN8qLIAi.js";import{H as n,V as r}from"./mui-SNRRJ_vi.js";import{B as i,z as a}from"./mui-B3fJdIMc.js";import{_ as o,v as s}from"./mui-CPEkFAPo.js";function c({label:e,items:t,format:n}){let i=t.reduce((e,t)=>Math.max(e,t.value),0);return(0,l.jsx)(o,{component:`ul`,"aria-label":e,spacing:1.25,sx:{m:0,p:0,listStyle:`none`,minWidth:0},children:t.map(e=>(0,l.jsxs)(r,{component:`li`,sx:{display:`grid`,gridTemplateColumns:`minmax(0, 1fr) auto`,gap:.5,alignItems:`baseline`},children:[(0,l.jsx)(a,{component:`span`,variant:`body2`,sx:{overflowWrap:`anywhere`},children:e.name}),(0,l.jsx)(a,{component:`span`,variant:`body2`,sx:{fontVariantNumeric:`tabular-nums`},children:n(e.value)}),(0,l.jsx)(r,{"aria-hidden":!0,sx:{gridColumn:`1 / -1`,overflow:`hidden`,height:3,bgcolor:`action.hover`},children:(0,l.jsx)(r,{sx:{height:`100%`,bgcolor:`primary.main`},style:{width:`${i>0?e.value/i*100:0}%`}})})]},e.id))})}var l;function u(){return(u=e((()=>{n(),s(),i(),l=t()})))()}export{u as n,c as t};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{F as r,I as i,c as a,d as o,f as s,g as c,h as l,l as u,m as d,p as f,s as p,u as m}from"./mui-BXSXx9c9.js";function h({open:e,onClose:t,onConfirm:n,title:i=`Confirm`,content:a,confirmLabel:s=`Confirm`,cancelLabel:c=`Cancel`,confirmColor:d=`primary`,loading:m=!1,disabled:h=!1,maxWidth:v=`xs`,sx:y}){let b=(0,g.useId)(),x=(0,g.useId)(),[S,C]=(0,g.useState)(!1),w=m||S;return(0,_.jsxs)(l,{open:e,onClose:w?void 0:t,maxWidth:v,fullWidth:!0,"aria-labelledby":b,"aria-describedby":a?x:void 0,sx:y,children:[(0,_.jsx)(p,{id:b,children:i}),a&&(0,_.jsx)(o,{children:typeof a==`string`?(0,_.jsx)(u,{id:x,children:a}):(0,_.jsx)(`div`,{id:x,children:a})}),(0,_.jsxs)(f,{sx:{px:3,pb:2},children:[(0,_.jsx)(r,{onClick:t,color:`inherit`,disabled:w,variant:`outlined`,children:c}),(0,_.jsx)(r,{onClick:()=>{if(w)return;let e=n();e instanceof Promise&&(C(!0),e.catch(()=>{}).finally(()=>C(!1)))},color:d,variant:`contained`,loading:w,disabled:h,children:s})]})]})}var g,_;function v(){return(v=e((()=>{g=t(),c(),a(),s(),m(),d(),i(),_=n()})))()}export{v as n,h as t};
1
+ import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{F as r,I as i,c as a,d as o,f as s,g as c,h as l,l as u,m as d,p as f,s as p,u as m}from"./mui-SNRRJ_vi.js";function h({open:e,onClose:t,onConfirm:n,title:i=`Confirm`,content:a,confirmLabel:s=`Confirm`,cancelLabel:c=`Cancel`,confirmColor:d=`primary`,loading:m=!1,disabled:h=!1,maxWidth:v=`xs`,sx:y}){let b=(0,g.useId)(),x=(0,g.useId)(),[S,C]=(0,g.useState)(!1),w=m||S;return(0,_.jsxs)(l,{open:e,onClose:w?void 0:t,maxWidth:v,fullWidth:!0,"aria-labelledby":b,"aria-describedby":a?x:void 0,sx:y,children:[(0,_.jsx)(p,{id:b,children:i}),a&&(0,_.jsx)(o,{children:typeof a==`string`?(0,_.jsx)(u,{id:x,children:a}):(0,_.jsx)(`div`,{id:x,children:a})}),(0,_.jsxs)(f,{sx:{px:3,pb:2},children:[(0,_.jsx)(r,{onClick:t,color:`inherit`,disabled:w,variant:`outlined`,children:c}),(0,_.jsx)(r,{onClick:()=>{if(w)return;let e=n();e instanceof Promise&&(C(!0),e.catch(()=>{}).finally(()=>C(!1)))},color:d,variant:`contained`,loading:w,disabled:h,children:s})]})]})}var g,_;function v(){return(v=e((()=>{g=t(),c(),a(),s(),m(),d(),i(),_=n()})))()}export{v as n,h as t};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{V as r,z as i}from"./client-DFnuv2z3.js";import{Vt as a,Yt as o}from"./mui-BTN91yBK.js";import{F as s,H as c,I as l,Q as u,V as d,Z as f,c as p,d as m,f as h,g,h as _,i as v,m as y,p as b,r as x,s as S}from"./mui-BXSXx9c9.js";import{B as C,a as w,o as T,z as E}from"./mui-Cd711nOk.js";import{A as D,k as O}from"./mui-AnEgAVjz.js";import{_ as k,v as A}from"./mui-BwsIrivo.js";function ee(e){return e instanceof Element&&!!e.closest(`input:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="range"]):not([type="color"]),textarea,select,[contenteditable="true"],[role="textbox"]`)}function te(e){return e instanceof Element&&!!e.closest(`[data-keyboard-native],.xterm,.cm-editor,.monaco-editor`)}function j(e){for(let t=e;t;t=t.parentElement){if(t.hidden||t.inert||t.getAttribute(`aria-hidden`)===`true`)return!1;let e=getComputedStyle(t);if(e.display===`none`||e.visibility===`hidden`)return!1}return!0}function M(e,t=document.activeElement){let n=document.getElementById(`main-content`);if(!n)return null;let r=t?.closest(`[data-keyboard-region]`),i=[...n.querySelectorAll(`[data-console-command="${e}"]${e===`search`?`,[data-keyboard-search]`:``}`)].filter(j);return i.find(e=>r?.contains(e))??i[0]??null}function N(e){return e.matches(`:disabled,[aria-disabled="true"]`)||!!e.closest(`[inert]`)}function P(e,t){t.isConnected&&j(t)&&!N(t)&&(e===`search`?(t.matches(`input,textarea`)?t:t.querySelector(`input,textarea,[contenteditable="true"]`))?.focus():t.click())}function F(e=document){let t=[...e.querySelectorAll(`[data-keyboard-region],nav[aria-label]`)].filter(e=>j(e)&&(e.hasAttribute(`data-keyboard-region`)||!e.parentElement?.closest(`[data-keyboard-region]`))),n=e===document?document.getElementById(`main-content`):e instanceof HTMLElement?e:null;return n&&j(n)&&!t.some(e=>n.contains(e)&&e.dataset.keyboardRegion!==`Page tools`)&&t.push(n),t}function I(e=1,t=document){let n=F(t);if(!n.length)return;let r=document.activeElement?.closest(`[data-keyboard-region],nav[aria-label]`),i=r?n.indexOf(r):n.findIndex(e=>e.contains(document.activeElement)),a=n[i<0?e>0?0:n.length-1:(i+e+n.length)%n.length],o=(a.id===`main-content`?a:[...a.querySelectorAll(`[data-keyboard-focus]`)].find(j))??[...a.querySelectorAll(`[data-keyboard-focus],button:not(:disabled),input:not(:disabled),textarea:not(:disabled),a[href],[role=combobox]`)].filter(j).find(e=>!N(e))??a;!o.hasAttribute(`tabindex`)&&o===a&&(o.tabIndex=-1),o.focus({preventScroll:!0}),o.scrollIntoView?.({block:`nearest`})}var L;function R(){return(R=e((()=>{L={refresh:{title:`Refresh current view`,key:`r`,hint:`R`},search:{title:`Focus search or filter`,key:`/`,hint:`/`},fit:{title:`Fit topology graph`,key:`0`,hint:`0`},readable:{title:`Readable topology view`,key:`1`,hint:`1`},latest:{title:`Jump to latest logs`,key:`Home`,hint:`Home`}}})))()}function z({actions:e,open:t,onOpenChange:n,onClosed:r,triggerKey:i=`k`,disableShortcut:a=!1,placeholder:o=`Type a command or search…`,emptyMessage:s=`No matching commands`}){let[c,l]=(0,U.useState)(!1),u=t??c,f=(0,U.useCallback)(e=>{t===void 0&&l(e),n?.(e)},[t,n]),[p,h]=(0,U.useState)(``),[g,v]=(0,U.useState)(0),y=(0,U.useRef)(null),b=(0,U.useId)();(0,U.useEffect)(()=>{if(a)return;let e=e=>{e.defaultPrevented||e.isComposing||e.repeat||(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===i.toLowerCase()&&!e.altKey&&!e.shiftKey&&(e.preventDefault(),f(!u))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[i,a,u,f]),(0,U.useEffect)(()=>{if(u){h(``),v(0);let e=requestAnimationFrame(()=>y.current?.focus());return()=>cancelAnimationFrame(e)}},[u]);let S=(0,U.useMemo)(()=>H(V(e,p)).flatMap(e=>e.items.map(e=>e.action)),[e,p]);(0,U.useEffect)(()=>{g>=S.length&&v(0)},[S.length,g]);let C=(0,U.useCallback)(async e=>{if(!e.disabled){f(!1);try{await e.onSelect()}catch{}}},[f]),T=(0,U.useCallback)(e=>{if(!e.nativeEvent.isComposing){if(e.key===`ArrowDown`)e.preventDefault(),v(e=>S.length===0?0:(e+1)%S.length);else if(e.key===`ArrowUp`)e.preventDefault(),v(e=>S.length===0?0:(e-1+S.length)%S.length);else if(e.key===`Enter`){e.preventDefault();let t=S[g];t&&C(t)}else e.key===`Escape`&&(e.preventDefault(),f(!1))}},[S,g,C,f]),D=(0,U.useMemo)(()=>H(S),[S]);return(0,W.jsx)(_,{"aria-label":`Command palette`,open:u,onClose:()=>f(!1),fullWidth:!0,maxWidth:`sm`,slotProps:{transition:{onExited:r},paper:{sx:{borderRadius:2,mt:`10vh`,alignSelf:`flex-start`}}},children:(0,W.jsxs)(m,{sx:{p:0},children:[(0,W.jsx)(d,{sx:{p:2,pb:1},children:(0,W.jsx)(w,{inputRef:y,fullWidth:!0,variant:`standard`,value:p,onChange:e=>{h(e.target.value),v(0)},onKeyDown:T,placeholder:o,slotProps:{input:{disableUnderline:!0,startAdornment:(0,W.jsx)(O,{position:`start`,sx:{ml:.5,mr:1},children:(0,W.jsx)(d,{component:`span`,sx:{fontSize:18,opacity:.6},children:`⌘`})})},htmlInput:{role:`combobox`,"aria-label":o,"aria-autocomplete":`list`,"aria-expanded":u,"aria-controls":b,"aria-activedescendant":S[g]?`${b}-${S[g].id}`:void 0}}})}),(0,W.jsx)(x,{}),(0,W.jsx)(d,{id:b,role:`listbox`,"aria-label":`Commands`,sx:{maxHeight:360,overflowY:`auto`,py:.5},children:S.length===0?(0,W.jsx)(d,{sx:{p:3,textAlign:`center`},children:(0,W.jsx)(E,{variant:`body2`,sx:{color:`text.secondary`},children:s})}):D.map(e=>(0,W.jsxs)(d,{children:[e.label?(0,W.jsx)(E,{variant:`caption`,sx:{color:`text.secondary`,px:2,py:.75,display:`block`,textTransform:`uppercase`,letterSpacing:.5},children:e.label}):null,e.items.map(e=>(0,W.jsx)(B,{id:`${b}-${e.action.id}`,action:e.action,selected:e.flatIndex===g,onSelect:()=>void C(e.action),onHover:()=>v(e.flatIndex)},e.action.id))]},e.label??`__none__`))})]})})}function B({id:e,action:t,selected:n,onSelect:r,onHover:i}){let o=(0,U.useRef)(null);return(0,U.useEffect)(()=>{n&&o.current&&o.current.scrollIntoView({block:`nearest`})},[n]),(0,W.jsxs)(d,{id:e,role:`option`,"aria-selected":n,"aria-disabled":t.disabled||void 0,ref:o,onMouseEnter:i,onClick:r,sx:e=>({px:2,py:1.25,display:`flex`,alignItems:`center`,gap:1.5,cursor:t.disabled?`not-allowed`:`pointer`,opacity:t.disabled?.5:1,bgcolor:n?a(e.palette.primary.main,.12):`transparent`,"&:hover":{bgcolor:n?a(e.palette.primary.main,.16):a(e.palette.action.hover,1)}}),children:[t.icon?(0,W.jsx)(d,{sx:{display:`flex`,alignItems:`center`,width:20,opacity:.8},children:t.icon}):null,(0,W.jsx)(d,{sx:{flex:1,minWidth:0},children:(0,W.jsxs)(k,{direction:`row`,spacing:1,sx:{alignItems:`baseline`},children:[(0,W.jsx)(E,{variant:`body2`,sx:{fontWeight:500},noWrap:!0,children:t.title}),t.subtitle?(0,W.jsx)(E,{variant:`caption`,noWrap:!0,sx:{color:`text.secondary`},children:t.subtitle}):null]})}),t.shortcut?.length?(0,W.jsx)(k,{direction:`row`,spacing:.5,children:t.shortcut.map((e,t)=>(0,W.jsx)(f,{size:`small`,label:e,variant:`outlined`,sx:{height:20,fontSize:10,fontFamily:`monospace`}},t))}):null]})}function V(e,t){let n=t.trim().toLowerCase();if(!n)return e;let r=[];for(let t of e){let e=[t.title.toLowerCase()];if(t.subtitle&&e.push(t.subtitle.toLowerCase()),t.keywords?.length)for(let n of t.keywords)e.push(n.toLowerCase());let i=-1;for(let t of e){let e=t.indexOf(n);if(e===-1)continue;let r=e===0?1e3-t.length:100-e;r>i&&(i=r)}i>=0&&r.push({action:t,score:i})}return r.sort((e,t)=>t.score-e.score),r.map(e=>e.action)}function H(e){let t=new Map,n=0;for(let r of e){let e=r.group,i=e??`__none__`,a=t.get(i);a||(a={label:e,items:[]},t.set(i,a)),a.items.push({action:r,flatIndex:n}),n+=1}return[...t.values()]}var U,W;function G(){return(G=e((()=>{U=t(),g(),h(),T(),D(),c(),A(),C(),v(),u(),o(),W=n()})))()}function K(e,t=!0,n){let{register:r}=Z(),i=(0,J.useId)(),a=(0,J.useRef)(e);a.current=e;let o=(0,J.useRef)(t);o.current=t;let s=JSON.stringify(e.map(({onSelect:e,icon:t,...n})=>n));(0,J.useEffect)(()=>{if(t)return r(i,{region:n,actions:a.current.map(e=>({...e,onSelect:()=>{let t=a.current.find(t=>t.id===e.id);return o.current&&(!n||n.current&&j(n.current))&&t&&!t.disabled?t.onSelect():void 0}}))})},[i,s,t,r,n])}function q({navigation:e,children:t}){let n=r(),[i,a]=(0,J.useState)(!1),[o,c]=(0,J.useState)(!1),[l,u]=(0,J.useState)([]),[f,p]=(0,J.useState)({}),h=(0,J.useCallback)((e,t)=>(p(n=>({...n,[e]:t})),()=>p(t=>{let n={...t};return delete n[e],n})),[]),g=(0,J.useRef)(null),v=()=>{u(Object.entries(L).flatMap(([e,t])=>{let n=M(e);return n?[{id:`view-${e}`,title:t.title,group:`Current view`,shortcut:[t.hint],disabled:N(n),onSelect:()=>{g.current=()=>P(e,n)}}]:[]})),a(!0)},y=(0,J.useMemo)(()=>[...Object.values(f).flatMap(e=>e.actions.map(e=>({...e,onSelect:()=>{g.current=()=>{e.onSelect()}}}))),...l,...e.flatMap(e=>e.items.flatMap(t=>t.path?[{id:`nav-${t.path}`,title:t.title,group:e.subheader??`Navigation`,icon:t.icon,onSelect:()=>{g.current=()=>n(t.path)}}]:[])),{id:`keyboard-guide`,title:`Keyboard shortcuts`,group:`Console`,shortcut:[`Ctrl / ⌘`,`/`],onSelect:()=>{g.current=()=>c(!0)}}],[l,f,e,n]);return(0,J.useEffect)(()=>{let e=()=>[...document.querySelectorAll(`[role="dialog"],[role="alertdialog"],[role="menu"]`)].some(j),t=e=>{if(e.key===`F6`&&!e.ctrlKey&&!e.metaKey&&!e.altKey&&!e.isComposing){if([...document.querySelectorAll(`[role="menu"],[role="listbox"]`)].filter(j).length)return;let t=[...document.querySelectorAll(`[role="dialog"],[role="alertdialog"]`)].filter(j).at(-1);e.preventDefault(),e.stopPropagation(),I(e.shiftKey?-1:1,t??document)}},n=t=>{if(t.defaultPrevented||t.isComposing||t.repeat||e()||te(t.target))return;let n=t.ctrlKey||t.metaKey;if(n&&!t.shiftKey&&!t.altKey&&t.key.toLowerCase()===`k`){t.preventDefault(),v();return}if(n&&!t.shiftKey&&!t.altKey&&t.key===`/`){t.preventDefault(),c(!0);return}if(n||t.altKey||t.shiftKey||ee(t.target))return;let r=Object.values(f).filter(e=>!e.region||e.region.current?.contains(t.target)).flatMap(e=>e.actions).find(e=>e.key?.toLowerCase()===t.key.toLowerCase());if(r){t.preventDefault(),r.disabled||r.onSelect();return}let i=Object.entries(L).find(([,e])=>e.key.toLowerCase()===t.key.toLowerCase());if(!i)return;let a=i[0],o=M(a);o&&!N(o)&&(t.preventDefault(),P(a,o))};return window.addEventListener(`keydown`,t,!0),window.addEventListener(`keydown`,n),()=>{window.removeEventListener(`keydown`,t,!0),window.removeEventListener(`keydown`,n)}}),(0,Y.jsxs)(X.Provider,{value:{openCommands:v,openHelp:()=>c(!0),register:h},children:[t,(0,Y.jsx)(z,{actions:y,open:i,onOpenChange:a,disableShortcut:!0,placeholder:`Search Console commands…`,onClosed:()=>{let e=g.current;g.current=null,e&&requestAnimationFrame(e)}}),(0,Y.jsxs)(_,{open:o,onClose:()=>c(!1),fullWidth:!0,maxWidth:`md`,"aria-labelledby":`keyboard-guide-title`,children:[(0,Y.jsx)(S,{id:`keyboard-guide-title`,children:`Keyboard`}),(0,Y.jsxs)(m,{children:[(0,Y.jsx)(E,{color:`text.secondary`,variant:`body2`,sx:{mb:2},children:`Console → workspace region → focused control. Fields, editors and SSH own their input. F6 moves focus between regions; shortcuts never bypass permissions or confirmation dialogs.`}),(0,Y.jsx)(k,{divider:(0,Y.jsx)(x,{}),children:Q.map(([e,t,n])=>(0,Y.jsxs)(d,{sx:{display:`grid`,gridTemplateColumns:{xs:`1fr`,sm:`100px minmax(180px, 1fr) 2fr`},gap:1,py:1},children:[(0,Y.jsx)(E,{variant:`caption`,color:`text.secondary`,children:e}),(0,Y.jsx)(E,{component:`kbd`,variant:`body2`,sx:{fontFamily:`monospace`},children:t}),(0,Y.jsx)(E,{variant:`body2`,children:n})]},e+t))})]}),(0,Y.jsx)(b,{children:(0,Y.jsx)(s,{onClick:()=>c(!1),children:`Close`})})]})]})}var J,Y,X,Z,Q;function $(){return($=e((()=>{J=t(),i(),c(),l(),g(),y(),h(),p(),v(),A(),C(),G(),R(),Y=n(),X=(0,J.createContext)({openCommands:()=>{},openHelp:()=>{},register:(e,t)=>()=>{}}),Z=()=>(0,J.useContext)(X),Q=[[`Console`,`Ctrl / ⌘ K`,`Search available pages and commands`],[`Console`,`Ctrl / ⌘ /`,`Open this keyboard guide`],[`Console`,`F6 · Shift F6`,`Next / previous workspace region, including from SSH or the editor`],[`Current view`,`/ · R`,`Focus search / refresh, when those controls are available`],[`Controls`,`Tab · Shift Tab`,`Next / previous control; arrows switch tabs and menu items`],[`Tables`,`↑ ↓ · Home End · Page ↑ ↓`,`Browse rows; Enter opens, Space selects, Escape returns to the table`],[`Files`,`Tab · Shift Tab · Escape`,`Enter a panel at its list; switch A / B; Escape toggles list / tools`],[`Files`,`↑ ↓ · Shift ↑ ↓ · Space`,`Move cursor, extend selection, toggle a file`],[`Files`,`Enter · ← → · Alt ← →`,`Open / parent or selected directory / directory history`],[`Editor`,`Ctrl / ⌘ S · Ctrl / ⌘ F · F6`,`Save / find / cycle editor regions without leaving its dialog`],[`Files`,`F2 · F4 · F5 · Delete`,`Rename / edit / copy / trash; confirmations and permissions still apply`],[`Files`,`Ctrl / ⌘ L · Ctrl / ⌘ A`,`Edit path / select loaded files`],[`Logs`,`Home`,`Jump to the newest logs without changing filters`],[`Topology`,`0 · 1`,`Fit the graph / restore a readable viewport`],[`Dialogs`,`Escape`,`Close the topmost dialog; unsaved changes still require a decision`]]})))()}export{R as a,Z as i,$ as n,j as o,K as r,q as t};
1
+ import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{V as r,z as i}from"./client-CgyTwq9g.js";import{Vt as a,Yt as o}from"./mui-BTN91yBK.js";import{F as s,H as c,I as l,Q as u,V as d,Z as f,c as p,d as m,f as h,g,h as _,i as v,m as y,p as b,r as x,s as S}from"./mui-SNRRJ_vi.js";import{B as C,a as w,o as T,z as E}from"./mui-B3fJdIMc.js";import{A as D,k as O}from"./mui-CMWGTMXv.js";import{_ as k,v as A}from"./mui-CPEkFAPo.js";function ee(e){return e instanceof Element&&!!e.closest(`input:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="range"]):not([type="color"]),textarea,select,[contenteditable="true"],[role="textbox"]`)}function te(e){return e instanceof Element&&!!e.closest(`[data-keyboard-native],.xterm,.cm-editor,.monaco-editor`)}function j(e){for(let t=e;t;t=t.parentElement){if(t.hidden||t.inert||t.getAttribute(`aria-hidden`)===`true`)return!1;let e=getComputedStyle(t);if(e.display===`none`||e.visibility===`hidden`)return!1}return!0}function M(e,t=document.activeElement){let n=document.getElementById(`main-content`);if(!n)return null;let r=t?.closest(`[data-keyboard-region]`),i=[...n.querySelectorAll(`[data-console-command="${e}"]${e===`search`?`,[data-keyboard-search]`:``}`)].filter(j);return i.find(e=>r?.contains(e))??i[0]??null}function N(e){return e.matches(`:disabled,[aria-disabled="true"]`)||!!e.closest(`[inert]`)}function P(e,t){t.isConnected&&j(t)&&!N(t)&&(e===`search`?(t.matches(`input,textarea`)?t:t.querySelector(`input,textarea,[contenteditable="true"]`))?.focus():t.click())}function F(e=document){let t=[...e.querySelectorAll(`[data-keyboard-region],nav[aria-label]`)].filter(e=>j(e)&&(e.hasAttribute(`data-keyboard-region`)||!e.parentElement?.closest(`[data-keyboard-region]`))),n=e===document?document.getElementById(`main-content`):e instanceof HTMLElement?e:null;return n&&j(n)&&!t.some(e=>n.contains(e)&&e.dataset.keyboardRegion!==`Page tools`)&&t.push(n),t}function I(e=1,t=document){let n=F(t);if(!n.length)return;let r=document.activeElement?.closest(`[data-keyboard-region],nav[aria-label]`),i=r?n.indexOf(r):n.findIndex(e=>e.contains(document.activeElement)),a=n[i<0?e>0?0:n.length-1:(i+e+n.length)%n.length],o=(a.id===`main-content`?a:[...a.querySelectorAll(`[data-keyboard-focus]`)].find(j))??[...a.querySelectorAll(`[data-keyboard-focus],button:not(:disabled),input:not(:disabled),textarea:not(:disabled),a[href],[role=combobox]`)].filter(j).find(e=>!N(e))??a;!o.hasAttribute(`tabindex`)&&o===a&&(o.tabIndex=-1),o.focus({preventScroll:!0}),o.scrollIntoView?.({block:`nearest`})}var L;function R(){return(R=e((()=>{L={refresh:{title:`Refresh current view`,key:`r`,hint:`R`},search:{title:`Focus search or filter`,key:`/`,hint:`/`},fit:{title:`Fit topology graph`,key:`0`,hint:`0`},readable:{title:`Readable topology view`,key:`1`,hint:`1`},latest:{title:`Jump to latest logs`,key:`Home`,hint:`Home`}}})))()}function z({actions:e,open:t,onOpenChange:n,onClosed:r,triggerKey:i=`k`,disableShortcut:a=!1,placeholder:o=`Type a command or search…`,emptyMessage:s=`No matching commands`}){let[c,l]=(0,U.useState)(!1),u=t??c,f=(0,U.useCallback)(e=>{t===void 0&&l(e),n?.(e)},[t,n]),[p,h]=(0,U.useState)(``),[g,v]=(0,U.useState)(0),y=(0,U.useRef)(null),b=(0,U.useId)();(0,U.useEffect)(()=>{if(a)return;let e=e=>{e.defaultPrevented||e.isComposing||e.repeat||(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===i.toLowerCase()&&!e.altKey&&!e.shiftKey&&(e.preventDefault(),f(!u))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[i,a,u,f]),(0,U.useEffect)(()=>{if(u){h(``),v(0);let e=requestAnimationFrame(()=>y.current?.focus());return()=>cancelAnimationFrame(e)}},[u]);let S=(0,U.useMemo)(()=>H(V(e,p)).flatMap(e=>e.items.map(e=>e.action)),[e,p]);(0,U.useEffect)(()=>{g>=S.length&&v(0)},[S.length,g]);let C=(0,U.useCallback)(async e=>{if(!e.disabled){f(!1);try{await e.onSelect()}catch{}}},[f]),T=(0,U.useCallback)(e=>{if(!e.nativeEvent.isComposing){if(e.key===`ArrowDown`)e.preventDefault(),v(e=>S.length===0?0:(e+1)%S.length);else if(e.key===`ArrowUp`)e.preventDefault(),v(e=>S.length===0?0:(e-1+S.length)%S.length);else if(e.key===`Enter`){e.preventDefault();let t=S[g];t&&C(t)}else e.key===`Escape`&&(e.preventDefault(),f(!1))}},[S,g,C,f]),D=(0,U.useMemo)(()=>H(S),[S]);return(0,W.jsx)(_,{"aria-label":`Command palette`,open:u,onClose:()=>f(!1),fullWidth:!0,maxWidth:`sm`,slotProps:{transition:{onExited:r},paper:{sx:{borderRadius:2,mt:`10vh`,alignSelf:`flex-start`}}},children:(0,W.jsxs)(m,{sx:{p:0},children:[(0,W.jsx)(d,{sx:{p:2,pb:1},children:(0,W.jsx)(w,{inputRef:y,fullWidth:!0,variant:`standard`,value:p,onChange:e=>{h(e.target.value),v(0)},onKeyDown:T,placeholder:o,slotProps:{input:{disableUnderline:!0,startAdornment:(0,W.jsx)(O,{position:`start`,sx:{ml:.5,mr:1},children:(0,W.jsx)(d,{component:`span`,sx:{fontSize:18,opacity:.6},children:`⌘`})})},htmlInput:{role:`combobox`,"aria-label":o,"aria-autocomplete":`list`,"aria-expanded":u,"aria-controls":b,"aria-activedescendant":S[g]?`${b}-${S[g].id}`:void 0}}})}),(0,W.jsx)(x,{}),(0,W.jsx)(d,{id:b,role:`listbox`,"aria-label":`Commands`,sx:{maxHeight:360,overflowY:`auto`,py:.5},children:S.length===0?(0,W.jsx)(d,{sx:{p:3,textAlign:`center`},children:(0,W.jsx)(E,{variant:`body2`,sx:{color:`text.secondary`},children:s})}):D.map(e=>(0,W.jsxs)(d,{children:[e.label?(0,W.jsx)(E,{variant:`caption`,sx:{color:`text.secondary`,px:2,py:.75,display:`block`,textTransform:`uppercase`,letterSpacing:.5},children:e.label}):null,e.items.map(e=>(0,W.jsx)(B,{id:`${b}-${e.action.id}`,action:e.action,selected:e.flatIndex===g,onSelect:()=>void C(e.action),onHover:()=>v(e.flatIndex)},e.action.id))]},e.label??`__none__`))})]})})}function B({id:e,action:t,selected:n,onSelect:r,onHover:i}){let o=(0,U.useRef)(null);return(0,U.useEffect)(()=>{n&&o.current&&o.current.scrollIntoView({block:`nearest`})},[n]),(0,W.jsxs)(d,{id:e,role:`option`,"aria-selected":n,"aria-disabled":t.disabled||void 0,ref:o,onMouseEnter:i,onClick:r,sx:e=>({px:2,py:1.25,display:`flex`,alignItems:`center`,gap:1.5,cursor:t.disabled?`not-allowed`:`pointer`,opacity:t.disabled?.5:1,bgcolor:n?a(e.palette.primary.main,.12):`transparent`,"&:hover":{bgcolor:n?a(e.palette.primary.main,.16):a(e.palette.action.hover,1)}}),children:[t.icon?(0,W.jsx)(d,{sx:{display:`flex`,alignItems:`center`,width:20,opacity:.8},children:t.icon}):null,(0,W.jsx)(d,{sx:{flex:1,minWidth:0},children:(0,W.jsxs)(k,{direction:`row`,spacing:1,sx:{alignItems:`baseline`},children:[(0,W.jsx)(E,{variant:`body2`,sx:{fontWeight:500},noWrap:!0,children:t.title}),t.subtitle?(0,W.jsx)(E,{variant:`caption`,noWrap:!0,sx:{color:`text.secondary`},children:t.subtitle}):null]})}),t.shortcut?.length?(0,W.jsx)(k,{direction:`row`,spacing:.5,children:t.shortcut.map((e,t)=>(0,W.jsx)(f,{size:`small`,label:e,variant:`outlined`,sx:{height:20,fontSize:10,fontFamily:`monospace`}},t))}):null]})}function V(e,t){let n=t.trim().toLowerCase();if(!n)return e;let r=[];for(let t of e){let e=[t.title.toLowerCase()];if(t.subtitle&&e.push(t.subtitle.toLowerCase()),t.keywords?.length)for(let n of t.keywords)e.push(n.toLowerCase());let i=-1;for(let t of e){let e=t.indexOf(n);if(e===-1)continue;let r=e===0?1e3-t.length:100-e;r>i&&(i=r)}i>=0&&r.push({action:t,score:i})}return r.sort((e,t)=>t.score-e.score),r.map(e=>e.action)}function H(e){let t=new Map,n=0;for(let r of e){let e=r.group,i=e??`__none__`,a=t.get(i);a||(a={label:e,items:[]},t.set(i,a)),a.items.push({action:r,flatIndex:n}),n+=1}return[...t.values()]}var U,W;function G(){return(G=e((()=>{U=t(),g(),h(),T(),D(),c(),A(),C(),v(),u(),o(),W=n()})))()}function K(e,t=!0,n){let{register:r}=Z(),i=(0,J.useId)(),a=(0,J.useRef)(e);a.current=e;let o=(0,J.useRef)(t);o.current=t;let s=JSON.stringify(e.map(({onSelect:e,icon:t,...n})=>n));(0,J.useEffect)(()=>{if(t)return r(i,{region:n,actions:a.current.map(e=>({...e,onSelect:()=>{let t=a.current.find(t=>t.id===e.id);return o.current&&(!n||n.current&&j(n.current))&&t&&!t.disabled?t.onSelect():void 0}}))})},[i,s,t,r,n])}function q({navigation:e,children:t}){let n=r(),[i,a]=(0,J.useState)(!1),[o,c]=(0,J.useState)(!1),[l,u]=(0,J.useState)([]),[f,p]=(0,J.useState)({}),h=(0,J.useCallback)((e,t)=>(p(n=>({...n,[e]:t})),()=>p(t=>{let n={...t};return delete n[e],n})),[]),g=(0,J.useRef)(null),v=()=>{u(Object.entries(L).flatMap(([e,t])=>{let n=M(e);return n?[{id:`view-${e}`,title:t.title,group:`Current view`,shortcut:[t.hint],disabled:N(n),onSelect:()=>{g.current=()=>P(e,n)}}]:[]})),a(!0)},y=(0,J.useMemo)(()=>[...Object.values(f).flatMap(e=>e.actions.map(e=>({...e,onSelect:()=>{g.current=()=>{e.onSelect()}}}))),...l,...e.flatMap(e=>e.items.flatMap(t=>t.path?[{id:`nav-${t.path}`,title:t.title,group:e.subheader??`Navigation`,icon:t.icon,onSelect:()=>{g.current=()=>n(t.path)}}]:[])),{id:`keyboard-guide`,title:`Keyboard shortcuts`,group:`Console`,shortcut:[`Ctrl / ⌘`,`/`],onSelect:()=>{g.current=()=>c(!0)}}],[l,f,e,n]);return(0,J.useEffect)(()=>{let e=()=>[...document.querySelectorAll(`[role="dialog"],[role="alertdialog"],[role="menu"]`)].some(j),t=e=>{if(e.key===`F6`&&!e.ctrlKey&&!e.metaKey&&!e.altKey&&!e.isComposing){if([...document.querySelectorAll(`[role="menu"],[role="listbox"]`)].filter(j).length)return;let t=[...document.querySelectorAll(`[role="dialog"],[role="alertdialog"]`)].filter(j).at(-1);e.preventDefault(),e.stopPropagation(),I(e.shiftKey?-1:1,t??document)}},n=t=>{if(t.defaultPrevented||t.isComposing||t.repeat||e()||te(t.target))return;let n=t.ctrlKey||t.metaKey;if(n&&!t.shiftKey&&!t.altKey&&t.key.toLowerCase()===`k`){t.preventDefault(),v();return}if(n&&!t.shiftKey&&!t.altKey&&t.key===`/`){t.preventDefault(),c(!0);return}if(n||t.altKey||t.shiftKey||ee(t.target))return;let r=Object.values(f).filter(e=>!e.region||e.region.current?.contains(t.target)).flatMap(e=>e.actions).find(e=>e.key?.toLowerCase()===t.key.toLowerCase());if(r){t.preventDefault(),r.disabled||r.onSelect();return}let i=Object.entries(L).find(([,e])=>e.key.toLowerCase()===t.key.toLowerCase());if(!i)return;let a=i[0],o=M(a);o&&!N(o)&&(t.preventDefault(),P(a,o))};return window.addEventListener(`keydown`,t,!0),window.addEventListener(`keydown`,n),()=>{window.removeEventListener(`keydown`,t,!0),window.removeEventListener(`keydown`,n)}}),(0,Y.jsxs)(X.Provider,{value:{openCommands:v,openHelp:()=>c(!0),register:h},children:[t,(0,Y.jsx)(z,{actions:y,open:i,onOpenChange:a,disableShortcut:!0,placeholder:`Search Console commands…`,onClosed:()=>{let e=g.current;g.current=null,e&&requestAnimationFrame(e)}}),(0,Y.jsxs)(_,{open:o,onClose:()=>c(!1),fullWidth:!0,maxWidth:`md`,"aria-labelledby":`keyboard-guide-title`,children:[(0,Y.jsx)(S,{id:`keyboard-guide-title`,children:`Keyboard`}),(0,Y.jsxs)(m,{children:[(0,Y.jsx)(E,{color:`text.secondary`,variant:`body2`,sx:{mb:2},children:`Console → workspace region → focused control. Fields, editors and SSH own their input. F6 moves focus between regions; shortcuts never bypass permissions or confirmation dialogs.`}),(0,Y.jsx)(k,{divider:(0,Y.jsx)(x,{}),children:Q.map(([e,t,n])=>(0,Y.jsxs)(d,{sx:{display:`grid`,gridTemplateColumns:{xs:`1fr`,sm:`100px minmax(180px, 1fr) 2fr`},gap:1,py:1},children:[(0,Y.jsx)(E,{variant:`caption`,color:`text.secondary`,children:e}),(0,Y.jsx)(E,{component:`kbd`,variant:`body2`,sx:{fontFamily:`monospace`},children:t}),(0,Y.jsx)(E,{variant:`body2`,children:n})]},e+t))})]}),(0,Y.jsx)(b,{children:(0,Y.jsx)(s,{onClick:()=>c(!1),children:`Close`})})]})]})}var J,Y,X,Z,Q;function $(){return($=e((()=>{J=t(),i(),c(),l(),g(),y(),h(),p(),v(),A(),C(),G(),R(),Y=n(),X=(0,J.createContext)({openCommands:()=>{},openHelp:()=>{},register:(e,t)=>()=>{}}),Z=()=>(0,J.useContext)(X),Q=[[`Console`,`Ctrl / ⌘ K`,`Search available pages and commands`],[`Console`,`Ctrl / ⌘ /`,`Open this keyboard guide`],[`Console`,`F6 · Shift F6`,`Next / previous workspace region, including from SSH or the editor`],[`Current view`,`/ · R`,`Focus search / refresh, when those controls are available`],[`Controls`,`Tab · Shift Tab`,`Next / previous control; arrows switch tabs and menu items`],[`Tables`,`↑ ↓ · Home End · Page ↑ ↓`,`Browse rows; Enter opens, Space selects, Escape returns to the table`],[`Files`,`Tab · Shift Tab · Escape`,`Enter a panel at its list; switch A / B; Escape toggles list / tools`],[`Files`,`↑ ↓ · Shift ↑ ↓ · Space`,`Move cursor, extend selection, toggle a file`],[`Files`,`Enter · ← → · Alt ← →`,`Open / parent or selected directory / directory history`],[`Editor`,`Ctrl / ⌘ S · Ctrl / ⌘ F · F6`,`Save / find / cycle editor regions without leaving its dialog`],[`Files`,`F2 · F4 · F5 · Delete`,`Rename / edit / copy / trash; confirmations and permissions still apply`],[`Files`,`Ctrl / ⌘ L · Ctrl / ⌘ A`,`Edit path / select loaded files`],[`Logs`,`Home`,`Jump to the newest logs without changing filters`],[`Topology`,`0 · 1`,`Fit the graph / restore a readable viewport`],[`Dialogs`,`Escape`,`Close the topmost dialog; unsaved changes still require a decision`]]})))()}export{R as a,Z as i,$ as n,j as o,K as r,q as t};
@@ -1,3 +1,3 @@
1
- import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{O as r,P as i,h as a,m as o,z as s}from"./client-DFnuv2z3.js";import{n as c,r as ee}from"./services-BddvcFi8.js";import{Vt as l,Yt as u}from"./mui-BTN91yBK.js";import{D as d,F as te,H as f,I as p,M as m,O as h,Q as g,V as _,Z as v,c as y,d as b,f as x,g as S,h as C,j as w,m as T,p as E,s as D}from"./mui-BXSXx9c9.js";import{B as O,F as k,I as ne,z as A}from"./mui-Cd711nOk.js";import{B as j,C as re,it as M,rt as N,w as P,z as F}from"./mui-AnEgAVjz.js";import{_ as I,v as L}from"./mui-BwsIrivo.js";import{r as R,t as z}from"./alert-uBG6r9NW.js";import{c as ie,n as B,s as V}from"./access-BvKK9dEv.js";import{n as ae,t as H}from"./use-polled-resource-B22hhr5L.js";import{i as U,r as oe,t as W}from"./project.store-DuCgv6Eq.js";import{C as se,G,M as ce,k as le,l as ue,u as K,z as de}from"./icons-OboZgWSt.js";import{n as q,t as fe}from"./page-breadcrumbs-fR7Jmpp4.js";import{n as pe,t as me}from"./admin-data-table-BKSDI8sU.js";import{n as J,t as he}from"./confirm-dialog-BbGsAz7_.js";import{n as Y,t as ge}from"./skeleton-BmWDJWF9.js";import{n as _e,t as ve}from"./use-stack-context-8yaHaN8L.js";function ye(e){let t=Object.entries(e??{});return t.length===0?`--`:t.sort(([,e],[,t])=>e-t).map(([e,t])=>`${e}→${t}`).join(`, `)}function X({title:e,value:t,icon:n,color:r,loading:i}){return(0,Q.jsx)(w,{variant:`outlined`,children:(0,Q.jsx)(d,{sx:{p:{xs:1.5,sm:2},"&:last-child":{pb:{xs:1.5,sm:2}}},children:(0,Q.jsxs)(I,{direction:`row`,spacing:2,sx:{alignItems:`center`,justifyContent:`space-between`},children:[(0,Q.jsxs)(I,{spacing:.5,children:[(0,Q.jsx)(A,{variant:`body2`,sx:{color:`text.secondary`},children:e}),i?(0,Q.jsx)(ge,{width:60,height:40}):(0,Q.jsx)(A,{variant:`h4`,sx:{fontSize:{xs:24,sm:28}},children:t})]}),(0,Q.jsx)(_,{sx:{p:1.5,borderRadius:2,bgcolor:e=>l(e.palette[r].main,.12),color:`${r}.main`,display:{xs:`none`,sm:`flex`}},children:n})]})})})}function be({open:e,containerName:t,logs:n,onClose:r}){return(0,Q.jsxs)(C,{open:e,onClose:r,maxWidth:`md`,fullWidth:!0,children:[(0,Q.jsxs)(D,{sx:{fontFamily:`monospace`},children:[`Logs: `,t]}),(0,Q.jsx)(b,{dividers:!0,sx:{minHeight:0,maxHeight:`min(60dvh, 560px)`},children:(0,Q.jsx)(_,{component:`pre`,sx:{m:0,color:`text.primary`,fontFamily:`monospace`,fontSize:12,lineHeight:1.6,whiteSpace:`pre-wrap`,overflowWrap:`anywhere`},children:n.length===0?`No logs available.`:n.join(`
1
+ import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{O as r,P as i,h as a,m as o,z as s}from"./client-CgyTwq9g.js";import{n as c,r as ee}from"./services-BddvcFi8.js";import{Vt as l,Yt as u}from"./mui-BTN91yBK.js";import{D as d,F as te,H as f,I as p,M as m,O as h,Q as g,V as _,Z as v,c as y,d as b,f as x,g as S,h as C,j as w,m as T,p as E,s as D}from"./mui-SNRRJ_vi.js";import{B as O,F as k,I as ne,z as A}from"./mui-B3fJdIMc.js";import{B as j,C as re,it as M,rt as N,w as P,z as F}from"./mui-CMWGTMXv.js";import{_ as I,v as L}from"./mui-CPEkFAPo.js";import{r as R,t as z}from"./alert-BdJ2uaY0.js";import{c as ie,n as B,s as V}from"./access-I0f72P9m.js";import{n as ae,t as H}from"./use-polled-resource-B22hhr5L.js";import{i as U,r as oe,t as W}from"./project.store-D5IR3fo9.js";import{C as se,G,M as ce,k as le,l as ue,u as K,z as de}from"./icons-B9Ct8PJ9.js";import{n as q,t as fe}from"./page-breadcrumbs-3R8RZ3nA.js";import{n as pe,t as me}from"./admin-data-table-CAEL2f-m.js";import{n as J,t as he}from"./confirm-dialog-BayExVbF.js";import{n as Y,t as ge}from"./skeleton-BnVxAoeX.js";import{n as _e,t as ve}from"./use-stack-context-BuraYaeY.js";function ye(e){let t=Object.entries(e??{});return t.length===0?`--`:t.sort(([,e],[,t])=>e-t).map(([e,t])=>`${e}→${t}`).join(`, `)}function X({title:e,value:t,icon:n,color:r,loading:i}){return(0,Q.jsx)(w,{variant:`outlined`,children:(0,Q.jsx)(d,{sx:{p:{xs:1.5,sm:2},"&:last-child":{pb:{xs:1.5,sm:2}}},children:(0,Q.jsxs)(I,{direction:`row`,spacing:2,sx:{alignItems:`center`,justifyContent:`space-between`},children:[(0,Q.jsxs)(I,{spacing:.5,children:[(0,Q.jsx)(A,{variant:`body2`,sx:{color:`text.secondary`},children:e}),i?(0,Q.jsx)(ge,{width:60,height:40}):(0,Q.jsx)(A,{variant:`h4`,sx:{fontSize:{xs:24,sm:28}},children:t})]}),(0,Q.jsx)(_,{sx:{p:1.5,borderRadius:2,bgcolor:e=>l(e.palette[r].main,.12),color:`${r}.main`,display:{xs:`none`,sm:`flex`}},children:n})]})})})}function be({open:e,containerName:t,logs:n,onClose:r}){return(0,Q.jsxs)(C,{open:e,onClose:r,maxWidth:`md`,fullWidth:!0,children:[(0,Q.jsxs)(D,{sx:{fontFamily:`monospace`},children:[`Logs: `,t]}),(0,Q.jsx)(b,{dividers:!0,sx:{minHeight:0,maxHeight:`min(60dvh, 560px)`},children:(0,Q.jsx)(_,{component:`pre`,sx:{m:0,color:`text.primary`,fontFamily:`monospace`,fontSize:12,lineHeight:1.6,whiteSpace:`pre-wrap`,overflowWrap:`anywhere`},children:n.length===0?`No logs available.`:n.join(`
2
2
  `)})}),(0,Q.jsx)(E,{children:(0,Q.jsx)(te,{onClick:r,size:`small`,children:`Close`})})]})}function xe(){let{activeProject:e,activeStack:t}=_e(),{can:n}=ie(),a=n(`OmnitronProject.listStacks`),s=U(e=>e.fetchStacks),c=U(t=>e?t.stacksByProject[e]:void 0),l=U(t=>e?t.stackReadErrors[e]:null);(0,Z.useEffect)(()=>{e&&a&&c===void 0&&s(e)},[e,a,c,s]);let u=oe().filter(e=>a&&e.type!==`local`&&(!t||e.name===t)),{data:d,loading:f,error:p,refresh:m}=ae(async()=>{let e=await o.listContainers();return Array.isArray(e)?e:[]},{intervalMs:1e4,describeError:e=>`Could not ask the container runtime: ${e instanceof Error?e.message:String(e)}`}),[h,g]=(0,Z.useState)(null),y=(0,Z.useRef)(new Set),[b,x]=(0,Z.useState)({}),S=async()=>{await Promise.all([m(),e&&a?s(e):null])},C=async(e,t,n,i=!0)=>{if(!y.current.has(e)){y.current.add(e),x(n=>({...n,[e]:t})),g(null);try{await n()}catch(n){g(i&&(r(n)||ee(n))?`${t} ${e}: acknowledgement unavailable. The operation may have completed. Check the current container state before retrying.`:`${t} ${e} failed: ${n instanceof Error?n.message:String(n)}`)}finally{i&&await m(),y.current.delete(e),x(t=>{let n={...t};return delete n[e],n})}}},[w,T]=(0,Z.useState)(null),[E,D]=(0,Z.useState)(0),[O,ne]=(0,Z.useState)(25);(0,Z.useEffect)(()=>D(0),[e,t]);let j=(d??[]).filter(n=>!e||!n.project||n.project===e&&(!t||n.stack===t)),[M,P]=(0,Z.useState)(!1),[L,R]=(0,Z.useState)(``),[V,H]=(0,Z.useState)([]),W=d!==null,G=e=>W?e:`—`,q=j.length,pe=j.filter(e=>e.status===`running`).length,J=j.filter(e=>e.status===`exited`).length,Y=j.filter(e=>e.health===`unhealthy`||e.health===`starting`||e.error||e.provisioning&&e.provisioning!==`ready`).length,ge=e=>C(e,`Starting`,async()=>{await o.startContainer({name:e})}),ve=e=>C(e,`Stopping`,async()=>{await o.stopContainer({name:e})}),xe=async()=>{if(!w)return;let e=w;await C(e,`Removing`,async()=>{await o.removeContainer({name:e}),T(null)})},$=e=>C(e.name,`Loading logs`,async()=>{let{logs:t}=await o.getContainerLogs({name:e.name,tail:200});R(e.name),H(t?t.split(`
3
3
  `):[]),P(!0)},!1),we=j.slice(E*O,E*O+O);return(0,Q.jsxs)(I,{spacing:3,children:[(0,Q.jsx)(B,{permission:`OmnitronInfra.removeContainer`,children:(0,Q.jsx)(he,{open:w!==null,onClose:()=>T(null),onConfirm:xe,title:`Remove container?`,content:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`b`,{children:w}),` will be removed. Data outside a named volume is lost, and the daemon recreates the container on the next `,(0,Q.jsx)(`code`,{children:`omnitron up`}),`.`]}),confirmLabel:`Remove`,confirmColor:`error`})}),(0,Q.jsx)(fe,{links:[{name:`Containers`}],action:(0,Q.jsx)(N,{"data-console-command":`refresh`,size:`small`,onClick:S,title:`Refresh`,"aria-label":`Refresh local containers and stack locations`,children:(0,Q.jsx)(ce,{})})}),(0,Q.jsxs)(I,{direction:`row`,spacing:1,useFlexGap:!0,sx:{alignItems:`center`,flexWrap:`wrap`},children:[(0,Q.jsx)(v,{size:`small`,variant:`outlined`,label:`Local node`}),(0,Q.jsx)(A,{variant:`caption`,sx:{color:`text.secondary`},children:`This controller's Docker engine. Counts include the visible project, control-plane and unassigned containers, not remote nodes.`})]}),e&&(!a||c===void 0||l)&&(0,Q.jsxs)(z,{severity:l?`warning`:`info`,variant:`outlined`,children:[a?l?`Stack locations unavailable: ${l}`:`Loading stack locations… Remote infrastructure is not included in this local inventory.`:`Stack locations are unavailable with your current permissions.`,a&&l&&(0,Q.jsx)(te,{size:`small`,onClick:()=>void s(e),children:`Retry stack locations`})]}),h&&(0,Q.jsx)(z,{closable:!0,severity:`warning`,variant:`outlined`,onClose:()=>g(null),children:h}),u.length>0&&(0,Q.jsxs)(A,{variant:`body2`,sx:{color:`text.secondary`},children:[`Remote infrastructure:`,` `,u.map((e,t)=>(0,Q.jsxs)(`span`,{children:[t>0&&`, `,(0,Q.jsx)(re,{component:i,to:`/stacks/${encodeURIComponent(e.name)}`,children:e.name})]},e.name))]}),(0,Q.jsxs)(F,{container:!0,spacing:{xs:1.5,sm:3},children:[(0,Q.jsx)(F,{size:{xs:6,md:3},children:(0,Q.jsx)(X,{title:`Local total`,value:G(q),icon:(0,Q.jsx)(K,{}),color:`primary`,loading:f})}),(0,Q.jsx)(F,{size:{xs:6,md:3},children:(0,Q.jsx)(X,{title:`Running`,value:G(pe),icon:(0,Q.jsx)(K,{}),color:`success`,loading:f})}),(0,Q.jsx)(F,{size:{xs:6,md:3},children:(0,Q.jsx)(X,{title:`Stopped`,value:G(J),icon:(0,Q.jsx)(K,{}),color:J>0?`error`:`info`,loading:f})}),(0,Q.jsx)(F,{size:{xs:6,md:3},children:(0,Q.jsx)(X,{title:`Not ready`,value:G(Y),icon:(0,Q.jsx)(K,{}),color:Y>0?`error`:`success`,loading:f})})]}),(0,Q.jsx)(me,{minWidth:640,scrollLabel:`Local containers`,columns:[{key:`name`,header:`Name`,render:e=>(0,Q.jsxs)(_,{children:[(0,Q.jsx)(A,{variant:`body2`,sx:{fontWeight:600},children:e.name}),b[e.name]&&(0,Q.jsxs)(A,{variant:`caption`,role:`status`,sx:{color:`text.secondary`},children:[b[e.name],`…`]})]})},{key:`scope`,header:`Scope`,render:e=>(0,Q.jsx)(A,{variant:`caption`,sx:{color:`text.secondary`},children:e.project?`${e.project}${e.stack?` / ${e.stack}`:``}`:e.lifecycleRestriction?`Control plane`:`Unassigned`})},{key:`image`,header:`Image`,render:e=>(0,Q.jsx)(A,{variant:`body2`,sx:{fontFamily:`monospace`,fontSize:13},children:e.image})},{key:`status`,header:`Status`,render:e=>(0,Q.jsx)(v,{label:e.status,size:`small`,color:Se[e.status]??`default`,variant:`filled`,sx:{textTransform:`capitalize`,fontWeight:600}})},{key:`health`,header:`Health`,render:e=>(0,Q.jsx)(v,{label:!e.health||e.health===`none`?`Not reported`:e.health,size:`small`,color:Ce[e.health??`none`]??`default`,variant:`outlined`,sx:{textTransform:`capitalize`}})},{key:`provisioning`,header:`Setup`,render:e=>(0,Q.jsxs)(I,{spacing:.5,sx:{minWidth:120,maxWidth:320},children:[(0,Q.jsx)(v,{label:e.provisioning??`Not verified`,size:`small`,variant:`outlined`,color:e.provisioning===`ready`?`success`:e.provisioning===`failed`?`error`:e.provisioning===`pending`?`warning`:`default`,sx:{alignSelf:`flex-start`,textTransform:`capitalize`}}),e.error&&(0,Q.jsx)(A,{variant:`caption`,color:`error.main`,sx:{overflowWrap:`anywhere`},children:e.error})]})},{key:`ports`,header:`Ports`,render:e=>(0,Q.jsx)(A,{variant:`caption`,sx:{fontFamily:`monospace`,fontSize:12},children:ye(e.ports)})},{key:`actions`,header:`Actions`,align:`right`,render:e=>(0,Q.jsxs)(I,{direction:`row`,spacing:.5,sx:{justifyContent:`flex-end`},children:[e.lifecycleRestriction?(0,Q.jsx)(k,{title:e.lifecycleRestriction,children:(0,Q.jsx)(v,{tabIndex:0,size:`small`,variant:`outlined`,label:`Read only`,"aria-label":`Read only. ${e.lifecycleRestriction}`})}):(0,Q.jsx)(B,{permission:`OmnitronInfra.removeContainer`,children:(0,Q.jsx)(k,{title:`Remove`,children:(0,Q.jsx)(N,{size:`small`,color:`error`,disabled:!!b[e.name],loading:b[e.name]===`Removing`,"aria-label":`Remove container ${e.name}`,onClick:()=>T(e.name),sx:{marginInlineEnd:1},children:(0,Q.jsx)(ue,{fontSize:`small`})})})}),(0,Q.jsx)(k,{title:`Logs`,children:(0,Q.jsx)(N,{size:`small`,disabled:!!b[e.name],loading:b[e.name]===`Loading logs`,"aria-label":`Logs for ${e.name}`,onClick:()=>$(e),children:(0,Q.jsx)(se,{fontSize:`small`})})}),!e.lifecycleRestriction&&e.status!==`running`&&(0,Q.jsx)(B,{permission:`OmnitronInfra.startContainer`,children:(0,Q.jsx)(k,{title:`Start`,children:(0,Q.jsx)(N,{size:`small`,color:`success`,disabled:!!b[e.name],loading:b[e.name]===`Starting`,"aria-label":`Start container ${e.name}`,onClick:()=>ge(e.name),children:(0,Q.jsx)(le,{fontSize:`small`})})})}),!e.lifecycleRestriction&&e.status===`running`&&(0,Q.jsx)(B,{permission:`OmnitronInfra.stopContainer`,children:(0,Q.jsx)(k,{title:`Stop`,children:(0,Q.jsx)(N,{size:`small`,color:`warning`,disabled:!!b[e.name],loading:b[e.name]===`Stopping`,"aria-label":`Stop container ${e.name}`,onClick:()=>ve(e.name),children:(0,Q.jsx)(de,{fontSize:`small`})})})})]})}],data:we,total:j.length,loading:f,loadError:p??null,emptyMessage:`No local containers in this scope. Remote infrastructure is shown on its stack page.`,rowKey:e=>e.name,page:E,pageSize:O,onPageChange:D,onPageSizeChange:e=>{ne(e),D(0)},dense:!0}),(0,Q.jsx)(be,{open:M,containerName:L,logs:V,onClose:()=>P(!1)})]})}var Z,Q,Se,Ce;function $(){return($=e((()=>{V(),Z=t(),f(),j(),m(),h(),O(),L(),g(),p(),M(),ne(),S(),y(),x(),T(),u(),G(),pe(),R(),q(),J(),Y(),a(),s(),P(),ve(),W(),H(),c(),Q=n(),Se={running:`success`,exited:`error`,created:`default`,restarting:`warning`,paused:`info`},Ce={healthy:`success`,unhealthy:`error`,none:`default`,starting:`warning`}})))()}$();export{xe as default};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{$ as r,A as i,At as ee,B as te,Bt as ne,C as re,Ct as ie,D as ae,Dt as oe,E as se,Et as ce,F as le,Ft as ue,G as de,Gt as fe,H as pe,Ht as me,I as he,It as ge,J as _e,K as ve,Kt as ye,L as be,Lt as xe,M as Se,Mt as Ce,N as we,Nt as Te,O as Ee,Ot as De,P as Oe,Pt as ke,Q as Ae,R as je,Rt as Me,S as Ne,St as Pe,T as Fe,Tt as Ie,U as Le,Ut as Re,V as a,Vt as o,W as s,Wt as c,X as l,Y as u,Z as d,_ as f,_t as p,a as m,at as h,b as ze,bt as Be,c as Ve,ct as He,d as Ue,dt as We,et as Ge,f as Ke,ft as qe,g as Je,gt as Ye,h as Xe,ht as Ze,i as Qe,it as $e,j as et,jt as tt,k as nt,kt as rt,l as it,lt as at,m as g,mt as ot,n as st,nt as ct,o as lt,ot as ut,p as dt,pt as ft,q as pt,r as mt,rt as ht,s as gt,st as _t,t as vt,tt as yt,u as bt,ut as xt,v as St,vt as Ct,w as wt,wt as Tt,x as Et,xt as Dt,y as Ot,yt as kt,z as At,zt as jt}from"./mui-DyT2n1lx.js";function _(e,t){let n=(0,v.forwardRef)(function(n,r){let i=(0,v.useContext)(x)[e]??t;return(0,y.jsx)(i,{...n,ref:r,"data-prism-icon":e})});return n.displayName=`PrismIcon(${e})`,n}var v,y,b,x;function S(){return(S=e((()=>{v=t(),y=n(),b=Object.freeze({}),x=(0,v.createContext)(b)})))()}var C,w,T,E,D,O,k,A,j,M,N,P,F,I,L,R,z,B,V,H,U,W,G,K,q,J,Y,X,Z,Q;function $(){return($=e((()=>{S(),ye(),c(),me(),ne(),Me(),ge(),ke(),Ce(),ee(),De(),ce(),Tt(),Pe(),Be(),Ct(),Ye(),ot(),qe(),xt(),He(),ut(),$e(),ct(),Ge(),Ae(),l(),_e(),ve(),s(),pe(),te(),je(),he(),Oe(),Se(),i(),Ee(),se(),wt(),Ne(),ze(),St(),Je(),g(),Ke(),bt(),Ve(),lt(),Qe(),st(),C=_(`search`,fe),w=_(`close`,Re),T=_(`chevronDown`,o),_(`chevronUp`,jt),E=_(`chevronLeft`,xe),D=_(`chevronRight`,ue),O=_(`arrowUp`,Te),k=_(`arrowDown`,tt),A=_(`arrowLeft`,rt),j=_(`arrowRight`,oe),_(`arrowUpRight`,Ie),M=_(`panelCollapse`,ie),N=_(`panelExpand`,Dt),P=_(`menu`,kt),F=_(`add`,p),I=_(`remove`,Ze),_(`drag`,ft),L=_(`check`,We),R=_(`info`,at),z=_(`warning`,_t),B=_(`error`,h),V=_(`success`,ht),_(`checkbox`,yt),_(`checkboxChecked`,r),_(`checkboxMixed`,d),H=_(`radio`,u),U=_(`radioChecked`,pt),W=_(`more`,de),G=_(`filter`,Le),K=_(`empty`,a),q=_(`copy`,At),_(`calendar`,be),J=_(`download`,le),_(`upload`,we),_(`zoomIn`,et),_(`zoomOut`,nt),_(`fitView`,ae),_(`fullscreen`,Fe),_(`fullscreenExit`,re),_(`share`,Et),_(`play`,Ot),_(`eye`,f),_(`eyeOff`,Xe),_(`keyboard`,dt),_(`lock`,Ue),_(`unlock`,it),Y=_(`star`,gt),X=_(`starEmpty`,m),Z=_(`firstPage`,mt),Q=_(`lastPage`,vt)})))()}export{z as A,U as C,X as D,C as E,_ as M,S as N,Y as O,N as S,I as T,R as _,O as a,W as b,E as c,q as d,J as f,Z as g,G as h,j as i,$ as j,V as k,D as l,B as m,k as n,L as o,K as p,A as r,T as s,F as t,w as u,Q as v,H as w,M as x,P as y};
1
+ import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{$ as r,A as i,At as ee,B as te,Bt as ne,C as re,Ct as ie,D as ae,Dt as oe,E as se,Et as ce,F as le,Ft as ue,G as de,Gt as fe,H as pe,Ht as me,I as he,It as ge,J as _e,K as ve,Kt as ye,L as be,Lt as xe,M as Se,Mt as Ce,N as we,Nt as Te,O as Ee,Ot as De,P as Oe,Pt as ke,Q as Ae,R as je,Rt as Me,S as Ne,St as Pe,T as Fe,Tt as Ie,U as Le,Ut as Re,V as a,Vt as o,W as s,Wt as c,X as l,Y as u,Z as d,_ as f,_t as p,a as m,at as h,b as ze,bt as Be,c as Ve,ct as He,d as Ue,dt as We,et as Ge,f as Ke,ft as qe,g as Je,gt as Ye,h as Xe,ht as Ze,i as Qe,it as $e,j as et,jt as tt,k as nt,kt as rt,l as it,lt as at,m as g,mt as ot,n as st,nt as ct,o as lt,ot as ut,p as dt,pt as ft,q as pt,r as mt,rt as ht,s as gt,st as _t,t as vt,tt as yt,u as bt,ut as xt,v as St,vt as Ct,w as wt,wt as Tt,x as Et,xt as Dt,y as Ot,yt as kt,z as At,zt as jt}from"./mui-CN3dT7bb.js";function _(e,t){let n=(0,v.forwardRef)(function(n,r){let i=(0,v.useContext)(x)[e]??t;return(0,y.jsx)(i,{...n,ref:r,"data-prism-icon":e})});return n.displayName=`PrismIcon(${e})`,n}var v,y,b,x;function S(){return(S=e((()=>{v=t(),y=n(),b=Object.freeze({}),x=(0,v.createContext)(b)})))()}var C,w,T,E,D,O,k,A,j,M,N,P,F,I,L,R,z,B,V,H,U,W,G,K,q,J,Y,X,Z,Q;function $(){return($=e((()=>{S(),ye(),c(),me(),ne(),Me(),ge(),ke(),Ce(),ee(),De(),ce(),Tt(),Pe(),Be(),Ct(),Ye(),ot(),qe(),xt(),He(),ut(),$e(),ct(),Ge(),Ae(),l(),_e(),ve(),s(),pe(),te(),je(),he(),Oe(),Se(),i(),Ee(),se(),wt(),Ne(),ze(),St(),Je(),g(),Ke(),bt(),Ve(),lt(),Qe(),st(),C=_(`search`,fe),w=_(`close`,Re),T=_(`chevronDown`,o),_(`chevronUp`,jt),E=_(`chevronLeft`,xe),D=_(`chevronRight`,ue),O=_(`arrowUp`,Te),k=_(`arrowDown`,tt),A=_(`arrowLeft`,rt),j=_(`arrowRight`,oe),_(`arrowUpRight`,Ie),M=_(`panelCollapse`,ie),N=_(`panelExpand`,Dt),P=_(`menu`,kt),F=_(`add`,p),I=_(`remove`,Ze),_(`drag`,ft),L=_(`check`,We),R=_(`info`,at),z=_(`warning`,_t),B=_(`error`,h),V=_(`success`,ht),_(`checkbox`,yt),_(`checkboxChecked`,r),_(`checkboxMixed`,d),H=_(`radio`,u),U=_(`radioChecked`,pt),W=_(`more`,de),G=_(`filter`,Le),K=_(`empty`,a),q=_(`copy`,At),_(`calendar`,be),J=_(`download`,le),_(`upload`,we),_(`zoomIn`,et),_(`zoomOut`,nt),_(`fitView`,ae),_(`fullscreen`,Fe),_(`fullscreenExit`,re),_(`share`,Et),_(`play`,Ot),_(`eye`,f),_(`eyeOff`,Xe),_(`keyboard`,dt),_(`lock`,Ue),_(`unlock`,it),Y=_(`star`,gt),X=_(`starEmpty`,m),Z=_(`firstPage`,mt),Q=_(`lastPage`,vt)})))()}export{z as A,U as C,X as D,C as E,_ as M,S as N,Y as O,N as S,I as T,R as _,O as a,W as b,E as c,q as d,J as f,Z as g,G as h,j as i,$ as j,V as k,D as l,B as m,k as n,L as o,K as p,A as r,T as s,F as t,w as u,Q as v,H as w,M as x,P as y};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{P as r,c as i,h as a,v as ee,z as o}from"./client-DFnuv2z3.js";import{D as s,E as c,F as te,H as l,I as u,M as d,O as f,Q as p,T as m,V as h,Z as g,j as _}from"./mui-BXSXx9c9.js";import{B as v,a as ne,o as y,z as b}from"./mui-Cd711nOk.js";import{B as x,C as S,l as C,u as w,w as T,z as E}from"./mui-AnEgAVjz.js";import{_ as D,v as O}from"./mui-BwsIrivo.js";import{r as k,t as A}from"./alert-uBG6r9NW.js";import{r as re,t as j}from"./use-polled-resource-B22hhr5L.js";import{i as M,l as ie,r as ae,t as N,u as oe}from"./project.store-DuCgv6Eq.js";import{n as P,t as F}from"./realtime.store-hfxZD2DU.js";import{a as I,u as se}from"./app-address-BCXfN59F.js";import{i as L,r as R}from"./constants-CyhngVXh.js";import{n as z,t as ce}from"./page-breadcrumbs-fR7Jmpp4.js";import{s as B}from"./formatters-RnRy4bXm.js";import{n as V,t as H}from"./use-stack-context-8yaHaN8L.js";import{i as U,n as W,r as G,s as K}from"./metric-series-WxePniyw.js";import{n as q,t as le}from"./comparison-bars-BtC0dHjF.js";import{n as J,r as ue}from"./card-DkH32gMY.js";function de({apps:e}){let[t,n]=(0,Y.useState)(`memory`),r=t===`memory`?W:G,i=e.filter(e=>Number.isFinite(e[t])&&e[t]>=0).sort((e,n)=>n[t]-e[t]).slice(0,6),a=i.map(n=>({id:n.key,name:e.some(e=>e.name===n.name&&e.key!==n.key)?`${n.name} · ${n.key}`:n.name,value:n[t]}));return(0,X.jsxs)(_,{variant:`outlined`,children:[(0,X.jsx)(m,{title:`Resource distribution`,subheader:i.length?`Top ${i.length} · latest readings, scaled to largest`:`Latest readings`,slotProps:{title:{variant:`subtitle2`},subheader:{variant:`caption`}},action:(0,X.jsxs)(ne,{select:!0,size:`small`,label:`Resource`,value:t,onChange:e=>n(e.target.value),sx:{minWidth:130},children:[(0,X.jsx)(C,{value:`memory`,children:`Memory`}),(0,X.jsx)(C,{value:`cpu`,children:`CPU`})]})}),(0,X.jsx)(s,{sx:{pt:0,px:{xs:1.5,sm:2}},children:i.length?(0,X.jsx)(le,{label:t===`memory`?`Resident memory by application`:`CPU by application`,items:a,format:r}):(0,X.jsx)(b,{variant:`body2`,color:`text.secondary`,children:`No resource readings available.`})})]})}var Y,X;function Z(){return(Z=e((()=>{Y=t(),d(),f(),c(),w(),y(),v(),q(),U(),X=n()})))()}function fe({app:e}){return(0,$.jsx)(_,{variant:`outlined`,sx:{height:`100%`,"& h4":{fontSize:{xs:22,sm:26},overflowWrap:`anywhere`,fontVariantNumeric:`tabular-nums`}},children:(0,$.jsxs)(s,{sx:{p:2,"&:last-child":{pb:2}},children:[(0,$.jsxs)(D,{direction:`row`,useFlexGap:!0,spacing:1,sx:{alignItems:`center`,flexWrap:`wrap`,mb:1.5},children:[(0,$.jsx)(b,{variant:`subtitle2`,sx:{minWidth:0,flex:`1 1 100px`,overflowWrap:`anywhere`},children:e.remote?e.name:(0,$.jsx)(S,{component:r,to:`/apps/${encodeURIComponent(e.key)}`,color:`inherit`,underline:`hover`,children:e.name})}),(0,$.jsx)(g,{label:e.status,color:L(e.status),size:`small`,variant:`outlined`})]}),(0,$.jsx)(h,{sx:{display:`grid`,gridTemplateColumns:`1fr 1fr`,gap:1.5},children:[{label:`CPU`,value:G(e.cpu)},{label:`Resident memory`,value:W(e.memory)},{label:`Uptime`,value:B(e.uptime)},{label:`Restarts`,value:e.restarts}].map(e=>(0,$.jsxs)(h,{sx:{minWidth:0},children:[(0,$.jsx)(b,{variant:`caption`,color:`text.secondary`,children:e.label}),(0,$.jsx)(b,{variant:`body2`,sx:{fontVariantNumeric:`tabular-nums`,overflowWrap:`anywhere`},children:e.value})]},e.label))}),!!e.processes?.length&&(0,$.jsxs)(b,{variant:`caption`,color:`text.secondary`,sx:{display:`block`,mt:1.5},children:[e.processes.filter(e=>e.status===`online`).length,`/`,e.processes.length,` processes online`]})]})})}function pe({apps:e,activeStack:t,activeProject:n}){if(t||e.every(e=>e.stack===null))return(0,$.jsx)(E,{container:!0,spacing:1.5,children:e.map(e=>(0,$.jsx)(E,{size:{xs:12,sm:6,md:4,lg:3},children:(0,$.jsx)(fe,{app:e})},e.key))});let r=new Map;for(let t of e){let e=n?t.stack??`default`:t.key.includes(`/`)?t.key.split(`/`).slice(0,2).join(`/`):`Local`;r.has(e)||r.set(e,[]),r.get(e).push(t)}return(0,$.jsx)(D,{spacing:3,children:Array.from(r.entries()).map(([e,t])=>(0,$.jsxs)(h,{children:[(0,$.jsxs)(D,{direction:`row`,sx:{alignItems:`center`,gap:1,flexWrap:`wrap`,mb:1.5},children:[(0,$.jsx)(h,{sx:{width:8,height:8,borderRadius:`50%`,bgcolor:t.every(e=>e.status===`online`)?`success.main`:`warning.main`}}),(0,$.jsxs)(b,{variant:`subtitle2`,sx:{fontWeight:700,textTransform:`uppercase`,letterSpacing:.5,overflowWrap:`anywhere`},children:[e,t.some(e=>e.remote)?` · remote`:``]}),(0,$.jsxs)(b,{variant:`caption`,sx:{color:`text.secondary`},children:[t.filter(e=>e.status===`online`).length,`/`,t.length,` online`]})]}),(0,$.jsx)(E,{container:!0,spacing:1.5,children:t.map(e=>(0,$.jsx)(E,{size:{xs:12,sm:6,md:4,lg:3},children:(0,$.jsx)(fe,{app:e})},e.key))})]},e))})}function me(){return(0,$.jsx)($.Fragment,{children:Array.from({length:4}).map((e,t)=>(0,$.jsx)(E,{size:{xs:6,sm:3},children:(0,$.jsx)(J,{label:``,value:``,loading:!0,sx:{height:`100%`,"& h4":{fontSize:{xs:22,sm:26},overflowWrap:`anywhere`,fontVariantNumeric:`tabular-nums`}}})},t))})}function he(){let{activeProject:e,activeStack:t}=V();return(0,$.jsx)(ge,{},JSON.stringify([e,t]))}function ge(){let[e,t]=(0,Q.useState)([]),[n,a]=(0,Q.useState)(null),[o,s]=(0,Q.useState)(!0),[c,l]=(0,Q.useState)(null),u=(0,Q.useRef)(!0),d=(0,Q.useRef)(!1),[f,p]=(0,Q.useState)(null),{activeProject:m,activeStack:g}=V(),_=ae(),v=_.filter(e=>!g||e.name===g),ne=M(e=>!!m&&e.stacksByProject[m]!==void 0),y=(0,Q.useCallback)(async()=>{if(!d.current){d.current=!0;try{let[e,n,r]=await Promise.allSettled([m?M.getState().fetchStacks(m):Promise.resolve(null),i.list(),ee.getSnapshot()]);n.status===`fulfilled`&&t(n.value),r.status===`fulfilled`&&a(r.value);let o=[m&&(e.status===`rejected`||e.value===null)?`${m}'s apps`:null,n.status===`rejected`?`the app list`:null,r.status===`rejected`?`metrics`:null].filter(Boolean);if(o.length>0){let t=(e.status===`rejected`?e.reason?.message:m?M.getState().stackReadErrors[m]:null)??(n.status===`rejected`?n.reason?.message:null)??(r.status===`rejected`?r.reason?.message:null)??`the daemon did not answer`;l(`Could not refresh ${o.join(` and `)} — ${t}. Figures below are the last received.`);return}l(null),p(Date.now())}catch(e){l(e?.message??`Failed to connect to daemon`)}finally{d.current=!1,u.current&&=(s(!1),!1)}}},[m]),x=(0,Q.useRef)(!1);(0,Q.useEffect)(()=>{x.current?y():x.current=!0},[y]);let S=P(e=>e.connected),C=P(e=>e.lastEvent),w=P(e=>e.initialize);(0,Q.useEffect)(()=>w(),[w]),re(()=>void y(),{intervalMs:S?15e3:5e3}),(0,Q.useEffect)(()=>{C&&y()},[C,y]);let T=se(m,g,ne?ie(_):null,e),O=T??[],k=n?.apps??{},j=e=>e.remote||e.status!==`online`?void 0:k[e.key],N=O.length,F=O.filter(e=>e.status===`online`).length,I=O.filter(e=>e.status===`unknown`).length,L=N-F-I,R=O.map(e=>({...e,cpu:j(e)?.cpu??e.cpu,memory:j(e)?.memory??e.memory})),z=K(R.map(e=>e.cpu)),B=K(R.map(e=>e.memory)),{runningStacks:H,unknownStacks:U}=oe(v),q=M(e=>!!m&&e.stacksByProject[m]!==void 0);return(0,$.jsxs)(D,{spacing:2,sx:{minWidth:0},children:[(0,$.jsx)(ce,{heading:`Overview`,links:[{name:`Overview`}],action:m?(0,$.jsxs)(D,{direction:`row`,spacing:1,children:[(0,$.jsx)(te,{component:r,to:`/metrics`,size:`small`,children:`Metrics`}),(0,$.jsx)(te,{component:r,to:`/topology`,size:`small`,children:`Topology`})]}):void 0}),c&&(0,$.jsx)(A,{severity:`warning`,variant:`outlined`,children:c}),(0,$.jsx)(E,{container:!0,spacing:1.5,children:o||T===null?(0,$.jsx)(me,{}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(E,{size:{xs:6,sm:3},children:(0,$.jsx)(J,{label:`Applications`,value:N===0?`0`:`${F}/${N}`,subtitle:N===0?`No apps yet`:[L>0?`${L} not online`:``,I>0?`${I} unknown`:``].filter(Boolean).join(` · `)||`All online`,color:N===0?`secondary`:L+I>0?`warning`:`success`,sx:{height:`100%`,"& h4":{fontSize:{xs:22,sm:26},overflowWrap:`anywhere`,fontVariantNumeric:`tabular-nums`}}})}),(0,$.jsx)(E,{size:{xs:6,sm:3},children:(0,$.jsx)(J,{label:`Stacks`,value:m?q?`${H}/${v.length}`:`—`:new Set(O.map(e=>e.key.split(`/`).slice(0,-1).join(`/`)||`local`)).size,subtitle:m?`${H} running${U?` · ${U} unknown`:``}`:`On this daemon`,color:H>0?`primary`:`secondary`,sx:{height:`100%`,"& h4":{fontSize:{xs:22,sm:26},overflowWrap:`anywhere`,fontVariantNumeric:`tabular-nums`}}})}),(0,$.jsx)(E,{size:{xs:6,sm:3},children:(0,$.jsx)(J,{label:`CPU`,value:G(z),subtitle:`Sum across selected apps`,color:`primary`,sx:{height:`100%`,"& h4":{fontSize:{xs:22,sm:26},overflowWrap:`anywhere`,fontVariantNumeric:`tabular-nums`}}})}),(0,$.jsx)(E,{size:{xs:6,sm:3},children:(0,$.jsx)(J,{label:`Memory`,value:W(B),subtitle:`Resident bytes`,color:`info`,sx:{height:`100%`,"& h4":{fontSize:{xs:22,sm:26},overflowWrap:`anywhere`,fontVariantNumeric:`tabular-nums`}}})})]})}),f&&(0,$.jsxs)(b,{variant:`caption`,color:`text.secondary`,children:[m?`Selected deployments`:`This daemon’s applications`,` · received`,` `,new Date(f).toLocaleTimeString(),`. CPU can exceed 100%; memory has no inferred capacity limit.`]}),!o&&O.length>0&&(0,$.jsx)(de,{apps:R}),!o&&T!==null&&O.length===0&&(0,$.jsx)(A,{severity:`info`,variant:`outlined`,children:`No applications in this selection.`}),O.length>0&&(0,$.jsxs)(h,{children:[(0,$.jsx)(b,{variant:`h6`,sx:{fontWeight:700,mb:2},children:`Applications`}),(0,$.jsx)(pe,{apps:R,activeStack:g,activeProject:m})]})]})}var Q,$;function _e(){return(_e=e((()=>{z(),Q=t(),x(),d(),f(),v(),O(),l(),p(),T(),u(),o(),R(),U(),Z(),k(),ue(),a(),F(),j(),N(),H(),I(),$=n()})))()}_e();export{he as default};
1
+ import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{P as r,c as i,h as a,v as ee,z as o}from"./client-CgyTwq9g.js";import{D as s,E as c,F as te,H as l,I as u,M as d,O as f,Q as p,T as m,V as h,Z as g,j as _}from"./mui-SNRRJ_vi.js";import{B as v,a as ne,o as y,z as b}from"./mui-B3fJdIMc.js";import{B as x,C as S,l as C,u as w,w as T,z as E}from"./mui-CMWGTMXv.js";import{_ as D,v as O}from"./mui-CPEkFAPo.js";import{r as k,t as A}from"./alert-BdJ2uaY0.js";import{r as re,t as j}from"./use-polled-resource-B22hhr5L.js";import{i as M,l as ie,r as ae,t as N,u as oe}from"./project.store-D5IR3fo9.js";import{n as P,t as F}from"./realtime.store-C8D235-B.js";import{a as I,u as se}from"./app-address-BCXfN59F.js";import{i as L,r as R}from"./constants-CyhngVXh.js";import{n as z,t as ce}from"./page-breadcrumbs-3R8RZ3nA.js";import{s as B}from"./formatters-RnRy4bXm.js";import{n as V,t as H}from"./use-stack-context-BuraYaeY.js";import{i as U,n as W,r as G,s as K}from"./metric-series-WxePniyw.js";import{n as q,t as le}from"./comparison-bars-Ds5Dt1oj.js";import{n as J,r as ue}from"./card-DaUEmUI5.js";function de({apps:e}){let[t,n]=(0,Y.useState)(`memory`),r=t===`memory`?W:G,i=e.filter(e=>Number.isFinite(e[t])&&e[t]>=0).sort((e,n)=>n[t]-e[t]).slice(0,6),a=i.map(n=>({id:n.key,name:e.some(e=>e.name===n.name&&e.key!==n.key)?`${n.name} · ${n.key}`:n.name,value:n[t]}));return(0,X.jsxs)(_,{variant:`outlined`,children:[(0,X.jsx)(m,{title:`Resource distribution`,subheader:i.length?`Top ${i.length} · latest readings, scaled to largest`:`Latest readings`,slotProps:{title:{variant:`subtitle2`},subheader:{variant:`caption`}},action:(0,X.jsxs)(ne,{select:!0,size:`small`,label:`Resource`,value:t,onChange:e=>n(e.target.value),sx:{minWidth:130},children:[(0,X.jsx)(C,{value:`memory`,children:`Memory`}),(0,X.jsx)(C,{value:`cpu`,children:`CPU`})]})}),(0,X.jsx)(s,{sx:{pt:0,px:{xs:1.5,sm:2}},children:i.length?(0,X.jsx)(le,{label:t===`memory`?`Resident memory by application`:`CPU by application`,items:a,format:r}):(0,X.jsx)(b,{variant:`body2`,color:`text.secondary`,children:`No resource readings available.`})})]})}var Y,X;function Z(){return(Z=e((()=>{Y=t(),d(),f(),c(),w(),y(),v(),q(),U(),X=n()})))()}function fe({app:e}){return(0,$.jsx)(_,{variant:`outlined`,sx:{height:`100%`,"& h4":{fontSize:{xs:22,sm:26},overflowWrap:`anywhere`,fontVariantNumeric:`tabular-nums`}},children:(0,$.jsxs)(s,{sx:{p:2,"&:last-child":{pb:2}},children:[(0,$.jsxs)(D,{direction:`row`,useFlexGap:!0,spacing:1,sx:{alignItems:`center`,flexWrap:`wrap`,mb:1.5},children:[(0,$.jsx)(b,{variant:`subtitle2`,sx:{minWidth:0,flex:`1 1 100px`,overflowWrap:`anywhere`},children:e.remote?e.name:(0,$.jsx)(S,{component:r,to:`/apps/${encodeURIComponent(e.key)}`,color:`inherit`,underline:`hover`,children:e.name})}),(0,$.jsx)(g,{label:e.status,color:L(e.status),size:`small`,variant:`outlined`})]}),(0,$.jsx)(h,{sx:{display:`grid`,gridTemplateColumns:`1fr 1fr`,gap:1.5},children:[{label:`CPU`,value:G(e.cpu)},{label:`Resident memory`,value:W(e.memory)},{label:`Uptime`,value:B(e.uptime)},{label:`Restarts`,value:e.restarts}].map(e=>(0,$.jsxs)(h,{sx:{minWidth:0},children:[(0,$.jsx)(b,{variant:`caption`,color:`text.secondary`,children:e.label}),(0,$.jsx)(b,{variant:`body2`,sx:{fontVariantNumeric:`tabular-nums`,overflowWrap:`anywhere`},children:e.value})]},e.label))}),!!e.processes?.length&&(0,$.jsxs)(b,{variant:`caption`,color:`text.secondary`,sx:{display:`block`,mt:1.5},children:[e.processes.filter(e=>e.status===`online`).length,`/`,e.processes.length,` processes online`]})]})})}function pe({apps:e,activeStack:t,activeProject:n}){if(t||e.every(e=>e.stack===null))return(0,$.jsx)(E,{container:!0,spacing:1.5,children:e.map(e=>(0,$.jsx)(E,{size:{xs:12,sm:6,md:4,lg:3},children:(0,$.jsx)(fe,{app:e})},e.key))});let r=new Map;for(let t of e){let e=n?t.stack??`default`:t.key.includes(`/`)?t.key.split(`/`).slice(0,2).join(`/`):`Local`;r.has(e)||r.set(e,[]),r.get(e).push(t)}return(0,$.jsx)(D,{spacing:3,children:Array.from(r.entries()).map(([e,t])=>(0,$.jsxs)(h,{children:[(0,$.jsxs)(D,{direction:`row`,sx:{alignItems:`center`,gap:1,flexWrap:`wrap`,mb:1.5},children:[(0,$.jsx)(h,{sx:{width:8,height:8,borderRadius:`50%`,bgcolor:t.every(e=>e.status===`online`)?`success.main`:`warning.main`}}),(0,$.jsxs)(b,{variant:`subtitle2`,sx:{fontWeight:700,textTransform:`uppercase`,letterSpacing:.5,overflowWrap:`anywhere`},children:[e,t.some(e=>e.remote)?` · remote`:``]}),(0,$.jsxs)(b,{variant:`caption`,sx:{color:`text.secondary`},children:[t.filter(e=>e.status===`online`).length,`/`,t.length,` online`]})]}),(0,$.jsx)(E,{container:!0,spacing:1.5,children:t.map(e=>(0,$.jsx)(E,{size:{xs:12,sm:6,md:4,lg:3},children:(0,$.jsx)(fe,{app:e})},e.key))})]},e))})}function me(){return(0,$.jsx)($.Fragment,{children:Array.from({length:4}).map((e,t)=>(0,$.jsx)(E,{size:{xs:6,sm:3},children:(0,$.jsx)(J,{label:``,value:``,loading:!0,sx:{height:`100%`,"& h4":{fontSize:{xs:22,sm:26},overflowWrap:`anywhere`,fontVariantNumeric:`tabular-nums`}}})},t))})}function he(){let{activeProject:e,activeStack:t}=V();return(0,$.jsx)(ge,{},JSON.stringify([e,t]))}function ge(){let[e,t]=(0,Q.useState)([]),[n,a]=(0,Q.useState)(null),[o,s]=(0,Q.useState)(!0),[c,l]=(0,Q.useState)(null),u=(0,Q.useRef)(!0),d=(0,Q.useRef)(!1),[f,p]=(0,Q.useState)(null),{activeProject:m,activeStack:g}=V(),_=ae(),v=_.filter(e=>!g||e.name===g),ne=M(e=>!!m&&e.stacksByProject[m]!==void 0),y=(0,Q.useCallback)(async()=>{if(!d.current){d.current=!0;try{let[e,n,r]=await Promise.allSettled([m?M.getState().fetchStacks(m):Promise.resolve(null),i.list(),ee.getSnapshot()]);n.status===`fulfilled`&&t(n.value),r.status===`fulfilled`&&a(r.value);let o=[m&&(e.status===`rejected`||e.value===null)?`${m}'s apps`:null,n.status===`rejected`?`the app list`:null,r.status===`rejected`?`metrics`:null].filter(Boolean);if(o.length>0){let t=(e.status===`rejected`?e.reason?.message:m?M.getState().stackReadErrors[m]:null)??(n.status===`rejected`?n.reason?.message:null)??(r.status===`rejected`?r.reason?.message:null)??`the daemon did not answer`;l(`Could not refresh ${o.join(` and `)} — ${t}. Figures below are the last received.`);return}l(null),p(Date.now())}catch(e){l(e?.message??`Failed to connect to daemon`)}finally{d.current=!1,u.current&&=(s(!1),!1)}}},[m]),x=(0,Q.useRef)(!1);(0,Q.useEffect)(()=>{x.current?y():x.current=!0},[y]);let S=P(e=>e.connected),C=P(e=>e.lastEvent),w=P(e=>e.initialize);(0,Q.useEffect)(()=>w(),[w]),re(()=>void y(),{intervalMs:S?15e3:5e3}),(0,Q.useEffect)(()=>{C&&y()},[C,y]);let T=se(m,g,ne?ie(_):null,e),O=T??[],k=n?.apps??{},j=e=>e.remote||e.status!==`online`?void 0:k[e.key],N=O.length,F=O.filter(e=>e.status===`online`).length,I=O.filter(e=>e.status===`unknown`).length,L=N-F-I,R=O.map(e=>({...e,cpu:j(e)?.cpu??e.cpu,memory:j(e)?.memory??e.memory})),z=K(R.map(e=>e.cpu)),B=K(R.map(e=>e.memory)),{runningStacks:H,unknownStacks:U}=oe(v),q=M(e=>!!m&&e.stacksByProject[m]!==void 0);return(0,$.jsxs)(D,{spacing:2,sx:{minWidth:0},children:[(0,$.jsx)(ce,{heading:`Overview`,links:[{name:`Overview`}],action:m?(0,$.jsxs)(D,{direction:`row`,spacing:1,children:[(0,$.jsx)(te,{component:r,to:`/metrics`,size:`small`,children:`Metrics`}),(0,$.jsx)(te,{component:r,to:`/topology`,size:`small`,children:`Topology`})]}):void 0}),c&&(0,$.jsx)(A,{severity:`warning`,variant:`outlined`,children:c}),(0,$.jsx)(E,{container:!0,spacing:1.5,children:o||T===null?(0,$.jsx)(me,{}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(E,{size:{xs:6,sm:3},children:(0,$.jsx)(J,{label:`Applications`,value:N===0?`0`:`${F}/${N}`,subtitle:N===0?`No apps yet`:[L>0?`${L} not online`:``,I>0?`${I} unknown`:``].filter(Boolean).join(` · `)||`All online`,color:N===0?`secondary`:L+I>0?`warning`:`success`,sx:{height:`100%`,"& h4":{fontSize:{xs:22,sm:26},overflowWrap:`anywhere`,fontVariantNumeric:`tabular-nums`}}})}),(0,$.jsx)(E,{size:{xs:6,sm:3},children:(0,$.jsx)(J,{label:`Stacks`,value:m?q?`${H}/${v.length}`:`—`:new Set(O.map(e=>e.key.split(`/`).slice(0,-1).join(`/`)||`local`)).size,subtitle:m?`${H} running${U?` · ${U} unknown`:``}`:`On this daemon`,color:H>0?`primary`:`secondary`,sx:{height:`100%`,"& h4":{fontSize:{xs:22,sm:26},overflowWrap:`anywhere`,fontVariantNumeric:`tabular-nums`}}})}),(0,$.jsx)(E,{size:{xs:6,sm:3},children:(0,$.jsx)(J,{label:`CPU`,value:G(z),subtitle:`Sum across selected apps`,color:`primary`,sx:{height:`100%`,"& h4":{fontSize:{xs:22,sm:26},overflowWrap:`anywhere`,fontVariantNumeric:`tabular-nums`}}})}),(0,$.jsx)(E,{size:{xs:6,sm:3},children:(0,$.jsx)(J,{label:`Memory`,value:W(B),subtitle:`Resident bytes`,color:`info`,sx:{height:`100%`,"& h4":{fontSize:{xs:22,sm:26},overflowWrap:`anywhere`,fontVariantNumeric:`tabular-nums`}}})})]})}),f&&(0,$.jsxs)(b,{variant:`caption`,color:`text.secondary`,children:[m?`Selected deployments`:`This daemon’s applications`,` · received`,` `,new Date(f).toLocaleTimeString(),`. CPU can exceed 100%; memory has no inferred capacity limit.`]}),!o&&O.length>0&&(0,$.jsx)(de,{apps:R}),!o&&T!==null&&O.length===0&&(0,$.jsx)(A,{severity:`info`,variant:`outlined`,children:`No applications in this selection.`}),O.length>0&&(0,$.jsxs)(h,{children:[(0,$.jsx)(b,{variant:`h6`,sx:{fontWeight:700,mb:2},children:`Applications`}),(0,$.jsx)(pe,{apps:R,activeStack:g,activeProject:m})]})]})}var Q,$;function _e(){return(_e=e((()=>{z(),Q=t(),x(),d(),f(),v(),O(),l(),p(),T(),u(),o(),R(),U(),Z(),k(),ue(),a(),F(),j(),N(),H(),I(),$=n()})))()}_e();export{he as default};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{c as r,h as i,n as a,v as o,x as s,y as c}from"./client-DFnuv2z3.js";import{F as l,H as u,I as d,Q as f,St as p,V as m,Z as h,c as g,d as _,f as v,g as y,h as b,i as x,m as S,p as C,r as w,s as T,xt as E}from"./mui-BXSXx9c9.js";import{B as D,a as O,o as k,z as A}from"./mui-Cd711nOk.js";import{B as j,U as ee,W as M,ct as N,d as te,f as ne,it as re,l as P,rt as ie,st as ae,u as oe,z as se}from"./mui-AnEgAVjz.js";import{S as ce,_ as F,n as le,t as ue,v as de,x as fe}from"./mui-BwsIrivo.js";import{r as pe,t as me}from"./alert-uBG6r9NW.js";import{n as he,t as ge}from"./error-boundary-CLLI8PWw.js";import{c as _e,s as ve}from"./access-BvKK9dEv.js";import{n as I,t as ye}from"./use-polled-resource-B22hhr5L.js";import{a as be,n as xe}from"./storage-CKXnhqkt.js";import{a as Se,u as Ce}from"./app-address-BCXfN59F.js";import{A as we,G as Te,M as Ee,T as De,h as Oe}from"./icons-OboZgWSt.js";import{n as ke,t as Ae}from"./operation-status-Bm1x1wTz.js";import{n as je,t as Me}from"./page-breadcrumbs-fR7Jmpp4.js";import{i as Ne,s as Pe}from"./formatters-RnRy4bXm.js";import{n as Fe,t as Ie}from"./metric-chart-M-kI-XOt.js";import{n as Le,t as Re}from"./use-stack-context-8yaHaN8L.js";import{n as ze,t as Be}from"./empty-content-7jOFhG4C.js";import{n as Ve,r as He}from"./daemon-memory-BiEtr9jr.js";import{a as Ue,i as L,n as We,o as Ge,r as Ke,s as qe,t as R}from"./metric-series-WxePniyw.js";function Je(e=!1){let[t,n]=(0,z.useState)(e),r=(0,z.useCallback)(()=>{n(!0)},[]),i=(0,z.useCallback)(()=>{n(!1)},[]),a=(0,z.useCallback)(()=>{n(e=>!e)},[]);return(0,z.useMemo)(()=>({value:t,onTrue:r,onFalse:i,onToggle:a,setValue:n}),[t,r,i,a])}var z;function Ye(){return(Ye=e((()=>{z=t()})))()}function Xe(){let e=(0,B.useContext)(st);if(!e)throw Error(`useDashboardBlockContext must be used within DashboardBlock`);return e}function Ze({title:e,subtitle:t,icon:n,actions:r,sx:i}){let{collapsible:a,collapsed:o,toggleCollapse:s,size:c,labels:l}=Xe(),u=H[c];return(0,V.jsxs)(m,{"data-testid":`prism-dashboard-block-header`,sx:[{display:`flex`,alignItems:`flex-start`,justifyContent:`space-between`,gap:2,px:u.headerPx,py:u.headerPy},...Array.isArray(i)?i:[i]],children:[(0,V.jsxs)(m,{sx:{display:`flex`,alignItems:`flex-start`,gap:1.5,flex:1,minWidth:0},children:[n&&(0,V.jsx)(m,{sx:{display:`flex`,alignItems:`center`,justifyContent:`center`,mt:.25,color:`primary.main`},children:n}),(0,V.jsxs)(m,{sx:{flex:1,minWidth:0},children:[(0,V.jsx)(A,{variant:u.titleVariant,component:`h3`,sx:{fontWeight:600,lineHeight:1.4,display:`-webkit-box`,WebkitBoxOrient:`vertical`,WebkitLineClamp:2,overflow:`hidden`,overflowWrap:`anywhere`},children:e}),t&&(0,V.jsx)(A,{variant:u.subtitleVariant,sx:{color:`text.secondary`,mt:.25},children:t})]})]}),(0,V.jsxs)(m,{sx:{display:`flex`,alignItems:`center`,gap:.5,flexShrink:0},children:[r,a&&(0,V.jsx)(ie,{size:`small`,onClick:s,"aria-expanded":!o,"aria-label":o?l.expand??`Expand block`:l.collapse??`Collapse block`,"data-testid":`prism-dashboard-block-collapse`,children:(0,V.jsx)(it,{direction:o?`down`:`up`})})]})]})}function Qe({children:e,disablePadding:t=!1,sx:n}){let{size:r}=Xe(),i=H[r];return(0,V.jsx)(m,{"data-testid":`prism-dashboard-block-content`,sx:[{...!t&&{px:i.contentPx,py:i.contentPy}},...Array.isArray(n)?n:[n]],children:e})}function $e({children:e,divider:t=!0,sx:n}){let{collapsed:r,size:i}=Xe(),a=H[i];return r?null:(0,V.jsxs)(V.Fragment,{children:[t&&(0,V.jsx)(w,{}),(0,V.jsx)(m,{"data-testid":`prism-dashboard-block-footer`,sx:[{px:a.contentPx,py:1.5},...Array.isArray(n)?n:[n]],children:e})]})}function et({rows:e=3,size:t}){let n=H[t];return(0,V.jsx)(m,{sx:{px:n.contentPx,py:n.contentPy},children:Array.from({length:e}).map((e,t)=>(0,V.jsx)(fe,{variant:`text`,animation:`wave`,sx:{height:20,mb:1}},t))})}function tt({message:e=`Failed to load data`,retryLabel:t=`Retry`,onRetry:n,size:r}){let i=H[r];return(0,V.jsxs)(m,{sx:{px:i.contentPx,py:i.contentPy,textAlign:`center`},children:[(0,V.jsx)(A,{color:`error`,variant:`body2`,sx:{mb:n?1.5:0},children:e}),n&&(0,V.jsx)(l,{size:`small`,onClick:n,children:t})]})}function nt({config:e,size:t}){let n=H[t];return e?.emptyComponent?e.emptyComponent:(0,V.jsx)(m,{"data-testid":`prism-dashboard-block-empty`,sx:{px:n.contentPx,py:n.contentPy},children:(0,V.jsx)(Be,{compact:!0,icon:e?.icon,iconSize:48,title:e?.title,description:e?.description,action:e?.action})})}function rt({title:e,subtitle:t,icon:n,actions:r,children:i,footer:a,variant:o=`default`,size:s=`medium`,loading:c=!1,loadingConfig:l,error:u=!1,errorConfig:d,empty:f=!1,emptyConfig:p,labels:h=ot,catchErrors:g=!0,collapsible:_=!1,defaultCollapsed:v=!1,collapsed:y,onCollapseChange:b,disablePadding:x=!1,footerDivider:S=!0,sx:C,slotProps:T}){let D=Je(v),O=y!==void 0,k=O?y:D.value,A=(0,B.useCallback)(e=>{_&&e!==k&&(O||D.setValue(e),b?.(e))},[_,k,O,b,D]),j=(0,B.useCallback)(()=>A(!k),[k,A]),ee=(0,B.useMemo)(()=>({collapsible:_,collapsed:_?k:!1,toggleCollapse:_?j:at,setCollapsed:_?A:at,loading:c,error:u,variant:o,size:s,labels:h}),[k,_,j,A,c,u,o,s,h]),M=d?.message??h.error,N=c?l?.loadingComponent??(0,V.jsx)(et,{rows:l?.skeletonRows??3,size:s}):u?d?.errorComponent??(0,V.jsx)(tt,{message:M,retryLabel:h.retry,onRetry:d?.onRetry,size:s}):f?(0,V.jsx)(nt,{config:p,size:s}):i?(0,V.jsx)(Qe,{disablePadding:x,...T?.content,children:i}):null,te=o===`outlined`?`outlined`:`elevation`,ne=+(o==="default");return(0,V.jsx)(st.Provider,{value:ee,children:(0,V.jsxs)(ae,{"data-testid":`prism-dashboard-block`,variant:te,elevation:ne,sx:[{overflow:`hidden`,...o===`filled`&&{bgcolor:`action.hover`}},...Array.isArray(C)?C:[C]],children:[e&&(0,V.jsx)(Ze,{title:e,subtitle:t,icon:n,actions:r,...T?.header}),e&&(0,V.jsx)(w,{}),(0,V.jsx)(E,{in:!ee.collapsed,timeout:`auto`,children:(0,V.jsx)(m,{"aria-live":`polite`,"aria-busy":c,children:g?(0,V.jsx)(ge,{resetKeys:[c,u,f],fallback:({resetErrorBoundary:e})=>(0,V.jsx)(tt,{message:h.error,retryLabel:h.retry,onRetry:()=>{e(),d?.onRetry?.()},size:s}),children:N}):N})}),a&&!c&&!u&&(0,V.jsx)($e,{divider:S,...T?.footer,children:a})]})})}function it({direction:e}){return(0,V.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,style:{transform:e===`up`?`rotate(180deg)`:void 0,transition:`transform 0.2s ease`},children:(0,V.jsx)(`polyline`,{points:`6 9 12 15 18 9`})})}var B,V,at,ot,st,H;function ct(){return(ct=e((()=>{B=t(),u(),N(),D(),re(),p(),x(),ce(),d(),Ye(),he(),ze(),V=n(),at=()=>{},ot={},st=(0,B.createContext)(null),H={small:{headerPx:2,headerPy:1.5,contentPx:2,contentPy:1.5,titleVariant:`subtitle1`,subtitleVariant:`caption`},medium:{headerPx:2.5,headerPy:2,contentPx:2.5,contentPy:2,titleVariant:`h6`,subtitleVariant:`body2`},large:{headerPx:3,headerPy:2.5,contentPx:3,contentPy:2.5,titleVariant:`h5`,subtitleVariant:`body1`}}})))()}function U({label:e,value:t}){return(0,W.jsxs)(m,{sx:{display:`grid`,gridTemplateColumns:`minmax(0,1fr) auto`,alignItems:`baseline`,gap:1},children:[(0,W.jsx)(A,{variant:`body2`,color:`text.secondary`,sx:{overflowWrap:`anywhere`},children:e}),(0,W.jsx)(A,{component:`span`,variant:`body2`,sx:{fontVariantNumeric:`tabular-nums`},children:t})]})}function lt(e,t){switch(e){case`total_apps`:return t.length;case`online_apps`:return t.filter(e=>e.status===`online`).length;case`errored_apps`:return t.filter(e=>[`crashed`,`errored`].includes(e.status)).length;case`restarts`:return qe(t.map(e=>e.restarts))??`—`;case`total_cpu`:return Ke(qe(t.map(e=>e.cpu)));case`total_memory`:{let e=qe(t.map(e=>e.memory));return e===null?`—`:Ne(e)}default:return`—`}}function ut({panel:e,board:t,sources:n,actions:r}){let i=e.config.metric??`online_apps`,a=e.config.app,o=a?n.apps.data?.filter(e=>e.name===a):n.apps.data,s=a?`${n.subject} · ${a}`:n.subject;if(e.type===`cpu-chart`||e.type===`memory-chart`){let i=n.history,o=R[t.window],c=e.type===`cpu-chart`,l=(i.data?.series??[]).filter(e=>!a||e.app.split(`/`).at(-1)===a);return(0,W.jsx)(Ie,{title:e.title,actions:r,description:`${s} · ${o.label} · ${o.interval} averages`,lines:Ue(l,c?`cpu_percent`:`memory_bytes`,n.prefix,!1,i.data?.names??{},o.bucket,i.data?.scope),format:c?Ke:We,from:i.data?.from??Date.now()-o.duration,to:i.data?.to??Date.now(),loading:i.loading,error:i.error,height:220})}let c=e.type===`daemon-info`||e.type===`alert-summary`||e.type===`stat`&&i===`uptime`,l=e.type===`alert-summary`?n.alerts:c?n.status:n.apps,u;if(e.type===`stat`){let e=i===`uptime`?n.status.data?Pe(n.status.data.uptime):`—`:o&&(!a||o.length)?lt(i,o):`—`;u=(0,W.jsx)(A,{variant:`h4`,sx:{fontVariantNumeric:`tabular-nums`},children:e})}else if(e.type===`daemon-info`&&n.status.data){let e=n.status.data;u=(0,W.jsxs)(F,{spacing:.75,children:[(0,W.jsx)(U,{label:`Version`,value:e.version}),(0,W.jsx)(U,{label:`PID`,value:e.pid}),(0,W.jsx)(U,{label:`Uptime`,value:Pe(e.uptime)}),(0,W.jsx)(U,{label:`Resident memory`,value:Ne(Ve(e))})]})}else if(e.type===`alert-summary`&&n.alerts.data){let e=n.alerts.data;u=(0,W.jsxs)(F,{spacing:.75,children:[(0,W.jsx)(U,{label:`Firing`,value:e.firing}),(0,W.jsx)(U,{label:`Acknowledged`,value:e.acknowledged}),Object.entries(e.bySeverity).map(([e,t])=>(0,W.jsx)(U,{label:e,value:t},e))]})}else if(o&&(e.type===`app-grid`||e.type===`recent-errors`)){let t=e.type===`app-grid`?o:o.filter(e=>[`crashed`,`errored`].includes(e.status)||e.restarts>0);u=t.length?(0,W.jsx)(F,{spacing:.75,children:t.map(t=>(0,W.jsx)(U,{label:[t.stack,t.name].filter(Boolean).join(` / `),value:(0,W.jsxs)(F,{direction:`row`,spacing:.75,sx:{alignItems:`center`},children:[e.type===`recent-errors`&&(0,W.jsxs)(`span`,{children:[t.restarts,` restarts`]}),(0,W.jsx)(h,{size:`small`,variant:`outlined`,label:t.status})]})},t.key))}):(0,W.jsx)(A,{variant:`body2`,color:`text.secondary`,children:e.type===`app-grid`?`No applications in this scope.`:`No observed failures or restarts in this scope.`})}return(0,W.jsxs)(rt,{title:e.title,subtitle:c?`Connected daemon`:s,actions:r,variant:`outlined`,size:`small`,sx:{height:`100%`,minWidth:0},loading:l.loading,error:!l.data&&!!l.error,errorConfig:{message:l.error??`Measurement unavailable`},children:[l.error&&l.data&&(0,W.jsxs)(A,{variant:`caption`,color:`warning.main`,children:[`Last observation · `,l.error]}),u]})}var W;function dt(){return(dt=e((()=>{u(),f(),de(),D(),ct(),Fe(),He(),L(),W=n()})))()}function G(e,t){return t?e:{data:null,loading:!1,error:`This session has no permission to read this source.`}}function ft(e,t){let{can:n}=_e(),{activeProject:i,activeStack:l,namespacePrefix:u}=Le(),d=n(`OmnitronDaemon.status`),f=i?n(`OmnitronProject.getProjectApps`):d,p=n(`OmnitronAlerts.getSummary`),m=n(`OmnitronNodes.listNodes`),h=n(`OmnitronMetrics.querySeries`)&&(!i||n(`OmnitronProject.listStacks`)&&m),g=e.panels.some(e=>e.type===`cpu-chart`||e.type===`memory-chart`),_=e.panels.some(e=>e.type===`alert-summary`),v=e.panels.some(e=>e.type===`app-grid`||e.type===`recent-errors`||e.type===`stat`&&e.config.metric!==`uptime`),y=!i&&v||e.panels.some(e=>e.type===`daemon-info`||e.type===`stat`&&e.config.metric===`uptime`),b=i?[i,l].filter(Boolean).join(` / `):`Connected daemon`,x=JSON.stringify([i,l]),S=e.refreshInterval,C=I(()=>r.status(),{intervalMs:S,paused:!t,enabled:y&&d,resourceKey:Number(d)}),w=I(async()=>{let e=await s.getProjectApps({project:i});return Ce(i,l,e,[])},{intervalMs:S,paused:!t,enabled:!!i&&v&&f,resourceKey:JSON.stringify([x,f])}),T=I(()=>a.getSummary(),{intervalMs:S,paused:!t,enabled:_&&p,resourceKey:Number(p)}),E=I(async()=>{let t=R[e.window],n=Date.now(),r=n-t.duration,[a,u,d]=await Promise.all([o.querySeries({names:[`cpu_percent`,`memory_bytes`],from:r,to:n,interval:t.interval,limit:120}),i?s.listStacks({project:i}):[],i?c.listNodes():[]]);return{series:i?a:a.filter(e=>!e.labels?.node),names:Object.fromEntries(d.map(e=>[e.id,e.name])),scope:i?Ge(i,l,u,d):void 0,from:r,to:n}},{intervalMs:S,paused:!t,enabled:g&&h,resourceKey:JSON.stringify([x,e.window,h])});return{sources:{subject:b,prefix:u,apps:G(i?w:{...C,data:C.data?Ce(null,null,null,C.data.apps):null},f),status:G(C,d),alerts:G(T,p),history:G(E,h)},refresh:()=>{let e=[],t=(t,n)=>{t&&e.push(n.refresh())};return t(g&&h,E),t(_&&p,T),t(y&&d,C),t(!!i&&v&&f,w),Promise.all(e)}}}function pt(){return(pt=e((()=>{ve(),i(),Re(),ye(),Se(),L()})))()}function mt(){let e=Ct(`Overview`),t=(e,t,n,r)=>({id:Z(),type:e,title:t,size:n,config:r?{metric:r}:{}});return e.panels=[t(`stat`,`Online`,`small`,`online_apps`),t(`stat`,`Errored`,`small`,`errored_apps`),t(`stat`,`CPU`,`small`,`total_cpu`),t(`stat`,`Memory`,`small`,`total_memory`),t(`cpu-chart`,`CPU history`,`large`),t(`memory-chart`,`Memory history`,`large`),t(`app-grid`,`Applications`,`large`),t(`daemon-info`,`Controller runtime`,`medium`),t(`recent-errors`,`Failures and restarts`,`medium`)],e}function K(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Expected a layout object.`);return e}function q(e,t,n=100){if(typeof e!=`string`||!e.trim()||e.trim().length>n)throw Error(`Invalid ${t} (1–${n} characters).`);return e.trim()}function J(e,t,n){if(typeof t!=`string`||!Object.hasOwn(e,t))throw Error(`Unsupported ${n}.`);return t}function ht(e){if(new Set(e.map(e=>e.id)).size!==e.length)throw Error(`Duplicate layout identifiers.`)}function gt(e){let t=K(e);if(!Array.isArray(t.panels)||t.panels.length>64)throw Error(`A dashboard supports up to 64 panels.`);let n=t.panels.map(e=>{let t=K(e),n=t.type===`uptime-chart`,r=n?`stat`:J(Y,t.type,`panel type`),i=K(t.config??{});return{id:q(t.id,`panel id`),title:q(t.title,`panel title`),type:r,size:J(bt,t.size,`panel size`),config:{...r===`stat`&&{metric:n?`uptime`:J(X,i.metric??`online_apps`,`statistic`)},...i.app&&typeof i.app==`string`?{app:q(i.app,`application`,256)}:{}}}});ht(n);let r=Number(t.refreshInterval??5e3);if(!xt.some(e=>e===r))throw Error(`Unsupported refresh interval.`);return{id:q(t.id,`dashboard id`),name:q(t.name,`dashboard name`),panels:n,refreshInterval:r,window:J(R,t.window??`15m`,`history window`)}}function _t(e){let t=JSON.parse(e);if(!Array.isArray(t)||!t.length||t.length>64)throw Error(`Expected 1–64 dashboard layouts.`);let n=t.map(gt);return ht(n),n}function vt(e){return JSON.stringify({format:`omnitron.dashboard`,version:1,board:e},null,2)}function yt(e){if(e.length>131072)throw Error(`Layout exceeds 128 KiB.`);let t=K(JSON.parse(e));if(t.format!==`omnitron.dashboard`||t.version!==1)throw Error(`Unsupported dashboard layout format or version.`);return{...gt(t.board),id:Z()}}var Y,X,bt,xt,St,Z,Ct;function wt(){return(wt=e((()=>{L(),Y={stat:`Metric`,"cpu-chart":`CPU history`,"memory-chart":`Memory history`,"app-grid":`Application status`,"daemon-info":`Controller runtime`,"alert-summary":`Controller alerts`,"recent-errors":`Application failures and restarts`},X={total_apps:`Applications`,online_apps:`Online`,errored_apps:`Errored`,total_cpu:`CPU`,total_memory:`Memory`,uptime:`Controller uptime`,restarts:`Restarts`},bt={small:`Compact`,medium:`Third width`,large:`Half width`,full:`Full width`},xt=[5e3,15e3,3e4,6e4],St=`omnitron_dashboards_v2`,Z=()=>crypto.randomUUID(),Ct=e=>({id:Z(),name:e,panels:[],refreshInterval:5e3,window:`15m`})})))()}function Tt(){let e=xe(St);try{return{raw:e,boards:e?_t(e):[mt()],error:null}}catch(t){return{raw:e,boards:[mt()],error:`Saved layouts could not be read. The original is preserved. ${Mt(t)}`}}}function Et({panel:e,edit:t,apps:n,onSave:r,onClose:i}){let[a,o]=(0,Q.useState)(e.type),[s,c]=(0,Q.useState)(e.title),[u,d]=(0,Q.useState)(e.size),[f,p]=(0,Q.useState)(e.config.metric??`online_apps`),[h,g]=(0,Q.useState)(e.config.app??``),v=a!==`daemon-info`&&a!==`alert-summary`&&(a!==`stat`||f!==`uptime`);return(0,$.jsx)(b,{open:!0,onClose:i,maxWidth:`xs`,fullWidth:!0,children:(0,$.jsxs)(m,{component:`form`,onSubmit:t=>{t.preventDefault(),r({id:e.id,type:a,size:u,title:s.trim()||(a===`stat`?X[f]:Y[a]),config:{...a===`stat`&&{metric:f},...v&&h.trim()&&{app:h.trim()}}})},children:[(0,$.jsx)(T,{children:t?`Edit panel`:`Add panel`}),(0,$.jsx)(_,{children:(0,$.jsxs)(F,{spacing:2,sx:{pt:1},children:[(0,$.jsx)(O,{select:!0,size:`small`,label:`Source`,value:a,onChange:e=>{let n=e.target.value;o(n),t||d(n===`stat`?`small`:`large`)},children:Object.entries(Y).map(([e,t])=>(0,$.jsx)(P,{value:e,children:t},e))}),a===`stat`&&(0,$.jsx)(O,{select:!0,size:`small`,label:`Metric`,value:f,onChange:e=>p(e.target.value),children:Object.entries(X).map(([e,t])=>(0,$.jsx)(P,{value:e,children:t},e))}),v&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(O,{size:`small`,label:`Application`,placeholder:`All applications in this scope`,value:h,onChange:e=>g(e.target.value),slotProps:{htmlInput:{list:`dashboard-app-names`,maxLength:256}},helperText:`An exact application name follows the selected workspace and stack.`}),(0,$.jsx)(`datalist`,{id:`dashboard-app-names`,children:n.map(e=>(0,$.jsx)(`option`,{value:e},e))})]}),(0,$.jsx)(O,{size:`small`,label:`Panel title`,placeholder:Y[a],value:s,onChange:e=>c(e.target.value),slotProps:{htmlInput:{maxLength:100}}}),(0,$.jsx)(O,{select:!0,size:`small`,label:`Width`,value:u,onChange:e=>d(e.target.value),children:Object.entries(bt).map(([e,t])=>(0,$.jsx)(P,{value:e,children:t},e))})]})}),(0,$.jsxs)(C,{children:[(0,$.jsx)(l,{onClick:i,children:`Cancel`}),(0,$.jsx)(l,{type:`submit`,variant:`contained`,children:`Save panel`})]})]})})}function Dt({mode:e,board:t,onSave:n,onClose:r}){let[i,a]=(0,Q.useState)(e===`create`?``:e===`duplicate`?`${t.name} copy`:t.name),[o,s]=(0,Q.useState)(t.refreshInterval),[c,u]=(0,Q.useState)(t.window),[d,f]=(0,Q.useState)(e===`export`?vt(t):``),[p,h]=(0,Q.useState)(``),g=e===`export`||e===`import`;return(0,$.jsx)(b,{open:!0,onClose:r,fullWidth:!0,maxWidth:g?`sm`:`xs`,children:(0,$.jsxs)(m,{component:`form`,onSubmit:a=>{a.preventDefault(),h(``);try{if(e===`export`){r();return}if(e===`delete`){n(null);return}if(e===`import`){n(yt(d));return}if(!i.trim())throw Error(`Enter a dashboard name.`);n({...e===`create`?Ct(i.trim()):{...t,id:e===`duplicate`?Z():t.id},name:i.trim(),refreshInterval:o,window:c})}catch(e){h(Mt(e))}},children:[(0,$.jsx)(T,{children:{create:`New dashboard`,settings:`Dashboard settings`,duplicate:`Duplicate dashboard`,delete:`Delete dashboard`,import:`Import layout`,export:`Export layout`}[e]}),(0,$.jsx)(_,{children:(0,$.jsxs)(F,{spacing:2,sx:{pt:1},children:[p&&(0,$.jsx)(me,{severity:`error`,children:p}),g?(0,$.jsx)(O,{multiline:!0,minRows:7,maxRows:16,size:`small`,label:`Layout JSON`,value:d,onChange:e=>f(e.target.value),slotProps:{input:{readOnly:e===`export`},htmlInput:{maxLength:131072,spellCheck:!1}},helperText:e===`export`?`Copy this versioned layout to another browser or workspace. Measurements are read at the destination.`:`A valid layout opens as a separate dashboard.`}):e===`delete`?(0,$.jsxs)(A,{children:[`Delete “`,t.name,`” and its `,t.panels.length,` panels from this browser?`]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(O,{label:`Dashboard name`,size:`small`,required:!0,value:i,onChange:e=>a(e.target.value),slotProps:{htmlInput:{maxLength:100}}}),(0,$.jsx)(O,{select:!0,size:`small`,label:`Refresh interval`,value:o,onChange:e=>s(Number(e.target.value)),children:xt.map(e=>(0,$.jsxs)(P,{value:e,children:[e/1e3,` seconds`]},e))}),(0,$.jsx)(O,{select:!0,size:`small`,label:`History window`,value:c,onChange:e=>u(e.target.value),children:Object.entries(R).map(([e,t])=>(0,$.jsx)(P,{value:e,children:t.label},e))})]})]})}),(0,$.jsxs)(C,{children:[e!==`export`&&(0,$.jsx)(l,{onClick:r,children:`Cancel`}),(0,$.jsx)(l,{type:`submit`,variant:`contained`,color:e===`delete`?`error`:`primary`,children:e===`delete`?`Delete`:e===`export`?`Done`:e===`import`?`Import`:`Save`})]})]})})}function Ot(){let[e]=(0,Q.useState)(Tt),[t,n]=(0,Q.useState)(e.boards),[r,i]=(0,Q.useState)(()=>xe(kt)??``),a=t.find(e=>e.id===r)??t[0],[o,s]=(0,Q.useState)(e.error),c=(0,Q.useRef)(e.raw),[u,d]=(0,Q.useState)(!1),[f,p]=(0,Q.useState)(!0),[h,g]=(0,Q.useState)(!1),[_,v]=(0,Q.useState)(null),[y,b]=(0,Q.useState)(null),[x,S]=(0,Q.useState)(null),{sources:C,refresh:w}=ft(a,f),T=e=>{i(e),be(kt,e)};(0,Q.useEffect)(()=>{let e=e=>{if(e.key===`omnitron_dashboards_v2`&&e.newValue!==c.current){if(y||x)s(`Layouts changed in another tab. Close the editor and reload before saving.`);else try{let t=e.newValue?_t(e.newValue):[mt()];c.current=e.newValue,n(t),s(null)}catch(e){s(Mt(e))}}};return window.addEventListener(`storage`,e),()=>window.removeEventListener(`storage`,e)},[y,x]);function E(t,r){if(e.error)return s(e.error),!1;if(xe(`omnitron_dashboards_v2`)!==c.current)return s(`Saved layouts changed. Reload before editing to preserve both versions.`),!1;let i=JSON.stringify(t),a=be(St,i);return a&&(c.current=i),s(a?null:`Browser storage unavailable. Changes apply to this session. Export the layout to keep it.`),n(t),T(r),!0}function D(e){return E(t.map(t=>t.id===a.id?{...t,panels:e}:t),a.id)}let k=e=>{v(null),b(e)},j=_?.panel,M=a.panels.findIndex(e=>e.id===j?.id),N=e=>{let t=[...a.panels],n=M+e;if(M>=0&&n>=0&&n<t.length){let[e]=t.splice(M,1);t.splice(n,0,e),D(t)}v(null)},ne=async()=>{g(!0);try{await w()}finally{g(!1)}};return(0,$.jsxs)(F,{spacing:2,sx:{minWidth:0},children:[(0,$.jsx)(Me,{links:[{name:`Dashboard Builder`}],action:(0,$.jsxs)(F,{direction:`row`,spacing:.75,sx:{alignItems:`center`},children:[(0,$.jsx)(ee,{sx:{m:0},control:(0,$.jsx)(ue,{size:`small`,checked:f,onChange:e=>p(e.target.checked)}),label:`Live`}),(0,$.jsx)(ie,{size:`small`,"aria-label":`Refresh dashboard`,disabled:h,"data-console-command":`refresh`,onClick:()=>void ne(),children:(0,$.jsx)(Ee,{})}),(0,$.jsx)(l,{size:`small`,variant:u?`contained`:`text`,"aria-pressed":u,startIcon:(0,$.jsx)(Oe,{}),onClick:()=>d(!u),children:u?`Done`:`Edit layout`})]})}),(0,$.jsxs)(F,{direction:`row`,useFlexGap:!0,spacing:1,sx:{alignItems:`center`,flexWrap:`wrap`},children:[(0,$.jsx)(O,{select:!0,size:`small`,label:`Dashboard`,value:a.id,onChange:e=>T(e.target.value),sx:{minWidth:`10rem`,maxWidth:`100%`},children:t.map(e=>(0,$.jsx)(P,{value:e.id,children:e.name},e.id))}),(0,$.jsxs)(A,{variant:`caption`,color:`text.secondary`,children:[C.subject,` · `,R[a.window].label,` ·`,` `,f?`${a.refreshInterval/1e3} s refresh`:`Paused`]}),(0,$.jsx)(m,{sx:{flex:1}}),u&&(0,$.jsx)(l,{size:`small`,disabled:a.panels.length>=64,startIcon:(0,$.jsx)(we,{}),onClick:()=>S(jt()),children:`Add panel`}),(0,$.jsx)(ie,{size:`small`,"aria-label":`Dashboard options`,"aria-haspopup":`menu`,onClick:e=>v({anchor:e.currentTarget}),children:(0,$.jsx)(De,{})})]}),o&&(0,$.jsx)(me,{severity:`warning`,children:o}),(0,$.jsx)(Ae,{active:h,label:`Refreshing dashboard sources`}),!a.panels.length&&(0,$.jsxs)(me,{severity:`info`,children:[`This dashboard has no panels.`,` `,(0,$.jsx)(l,{size:`small`,onClick:()=>{d(!0),S(jt())},children:`Add panel`})]}),(0,$.jsx)(se,{container:!0,spacing:1.5,children:a.panels.map(e=>(0,$.jsx)(se,{size:At[e.size],sx:{minWidth:0},children:(0,$.jsx)(ut,{panel:e,board:a,sources:C,actions:u&&(0,$.jsx)(ie,{size:`small`,"aria-label":`Options for ${e.title}`,"aria-haspopup":`menu`,onClick:t=>v({anchor:t.currentTarget,panel:e}),children:(0,$.jsx)(De,{})})})},e.id))}),(0,$.jsx)(te,{open:!!_,anchorEl:_?.anchor??null,onClose:()=>v(null),children:j?[(0,$.jsx)(P,{onClick:()=>{S(j),v(null)},children:`Edit panel`},`edit`),(0,$.jsx)(P,{disabled:M<=0,onClick:()=>N(-1),children:`Move earlier`},`up`),(0,$.jsx)(P,{disabled:M===a.panels.length-1,onClick:()=>N(1),children:`Move later`},`down`),(0,$.jsx)(P,{onClick:()=>{D(a.panels.filter(e=>e.id!==j.id)),v(null)},children:`Remove from layout`},`remove`)]:[`settings`,`create`,`duplicate`,`import`,`export`,`delete`].map(e=>(0,$.jsx)(P,{disabled:e===`delete`&&t.length===1||[`create`,`duplicate`,`import`].includes(e)&&t.length>=64,onClick:()=>k(e),children:{settings:`Settings`,create:`New dashboard`,duplicate:`Duplicate`,import:`Import layout`,export:`Export layout`,delete:`Delete dashboard`}[e]},e))}),x&&(0,$.jsx)(Et,{panel:x,edit:a.panels.some(e=>e.id===x.id),apps:[...new Set(C.apps.data?.map(e=>e.name)??[])].sort(),onClose:()=>S(null),onSave:e=>{D(a.panels.some(t=>t.id===e.id)?a.panels.map(t=>t.id===e.id?e:t):[...a.panels,e])&&S(null)}}),y&&(0,$.jsx)(Dt,{mode:y,board:a,onClose:()=>b(null),onSave:e=>{let n=e?y===`settings`?t.map(t=>t.id===e.id?e:t):[...t,e]:t.filter(e=>e.id!==a.id);E(n,e?.id??n[0].id)&&(b(null),y===`create`&&d(!0))}})]})}var Q,$,kt,At,jt,Mt;function Nt(){return(Nt=e((()=>{Q=t(),u(),d(),y(),S(),v(),g(),M(),j(),re(),ne(),oe(),de(),le(),k(),D(),pe(),je(),dt(),ke(),pt(),Te(),L(),wt(),$=n(),kt=`omnitron_dashboard_active`,At={small:{xs:12,sm:6,lg:3},medium:{xs:12,sm:6,lg:4},large:{xs:12,md:6},full:{xs:12}},jt=()=>({id:Z(),type:`stat`,size:`small`,title:``,config:{metric:`online_apps`}}),Mt=e=>e instanceof Error?e.message:String(e)})))()}Nt();export{Ot as default};
1
+ import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{i as t,t as n}from"./react-BN8qLIAi.js";import{c as r,h as i,n as a,v as o,x as s,y as c}from"./client-CgyTwq9g.js";import{F as l,H as u,I as d,Q as f,St as p,V as m,Z as h,c as g,d as _,f as v,g as y,h as b,i as x,m as S,p as C,r as w,s as T,xt as E}from"./mui-SNRRJ_vi.js";import{B as D,a as O,o as k,z as A}from"./mui-B3fJdIMc.js";import{B as j,U as ee,W as M,ct as N,d as te,f as ne,it as re,l as P,rt as ie,st as ae,u as oe,z as se}from"./mui-CMWGTMXv.js";import{S as ce,_ as F,n as le,t as ue,v as de,x as fe}from"./mui-CPEkFAPo.js";import{r as pe,t as me}from"./alert-BdJ2uaY0.js";import{n as he,t as ge}from"./error-boundary-CQmDr_HS.js";import{c as _e,s as ve}from"./access-I0f72P9m.js";import{n as I,t as ye}from"./use-polled-resource-B22hhr5L.js";import{a as be,n as xe}from"./storage-CKXnhqkt.js";import{a as Se,u as Ce}from"./app-address-BCXfN59F.js";import{A as we,G as Te,M as Ee,T as De,h as Oe}from"./icons-B9Ct8PJ9.js";import{n as ke,t as Ae}from"./operation-status-DHyYOT7G.js";import{n as je,t as Me}from"./page-breadcrumbs-3R8RZ3nA.js";import{i as Ne,s as Pe}from"./formatters-RnRy4bXm.js";import{n as Fe,t as Ie}from"./metric-chart-CSa_qv4F.js";import{n as Le,t as Re}from"./use-stack-context-BuraYaeY.js";import{n as ze,t as Be}from"./empty-content-eyDOuOVp.js";import{n as Ve,r as He}from"./daemon-memory-BiEtr9jr.js";import{a as Ue,i as L,n as We,o as Ge,r as Ke,s as qe,t as R}from"./metric-series-WxePniyw.js";function Je(e=!1){let[t,n]=(0,z.useState)(e),r=(0,z.useCallback)(()=>{n(!0)},[]),i=(0,z.useCallback)(()=>{n(!1)},[]),a=(0,z.useCallback)(()=>{n(e=>!e)},[]);return(0,z.useMemo)(()=>({value:t,onTrue:r,onFalse:i,onToggle:a,setValue:n}),[t,r,i,a])}var z;function Ye(){return(Ye=e((()=>{z=t()})))()}function Xe(){let e=(0,B.useContext)(st);if(!e)throw Error(`useDashboardBlockContext must be used within DashboardBlock`);return e}function Ze({title:e,subtitle:t,icon:n,actions:r,sx:i}){let{collapsible:a,collapsed:o,toggleCollapse:s,size:c,labels:l}=Xe(),u=H[c];return(0,V.jsxs)(m,{"data-testid":`prism-dashboard-block-header`,sx:[{display:`flex`,alignItems:`flex-start`,justifyContent:`space-between`,gap:2,px:u.headerPx,py:u.headerPy},...Array.isArray(i)?i:[i]],children:[(0,V.jsxs)(m,{sx:{display:`flex`,alignItems:`flex-start`,gap:1.5,flex:1,minWidth:0},children:[n&&(0,V.jsx)(m,{sx:{display:`flex`,alignItems:`center`,justifyContent:`center`,mt:.25,color:`primary.main`},children:n}),(0,V.jsxs)(m,{sx:{flex:1,minWidth:0},children:[(0,V.jsx)(A,{variant:u.titleVariant,component:`h3`,sx:{fontWeight:600,lineHeight:1.4,display:`-webkit-box`,WebkitBoxOrient:`vertical`,WebkitLineClamp:2,overflow:`hidden`,overflowWrap:`anywhere`},children:e}),t&&(0,V.jsx)(A,{variant:u.subtitleVariant,sx:{color:`text.secondary`,mt:.25},children:t})]})]}),(0,V.jsxs)(m,{sx:{display:`flex`,alignItems:`center`,gap:.5,flexShrink:0},children:[r,a&&(0,V.jsx)(ie,{size:`small`,onClick:s,"aria-expanded":!o,"aria-label":o?l.expand??`Expand block`:l.collapse??`Collapse block`,"data-testid":`prism-dashboard-block-collapse`,children:(0,V.jsx)(it,{direction:o?`down`:`up`})})]})]})}function Qe({children:e,disablePadding:t=!1,sx:n}){let{size:r}=Xe(),i=H[r];return(0,V.jsx)(m,{"data-testid":`prism-dashboard-block-content`,sx:[{...!t&&{px:i.contentPx,py:i.contentPy}},...Array.isArray(n)?n:[n]],children:e})}function $e({children:e,divider:t=!0,sx:n}){let{collapsed:r,size:i}=Xe(),a=H[i];return r?null:(0,V.jsxs)(V.Fragment,{children:[t&&(0,V.jsx)(w,{}),(0,V.jsx)(m,{"data-testid":`prism-dashboard-block-footer`,sx:[{px:a.contentPx,py:1.5},...Array.isArray(n)?n:[n]],children:e})]})}function et({rows:e=3,size:t}){let n=H[t];return(0,V.jsx)(m,{sx:{px:n.contentPx,py:n.contentPy},children:Array.from({length:e}).map((e,t)=>(0,V.jsx)(fe,{variant:`text`,animation:`wave`,sx:{height:20,mb:1}},t))})}function tt({message:e=`Failed to load data`,retryLabel:t=`Retry`,onRetry:n,size:r}){let i=H[r];return(0,V.jsxs)(m,{sx:{px:i.contentPx,py:i.contentPy,textAlign:`center`},children:[(0,V.jsx)(A,{color:`error`,variant:`body2`,sx:{mb:n?1.5:0},children:e}),n&&(0,V.jsx)(l,{size:`small`,onClick:n,children:t})]})}function nt({config:e,size:t}){let n=H[t];return e?.emptyComponent?e.emptyComponent:(0,V.jsx)(m,{"data-testid":`prism-dashboard-block-empty`,sx:{px:n.contentPx,py:n.contentPy},children:(0,V.jsx)(Be,{compact:!0,icon:e?.icon,iconSize:48,title:e?.title,description:e?.description,action:e?.action})})}function rt({title:e,subtitle:t,icon:n,actions:r,children:i,footer:a,variant:o=`default`,size:s=`medium`,loading:c=!1,loadingConfig:l,error:u=!1,errorConfig:d,empty:f=!1,emptyConfig:p,labels:h=ot,catchErrors:g=!0,collapsible:_=!1,defaultCollapsed:v=!1,collapsed:y,onCollapseChange:b,disablePadding:x=!1,footerDivider:S=!0,sx:C,slotProps:T}){let D=Je(v),O=y!==void 0,k=O?y:D.value,A=(0,B.useCallback)(e=>{_&&e!==k&&(O||D.setValue(e),b?.(e))},[_,k,O,b,D]),j=(0,B.useCallback)(()=>A(!k),[k,A]),ee=(0,B.useMemo)(()=>({collapsible:_,collapsed:_?k:!1,toggleCollapse:_?j:at,setCollapsed:_?A:at,loading:c,error:u,variant:o,size:s,labels:h}),[k,_,j,A,c,u,o,s,h]),M=d?.message??h.error,N=c?l?.loadingComponent??(0,V.jsx)(et,{rows:l?.skeletonRows??3,size:s}):u?d?.errorComponent??(0,V.jsx)(tt,{message:M,retryLabel:h.retry,onRetry:d?.onRetry,size:s}):f?(0,V.jsx)(nt,{config:p,size:s}):i?(0,V.jsx)(Qe,{disablePadding:x,...T?.content,children:i}):null,te=o===`outlined`?`outlined`:`elevation`,ne=+(o==="default");return(0,V.jsx)(st.Provider,{value:ee,children:(0,V.jsxs)(ae,{"data-testid":`prism-dashboard-block`,variant:te,elevation:ne,sx:[{overflow:`hidden`,...o===`filled`&&{bgcolor:`action.hover`}},...Array.isArray(C)?C:[C]],children:[e&&(0,V.jsx)(Ze,{title:e,subtitle:t,icon:n,actions:r,...T?.header}),e&&(0,V.jsx)(w,{}),(0,V.jsx)(E,{in:!ee.collapsed,timeout:`auto`,children:(0,V.jsx)(m,{"aria-live":`polite`,"aria-busy":c,children:g?(0,V.jsx)(ge,{resetKeys:[c,u,f],fallback:({resetErrorBoundary:e})=>(0,V.jsx)(tt,{message:h.error,retryLabel:h.retry,onRetry:()=>{e(),d?.onRetry?.()},size:s}),children:N}):N})}),a&&!c&&!u&&(0,V.jsx)($e,{divider:S,...T?.footer,children:a})]})})}function it({direction:e}){return(0,V.jsx)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,style:{transform:e===`up`?`rotate(180deg)`:void 0,transition:`transform 0.2s ease`},children:(0,V.jsx)(`polyline`,{points:`6 9 12 15 18 9`})})}var B,V,at,ot,st,H;function ct(){return(ct=e((()=>{B=t(),u(),N(),D(),re(),p(),x(),ce(),d(),Ye(),he(),ze(),V=n(),at=()=>{},ot={},st=(0,B.createContext)(null),H={small:{headerPx:2,headerPy:1.5,contentPx:2,contentPy:1.5,titleVariant:`subtitle1`,subtitleVariant:`caption`},medium:{headerPx:2.5,headerPy:2,contentPx:2.5,contentPy:2,titleVariant:`h6`,subtitleVariant:`body2`},large:{headerPx:3,headerPy:2.5,contentPx:3,contentPy:2.5,titleVariant:`h5`,subtitleVariant:`body1`}}})))()}function U({label:e,value:t}){return(0,W.jsxs)(m,{sx:{display:`grid`,gridTemplateColumns:`minmax(0,1fr) auto`,alignItems:`baseline`,gap:1},children:[(0,W.jsx)(A,{variant:`body2`,color:`text.secondary`,sx:{overflowWrap:`anywhere`},children:e}),(0,W.jsx)(A,{component:`span`,variant:`body2`,sx:{fontVariantNumeric:`tabular-nums`},children:t})]})}function lt(e,t){switch(e){case`total_apps`:return t.length;case`online_apps`:return t.filter(e=>e.status===`online`).length;case`errored_apps`:return t.filter(e=>[`crashed`,`errored`].includes(e.status)).length;case`restarts`:return qe(t.map(e=>e.restarts))??`—`;case`total_cpu`:return Ke(qe(t.map(e=>e.cpu)));case`total_memory`:{let e=qe(t.map(e=>e.memory));return e===null?`—`:Ne(e)}default:return`—`}}function ut({panel:e,board:t,sources:n,actions:r}){let i=e.config.metric??`online_apps`,a=e.config.app,o=a?n.apps.data?.filter(e=>e.name===a):n.apps.data,s=a?`${n.subject} · ${a}`:n.subject;if(e.type===`cpu-chart`||e.type===`memory-chart`){let i=n.history,o=R[t.window],c=e.type===`cpu-chart`,l=(i.data?.series??[]).filter(e=>!a||e.app.split(`/`).at(-1)===a);return(0,W.jsx)(Ie,{title:e.title,actions:r,description:`${s} · ${o.label} · ${o.interval} averages`,lines:Ue(l,c?`cpu_percent`:`memory_bytes`,n.prefix,!1,i.data?.names??{},o.bucket,i.data?.scope),format:c?Ke:We,from:i.data?.from??Date.now()-o.duration,to:i.data?.to??Date.now(),loading:i.loading,error:i.error,height:220})}let c=e.type===`daemon-info`||e.type===`alert-summary`||e.type===`stat`&&i===`uptime`,l=e.type===`alert-summary`?n.alerts:c?n.status:n.apps,u;if(e.type===`stat`){let e=i===`uptime`?n.status.data?Pe(n.status.data.uptime):`—`:o&&(!a||o.length)?lt(i,o):`—`;u=(0,W.jsx)(A,{variant:`h4`,sx:{fontVariantNumeric:`tabular-nums`},children:e})}else if(e.type===`daemon-info`&&n.status.data){let e=n.status.data;u=(0,W.jsxs)(F,{spacing:.75,children:[(0,W.jsx)(U,{label:`Version`,value:e.version}),(0,W.jsx)(U,{label:`PID`,value:e.pid}),(0,W.jsx)(U,{label:`Uptime`,value:Pe(e.uptime)}),(0,W.jsx)(U,{label:`Resident memory`,value:Ne(Ve(e))})]})}else if(e.type===`alert-summary`&&n.alerts.data){let e=n.alerts.data;u=(0,W.jsxs)(F,{spacing:.75,children:[(0,W.jsx)(U,{label:`Firing`,value:e.firing}),(0,W.jsx)(U,{label:`Acknowledged`,value:e.acknowledged}),Object.entries(e.bySeverity).map(([e,t])=>(0,W.jsx)(U,{label:e,value:t},e))]})}else if(o&&(e.type===`app-grid`||e.type===`recent-errors`)){let t=e.type===`app-grid`?o:o.filter(e=>[`crashed`,`errored`].includes(e.status)||e.restarts>0);u=t.length?(0,W.jsx)(F,{spacing:.75,children:t.map(t=>(0,W.jsx)(U,{label:[t.stack,t.name].filter(Boolean).join(` / `),value:(0,W.jsxs)(F,{direction:`row`,spacing:.75,sx:{alignItems:`center`},children:[e.type===`recent-errors`&&(0,W.jsxs)(`span`,{children:[t.restarts,` restarts`]}),(0,W.jsx)(h,{size:`small`,variant:`outlined`,label:t.status})]})},t.key))}):(0,W.jsx)(A,{variant:`body2`,color:`text.secondary`,children:e.type===`app-grid`?`No applications in this scope.`:`No observed failures or restarts in this scope.`})}return(0,W.jsxs)(rt,{title:e.title,subtitle:c?`Connected daemon`:s,actions:r,variant:`outlined`,size:`small`,sx:{height:`100%`,minWidth:0},loading:l.loading,error:!l.data&&!!l.error,errorConfig:{message:l.error??`Measurement unavailable`},children:[l.error&&l.data&&(0,W.jsxs)(A,{variant:`caption`,color:`warning.main`,children:[`Last observation · `,l.error]}),u]})}var W;function dt(){return(dt=e((()=>{u(),f(),de(),D(),ct(),Fe(),He(),L(),W=n()})))()}function G(e,t){return t?e:{data:null,loading:!1,error:`This session has no permission to read this source.`}}function ft(e,t){let{can:n}=_e(),{activeProject:i,activeStack:l,namespacePrefix:u}=Le(),d=n(`OmnitronDaemon.status`),f=i?n(`OmnitronProject.getProjectApps`):d,p=n(`OmnitronAlerts.getSummary`),m=n(`OmnitronNodes.listNodes`),h=n(`OmnitronMetrics.querySeries`)&&(!i||n(`OmnitronProject.listStacks`)&&m),g=e.panels.some(e=>e.type===`cpu-chart`||e.type===`memory-chart`),_=e.panels.some(e=>e.type===`alert-summary`),v=e.panels.some(e=>e.type===`app-grid`||e.type===`recent-errors`||e.type===`stat`&&e.config.metric!==`uptime`),y=!i&&v||e.panels.some(e=>e.type===`daemon-info`||e.type===`stat`&&e.config.metric===`uptime`),b=i?[i,l].filter(Boolean).join(` / `):`Connected daemon`,x=JSON.stringify([i,l]),S=e.refreshInterval,C=I(()=>r.status(),{intervalMs:S,paused:!t,enabled:y&&d,resourceKey:Number(d)}),w=I(async()=>{let e=await s.getProjectApps({project:i});return Ce(i,l,e,[])},{intervalMs:S,paused:!t,enabled:!!i&&v&&f,resourceKey:JSON.stringify([x,f])}),T=I(()=>a.getSummary(),{intervalMs:S,paused:!t,enabled:_&&p,resourceKey:Number(p)}),E=I(async()=>{let t=R[e.window],n=Date.now(),r=n-t.duration,[a,u,d]=await Promise.all([o.querySeries({names:[`cpu_percent`,`memory_bytes`],from:r,to:n,interval:t.interval,limit:120}),i?s.listStacks({project:i}):[],i?c.listNodes():[]]);return{series:i?a:a.filter(e=>!e.labels?.node),names:Object.fromEntries(d.map(e=>[e.id,e.name])),scope:i?Ge(i,l,u,d):void 0,from:r,to:n}},{intervalMs:S,paused:!t,enabled:g&&h,resourceKey:JSON.stringify([x,e.window,h])});return{sources:{subject:b,prefix:u,apps:G(i?w:{...C,data:C.data?Ce(null,null,null,C.data.apps):null},f),status:G(C,d),alerts:G(T,p),history:G(E,h)},refresh:()=>{let e=[],t=(t,n)=>{t&&e.push(n.refresh())};return t(g&&h,E),t(_&&p,T),t(y&&d,C),t(!!i&&v&&f,w),Promise.all(e)}}}function pt(){return(pt=e((()=>{ve(),i(),Re(),ye(),Se(),L()})))()}function mt(){let e=Ct(`Overview`),t=(e,t,n,r)=>({id:Z(),type:e,title:t,size:n,config:r?{metric:r}:{}});return e.panels=[t(`stat`,`Online`,`small`,`online_apps`),t(`stat`,`Errored`,`small`,`errored_apps`),t(`stat`,`CPU`,`small`,`total_cpu`),t(`stat`,`Memory`,`small`,`total_memory`),t(`cpu-chart`,`CPU history`,`large`),t(`memory-chart`,`Memory history`,`large`),t(`app-grid`,`Applications`,`large`),t(`daemon-info`,`Controller runtime`,`medium`),t(`recent-errors`,`Failures and restarts`,`medium`)],e}function K(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`Expected a layout object.`);return e}function q(e,t,n=100){if(typeof e!=`string`||!e.trim()||e.trim().length>n)throw Error(`Invalid ${t} (1–${n} characters).`);return e.trim()}function J(e,t,n){if(typeof t!=`string`||!Object.hasOwn(e,t))throw Error(`Unsupported ${n}.`);return t}function ht(e){if(new Set(e.map(e=>e.id)).size!==e.length)throw Error(`Duplicate layout identifiers.`)}function gt(e){let t=K(e);if(!Array.isArray(t.panels)||t.panels.length>64)throw Error(`A dashboard supports up to 64 panels.`);let n=t.panels.map(e=>{let t=K(e),n=t.type===`uptime-chart`,r=n?`stat`:J(Y,t.type,`panel type`),i=K(t.config??{});return{id:q(t.id,`panel id`),title:q(t.title,`panel title`),type:r,size:J(bt,t.size,`panel size`),config:{...r===`stat`&&{metric:n?`uptime`:J(X,i.metric??`online_apps`,`statistic`)},...i.app&&typeof i.app==`string`?{app:q(i.app,`application`,256)}:{}}}});ht(n);let r=Number(t.refreshInterval??5e3);if(!xt.some(e=>e===r))throw Error(`Unsupported refresh interval.`);return{id:q(t.id,`dashboard id`),name:q(t.name,`dashboard name`),panels:n,refreshInterval:r,window:J(R,t.window??`15m`,`history window`)}}function _t(e){let t=JSON.parse(e);if(!Array.isArray(t)||!t.length||t.length>64)throw Error(`Expected 1–64 dashboard layouts.`);let n=t.map(gt);return ht(n),n}function vt(e){return JSON.stringify({format:`omnitron.dashboard`,version:1,board:e},null,2)}function yt(e){if(e.length>131072)throw Error(`Layout exceeds 128 KiB.`);let t=K(JSON.parse(e));if(t.format!==`omnitron.dashboard`||t.version!==1)throw Error(`Unsupported dashboard layout format or version.`);return{...gt(t.board),id:Z()}}var Y,X,bt,xt,St,Z,Ct;function wt(){return(wt=e((()=>{L(),Y={stat:`Metric`,"cpu-chart":`CPU history`,"memory-chart":`Memory history`,"app-grid":`Application status`,"daemon-info":`Controller runtime`,"alert-summary":`Controller alerts`,"recent-errors":`Application failures and restarts`},X={total_apps:`Applications`,online_apps:`Online`,errored_apps:`Errored`,total_cpu:`CPU`,total_memory:`Memory`,uptime:`Controller uptime`,restarts:`Restarts`},bt={small:`Compact`,medium:`Third width`,large:`Half width`,full:`Full width`},xt=[5e3,15e3,3e4,6e4],St=`omnitron_dashboards_v2`,Z=()=>crypto.randomUUID(),Ct=e=>({id:Z(),name:e,panels:[],refreshInterval:5e3,window:`15m`})})))()}function Tt(){let e=xe(St);try{return{raw:e,boards:e?_t(e):[mt()],error:null}}catch(t){return{raw:e,boards:[mt()],error:`Saved layouts could not be read. The original is preserved. ${Mt(t)}`}}}function Et({panel:e,edit:t,apps:n,onSave:r,onClose:i}){let[a,o]=(0,Q.useState)(e.type),[s,c]=(0,Q.useState)(e.title),[u,d]=(0,Q.useState)(e.size),[f,p]=(0,Q.useState)(e.config.metric??`online_apps`),[h,g]=(0,Q.useState)(e.config.app??``),v=a!==`daemon-info`&&a!==`alert-summary`&&(a!==`stat`||f!==`uptime`);return(0,$.jsx)(b,{open:!0,onClose:i,maxWidth:`xs`,fullWidth:!0,children:(0,$.jsxs)(m,{component:`form`,onSubmit:t=>{t.preventDefault(),r({id:e.id,type:a,size:u,title:s.trim()||(a===`stat`?X[f]:Y[a]),config:{...a===`stat`&&{metric:f},...v&&h.trim()&&{app:h.trim()}}})},children:[(0,$.jsx)(T,{children:t?`Edit panel`:`Add panel`}),(0,$.jsx)(_,{children:(0,$.jsxs)(F,{spacing:2,sx:{pt:1},children:[(0,$.jsx)(O,{select:!0,size:`small`,label:`Source`,value:a,onChange:e=>{let n=e.target.value;o(n),t||d(n===`stat`?`small`:`large`)},children:Object.entries(Y).map(([e,t])=>(0,$.jsx)(P,{value:e,children:t},e))}),a===`stat`&&(0,$.jsx)(O,{select:!0,size:`small`,label:`Metric`,value:f,onChange:e=>p(e.target.value),children:Object.entries(X).map(([e,t])=>(0,$.jsx)(P,{value:e,children:t},e))}),v&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(O,{size:`small`,label:`Application`,placeholder:`All applications in this scope`,value:h,onChange:e=>g(e.target.value),slotProps:{htmlInput:{list:`dashboard-app-names`,maxLength:256}},helperText:`An exact application name follows the selected workspace and stack.`}),(0,$.jsx)(`datalist`,{id:`dashboard-app-names`,children:n.map(e=>(0,$.jsx)(`option`,{value:e},e))})]}),(0,$.jsx)(O,{size:`small`,label:`Panel title`,placeholder:Y[a],value:s,onChange:e=>c(e.target.value),slotProps:{htmlInput:{maxLength:100}}}),(0,$.jsx)(O,{select:!0,size:`small`,label:`Width`,value:u,onChange:e=>d(e.target.value),children:Object.entries(bt).map(([e,t])=>(0,$.jsx)(P,{value:e,children:t},e))})]})}),(0,$.jsxs)(C,{children:[(0,$.jsx)(l,{onClick:i,children:`Cancel`}),(0,$.jsx)(l,{type:`submit`,variant:`contained`,children:`Save panel`})]})]})})}function Dt({mode:e,board:t,onSave:n,onClose:r}){let[i,a]=(0,Q.useState)(e===`create`?``:e===`duplicate`?`${t.name} copy`:t.name),[o,s]=(0,Q.useState)(t.refreshInterval),[c,u]=(0,Q.useState)(t.window),[d,f]=(0,Q.useState)(e===`export`?vt(t):``),[p,h]=(0,Q.useState)(``),g=e===`export`||e===`import`;return(0,$.jsx)(b,{open:!0,onClose:r,fullWidth:!0,maxWidth:g?`sm`:`xs`,children:(0,$.jsxs)(m,{component:`form`,onSubmit:a=>{a.preventDefault(),h(``);try{if(e===`export`){r();return}if(e===`delete`){n(null);return}if(e===`import`){n(yt(d));return}if(!i.trim())throw Error(`Enter a dashboard name.`);n({...e===`create`?Ct(i.trim()):{...t,id:e===`duplicate`?Z():t.id},name:i.trim(),refreshInterval:o,window:c})}catch(e){h(Mt(e))}},children:[(0,$.jsx)(T,{children:{create:`New dashboard`,settings:`Dashboard settings`,duplicate:`Duplicate dashboard`,delete:`Delete dashboard`,import:`Import layout`,export:`Export layout`}[e]}),(0,$.jsx)(_,{children:(0,$.jsxs)(F,{spacing:2,sx:{pt:1},children:[p&&(0,$.jsx)(me,{severity:`error`,children:p}),g?(0,$.jsx)(O,{multiline:!0,minRows:7,maxRows:16,size:`small`,label:`Layout JSON`,value:d,onChange:e=>f(e.target.value),slotProps:{input:{readOnly:e===`export`},htmlInput:{maxLength:131072,spellCheck:!1}},helperText:e===`export`?`Copy this versioned layout to another browser or workspace. Measurements are read at the destination.`:`A valid layout opens as a separate dashboard.`}):e===`delete`?(0,$.jsxs)(A,{children:[`Delete “`,t.name,`” and its `,t.panels.length,` panels from this browser?`]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(O,{label:`Dashboard name`,size:`small`,required:!0,value:i,onChange:e=>a(e.target.value),slotProps:{htmlInput:{maxLength:100}}}),(0,$.jsx)(O,{select:!0,size:`small`,label:`Refresh interval`,value:o,onChange:e=>s(Number(e.target.value)),children:xt.map(e=>(0,$.jsxs)(P,{value:e,children:[e/1e3,` seconds`]},e))}),(0,$.jsx)(O,{select:!0,size:`small`,label:`History window`,value:c,onChange:e=>u(e.target.value),children:Object.entries(R).map(([e,t])=>(0,$.jsx)(P,{value:e,children:t.label},e))})]})]})}),(0,$.jsxs)(C,{children:[e!==`export`&&(0,$.jsx)(l,{onClick:r,children:`Cancel`}),(0,$.jsx)(l,{type:`submit`,variant:`contained`,color:e===`delete`?`error`:`primary`,children:e===`delete`?`Delete`:e===`export`?`Done`:e===`import`?`Import`:`Save`})]})]})})}function Ot(){let[e]=(0,Q.useState)(Tt),[t,n]=(0,Q.useState)(e.boards),[r,i]=(0,Q.useState)(()=>xe(kt)??``),a=t.find(e=>e.id===r)??t[0],[o,s]=(0,Q.useState)(e.error),c=(0,Q.useRef)(e.raw),[u,d]=(0,Q.useState)(!1),[f,p]=(0,Q.useState)(!0),[h,g]=(0,Q.useState)(!1),[_,v]=(0,Q.useState)(null),[y,b]=(0,Q.useState)(null),[x,S]=(0,Q.useState)(null),{sources:C,refresh:w}=ft(a,f),T=e=>{i(e),be(kt,e)};(0,Q.useEffect)(()=>{let e=e=>{if(e.key===`omnitron_dashboards_v2`&&e.newValue!==c.current){if(y||x)s(`Layouts changed in another tab. Close the editor and reload before saving.`);else try{let t=e.newValue?_t(e.newValue):[mt()];c.current=e.newValue,n(t),s(null)}catch(e){s(Mt(e))}}};return window.addEventListener(`storage`,e),()=>window.removeEventListener(`storage`,e)},[y,x]);function E(t,r){if(e.error)return s(e.error),!1;if(xe(`omnitron_dashboards_v2`)!==c.current)return s(`Saved layouts changed. Reload before editing to preserve both versions.`),!1;let i=JSON.stringify(t),a=be(St,i);return a&&(c.current=i),s(a?null:`Browser storage unavailable. Changes apply to this session. Export the layout to keep it.`),n(t),T(r),!0}function D(e){return E(t.map(t=>t.id===a.id?{...t,panels:e}:t),a.id)}let k=e=>{v(null),b(e)},j=_?.panel,M=a.panels.findIndex(e=>e.id===j?.id),N=e=>{let t=[...a.panels],n=M+e;if(M>=0&&n>=0&&n<t.length){let[e]=t.splice(M,1);t.splice(n,0,e),D(t)}v(null)},ne=async()=>{g(!0);try{await w()}finally{g(!1)}};return(0,$.jsxs)(F,{spacing:2,sx:{minWidth:0},children:[(0,$.jsx)(Me,{links:[{name:`Dashboard Builder`}],action:(0,$.jsxs)(F,{direction:`row`,spacing:.75,sx:{alignItems:`center`},children:[(0,$.jsx)(ee,{sx:{m:0},control:(0,$.jsx)(ue,{size:`small`,checked:f,onChange:e=>p(e.target.checked)}),label:`Live`}),(0,$.jsx)(ie,{size:`small`,"aria-label":`Refresh dashboard`,disabled:h,"data-console-command":`refresh`,onClick:()=>void ne(),children:(0,$.jsx)(Ee,{})}),(0,$.jsx)(l,{size:`small`,variant:u?`contained`:`text`,"aria-pressed":u,startIcon:(0,$.jsx)(Oe,{}),onClick:()=>d(!u),children:u?`Done`:`Edit layout`})]})}),(0,$.jsxs)(F,{direction:`row`,useFlexGap:!0,spacing:1,sx:{alignItems:`center`,flexWrap:`wrap`},children:[(0,$.jsx)(O,{select:!0,size:`small`,label:`Dashboard`,value:a.id,onChange:e=>T(e.target.value),sx:{minWidth:`10rem`,maxWidth:`100%`},children:t.map(e=>(0,$.jsx)(P,{value:e.id,children:e.name},e.id))}),(0,$.jsxs)(A,{variant:`caption`,color:`text.secondary`,children:[C.subject,` · `,R[a.window].label,` ·`,` `,f?`${a.refreshInterval/1e3} s refresh`:`Paused`]}),(0,$.jsx)(m,{sx:{flex:1}}),u&&(0,$.jsx)(l,{size:`small`,disabled:a.panels.length>=64,startIcon:(0,$.jsx)(we,{}),onClick:()=>S(jt()),children:`Add panel`}),(0,$.jsx)(ie,{size:`small`,"aria-label":`Dashboard options`,"aria-haspopup":`menu`,onClick:e=>v({anchor:e.currentTarget}),children:(0,$.jsx)(De,{})})]}),o&&(0,$.jsx)(me,{severity:`warning`,children:o}),(0,$.jsx)(Ae,{active:h,label:`Refreshing dashboard sources`}),!a.panels.length&&(0,$.jsxs)(me,{severity:`info`,children:[`This dashboard has no panels.`,` `,(0,$.jsx)(l,{size:`small`,onClick:()=>{d(!0),S(jt())},children:`Add panel`})]}),(0,$.jsx)(se,{container:!0,spacing:1.5,children:a.panels.map(e=>(0,$.jsx)(se,{size:At[e.size],sx:{minWidth:0},children:(0,$.jsx)(ut,{panel:e,board:a,sources:C,actions:u&&(0,$.jsx)(ie,{size:`small`,"aria-label":`Options for ${e.title}`,"aria-haspopup":`menu`,onClick:t=>v({anchor:t.currentTarget,panel:e}),children:(0,$.jsx)(De,{})})})},e.id))}),(0,$.jsx)(te,{open:!!_,anchorEl:_?.anchor??null,onClose:()=>v(null),children:j?[(0,$.jsx)(P,{onClick:()=>{S(j),v(null)},children:`Edit panel`},`edit`),(0,$.jsx)(P,{disabled:M<=0,onClick:()=>N(-1),children:`Move earlier`},`up`),(0,$.jsx)(P,{disabled:M===a.panels.length-1,onClick:()=>N(1),children:`Move later`},`down`),(0,$.jsx)(P,{onClick:()=>{D(a.panels.filter(e=>e.id!==j.id)),v(null)},children:`Remove from layout`},`remove`)]:[`settings`,`create`,`duplicate`,`import`,`export`,`delete`].map(e=>(0,$.jsx)(P,{disabled:e===`delete`&&t.length===1||[`create`,`duplicate`,`import`].includes(e)&&t.length>=64,onClick:()=>k(e),children:{settings:`Settings`,create:`New dashboard`,duplicate:`Duplicate`,import:`Import layout`,export:`Export layout`,delete:`Delete dashboard`}[e]},e))}),x&&(0,$.jsx)(Et,{panel:x,edit:a.panels.some(e=>e.id===x.id),apps:[...new Set(C.apps.data?.map(e=>e.name)??[])].sort(),onClose:()=>S(null),onSave:e=>{D(a.panels.some(t=>t.id===e.id)?a.panels.map(t=>t.id===e.id?e:t):[...a.panels,e])&&S(null)}}),y&&(0,$.jsx)(Dt,{mode:y,board:a,onClose:()=>b(null),onSave:e=>{let n=e?y===`settings`?t.map(t=>t.id===e.id?e:t):[...t,e]:t.filter(e=>e.id!==a.id);E(n,e?.id??n[0].id)&&(b(null),y===`create`&&d(!0))}})]})}var Q,$,kt,At,jt,Mt;function Nt(){return(Nt=e((()=>{Q=t(),u(),d(),y(),S(),v(),g(),M(),j(),re(),ne(),oe(),de(),le(),k(),D(),pe(),je(),dt(),ke(),pt(),Te(),L(),wt(),$=n(),kt=`omnitron_dashboard_active`,At={small:{xs:12,sm:6,lg:3},medium:{xs:12,sm:6,lg:4},large:{xs:12,md:6},full:{xs:12}},jt=()=>({id:Z(),type:`stat`,size:`small`,title:``,config:{metric:`online_apps`}}),Mt=e=>e instanceof Error?e.message:String(e)})))()}Nt();export{Ot as default};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{t}from"./react-BN8qLIAi.js";import{S as n,h as r,r as i}from"./client-DFnuv2z3.js";import{H as a,Q as o,V as s,Z as c}from"./mui-BXSXx9c9.js";import{B as l,z as u}from"./mui-Cd711nOk.js";import{E as d,T as f}from"./mui-AnEgAVjz.js";import{_ as p,v as m}from"./mui-BwsIrivo.js";import{d as h,f as g,m as _,y as v}from"./project.store-DuCgv6Eq.js";function y(e){let t=v(e.id);return{id:e.id,project:e.project??t.project,complete:e.complete??!1,...e.manifestError&&{manifestError:e.manifestError},builtAt:e.builtAt??null,builtBy:e.builtBy??null,builtWith:e.builtWith??null,projectCommit:e.projectCommit??t.projectCommit,omniCommit:e.omniCommit??t.omniCommit,projectRepo:e.projectRepo??null,omniRepo:e.omniRepo??null,onRemote:{project:e.onRemote?.project??null,omni:e.onRemote?.omni??null},gates:e.gates??{total:0,passed:0,failed:0,notRun:0},gateList:e.gateList??[],artifacts:e.artifacts??{count:0,bytes:0,apps:[],failed:[]},statics:e.statics??null,bytes:e.bytes??0,keptSource:e.keptSource??!1,machine:e.machine??null,verified:e.verified??[]}}function b(e){return{...e,history:e.history??[],gates:e.gates??[],request:e.request??{project:`(unknown)`}}}var x,S;function C(){return(C=e((()=>{_(),r(),x=new Map,S={async list(){let e=await n.list();return{root:e?.root??``,releases:(e?.releases??[]).map(y)}},async get(e){let t=await n.get({id:e});return{...y(t),manifest:t.manifest??null,manifestSha256:t.manifestSha256??null,artifactSources:t.artifactSources??null,logs:t.logs??[],root:t.root??``,attestations:t.attestations??[]}},async builds(){return(await n.builds()??[]).map(b)},async preflight(){let e=await n.preflight();return{...e.publish===1?{publish:1}:{},...e.store&&{store:e.store},...e.buildSlots&&{buildSlots:e.buildSlots},...e.frameworkSource===1?{frameworkSource:1}:{},root:e.root,canBuild:e.canBuild,missingTools:e.missingTools??[],path:e.path??[],load:Array.isArray(e.load)&&e.load.length===3?e.load:null,cpus:typeof e.cpus==`number`&&e.cpus>0?e.cpus:null}},async deployments(e=200){let t=x.get(e);if(t)return t;let r=Promise.all([i.available().catch(()=>null),n.deployments({limit:e})]).then(([e,t])=>{let n=(t??[]).map(e=>({...e,releaseUnnamed:e.releaseUnnamed??!1}));return g(e?.available===!0,n)}).finally(()=>{x.get(e)===r&&x.delete(e)});return x.set(e,r),r}}})))()}function w(e){return e!==`success`&&e!==`failed`}function T(e,t=Date.now()){let n=Date.parse(e);if(!Number.isFinite(n))return`time not reported`;let r=Math.max(0,Math.round((t-n)/1e3));if(r<10)return`just now`;if(r<60)return`${r}s ago`;let i=Math.round(r/60);return i<60?`${i}m ago`:`${Math.round(i/60)}h ago`}function E(e,t,n){return w(e.status)&&(n||!Number.isFinite(Date.parse(e.at))||t-Date.parse(e.at)>9e4)}function D({record:e,now:t,unavailable:n}){let r=A[e.status]??{label:e.status,tone:`default`},i=E(e,t,n),a=w(e.status)&&!i;return(0,k.jsxs)(s,{sx:{py:1},children:[(0,k.jsxs)(p,{direction:`row`,spacing:1,sx:{mb:.5,alignItems:`center`,flexWrap:`wrap`,rowGap:.5},children:[(0,k.jsx)(u,{variant:`body2`,sx:{fontWeight:600,minWidth:0,overflowWrap:`anywhere`},children:e.app===`*`?`Node provisioning`:e.app}),(0,k.jsx)(u,{variant:`caption`,sx:{color:`text.secondary`,fontFamily:`monospace`,overflowWrap:`anywhere`},children:e.node}),(0,k.jsx)(s,{sx:{flex:1}}),(0,k.jsx)(c,{size:`small`,variant:`outlined`,color:r.tone,label:r.label,sx:{maxWidth:`100%`,fontWeight:600}}),(0,k.jsx)(u,{variant:`caption`,sx:{color:`text.secondary`},children:T(e.at,t)})]}),(0,k.jsx)(f,{"aria-label":`${e.app===`*`?`Node provisioning`:e.app} on ${e.node}`,variant:a?`indeterminate`:`determinate`,value:e.status===`success`?100:e.progress,color:i?`warning`:r.tone==="default"?`inherit`:r.tone,sx:{height:4,borderRadius:2}}),i&&(0,k.jsx)(u,{role:`status`,variant:`caption`,color:`warning.main`,children:`Awaiting an updated report; completion is unknown. A long phase may still be running.`}),e.message?(0,k.jsx)(u,{variant:`caption`,sx:{display:`block`,mt:.5,color:e.status===`failed`?`error.main`:`text.secondary`,wordBreak:`break-word`},children:e.message}):null,e.operationId&&(0,k.jsxs)(s,{component:`details`,sx:{mt:.5,typography:`caption`,color:`text.secondary`,overflowWrap:`anywhere`,"& summary":{cursor:`pointer`,width:`fit-content`}},children:[(0,k.jsx)(`summary`,{children:`Transfer details`}),(0,k.jsxs)(`div`,{children:[e.project,`/`,e.stack,` · `,e.at]}),(0,k.jsxs)(`div`,{children:[`Operation `,(0,k.jsx)(`code`,{children:e.operationId})]}),e.releaseId&&(0,k.jsxs)(`div`,{children:[`Release `,(0,k.jsx)(`code`,{children:e.releaseId})]})]})]})}function O({records:e,now:t=Date.now(),unavailable:n=!1}){if(e.length===0)return null;let r=e.filter(e=>w(e.status)&&!E(e,t,n)).length;return(0,k.jsxs)(s,{sx:{mb:3},children:[(0,k.jsxs)(p,{direction:`row`,spacing:1,sx:{mb:1,alignItems:`center`},children:[(0,k.jsx)(u,{variant:`subtitle2`,sx:{fontWeight:700},children:`Deployment progress`}),r>0?(0,k.jsx)(c,{size:`small`,color:`info`,variant:`filled`,label:`${r} in flight`,sx:{fontWeight:600}}):null]}),(0,k.jsx)(s,{sx:{border:1,borderColor:`divider`,borderRadius:1,px:2,py:.5},children:e.map(e=>(0,k.jsx)(D,{record:e,now:t,unavailable:n},h(e)))})]})}var k,A;function j(){return(j=e((()=>{a(),o(),d(),m(),l(),_(),k=t(),A={waiting:{label:`Waiting for node`,tone:`info`},pending:{label:`Connecting`,tone:`default`},transferring:{label:`Transferring artifact`,tone:`info`},extracting:{label:`Unpacking`,tone:`info`},installing:{label:`Installing dependencies on the node`,tone:`info`},restarting:{label:`Starting`,tone:`info`},verifying:{label:`Verifying`,tone:`info`},success:{label:`Deployed`,tone:`success`},failed:{label:`Failed`,tone:`error`}}})))()}export{S as i,j as n,C as r,O as t};
1
+ import{n as e}from"./rolldown-runtime-CNOWq4Kh.js";import{t}from"./react-BN8qLIAi.js";import{S as n,h as r,r as i}from"./client-CgyTwq9g.js";import{H as a,Q as o,V as s,Z as c}from"./mui-SNRRJ_vi.js";import{B as l,z as u}from"./mui-B3fJdIMc.js";import{E as d,T as f}from"./mui-CMWGTMXv.js";import{_ as p,v as m}from"./mui-CPEkFAPo.js";import{d as h,f as g,m as _,y as v}from"./project.store-D5IR3fo9.js";function y(e){let t=v(e.id);return{id:e.id,project:e.project??t.project,complete:e.complete??!1,...e.manifestError&&{manifestError:e.manifestError},builtAt:e.builtAt??null,builtBy:e.builtBy??null,builtWith:e.builtWith??null,projectCommit:e.projectCommit??t.projectCommit,omniCommit:e.omniCommit??t.omniCommit,projectRepo:e.projectRepo??null,omniRepo:e.omniRepo??null,onRemote:{project:e.onRemote?.project??null,omni:e.onRemote?.omni??null},gates:e.gates??{total:0,passed:0,failed:0,notRun:0},gateList:e.gateList??[],artifacts:e.artifacts??{count:0,bytes:0,apps:[],failed:[]},statics:e.statics??null,bytes:e.bytes??0,keptSource:e.keptSource??!1,machine:e.machine??null,verified:e.verified??[]}}function b(e){return{...e,history:e.history??[],gates:e.gates??[],request:e.request??{project:`(unknown)`}}}var x,S;function C(){return(C=e((()=>{_(),r(),x=new Map,S={async list(){let e=await n.list();return{root:e?.root??``,releases:(e?.releases??[]).map(y)}},async get(e){let t=await n.get({id:e});return{...y(t),manifest:t.manifest??null,manifestSha256:t.manifestSha256??null,artifactSources:t.artifactSources??null,logs:t.logs??[],root:t.root??``,attestations:t.attestations??[]}},async builds(){return(await n.builds()??[]).map(b)},async preflight(){let e=await n.preflight();return{...e.publish===1?{publish:1}:{},...e.store&&{store:e.store},...e.buildSlots&&{buildSlots:e.buildSlots},...e.frameworkSource===1?{frameworkSource:1}:{},root:e.root,canBuild:e.canBuild,missingTools:e.missingTools??[],path:e.path??[],load:Array.isArray(e.load)&&e.load.length===3?e.load:null,cpus:typeof e.cpus==`number`&&e.cpus>0?e.cpus:null}},async deployments(e=200){let t=x.get(e);if(t)return t;let r=Promise.all([i.available().catch(()=>null),n.deployments({limit:e})]).then(([e,t])=>{let n=(t??[]).map(e=>({...e,releaseUnnamed:e.releaseUnnamed??!1}));return g(e?.available===!0,n)}).finally(()=>{x.get(e)===r&&x.delete(e)});return x.set(e,r),r}}})))()}function w(e){return e!==`success`&&e!==`failed`}function T(e,t=Date.now()){let n=Date.parse(e);if(!Number.isFinite(n))return`time not reported`;let r=Math.max(0,Math.round((t-n)/1e3));if(r<10)return`just now`;if(r<60)return`${r}s ago`;let i=Math.round(r/60);return i<60?`${i}m ago`:`${Math.round(i/60)}h ago`}function E(e,t,n){return w(e.status)&&(n||!Number.isFinite(Date.parse(e.at))||t-Date.parse(e.at)>9e4)}function D({record:e,now:t,unavailable:n}){let r=A[e.status]??{label:e.status,tone:`default`},i=E(e,t,n),a=w(e.status)&&!i;return(0,k.jsxs)(s,{sx:{py:1},children:[(0,k.jsxs)(p,{direction:`row`,spacing:1,sx:{mb:.5,alignItems:`center`,flexWrap:`wrap`,rowGap:.5},children:[(0,k.jsx)(u,{variant:`body2`,sx:{fontWeight:600,minWidth:0,overflowWrap:`anywhere`},children:e.app===`*`?`Node provisioning`:e.app}),(0,k.jsx)(u,{variant:`caption`,sx:{color:`text.secondary`,fontFamily:`monospace`,overflowWrap:`anywhere`},children:e.node}),(0,k.jsx)(s,{sx:{flex:1}}),(0,k.jsx)(c,{size:`small`,variant:`outlined`,color:r.tone,label:r.label,sx:{maxWidth:`100%`,fontWeight:600}}),(0,k.jsx)(u,{variant:`caption`,sx:{color:`text.secondary`},children:T(e.at,t)})]}),(0,k.jsx)(f,{"aria-label":`${e.app===`*`?`Node provisioning`:e.app} on ${e.node}`,variant:a?`indeterminate`:`determinate`,value:e.status===`success`?100:e.progress,color:i?`warning`:r.tone==="default"?`inherit`:r.tone,sx:{height:4,borderRadius:2}}),i&&(0,k.jsx)(u,{role:`status`,variant:`caption`,color:`warning.main`,children:`Awaiting an updated report; completion is unknown. A long phase may still be running.`}),e.message?(0,k.jsx)(u,{variant:`caption`,sx:{display:`block`,mt:.5,color:e.status===`failed`?`error.main`:`text.secondary`,wordBreak:`break-word`},children:e.message}):null,e.operationId&&(0,k.jsxs)(s,{component:`details`,sx:{mt:.5,typography:`caption`,color:`text.secondary`,overflowWrap:`anywhere`,"& summary":{cursor:`pointer`,width:`fit-content`}},children:[(0,k.jsx)(`summary`,{children:`Transfer details`}),(0,k.jsxs)(`div`,{children:[e.project,`/`,e.stack,` · `,e.at]}),(0,k.jsxs)(`div`,{children:[`Operation `,(0,k.jsx)(`code`,{children:e.operationId})]}),e.releaseId&&(0,k.jsxs)(`div`,{children:[`Release `,(0,k.jsx)(`code`,{children:e.releaseId})]})]})]})}function O({records:e,now:t=Date.now(),unavailable:n=!1}){if(e.length===0)return null;let r=e.filter(e=>w(e.status)&&!E(e,t,n)).length;return(0,k.jsxs)(s,{sx:{mb:3},children:[(0,k.jsxs)(p,{direction:`row`,spacing:1,sx:{mb:1,alignItems:`center`},children:[(0,k.jsx)(u,{variant:`subtitle2`,sx:{fontWeight:700},children:`Deployment progress`}),r>0?(0,k.jsx)(c,{size:`small`,color:`info`,variant:`filled`,label:`${r} in flight`,sx:{fontWeight:600}}):null]}),(0,k.jsx)(s,{sx:{border:1,borderColor:`divider`,borderRadius:1,px:2,py:.5},children:e.map(e=>(0,k.jsx)(D,{record:e,now:t,unavailable:n},h(e)))})]})}var k,A;function j(){return(j=e((()=>{a(),o(),d(),m(),l(),_(),k=t(),A={waiting:{label:`Waiting for node`,tone:`info`},pending:{label:`Connecting`,tone:`default`},transferring:{label:`Transferring artifact`,tone:`info`},extracting:{label:`Unpacking`,tone:`info`},installing:{label:`Installing dependencies on the node`,tone:`info`},restarting:{label:`Starting`,tone:`info`},verifying:{label:`Verifying`,tone:`info`},success:{label:`Deployed`,tone:`success`},failed:{label:`Failed`,tone:`error`}}})))()}export{S as i,j as n,C as r,O as t};