af360 0.1.14 → 0.1.16

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 (289) hide show
  1. package/dist/.next/BUILD_ID +1 -1
  2. package/dist/.next/app-build-manifest.json +139 -130
  3. package/dist/.next/app-path-routes-manifest.json +17 -17
  4. package/dist/.next/build-manifest.json +5 -5
  5. package/dist/.next/prerender-manifest.json +45 -45
  6. package/dist/.next/server/app/_not-found/page.js +2 -2
  7. package/dist/.next/server/app/_not-found/page.js.nft.json +1 -1
  8. package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  9. package/dist/.next/server/app/_not-found.html +1 -1
  10. package/dist/.next/server/app/_not-found.meta +8 -0
  11. package/dist/.next/server/app/_not-found.rsc +4 -4
  12. package/dist/.next/server/app/ahead/page.js +2 -2
  13. package/dist/.next/server/app/ahead/page.js.nft.json +1 -1
  14. package/dist/.next/server/app/ahead/page_client-reference-manifest.js +1 -1
  15. package/dist/.next/server/app/ahead.html +1 -1
  16. package/dist/.next/server/app/ahead.meta +8 -0
  17. package/dist/.next/server/app/ahead.rsc +5 -5
  18. package/dist/.next/server/app/api/browse/route.js +1 -1
  19. package/dist/.next/server/app/api/browse/route.js.nft.json +1 -1
  20. package/dist/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
  21. package/dist/.next/server/app/api/card/route.js +1 -1
  22. package/dist/.next/server/app/api/card/route.js.nft.json +1 -1
  23. package/dist/.next/server/app/api/card/route_client-reference-manifest.js +1 -1
  24. package/dist/.next/server/app/api/check/route.js +1 -1
  25. package/dist/.next/server/app/api/check/route.js.nft.json +1 -1
  26. package/dist/.next/server/app/api/check/route_client-reference-manifest.js +1 -1
  27. package/dist/.next/server/app/api/config/route.js +1 -1
  28. package/dist/.next/server/app/api/config/route.js.nft.json +1 -1
  29. package/dist/.next/server/app/api/config/route_client-reference-manifest.js +1 -1
  30. package/dist/.next/server/app/api/connections/route.js +3 -3
  31. package/dist/.next/server/app/api/connections/route.js.nft.json +1 -1
  32. package/dist/.next/server/app/api/connections/route_client-reference-manifest.js +1 -1
  33. package/dist/.next/server/app/api/connectors/github/route.js +1 -1
  34. package/dist/.next/server/app/api/connectors/github/route.js.nft.json +1 -1
  35. package/dist/.next/server/app/api/connectors/github/route_client-reference-manifest.js +1 -1
  36. package/dist/.next/server/app/api/consent/route.js +1 -1
  37. package/dist/.next/server/app/api/consent/route.js.nft.json +1 -1
  38. package/dist/.next/server/app/api/consent/route_client-reference-manifest.js +1 -1
  39. package/dist/.next/server/app/api/context/route.js +3 -3
  40. package/dist/.next/server/app/api/context/route.js.nft.json +1 -1
  41. package/dist/.next/server/app/api/context/route_client-reference-manifest.js +1 -1
  42. package/dist/.next/server/app/api/discover/route.js +1 -1
  43. package/dist/.next/server/app/api/discover/route.js.nft.json +1 -1
  44. package/dist/.next/server/app/api/discover/route_client-reference-manifest.js +1 -1
  45. package/dist/.next/server/app/api/expiry/route.js +1 -1
  46. package/dist/.next/server/app/api/expiry/route.js.nft.json +1 -1
  47. package/dist/.next/server/app/api/expiry/route_client-reference-manifest.js +1 -1
  48. package/dist/.next/server/app/api/first-light/route.js +1 -1
  49. package/dist/.next/server/app/api/first-light/route.js.nft.json +1 -1
  50. package/dist/.next/server/app/api/first-light/route_client-reference-manifest.js +1 -1
  51. package/dist/.next/server/app/api/handoff/route.js +1 -1
  52. package/dist/.next/server/app/api/handoff/route.js.nft.json +1 -1
  53. package/dist/.next/server/app/api/handoff/route_client-reference-manifest.js +1 -1
  54. package/dist/.next/server/app/api/health/route.js +1 -1
  55. package/dist/.next/server/app/api/health/route.js.nft.json +1 -1
  56. package/dist/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  57. package/dist/.next/server/app/api/incidents/route.js +1 -1
  58. package/dist/.next/server/app/api/incidents/route.js.nft.json +1 -1
  59. package/dist/.next/server/app/api/incidents/route_client-reference-manifest.js +1 -1
  60. package/dist/.next/server/app/api/insights/route.js +1 -1
  61. package/dist/.next/server/app/api/insights/route.js.nft.json +1 -1
  62. package/dist/.next/server/app/api/insights/route_client-reference-manifest.js +1 -1
  63. package/dist/.next/server/app/api/log/route.js +1 -1
  64. package/dist/.next/server/app/api/log/route.js.nft.json +1 -1
  65. package/dist/.next/server/app/api/log/route_client-reference-manifest.js +1 -1
  66. package/dist/.next/server/app/api/pulse/route.js +1 -1
  67. package/dist/.next/server/app/api/pulse/route.js.nft.json +1 -1
  68. package/dist/.next/server/app/api/pulse/route_client-reference-manifest.js +1 -1
  69. package/dist/.next/server/app/api/radar/route.js +1 -1
  70. package/dist/.next/server/app/api/radar/route.js.nft.json +1 -1
  71. package/dist/.next/server/app/api/radar/route_client-reference-manifest.js +1 -1
  72. package/dist/.next/server/app/api/report/route.js +1 -1
  73. package/dist/.next/server/app/api/report/route.js.nft.json +1 -1
  74. package/dist/.next/server/app/api/report/route_client-reference-manifest.js +1 -1
  75. package/dist/.next/server/app/api/services/route.js +1 -1
  76. package/dist/.next/server/app/api/services/route.js.nft.json +1 -1
  77. package/dist/.next/server/app/api/services/route_client-reference-manifest.js +1 -1
  78. package/dist/.next/server/app/api/status/route.js +1 -1
  79. package/dist/.next/server/app/api/status/route.js.nft.json +1 -1
  80. package/dist/.next/server/app/api/status/route_client-reference-manifest.js +1 -1
  81. package/dist/.next/server/app/connections/page.js +2 -2
  82. package/dist/.next/server/app/connections/page.js.nft.json +1 -1
  83. package/dist/.next/server/app/connections/page_client-reference-manifest.js +1 -1
  84. package/dist/.next/server/app/connections.html +1 -1
  85. package/dist/.next/server/app/connections.meta +8 -0
  86. package/dist/.next/server/app/connections.rsc +5 -5
  87. package/dist/.next/server/app/dashboard/page.js +2 -2
  88. package/dist/.next/server/app/dashboard/page.js.nft.json +1 -1
  89. package/dist/.next/server/app/dashboard/page_client-reference-manifest.js +1 -1
  90. package/dist/.next/server/app/dashboard.html +1 -1
  91. package/dist/.next/server/app/dashboard.meta +8 -0
  92. package/dist/.next/server/app/dashboard.rsc +4 -4
  93. package/dist/.next/server/app/discoveries/page.js +2 -2
  94. package/dist/.next/server/app/discoveries/page.js.nft.json +1 -1
  95. package/dist/.next/server/app/discoveries/page_client-reference-manifest.js +1 -1
  96. package/dist/.next/server/app/discoveries.html +1 -1
  97. package/dist/.next/server/app/discoveries.meta +8 -0
  98. package/dist/.next/server/app/discoveries.rsc +5 -5
  99. package/dist/.next/server/app/expiry/page.js +2 -2
  100. package/dist/.next/server/app/expiry/page.js.nft.json +1 -1
  101. package/dist/.next/server/app/expiry/page_client-reference-manifest.js +1 -1
  102. package/dist/.next/server/app/expiry.html +1 -1
  103. package/dist/.next/server/app/expiry.meta +8 -0
  104. package/dist/.next/server/app/expiry.rsc +4 -4
  105. package/dist/.next/server/app/fleet/page.js +2 -2
  106. package/dist/.next/server/app/fleet/page.js.nft.json +1 -1
  107. package/dist/.next/server/app/fleet/page_client-reference-manifest.js +1 -1
  108. package/dist/.next/server/app/fleet.html +1 -1
  109. package/dist/.next/server/app/fleet.meta +8 -0
  110. package/dist/.next/server/app/fleet.rsc +4 -4
  111. package/dist/.next/server/app/home/page.js +2 -2
  112. package/dist/.next/server/app/home/page.js.nft.json +1 -1
  113. package/dist/.next/server/app/home/page_client-reference-manifest.js +1 -1
  114. package/dist/.next/server/app/home.html +1 -1
  115. package/dist/.next/server/app/home.meta +8 -0
  116. package/dist/.next/server/app/home.rsc +4 -4
  117. package/dist/.next/server/app/legal/privacy/page.js +2 -2
  118. package/dist/.next/server/app/legal/privacy/page.js.nft.json +1 -1
  119. package/dist/.next/server/app/legal/privacy/page_client-reference-manifest.js +1 -1
  120. package/dist/.next/server/app/legal/terms/page.js +2 -2
  121. package/dist/.next/server/app/legal/terms/page.js.nft.json +1 -1
  122. package/dist/.next/server/app/legal/terms/page_client-reference-manifest.js +1 -1
  123. package/dist/.next/server/app/log/page.js +2 -2
  124. package/dist/.next/server/app/log/page.js.nft.json +1 -1
  125. package/dist/.next/server/app/log/page_client-reference-manifest.js +1 -1
  126. package/dist/.next/server/app/log.html +1 -1
  127. package/dist/.next/server/app/log.meta +8 -0
  128. package/dist/.next/server/app/log.rsc +5 -5
  129. package/dist/.next/server/app/page.js +2 -2
  130. package/dist/.next/server/app/page.js.nft.json +1 -1
  131. package/dist/.next/server/app/page_client-reference-manifest.js +1 -1
  132. package/dist/.next/server/app/projects/page.js +2 -2
  133. package/dist/.next/server/app/projects/page.js.nft.json +1 -1
  134. package/dist/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  135. package/dist/.next/server/app/projects.html +1 -1
  136. package/dist/.next/server/app/projects.meta +8 -0
  137. package/dist/.next/server/app/projects.rsc +5 -5
  138. package/dist/.next/server/app/radar/page.js +2 -65
  139. package/dist/.next/server/app/radar/page.js.nft.json +1 -1
  140. package/dist/.next/server/app/radar/page_client-reference-manifest.js +1 -1
  141. package/dist/.next/server/app/radar.html +1 -1
  142. package/dist/.next/server/app/radar.meta +8 -0
  143. package/dist/.next/server/app/radar.rsc +5 -5
  144. package/dist/.next/server/app/report/page.js +2 -2
  145. package/dist/.next/server/app/report/page.js.nft.json +1 -1
  146. package/dist/.next/server/app/report/page_client-reference-manifest.js +1 -1
  147. package/dist/.next/server/app/report.html +1 -1
  148. package/dist/.next/server/app/report.meta +8 -0
  149. package/dist/.next/server/app/report.rsc +5 -5
  150. package/dist/.next/server/app/settings/page.js +2 -2
  151. package/dist/.next/server/app/settings/page.js.nft.json +1 -1
  152. package/dist/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  153. package/dist/.next/server/app/settings.html +1 -1
  154. package/dist/.next/server/app/settings.meta +8 -0
  155. package/dist/.next/server/app/settings.rsc +5 -5
  156. package/dist/.next/server/app/sites/page.js +2 -2
  157. package/dist/.next/server/app/sites/page.js.nft.json +1 -1
  158. package/dist/.next/server/app/sites/page_client-reference-manifest.js +1 -1
  159. package/dist/.next/server/app/sites.html +1 -1
  160. package/dist/.next/server/app/sites.meta +8 -0
  161. package/dist/.next/server/app/sites.rsc +5 -5
  162. package/dist/.next/server/app/welcome/page.js +2 -2
  163. package/dist/.next/server/app/welcome/page.js.nft.json +1 -1
  164. package/dist/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
  165. package/dist/.next/server/app/welcome.html +1 -1
  166. package/dist/.next/server/app/welcome.meta +8 -0
  167. package/dist/.next/server/app/welcome.rsc +5 -5
  168. package/dist/.next/server/app-paths-manifest.json +17 -17
  169. package/dist/.next/server/chunks/1155.js +1 -1
  170. package/dist/.next/server/chunks/1232.js +1 -0
  171. package/dist/.next/server/chunks/2346.js +1 -1
  172. package/dist/.next/server/chunks/2465.js +64 -1
  173. package/dist/.next/server/chunks/2817.js +1 -1
  174. package/dist/.next/server/chunks/3897.js +22 -0
  175. package/dist/.next/server/chunks/4134.js +1 -1
  176. package/dist/.next/server/chunks/5277.js +1 -0
  177. package/dist/.next/server/chunks/5611.js +1 -1
  178. package/dist/.next/server/chunks/572.js +1 -1
  179. package/dist/.next/server/chunks/6992.js +1 -1
  180. package/dist/.next/server/chunks/7511.js +1 -1
  181. package/dist/.next/server/chunks/7719.js +1 -1
  182. package/dist/.next/server/chunks/8150.js +1 -1
  183. package/dist/.next/server/chunks/8549.js +1 -1
  184. package/dist/.next/server/chunks/876.js +1 -1
  185. package/dist/.next/server/chunks/9170.js +1 -1
  186. package/dist/.next/server/chunks/9655.js +11 -0
  187. package/dist/.next/server/middleware-build-manifest.js +1 -1
  188. package/dist/.next/server/middleware-manifest.json +5 -5
  189. package/dist/.next/server/pages/404.html +1 -1
  190. package/dist/.next/server/pages/500.html +1 -1
  191. package/dist/.next/server/pages/_document.js.nft.json +1 -1
  192. package/dist/.next/server/pages/_error.js +3 -3
  193. package/dist/.next/server/pages/_error.js.nft.json +1 -1
  194. package/dist/.next/server/pages-manifest.json +1 -1
  195. package/dist/.next/server/server-reference-manifest.json +1 -1
  196. package/dist/.next/static/chunks/1255-5cd2fe06309409a0.js +1 -0
  197. package/dist/.next/static/chunks/2619-3c9e02e22d10480a.js +1 -0
  198. package/dist/.next/static/chunks/3192-7e153722ff079fc6.js +1 -0
  199. package/dist/.next/static/chunks/5623-53fb7cea5de0afef.js +1 -0
  200. package/dist/.next/static/chunks/7897-52f8a153c1970ef0.js +1 -0
  201. package/dist/.next/static/chunks/8050-6c17ccfd85ac3208.js +1 -0
  202. package/dist/.next/static/chunks/app/ahead/page-f5789a03967af6e1.js +1 -0
  203. package/dist/.next/static/chunks/app/connections/page-5b833f9485623b92.js +1 -0
  204. package/dist/.next/static/chunks/app/discoveries/{page-52696e6ee0c8d3d5.js → page-337bb60e4cbdcebb.js} +1 -1
  205. package/dist/.next/static/chunks/app/{error-37987420de14c10c.js → error-b32d8c6d4bfa070e.js} +1 -1
  206. package/dist/.next/static/chunks/app/{layout-d14e087b541b48b1.js → layout-0f3f0098b5d1e6be.js} +1 -1
  207. package/dist/.next/static/chunks/app/log/page-1711fe02581c58e8.js +1 -0
  208. package/dist/.next/static/chunks/app/projects/page-b05c7b0c3284db79.js +1 -0
  209. package/dist/.next/static/chunks/app/radar/page-2c972e78ae153706.js +1 -0
  210. package/dist/.next/static/chunks/app/report/page-6bd98ca320f3730c.js +1 -0
  211. package/dist/.next/static/chunks/app/settings/{page-a38c457b7c57567b.js → page-d50e8193d000c9be.js} +1 -1
  212. package/dist/.next/static/chunks/app/sites/page-80cc0a08ae2339a8.js +1 -0
  213. package/dist/.next/static/chunks/app/welcome/{page-d26225bed7e1ad39.js → page-f2cd15c4b50942bc.js} +1 -1
  214. package/dist/.next/static/chunks/main-8e42304858de4a63.js +1 -0
  215. package/dist/.next/static/css/5ddef273a3ac3217.css +1 -0
  216. package/dist/.next/static/css/fbb4cf81dde34731.css +1 -0
  217. package/dist/build-id.json +228 -228
  218. package/dist/node_modules/@next/env/package.json +1 -1
  219. package/dist/node_modules/next/dist/build/swc/index.js +1 -1
  220. package/dist/node_modules/next/dist/build/webpack-config.js +2 -2
  221. package/dist/node_modules/next/dist/compiled/hash.js/sha256/256.js +1 -0
  222. package/dist/node_modules/next/dist/compiled/hash.js/sha256/package.json +1 -0
  223. package/dist/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js +13 -13
  224. package/dist/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +13 -13
  225. package/dist/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +10 -10
  226. package/dist/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js +11 -11
  227. package/dist/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js +2 -2
  228. package/dist/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +9 -9
  229. package/dist/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js +8 -8
  230. package/dist/node_modules/next/dist/lib/has-necessary-dependencies.js +2 -0
  231. package/dist/node_modules/next/dist/lib/verify-typescript-setup.js +19 -0
  232. package/dist/node_modules/next/dist/server/base-server.js +2 -5
  233. package/dist/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +1 -1
  234. package/dist/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  235. package/dist/node_modules/next/dist/server/image-optimizer.js +65 -2
  236. package/dist/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  237. package/dist/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +197 -23
  238. package/dist/node_modules/next/dist/server/lib/incremental-cache/index.js +36 -17
  239. package/dist/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js +3 -3
  240. package/dist/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js +14 -6
  241. package/dist/node_modules/next/dist/server/lib/match-next-data-pathname.js +3 -1
  242. package/dist/node_modules/next/dist/server/lib/node-fs-methods.js +14 -0
  243. package/dist/node_modules/next/dist/server/lib/route-cache-key.js +77 -0
  244. package/dist/node_modules/next/dist/server/lib/start-server.js +1 -1
  245. package/dist/node_modules/next/dist/server/next-server.js +8 -6
  246. package/dist/node_modules/next/dist/server/response-cache/index.js +31 -15
  247. package/dist/node_modules/next/dist/server/route-matcher-providers/app-page-route-matcher-provider.js +2 -2
  248. package/dist/node_modules/next/dist/server/route-modules/pages/pages-handler.js +6 -1
  249. package/dist/node_modules/next/dist/server/route-modules/route-module.js +9 -2
  250. package/dist/node_modules/next/dist/shared/lib/canary-only.js +1 -1
  251. package/dist/node_modules/next/dist/shared/lib/router/utils/app-paths.js +17 -1
  252. package/dist/node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js +1 -1
  253. package/dist/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  254. package/dist/node_modules/next/dist/telemetry/events/version.js +2 -2
  255. package/dist/node_modules/next/package.json +11 -11
  256. package/dist/node_modules/source-map-js/lib/quick-sort.js +10 -1
  257. package/dist/node_modules/source-map-js/lib/source-map-consumer.js +51 -3
  258. package/dist/node_modules/source-map-js/lib/source-map-generator.js +6 -4
  259. package/dist/node_modules/source-map-js/lib/source-node.js +7 -0
  260. package/dist/node_modules/source-map-js/package.json +1 -1
  261. package/dist/package.json +3 -3
  262. package/dist/shell/bin/af360-bridge.exe +0 -0
  263. package/docs/legal/PRIVACY.md +1 -1
  264. package/lib/mask.mjs +21 -1
  265. package/package.json +3 -3
  266. package/scripts/mcp-server.mjs +19 -9
  267. package/shell/bin/af360-bridge.exe +0 -0
  268. package/dist/.next/server/chunks/1331.js +0 -22
  269. package/dist/.next/server/chunks/6584.js +0 -1
  270. package/dist/.next/server/chunks/8134.js +0 -11
  271. package/dist/.next/server/chunks/9946.js +0 -1
  272. package/dist/.next/static/chunks/1255-612df69cb02f2021.js +0 -1
  273. package/dist/.next/static/chunks/1681-b233404f9ec2fc2e.js +0 -1
  274. package/dist/.next/static/chunks/2036-e29441d605c493a4.js +0 -1
  275. package/dist/.next/static/chunks/3192-6b341d547a49fa85.js +0 -1
  276. package/dist/.next/static/chunks/5623-ec4f1a6f7695d8d1.js +0 -1
  277. package/dist/.next/static/chunks/7897-6e6c509aea495560.js +0 -1
  278. package/dist/.next/static/chunks/app/ahead/page-e72bed448dd40bd5.js +0 -1
  279. package/dist/.next/static/chunks/app/connections/page-5d6cae02e6f2b49a.js +0 -1
  280. package/dist/.next/static/chunks/app/log/page-45b4cfd8f1a29d09.js +0 -1
  281. package/dist/.next/static/chunks/app/projects/page-75a41d4a90675d93.js +0 -1
  282. package/dist/.next/static/chunks/app/radar/page-4b4aad549dffcd3a.js +0 -1
  283. package/dist/.next/static/chunks/app/report/page-145496e8f0d5bc86.js +0 -1
  284. package/dist/.next/static/chunks/app/sites/page-96a7dcf3c1e9aa19.js +0 -1
  285. package/dist/.next/static/chunks/main-6828c74376f2b965.js +0 -1
  286. package/dist/.next/static/css/94d302c686de7e23.css +0 -1
  287. package/dist/.next/static/css/9b639a814d15c5ff.css +0 -1
  288. /package/dist/.next/static/{0b943e6aa8d5ffe860588 → be31a391928486d5659f1}/_buildManifest.js +0 -0
  289. /package/dist/.next/static/{0b943e6aa8d5ffe860588 → be31a391928486d5659f1}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3148],{3364:(e,a,n)=>{"use strict";n.d(a,{j:()=>i});var s=n(5155),t=n(2115),l=n(436),d=n(5310);function i(e){let{what:a,onUndo:n,className:i="tl gone"}=e,r=(0,d.kj)(),[c,o]=(0,t.useState)(!1),[h,u]=(0,t.useState)(null);return(0,s.jsxs)("div",{className:i,role:"status",children:[(0,s.jsx)("b",{children:(0,s.jsx)(d.P,{p:a})}),h&&(0,s.jsx)("span",{className:"error-line",children:h}),(0,s.jsx)("button",{className:"b2 q",disabled:c,onClick:async()=>{var e;o(!0),u(null);let a=await n();o(!1),a.ok||u(null!=(e=a.message)?e:r("common.somethingWrong",l.UI.common.somethingWrong))},children:(0,s.jsx)(d.T,{k:"common.undo",en:l.UI.common.undo})})]})}},4409:(e,a,n)=>{Promise.resolve().then(n.bind(n,9540))},9540:(e,a,n)=>{"use strict";n.r(a),n.d(a,{default:()=>y});var s=n(5155),t=n(2115),l=n(7064),d=n(639),i=n(8713),r=n(5163),c=n(7e3),o=n(6400),h=n(7470),u=n(436),m=n(5310),x=n(3034),p=n(5834),j=n(3364),g=n(8706),v=n(1551),k=n(797);let f=u.UI.ahead.kind,N={ssl:"ahead.kindSsl",domain:"ahead.kindDomain",manual:"ahead.kindManual"},b=(e,a)=>"ssl"===a?e.ssl:"domain"===a?e.domain:void 0;function y(){var e,a,n,y,U,w,S,C,T,L;let A=(0,d.x)(),{expiry:D,demo:E,attention:F}=A,[M,P]=(0,t.useState)(""),[Y,q]=(0,t.useState)(""),[z,_]=(0,t.useState)(""),[O,V]=(0,t.useState)(!1),[R,W]=(0,t.useState)(null),[J,$]=(0,t.useState)(null),B=(0,t.useRef)(null),G=(0,v.$c)(null==(e=A.cfg)?void 0:e.lang),H=(e,a)=>(0,v.tr)(G,e,a),K=(0,m.qN)(G),[Q,X]=(0,t.useState)(!1),Z=async e=>{var a;e.preventDefault(),X(!0),W(null);let n=await A.post({action:"addExpiry",name:M,date:Y,note:z,cost:O});X(!1),n.ok?(P(""),q(""),_(""),V(!1),W({ok:!0,text:H("ahead.added",u.UI.ahead.added)}),A.readExpiry()):W({ok:!1,text:null!=(a=n.message)?a:""})},[ee,ea]=(0,t.useState)([]),en=async e=>{var a;let n=await A.post({action:"removeExpiry",id:e.id});n.ok?(A.resolveRow(e.id),W(null),ea(a=>[...a,e])):W({ok:!1,text:null!=(a=n.message)?a:""})},es=async e=>{var a;let n=await A.post({action:"restoreExpiry",id:e.id,name:e.name,date:e.date,note:null!=(a=e.note)?a:"",cost:!0===e.cost,done:!0===e.done});return n.ok&&(A.unresolveRow(e.id),ea(a=>a.filter(a=>a.id!==e.id)),A.readExpiry()),n},et=async(e,a)=>{let n=await A.post({action:"editExpiry",id:e,...a});if(!n.ok){var s;return W({ok:!1,text:null!=(s=n.message)?s:""}),!1}return $(null),W({ok:!0,text:H("ahead.saved",u.UI.ahead.saved)}),A.readExpiry(),!0},el=async(e,a)=>{var n;let s=await A.post({action:"doneExpiry",id:e,done:a});s.ok?A.readExpiry():W({ok:!1,text:null!=(n=s.message)?n:""})},ed=e=>{var a;return[...(null!=(a=null==D?void 0:D.items)?a:[]).filter(e).map(e=>({i:e,gone:!1})),...ee.filter(e).map(e=>({i:e,gone:!0}))].sort((e,a)=>e.i.date.localeCompare(a.i.date))},ei=ed(i.x3),er=ed(e=>!(0,i.x3)(e)),ec=function(e){let a=[],n=new Date;for(let s of e){if(!s.firstCommit)continue;let e=new Date(s.firstCommit);if(isNaN(e.getTime()))continue;let t=new Date(e);t.setFullYear(n.getFullYear()),t.getTime()<n.getTime()-864e5&&t.setFullYear(n.getFullYear()+1);let l=t.getFullYear()-e.getFullYear();if(l<1)continue;let d=Math.max(0,Math.round((t.getTime()-n.getTime())/864e5));d>90||a.push({name:s.name,years:l,days:d,when:t.toLocaleDateString([],{month:"short",day:"numeric"}),commits:s.commitCount})}return a.sort((e,a)=>e.days-a.days)}(A.projects),eo=e=>e.map(e=>{let{i:a,gone:n}=e;return n?(0,s.jsx)(j.j,{what:(0,g.ph)("ahead.removedNamed",u.UI.ahead.removedNamed,a.name),onUndo:()=>es(a)},a.id):(0,s.jsx)(I,{i:a,...eu(a)},a.id)}),eh=function(e,a,n,s){let t=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],l=function(e,a,n){let s=new Set;for(let a of e)!a.manual&&a.name&&s.add(a.name.trim().toLowerCase());for(let e of a)e.name&&s.add(e.name.trim().toLowerCase());for(let e of n){let a=(0,c.Pm)(e.url);a&&s.add(a)}return s.delete(""),s}(a,n,t),d=[],i=new Set;for(let t of[...(null!=e?e:[]).filter(e=>!!e.dateProposal).map(e=>e.dateProposal).filter(e=>!l.has(e.host)),...function(e,a,n){let s=new Set(a.map(e=>e.name.trim().toLowerCase())),t=new Map(n.map(e=>[e.host,e])),l=[];for(let a of e){var d;let e;if("ssl"!==a.kind||!1!==a.managed)continue;let n=a.name.toLowerCase();if(s.has(n))continue;let i="cert:".concat(null!=(d=a.serial)?d:a.date),r=t.get(n);if(r){if(r.citation===i)continue;e={before:r.citation,after:i}}l.push({host:n,name:a.name,date:a.date,project:a.name,file:"certificate",line:0,citation:i,changed:e})}return l}(a,n,s)])i.has(t.host)||(i.add(t.host),d.push(t));return d}(A.insights,null!=(w=null==D?void 0:D.items)?w:[],null!=(S=null==(a=A.cfg)?void 0:a.manualExpiries)?S:[],null!=(C=null==(n=A.cfg)?void 0:n.declinedDates)?C:[],null!=(T=null==(y=A.cfg)?void 0:y.urls)?T:[]),eu=e=>!e.manual||(null==D?void 0:D.demo)?{}:{onRemove:en,onEdit:()=>$(e.id),onDone:el,editing:J===e.id,onCancel:()=>$(null),onSave:et},em=null!=(L=null==F?void 0:F.items.filter(e=>"expiry"===e.kind&&!e.handled).length)?L:0;return(0,s.jsxs)(l.Ay,{active:"/ahead",cockpit:A,children:[(0,s.jsxs)("div",{className:"pagebar",children:[(0,s.jsx)("h1",{children:(0,s.jsx)(m.T,{k:"room.ahead",en:u.UI.ahead.title})}),(0,s.jsx)("span",{className:"purpose",children:(0,s.jsx)(m.T,{k:"ahead.purpose",en:u.UI.ahead.purpose})}),F&&(em>0?(0,s.jsxs)("span",{className:"statuspill",children:[(0,s.jsx)("i",{}),em," need",1===em?"s":""," a decision"]}):(0,r.yy)(F)?(0,s.jsxs)("span",{className:"statuspill idle",children:[(0,s.jsx)("i",{}),H("ahead.nothingWatched",u.UI.ahead.nothingWatched)]}):(0,s.jsxs)("span",{className:"statuspill ok",children:[(0,s.jsx)("i",{}),H("ahead.nothingToDo",u.UI.ahead.nothingToDo)]}))]}),E&&(0,s.jsxs)("p",{className:"banner",children:[H("banner.aheadLead",u.UI.ahead.bannerLead)," ",(0,s.jsx)("a",{className:"link",href:"/radar",children:H("banner.aheadLink",u.UI.ahead.bannerLink)})," ",H("banner.aheadTail",u.UI.ahead.bannerTail)]}),(null==(U=A.pulse)?void 0:U.visible)&&A.pulse.text&&(0,s.jsxs)("div",{className:"tl",children:[(0,s.jsx)("span",{className:"chip info",children:"week"}),(0,s.jsx)("b",{children:A.pulse.text.replace(/^Your week: /,"")}),(0,s.jsx)("span",{className:"judg",children:H("ahead.weekJudg",u.UI.ahead.weekJudg)})]}),(0,s.jsxs)("div",{className:"sec",children:[(0,s.jsx)("h2",{children:(0,s.jsx)(m.T,{k:"sec.next90",en:u.UI.ahead.next90})}),(0,s.jsx)("span",{className:"meta",children:(0,s.jsx)(x.V,{n:ei.filter(e=>!e.gone).length})})]}),D?0===ei.length?(0,s.jsxs)("div",{className:"empty",children:[(0,s.jsx)("p",{className:"invite",children:H("ahead.emptyInvite",u.UI.ahead.emptyInvite)}),(0,s.jsx)("p",{children:H("ahead.emptyLine",u.UI.ahead.emptyLine)})]}):eo(ei):(0,s.jsx)("p",{className:"loading",children:(0,s.jsx)(p.h,{children:H("ahead.reading",u.UI.ahead.reading)})}),er.length>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"sec",children:[(0,s.jsx)("h2",{children:(0,s.jsx)(m.T,{k:"sec.further",en:u.UI.ahead.further})}),(0,s.jsx)("span",{className:"meta",children:(0,s.jsx)(x.V,{n:er.filter(e=>!e.gone).length})})]}),eo(er)]}),ec.length>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"sec",children:[(0,s.jsx)("h2",{children:(0,s.jsx)(m.T,{k:"sec.anniversaries",en:u.UI.ahead.anniversaries})}),(0,s.jsxs)("span",{className:"meta",children:[(0,s.jsx)(x.V,{n:ec.length})," \xb7 ",H("ahead.anniversariesMeta",u.UI.ahead.anniversariesMeta)]})]}),ec.map(e=>(0,s.jsxs)("div",{className:"tl",children:[(0,s.jsxs)("span",{className:"chip info",children:[e.days,"d"]}),(0,s.jsx)("b",{children:e.name}),(0,s.jsx)("span",{className:"what",children:1===e.years?"turns 1":"turns ".concat(e.years," years old")}),(0,s.jsx)("span",{className:"judg",children:null!=e.commits?"".concat(e.commits," commits since the first"):"its first birthday"}),(0,s.jsx)("span",{className:"when",children:e.when})]},e.name+e.when))]}),D&&D.unknowns.length>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"sec",children:[(0,s.jsx)("h2",{children:(0,s.jsx)(m.T,{k:"sec.undetermined",en:u.UI.ahead.undetermined})}),(0,s.jsx)("span",{className:"meta",children:(0,s.jsx)(x.V,{n:D.unknowns.length})})]}),D.unknowns.map((e,a)=>{var n;return(0,s.jsxs)("div",{className:"tl",children:[(0,s.jsx)("span",{className:"chip plain",children:"?"}),(0,s.jsx)("b",{children:e.name}),(0,s.jsx)("span",{className:"what",...(0,k.uN)(b(K,e.kind)),children:H(null!=(n=N[e.kind])?n:"",f[e.kind])}),(0,s.jsxs)("span",{className:"judg",children:["unknown - ",e.reason,"; af360 never guesses dates"]})]},a)})]}),(0,s.jsx)(o.k4,{cockpit:A,offers:eh,onTrack:e=>{var a;P(e.name),q(e.date?(0,h.rq)(e.date):""),_(""),V(!1),W(null),null==(a=B.current)||a.scrollIntoView({block:"nearest"})}}),(0,s.jsx)("div",{className:"sec",children:(0,s.jsx)("h2",{children:(0,s.jsx)(m.T,{k:"sec.addYourOwn",en:u.UI.ahead.addYourOwn})})}),(0,s.jsxs)("form",{className:"addrow",ref:B,onSubmit:Z,children:[(0,s.jsx)("input",{className:"in",style:{inlineSize:200},placeholder:H("ahead.namePlaceholder",u.UI.ahead.namePlaceholder),value:M,onChange:e=>P(e.target.value),"aria-label":H("ahead.nameAria",u.UI.ahead.nameAria)}),(0,s.jsx)("input",{className:"in",type:"date",style:{inlineSize:150},value:Y,onChange:e=>q(e.target.value),"aria-label":H("ahead.dateAria",u.UI.ahead.dateAria)}),(0,s.jsx)("input",{className:"in",style:{flex:1,maxInlineSize:220},placeholder:H("ahead.notePlaceholder",u.UI.ahead.notePlaceholder),value:z,onChange:e=>_(e.target.value),"aria-label":H("ahead.noteAria",u.UI.ahead.noteAria)}),(0,s.jsxs)("label",{className:"costbox",children:[(0,s.jsx)("input",{type:"checkbox",checked:O,onChange:e=>V(e.target.checked),"aria-label":H("ahead.costAria",u.UI.ahead.costAria)}),(0,s.jsx)("span",{children:H("ahead.costLabel",u.UI.ahead.costLabel)})]}),(0,s.jsx)("button",{className:"scan",type:"submit",disabled:Q,children:Q?H("ahead.adding",u.UI.ahead.adding):H("ahead.add",u.UI.ahead.add)})]}),R&&(0,s.jsx)("p",{className:R.ok?"ok-line":"error-line",children:R.text})]})}function I(e){var a,n,d,i;let{i:r,onRemove:c,onEdit:o,onDone:h,editing:x,onCancel:p,onSave:j}=e,g=(0,t.useContext)(l.vC),v=(0,m.kj)(),y=(0,m.cO)(),I="calm"===r.chip?"calm":"amber"===r.chip?"warn":"bad",w="manual"===r.kind?r.note?'"'.concat(r.note,'"'):"":null!=(a=r.judgment)?a:"";return x&&j&&p?(0,s.jsx)(U,{i:r,onSave:j,onCancel:p}):(0,s.jsxs)("div",{className:"tl".concat(r.done?" handled":""),children:[(0,s.jsx)("span",{className:"chip ".concat(I),children:r.manual&&r.daysLeft<0?v("ahead.passed",u.UI.ahead.passed):function(e){let a=e.daysLeft;return a<0?"".concat(-a,"d late"):0===a?"today":a<=120?"".concat(a,"d"):"".concat(Math.round(a/30),"mo")}(r)}),(0,s.jsx)("b",{children:r.name}),(0,s.jsx)("span",{className:"what",...(0,k.uN)(b(y,r.kind)),children:v(null!=(n=N[r.kind])?n:"",f[r.kind])}),r.manual&&(0,s.jsx)("span",{className:"chip plain",children:(0,s.jsx)(m.T,{k:"ahead.yours",en:u.UI.ahead.yours})}),r.manual&&r.cost&&(0,s.jsx)("span",{className:"chip plain",children:(0,s.jsx)(m.T,{k:"ahead.costTag",en:u.UI.ahead.costTag})}),w&&(0,s.jsx)("span",{className:"judg",children:w}),r.done&&(0,s.jsx)("span",{className:"judg",children:(0,s.jsx)(m.T,{k:"ahead.doneMeta",en:u.UI.ahead.doneMeta})}),g&&(0,s.jsxs)("span",{className:"judg mono",children:["ssl"===r.kind&&(0,s.jsxs)(s.Fragment,{children:["issuer ",null!=(d=r.issuer)?d:"unknown",r.serial?" \xb7 ".concat(r.serial):""," \xb7 "]}),r.manual&&(0,s.jsxs)(s.Fragment,{children:["rung ",null!=(i=r.rung)?i:"none"," \xb7 "]}),"exact ",new Date(r.date).toLocaleString()]}),(0,s.jsx)("span",{className:"when",children:function(e,a){let n=new Date(e);return a<=365?n.toLocaleDateString([],{month:"short",day:"numeric"}):n.toLocaleDateString([],{month:"short",year:"numeric"})}(r.date,r.daysLeft)}),r.passed&&!r.done&&(0,s.jsx)("span",{className:"judg",children:(0,s.jsx)(m.T,{k:"ahead.passedLine",en:u.UI.ahead.passedLine})}),h&&(0,s.jsx)("button",{className:"b2 q",onClick:()=>h(r.id,!r.done),children:r.done?v("ahead.undone",u.UI.ahead.undone):v("ahead.done",u.UI.ahead.done)}),o&&(0,s.jsx)("button",{className:"b2 q",...(0,k.uN)(y.editEntry),onClick:o,children:r.passed&&!r.done?v("ahead.reDate",u.UI.ahead.reDate):v("ahead.edit",u.UI.ahead.edit)}),c&&(0,s.jsx)("button",{className:"b2 q danger",onClick:()=>c(r),children:(0,s.jsx)(m.T,{k:"btn.remove",en:u.UI.common.remove})})]})}function U(e){var a;let{i:n,onSave:l,onCancel:d}=e,i=(0,m.kj)(),[r,c]=(0,t.useState)(n.name),[o,x]=(0,t.useState)((0,h.rq)(n.date)),[p,j]=(0,t.useState)(null!=(a=n.note)?a:""),[g,v]=(0,t.useState)(!0===n.cost),[k,f]=(0,t.useState)(!1);return(0,s.jsxs)("form",{className:"tl addrow",onSubmit:async e=>{e.preventDefault(),f(!0),await l(n.id,{name:r,date:o,note:p,cost:g}),f(!1)},children:[(0,s.jsx)("input",{className:"in",style:{inlineSize:200},value:r,onChange:e=>c(e.target.value),"aria-label":i("ahead.nameAria",u.UI.ahead.nameAria)}),(0,s.jsx)("input",{className:"in",type:"date",style:{inlineSize:150},value:o,onChange:e=>x(e.target.value),"aria-label":i("ahead.dateAria",u.UI.ahead.dateAria)}),(0,s.jsx)("input",{className:"in",style:{flex:1,maxInlineSize:220},value:p,onChange:e=>j(e.target.value),"aria-label":i("ahead.noteAria",u.UI.ahead.noteAria)}),(0,s.jsxs)("label",{className:"costbox",children:[(0,s.jsx)("input",{type:"checkbox",checked:g,onChange:e=>v(e.target.checked),"aria-label":i("ahead.costAria",u.UI.ahead.costAria)}),(0,s.jsx)("span",{children:i("ahead.costLabel",u.UI.ahead.costLabel)})]}),(0,s.jsx)("button",{className:"scan",type:"submit",disabled:k,children:i("ahead.save",u.UI.ahead.save)}),(0,s.jsx)("button",{className:"b2 q",type:"button",onClick:d,children:i("ahead.cancel",u.UI.ahead.cancel)})]})}}},e=>{e.O(0,[3192,1681,8441,1255,7358],()=>e(e.s=4409)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7572],{2613:(n,e,c)=>{"use strict";c.d(e,{fn:()=>p,hf:()=>u,ob:()=>d,tU:()=>h});var s=c(5155),t=c(2115),i=c(7650),o=c(436),a=c(5310),l=c(3034),r=c(797);function d(n){let{actions:e,label:c}=n,[l,d]=(0,t.useState)(!1),[u,p]=(0,t.useState)(null),h=(0,t.useRef)(null),m=(0,t.useRef)(null),x=(0,t.useId)(),j=(0,a.kj)(),f=(0,a.cO)(),v=(0,t.useCallback)(()=>{var n,e,c;let s=null==(n=h.current)?void 0:n.firstElementChild;if(!s)return;let t=s.getBoundingClientRect(),i=null!=(c=null==(e=m.current)?void 0:e.offsetHeight)?c:0,o=window.innerHeight-t.bottom,a=i>0&&o<i+8&&t.top>o;p({top:a?t.top-i-4:t.bottom+4,end:Math.max(4,window.innerWidth-t.right),flip:a})},[]);return((0,t.useLayoutEffect)(()=>{l&&v()},[l,v]),(0,t.useEffect)(()=>{if(!l)return;let n=n=>{var e,c;let s=n.target;(null==(e=h.current)?void 0:e.contains(s))||(null==(c=m.current)?void 0:c.contains(s))||d(!1)},e=n=>{"Escape"===n.key&&d(!1)},c=()=>v();return document.addEventListener("mousedown",n),document.addEventListener("keydown",e),window.addEventListener("scroll",c,!0),window.addEventListener("resize",c),()=>{document.removeEventListener("mousedown",n),document.removeEventListener("keydown",e),window.removeEventListener("scroll",c,!0),window.removeEventListener("resize",c)}},[l,v]),0===e.length)?null:(0,s.jsxs)("div",{className:"ovf",ref:h,children:[(0,s.jsxs)("button",{className:"ovf-btn",type:"button","aria-haspopup":"menu","aria-expanded":l,"aria-controls":x,...(0,r.uN)(f.moreActions),onClick:()=>d(n=>!n),children:[(0,s.jsx)(a.T,{k:"btn.more",en:null!=c?c:o.UI.radar.moreActions})," ",(0,s.jsx)("span",{"aria-hidden":!0,children:"▾"})]}),l&&"undefined"!=typeof document&&(0,i.createPortal)((0,s.jsx)("div",{className:"ovf-menu",id:x,role:"menu",ref:m,"aria-label":j("act.moreAria",o.UI.radar.moreActionsAria),style:u?{insetBlockStart:u.top,insetInlineEnd:u.end}:{visibility:"hidden"},children:e.map(n=>(0,s.jsxs)("button",{role:"menuitem",type:"button",...(0,r.uN)(n.title),className:n.danger?"danger":void 0,onClick:()=>{d(!1),n.onClick()},children:[n.label,n.effect&&(0,s.jsx)("span",{children:n.effect})]},n.label))}),document.body)]})}function u(n){let{done:e,total:c,working:t}=n,i=(0,a.kj)();(0,a.cO)();let r="ar"===(0,a.uU)();return c>0&&e<c?(0,s.jsxs)("div",{className:"streamline",role:"status","aria-live":"polite",children:[(0,s.jsx)("i",{"aria-hidden":!0}),r?(0,s.jsxs)(s.Fragment,{children:[i("stream.countingLead","")," ",(0,s.jsx)(l.V,{n:e})," ",i("stream.countingMid","")," ",(0,s.jsx)(l.V,{n:c})," ",i("stream.countingTail","")]}):o.UI.stream.counting(e,c)]}):t?(0,s.jsxs)("div",{className:"streamline",role:"status","aria-live":"polite",children:[(0,s.jsx)("i",{"aria-hidden":!0}),i("stream.starting",o.UI.stream.starting)]}):null}function p(n){let{view:e,onChange:c}=n,t=(0,a.kj)();return(0,a.cO)(),(0,s.jsxs)("div",{className:"viewseg",role:"group","aria-label":t("radar.viewAria",o.UI.radar.viewAria),children:[(0,s.jsx)("button",{type:"button",className:"cards"===e?"on":"","aria-pressed":"cards"===e,onClick:()=>c("cards"),children:(0,s.jsx)(a.T,{k:"btn.grid",en:o.UI.radar.viewGrid})}),(0,s.jsx)("button",{type:"button",className:"rows"===e?"on":"","aria-pressed":"rows"===e,onClick:()=>c("rows"),children:(0,s.jsx)(a.T,{k:"btn.rows",en:o.UI.radar.viewRows})})]})}function h(n){let{tabs:e,active:c,onChange:t,label:i,vertical:o}=n;return(0,s.jsx)("div",{className:"tabs".concat(o?" tabs-v":""),role:"tablist","aria-orientation":o?"vertical":void 0,"aria-label":i,children:e.map(n=>(0,s.jsxs)("button",{type:"button",role:"tab",id:"tab-".concat(n.id),className:n.id===c?"on":"","aria-selected":n.id===c,"aria-controls":"panel-".concat(n.id),onClick:()=>t(n.id),children:[n.label,void 0!==n.count&&(0,s.jsx)("span",{className:"tabn",children:n.count})]},n.id))})}},6520:(n,e,c)=>{"use strict";c.r(e),c.d(e,{default:()=>b});var s=c(5155),t=c(7064),i=c(2115),o=c(8713),a=c(436),l=c(5310),r=c(3034),d=c(8706),u=c(2613);function p(n){let{lang:e,t:c,clients:t,supported:p,remembered:m,reload:x}=n,[j,f]=(0,i.useState)(null),[v,b]=(0,i.useState)(null),[g,N]=(0,i.useState)(null),k=async(n,e)=>{b(n),N(null),f(null);let c=await fetch("/api/connections",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({action:"connect"===e?"preview":"previewDisconnect",clientId:n})}).then(n=>n.json()).catch(()=>null);b(null),c&&(c.ok&&c.receipt?f({receipt:c.receipt}):c.refusal&&f({refusal:c.refusal}))},I=async n=>{b(n.clientId);let e=await fetch("/api/connections",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({action:n.action,clientId:n.clientId,digest:n.digest})}).then(n=>n.json()).catch(()=>null);if(b(null),e)if(e.ok){var c;f(null),N({label:n.label,action:n.action,backup:null!=(c=e.backupPath)?c:null}),x()}else e.refusal&&f({refusal:e.refusal})};if(null===t)return(0,s.jsx)("div",{className:"kit-card",children:(0,s.jsx)("div",{className:"lbl",children:(0,s.jsx)("span",{children:(0,s.jsx)(l.T,{k:"conn.looking",en:a.UI.settings.connLooking})})})});let U=(0,o.iw)(t),w=p.filter(n=>!U.some(e=>e.id===n.id)),y=(0,d.nn)(w.map(n=>n.label),d.v1.and,d.v1.comma);return(0,s.jsx)("div",{className:"kit-card",children:(0,s.jsxs)("div",{className:"lbl",children:[(0,s.jsx)("b",{children:c("conn.help",a.UI.settings.connHelp)}),0===U.length?(0,s.jsx)("span",{children:c("conn.none",a.UI.settings.connNone)}):(0,s.jsxs)("div",{className:"rule-list",children:[U.map(n=>{let e="malformed"===n.state||"unreadable"===n.state,t=!n.connected&&!e&&!1!==n.verified&&!!n.elsewhere,i=!n.connected&&!e&&!1===n.verified,o=!n.connected&&!e&&!1!==n.verified&&!!n.oldShape,d=!n.connected&&!e&&!t&&!i&&!o&&m.includes(n.id);return(0,s.jsxs)("div",{className:"rule-row conn-row",children:[(0,s.jsxs)("span",{className:"conn-name",children:[n.label,n.connected?(0,s.jsx)("em",{className:"conn-on",children:c("conn.connected",a.UI.settings.connConnected)}):e?(0,s.jsx)("em",{className:"conn-fault",children:c("conn.unreadable",a.UI.settings.connUnreadable)}):t?(0,s.jsx)("em",{className:"conn-fault",children:c("conn.elsewhere",a.UI.settings.connElsewhere)}):o?(0,s.jsx)("em",{className:"conn-fault",children:c("conn.oldShape",a.UI.settings.connOldShape)}):i?(0,s.jsx)("em",{className:"conn-fault",children:c("conn.unverified",a.UI.settings.connUnverified)}):(0,s.jsx)("em",{className:"conn-off",children:c("conn.notConnected",a.UI.settings.connNotConnected)})]}),(0,s.jsx)("span",{className:"conn-path",children:(0,s.jsx)(r.B,{children:n.configPath})}),n.connected?(0,s.jsx)(u.ob,{actions:[{label:c("conn.disconnect",a.UI.settings.connDisconnect),onClick:()=>k(n.id,"disconnect"),danger:!0}]}):(0,s.jsx)("button",{className:"b2 q",disabled:v===n.id,onClick:()=>k(n.id,"connect"),children:d||o?c("conn.reconnect",a.UI.settings.connReconnect):"".concat(c("conn.connect",a.UI.settings.connConnect)," ").concat(n.label)}),d&&(0,s.jsx)("span",{className:"conn-dropped",children:c("conn.dropped",a.UI.settings.connDropped).replace("{0}",n.label)}),t&&(0,s.jsx)("span",{className:"conn-dropped",children:(0,s.jsx)(r.B,{children:n.elsewhere})}),o&&n.entryCommand&&(0,s.jsx)("span",{className:"conn-dropped",children:(0,s.jsx)(r.B,{children:n.entryCommand})}),i&&n.reason&&(0,s.jsx)("span",{className:"conn-dropped",children:n.reason}),j&&"receipt"in j&&j.receipt.clientId===n.id&&(0,s.jsx)(h,{r:j.receipt,t:c,busy:v===j.receipt.clientId,onConfirm:()=>I(j.receipt),onCancel:()=>f(null)}),j&&"refusal"in j&&j.refusal.clientId===n.id&&(0,s.jsxs)("div",{className:"conn-diff conn-refused",children:[(0,s.jsx)("b",{children:c("conn.refused",a.UI.settings.connRefused)}),(0,s.jsx)("span",{className:"error-line",children:j.refusal.reason}),j.refusal.configPath&&(0,s.jsx)("span",{className:"conn-path",children:(0,s.jsx)(r.B,{children:j.refusal.configPath})}),(0,s.jsx)("div",{className:"setup-actions",style:{justifyContent:"flex-start",marginBlockStart:8},children:(0,s.jsx)("button",{className:"b2 q",onClick:()=>f(null),children:(0,s.jsx)(l.T,{k:"btn.done",en:a.UI.common.done})})})]})]},n.id)}),w.length>0&&(0,s.jsx)("span",{className:"conn-also",children:c("conn.alsoWorks",a.UI.settings.connAlsoWorks).replace("{0}",y)})]}),j&&"refusal"in j&&!U.some(n=>n.id===j.refusal.clientId)&&(0,s.jsxs)("div",{className:"conn-diff conn-refused",children:[(0,s.jsx)("b",{children:c("conn.refused",a.UI.settings.connRefused)}),(0,s.jsx)("span",{className:"error-line",children:j.refusal.reason}),j.refusal.configPath&&(0,s.jsx)("span",{className:"conn-path",children:(0,s.jsx)(r.B,{children:j.refusal.configPath})}),(0,s.jsx)("div",{className:"setup-actions",style:{justifyContent:"flex-start",marginBlockStart:8},children:(0,s.jsx)("button",{className:"b2 q",onClick:()=>f(null),children:(0,s.jsx)(l.T,{k:"btn.done",en:a.UI.common.done})})})]}),g&&(0,s.jsxs)("span",{className:"conn-done",children:[("connect"===g.action?c("conn.wrote",a.UI.settings.connWrote):c("conn.removed",a.UI.settings.connRemoved)).replace("{0}",g.label),g.backup?" ".concat(c("conn.backupAt",a.UI.settings.connBackupAt).replace("{0}",g.backup)):"","connect"===g.action&&(0,s.jsx)("b",{className:"conn-step",children:c("conn.restart",a.UI.settings.connRestart).replace("{0}",g.label)})]})]})})}function h(n){let{r:e,t:c,busy:t,onConfirm:i,onCancel:o}=n;return(0,s.jsxs)("div",{className:"conn-diff",children:[(0,s.jsx)("b",{children:("connect"!==e.action?c("conn.willRemove",a.UI.settings.connWillRemove):"repoint"===e.kind?c("conn.willRepoint",a.UI.settings.connWillRepoint):c("conn.willWrite",a.UI.settings.connWillWrite)).replace("{0}",e.label)}),(0,s.jsx)("span",{className:"conn-path",children:(0,s.jsx)(r.B,{children:e.configPath})}),(0,s.jsx)("span",{className:"conn-count",children:c("conn.lineCount",a.UI.settings.connLineCount).replace("{0}",String(e.added)).replace("{1}",String(e.removed)).replace("{2}",String(e.startLine))}),(0,s.jsx)("pre",{className:"conn-lines",dir:"ltr",children:e.lines.map((n,e)=>(0,s.jsxs)("span",{className:"+"===n.sign?"dl-add":"-"===n.sign?"dl-del":"dl-ctx",children:[n.sign,n.text,"\n"]},e))}),e.willBackupTo&&(0,s.jsx)("span",{className:"conn-backup",children:c("conn.willBackup",a.UI.settings.connWillBackup).replace("{0}",e.willBackupTo)}),e.running&&(0,s.jsx)("span",{className:"conn-warn",children:c("conn.running",a.UI.settings.connRunning).replace("{0}",e.label)}),(0,s.jsxs)("div",{className:"setup-actions",style:{justifyContent:"flex-start",marginBlockStart:8},children:[(0,s.jsx)("button",{className:"b".concat("connect"===e.action?"":" danger"),disabled:t,onClick:i,children:"connect"===e.action?c("conn.confirmWrite",a.UI.settings.connConfirmWrite):c("conn.confirmRemove",a.UI.settings.connConfirmRemove)}),(0,s.jsx)("button",{className:"b2 q",disabled:t,onClick:o,children:(0,s.jsx)(l.T,{k:"btn.cancel",en:a.UI.common.cancel})})]})]})}function m(n){var e,c,o,d,u,p,h,m,f;let{t:v,state:b,appReady:g,reload:N,onCount:k}=n,[I,U]=(0,i.useState)(!1),[w,y]=(0,i.useState)(null),[C,T]=(0,i.useState)(null),[S,E]=(0,i.useState)(null),[A,R]=(0,i.useState)(!1),[O,L]=(0,i.useState)(()=>Date.now()),[B,W]=(0,i.useState)(null),[P,H]=(0,i.useState)(!1),[F,M]=(0,i.useState)(!1),[q,D]=(0,i.useState)(null),[G,_]=(0,i.useState)(!1);(0,i.useEffect)(()=>{if(!P)return;let n=!1,e=async()=>{var e,c;let s=await fetch("/api/connectors/github",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({action:"status",flowId:B})}).then(n=>n.json()).catch(()=>null);if(!n&&(null==s?void 0:s.ok)){if("idle"===s.phase){V(),U(!1),D({kind:"unreached",reason:"af360 is no longer waiting for GitHub's answer, and nothing was stored - press Connect GitHub to start again."});return}"done"===s.phase&&(V(),U(!1),N(),"ok"===s.outcome?D({kind:"ok",login:s.login,repoNames:Array.isArray(s.repoNames)?s.repoNames:[],reposUnread:Number(s.reposUnread)||0,installationCount:"number"==typeof s.installationCount?s.installationCount:void 0}):"refused-write"===s.outcome?D({kind:"refused-write",detail:String(null!=(e=s.detail)?e:"")}):D({kind:"unreached",reason:String(null!=(c=s.reason)?c:"The authorization did not complete.")}))}},c=setInterval(()=>{e()},1500);return()=>{n=!0,clearInterval(c)}},[P,B]);let J=async()=>{if(F)return;M(!0),D(null);let n=await fetch("/api/connectors/github",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({action:"begin"})}).then(n=>n.json()).catch(()=>null);if(M(!1),!(null==n?void 0:n.ok)){var e;D({kind:"error",message:String(null!=(e=null==n?void 0:n.message)?e:"af360 could not start the authorization.")});return}y("string"==typeof n.userCode?n.userCode:null),T("string"==typeof n.verificationUri?n.verificationUri:null),E("number"==typeof n.expiresAt?n.expiresAt:null),R(!1),L(Date.now()),W("string"==typeof n.flowId?n.flowId:null),H(!0)},V=(0,i.useCallback)(()=>{H(!1),W(null),y(null),T(null),E(null),R(!1)},[]),z=()=>{if(I){U(!1),K();return}U(!0),D(null),w||J()},K=async()=>{V(),await fetch("/api/connectors/github",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({action:"cancel"})}).catch(()=>{})};(0,i.useEffect)(()=>{if(!S)return;let n=setInterval(()=>L(Date.now()),1e3);return()=>clearInterval(n)},[S]);let $=async()=>{if(w)try{await navigator.clipboard.writeText(w),R(!0),setTimeout(()=>R(!1),2e3)}catch(n){}},Q=async()=>{M(!0),D(null);let n=await fetch("/api/connectors/github",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({action:"disconnect"})}).then(n=>n.json()).catch(()=>null);M(!1),(null==n?void 0:n.ok)&&(N(),D({kind:"disconnected"}))};return((0,i.useEffect)(()=>{null!==b&&(null==k||k(1))},[b,k]),null===b)?(0,s.jsx)("div",{className:"kit-card",children:(0,s.jsx)("div",{className:"lbl",children:(0,s.jsx)("span",{children:(0,s.jsx)(l.T,{k:"conn.looking",en:a.UI.settings.connLooking})})})}):(0,s.jsx)("div",{className:"kit-card".concat(b.connected?"":" needs-row"),children:(0,s.jsxs)("div",{className:"lbl",children:[(0,s.jsx)("div",{className:"rule-list",children:(0,s.jsxs)("div",{className:"rule-row conn-row",children:[(0,s.jsxs)("span",{className:"conn-name",children:[(0,s.jsx)(l.T,{k:"connections.githubName",en:a.UI.connections.githubName}),b.connected&&b.unreadable?(0,s.jsx)("em",{className:"conn-fault",children:v("connections.githubUnreadable",a.UI.connections.githubUnreadable)}):b.connected&&b.refusal&&!g?(0,s.jsx)("em",{className:"conn-fault",children:v("conn.githubStale",a.UI.settings.connGitHubStale)}):b.connected&&b.refusal?(0,s.jsx)("em",{className:"conn-fault",children:v("conn.githubRefused",a.UI.settings.connGitHubRefused)}):b.connected&&b.verified?(0,s.jsx)("em",{className:"conn-on",children:v("conn.connected",a.UI.settings.connConnected)}):b.connected?(0,s.jsx)("em",{className:"conn-idle",children:v("connections.ghCardNever",a.UI.connections.ghCardNever)}):(0,s.jsx)("em",{className:"conn-off",children:v("conn.notConnected",a.UI.settings.connNotConnected)})]}),b.connected&&b.refusal?(0,s.jsx)("span",{className:"conn-path",children:(0,s.jsx)(r.En,{children:g?v("connections.refusedLine",a.UI.connections.refusedLine).replace("{0}",null!=(d=b.login)?d:""):v("connections.staleNoAppLine",a.UI.connections.staleNoAppLine).replace("{0}",null!=(o=b.login)?o:"")})}):b.connected&&b.unreadable?null:b.connected?(0,s.jsxs)("span",{className:"conn-path",children:[(0,s.jsx)(r.En,{children:v("connections.verifiedAs",a.UI.connections.verifiedAs).replace("{0}",null!=(u=b.login)?u:"")})," \xb7 ",(0,s.jsx)(r.En,{children:v("connections.connectedMeta",a.UI.connections.connectedMeta).replace("{0}",function(n,e,c){let s=1===e?n("connections.repoCountOne",a.UI.connections.repoCountOne):n("connections.repoCountMany",a.UI.connections.repoCountMany).replace("{0}",String(e));return!0===c?s:n("connections.repoCountFloor",a.UI.connections.repoCountFloor).replace("{0}",s)}(v,null!=(p=b.repoCount)?p:0,b.reposKnown))})," ",b.connectedAt?(0,s.jsx)(r.En,{children:(0,s.jsx)(t.fV,{ts:b.connectedAt})}):null,(null!=(h=null==(e=b.repoNames)?void 0:e.length)?h:0)>0&&(0,s.jsxs)(s.Fragment,{children:[" \xb7 ",(0,s.jsx)("button",{className:"conn-reveal","aria-expanded":G,onClick:()=>_(n=>!n),children:G?v("connections.grantedHide",a.UI.connections.grantedHide):v("connections.grantedShow",a.UI.connections.grantedShow)})]})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"conn-path",children:(0,s.jsx)(l.T,{k:"connections.githubOffer",en:a.UI.connections.githubOffer})}),(0,s.jsx)("span",{className:"conn-path",children:(0,s.jsx)(l.T,{k:"connections.githubBlind",en:a.UI.connections.githubBlind})})]}),b.connected&&G&&(null!=(m=null==(c=b.repoNames)?void 0:c.length)?m:0)>0&&(0,s.jsxs)("div",{className:"conn-granted",children:[(0,s.jsx)(r.En,{children:(function(n){let e=new Map;for(let s of n){var c;let n=s.indexOf("/"),t=n>0?s.slice(0,n):"",i=n>0?s.slice(n+1):s;(null!=(c=e.get(t))?c:e.set(t,[]).get(t)).push(i)}return[...e.entries()]})(null!=(f=b.repoNames)?f:[]).map(n=>{let[e,c]=n;return(0,s.jsxs)("div",{className:"conn-acct",children:[(0,s.jsx)("span",{className:"conn-acct-name",children:e?v("connections.grantedAccount",a.UI.connections.grantedAccount).replace("{0}",e):null}),(0,s.jsx)("ul",{children:c.map(n=>(0,s.jsx)("li",{children:n},n))})]},e)})}),!0!==b.reposKnown&&(0,s.jsx)("span",{className:"conn-count",children:(0,s.jsx)(l.T,{k:"connections.grantedFloor",en:a.UI.connections.grantedFloor})})]}),b.connected&&b.refusal&&g?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("button",{className:"b2",disabled:F,onClick:()=>z(),children:v("connections.githubReconnect",a.UI.connections.githubReconnect)}),(0,s.jsx)("button",{className:"b2 q danger",disabled:F,onClick:()=>void Q(),children:v("connections.disconnect",a.UI.connections.disconnect)})]}):(0,s.jsx)("button",{className:"b2 q",disabled:F,onClick:()=>b.connected?void Q():z(),children:b.connected?v("connections.disconnect",a.UI.connections.disconnect):v("connections.githubConnect",a.UI.connections.githubConnect)})]})}),I&&(!b.connected||b.refusal)&&(0,s.jsx)(x,{t:v,appReady:g,userCode:w,verificationUri:C,expiresAt:S,now:O,copied:A,waiting:P,busy:F,onCopy:$,onCancel:K}),q&&(0,s.jsx)(j,{t:v,outcome:q})]})})}function x(n){let{t:e,appReady:c,userCode:t,verificationUri:i,expiresAt:o,now:d,copied:u,waiting:p,busy:h,onCopy:m,onCancel:x}=n,j=o?function(n,e){let c=n-e;if(c<=0)return{text:"",gone:!0};let s=Math.ceil(c/1e3);if(s<60)return{text:"".concat(s," second").concat(1===s?"":"s"),gone:!1};let t=Math.ceil(s/60);return{text:"".concat(t," minute").concat(1===t?"":"s"),gone:!1}}(o,d):null;return(0,s.jsxs)("div",{className:"conn-diff conn-setup",children:[(0,s.jsx)("b",{children:(0,s.jsx)(l.T,{k:"connections.setupTitle",en:a.UI.connections.setupTitle})}),(0,s.jsx)("span",{className:"conn-lede",children:(0,s.jsx)(l.T,{k:"connections.setupLede",en:a.UI.connections.setupLede})}),c?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"conn-touches",children:(0,s.jsx)(l.T,{k:"connections.setupTouches",en:a.UI.connections.setupTouches})}),t?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"conn-device",children:[(0,s.jsx)("span",{className:"conn-device-label",children:(0,s.jsx)(l.T,{k:"connections.deviceCodeLabel",en:a.UI.connections.deviceCodeLabel})}),(0,s.jsxs)("div",{className:"conn-device-row",children:[(0,s.jsx)("code",{className:"conn-device-code",children:t}),(0,s.jsx)("button",{className:"b2 q",onClick:m,"aria-live":"polite",children:u?e("connections.deviceCopied",a.UI.connections.deviceCopied):e("connections.deviceCopy",a.UI.connections.deviceCopy)})]}),i&&(0,s.jsxs)("div",{className:"conn-device-row",children:[(0,s.jsx)("span",{className:"conn-device-label",children:(0,s.jsx)(l.T,{k:"connections.deviceGoLabel",en:a.UI.connections.deviceGoLabel})}),(0,s.jsx)("a",{className:"b accent",href:i,target:"_blank",rel:"noreferrer noopener",children:(0,s.jsx)(r.B,{children:i})})]}),j&&(j.gone?(0,s.jsx)("span",{className:"error-line",children:e("connections.deviceExpired",a.UI.connections.deviceExpired)}):(0,s.jsx)("span",{className:"conn-device-clock",children:e("connections.deviceExpires",a.UI.connections.deviceExpires).replace("{0}",j.text)}))]}),(0,s.jsx)("div",{className:"conn-go",children:(0,s.jsx)("button",{className:"b2 q",onClick:x,children:(0,s.jsx)(l.T,{k:"connections.setupCancel",en:a.UI.connections.setupCancel})})})]}):(0,s.jsx)("div",{className:"conn-go",children:(0,s.jsx)("span",{className:"conn-waiting","aria-busy":h,children:(0,s.jsx)(l.T,{k:"connections.setupStarting",en:a.UI.connections.setupStarting})})}),p&&t&&(0,s.jsx)("span",{className:"conn-waiting",children:(0,s.jsx)(l.T,{k:"connections.setupWaiting",en:a.UI.connections.setupWaiting})})]}):(0,s.jsx)("span",{className:"error-line",children:(0,s.jsx)(l.T,{k:"connections.setupNoApp",en:a.UI.connections.setupNoApp})}),(0,s.jsxs)("div",{className:"conn-receipt",children:[(0,s.jsx)("b",{children:(0,s.jsx)(l.T,{k:"connections.receiptHead",en:a.UI.connections.receiptHead})}),(0,s.jsxs)("span",{children:["\xb7 ",(0,s.jsx)(l.T,{k:"connections.receiptStored",en:a.UI.connections.receiptStored})]}),(0,s.jsxs)("span",{children:["\xb7 ",(0,s.jsx)(l.T,{k:"connections.receiptCalls",en:a.UI.connections.receiptCalls})]}),(0,s.jsxs)("span",{children:["\xb7 ",(0,s.jsx)(l.T,{k:"connections.receiptRefuse",en:a.UI.connections.receiptRefuse})]}),(0,s.jsxs)("span",{className:"conn-leak",children:["\xb7 ",(0,s.jsx)(l.T,{k:"connections.receiptLeak",en:a.UI.connections.receiptLeak})]}),(0,s.jsxs)("span",{children:["\xb7 ",(0,s.jsx)(l.T,{k:"connections.receiptBehalf",en:a.UI.connections.receiptBehalf})]})]})]})}function j(n){let{t:e,outcome:c}=n;if("ok"===c.kind){var t,i;let n=(0,d.nn)((t=e,i=c.repoNames,(0,d.DR)(i,t("connections.repoOnAccount",a.UI.connections.repoOnAccount))),d.v1.and,d.v1.comma);return(0,s.jsxs)("div",{className:"conn-diff conn-ok",children:[(0,s.jsxs)("b",{className:"conn-on",children:["✓ ",(0,s.jsx)(r.En,{children:e("connections.verifiedAs",a.UI.connections.verifiedAs).replace("{0}",c.login)})]}),c.repoNames.length>0?(0,s.jsx)("span",{children:(0,s.jsx)(r.En,{children:e("connections.verifiedSees",a.UI.connections.verifiedSees).replace("{0}",n)})}):0===c.installationCount?(0,s.jsx)("span",{children:(0,s.jsx)(l.T,{k:"connections.verifiedNoInstall",en:a.UI.connections.verifiedNoInstall})}):void 0!==c.installationCount&&0===c.reposUnread?(0,s.jsx)("span",{children:(0,s.jsx)(r.En,{children:e("connections.verifiedEmptyAccount",a.UI.connections.verifiedEmptyAccount).replace("{0}",c.login)})}):(0,s.jsx)("span",{children:(0,s.jsx)(l.T,{k:"connections.verifiedNone",en:a.UI.connections.verifiedNone})}),c.reposUnread>0&&(0,s.jsx)("span",{className:"conn-count",children:(0,s.jsx)(r.En,{children:e("connections.verifiedPartial",a.UI.connections.verifiedPartial).replace("{0}",String(c.reposUnread))})})]})}return"refused-write"===c.kind?(0,s.jsxs)("div",{className:"conn-diff conn-refused",children:[(0,s.jsxs)("b",{className:"conn-bad",children:["✗ ",(0,s.jsx)(l.T,{k:"connections.refusedWrite",en:a.UI.connections.refusedWrite})]}),(0,s.jsx)("span",{children:(0,s.jsx)(l.T,{k:"connections.refusedWriteBody",en:a.UI.connections.refusedWriteBody})}),c.detail&&(0,s.jsx)("span",{className:"conn-count",children:(0,s.jsx)(r.B,{children:c.detail})})]}):"disconnected"===c.kind?(0,s.jsx)("div",{className:"conn-diff",children:(0,s.jsx)("span",{className:"conn-done",children:(0,s.jsx)(l.T,{k:"connections.disconnected",en:a.UI.connections.disconnected})})}):(0,s.jsx)("div",{className:"conn-diff conn-refused",children:(0,s.jsx)("span",{className:"error-line",children:(0,s.jsx)(r.En,{children:"unreached"===c.kind?c.reason:c.message})})})}var f=c(639),v=c(1551);function b(){var n,e,c,d,h,x;let j=(0,f.x)(),b=(0,v.$c)(null==(n=j.cfg)?void 0:n.lang),g=(n,e)=>(0,v.tr)(b,n,e),N=(null!=(c=j.events)?c:[]).filter(n=>"mcp"===n.kind),k=null===j.events?void 0:N.length,I=[];for(let n of N){let e=null!=(d=n.caller)?d:null,c=I.find(n=>n.caller===e);c?c.rows.push(n):I.push({caller:e,rows:[n]})}let[U,w]=(0,i.useState)("in"),y=null!=(h=(0,o.DT)(j.clients))?h:void 0,[C,T]=(0,i.useState)(void 0),S=(0,o.RI)(j.clients,j.connectors);return(0,s.jsxs)(t.Ay,{active:"/connections",cockpit:j,children:[(0,s.jsxs)("div",{className:"pagebar",children:[(0,s.jsx)("h1",{children:(0,s.jsx)(l.T,{k:"connections.title",en:a.UI.connections.title})}),null!==S&&(0,s.jsx)("span",{className:"hcount",children:(0,s.jsx)(r.V,{n:S})}),(0,s.jsx)("span",{className:"purpose",children:(0,s.jsx)(l.T,{k:"connections.purpose",en:a.UI.connections.purpose})})]}),(0,s.jsx)(u.tU,{label:g("connections.title",a.UI.connections.title),active:U,onChange:w,tabs:[{id:"in",label:(0,s.jsx)(l.T,{k:"connections.secIn",en:a.UI.connections.secIn}),count:y},{id:"out",label:(0,s.jsx)(l.T,{k:"connections.secOut",en:a.UI.connections.secOut}),count:C},{id:"act",label:(0,s.jsx)(l.T,{k:"connections.secActivity",en:a.UI.connections.secActivity}),count:k}]}),(0,s.jsxs)("div",{role:"tabpanel",id:"panel-in","aria-labelledby":"tab-in",hidden:"in"!==U,children:[(0,s.jsx)("p",{className:"meta",children:(0,s.jsx)(l.T,{k:"connections.inHelp",en:a.UI.connections.inHelp})}),(0,s.jsx)(p,{lang:b,t:g,clients:j.clients,supported:j.clientsSupported,remembered:j.clientsRemembered,reload:j.readConnections})]}),(0,s.jsxs)("div",{role:"tabpanel",id:"panel-out","aria-labelledby":"tab-out",hidden:"out"!==U,children:[(0,s.jsx)("p",{className:"meta",children:(0,s.jsx)(l.T,{k:"connections.outHelp",en:a.UI.connections.outHelp})}),(0,s.jsx)(m,{t:g,state:null!=(x=null==(e=j.connectors)?void 0:e[0])?x:null,appReady:j.connectorsAppReady,reload:j.readConnectors,onCount:T})]}),"act"===U&&(0,s.jsxs)("div",{role:"tabpanel",id:"panel-act","aria-labelledby":"tab-act",children:[(0,s.jsx)("p",{className:"meta",children:(0,s.jsx)(l.T,{k:"connections.activitySub",en:a.UI.connections.activitySub})}),0===N.length?(0,s.jsx)("div",{className:"kit-card",children:(0,s.jsx)("div",{className:"lbl",children:(0,s.jsx)("span",{children:(0,s.jsx)(l.T,{k:"connections.activityNone",en:a.UI.connections.activityNone})})})}):(0,s.jsx)("div",{className:"rule-list",children:I.map(n=>{var e;return(0,s.jsxs)("div",{className:"rule-group",children:[(0,s.jsx)("span",{className:"conn-act-cat",children:n.caller?(0,s.jsx)(r.En,{children:n.caller}):(0,s.jsx)(l.T,{k:"connections.activityUnnamed",en:a.UI.connections.activityUnnamed})}),n.rows.map((n,e)=>(0,s.jsxs)("div",{className:"rule-row conn-act",children:[(0,s.jsx)("span",{className:"conn-act-when",children:(0,s.jsx)(r.En,{children:(0,s.jsx)(t.fV,{ts:n.ts})})}),(0,s.jsx)("span",{className:"conn-act-what",children:(0,s.jsx)(r.En,{children:n.text})})]},"".concat(n.ts,"-").concat(e)))]},null!=(e=n.caller)?e:"\0unnamed")})})]})]})}},8049:(n,e,c)=>{Promise.resolve().then(c.bind(c,6520))}},n=>{n.O(0,[3192,1681,8441,1255,7358],()=>n(n.s=8049)),_N_E=n.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2655],{694:(e,l,s)=>{Promise.resolve().then(s.bind(s,7843))},7843:(e,l,s)=>{"use strict";s.r(l),s.d(l,{default:()=>p});var n=s(5155),t=s(2115),o=s(7064),a=s(639),r=s(7470),i=s(436),c=s(5310),d=s(3034),g=s(5834),h=s(1551);function p(){var e;let l=(0,a.x)(),[s,p]=(0,t.useState)("all"),x=(0,h.$c)(null==(e=l.cfg)?void 0:e.lang),m=(e,l)=>(0,h.tr)(x,e,l),j=l.events,u=Date.now(),f=(0,r.l)(u),N=(0,r.l)(u-864e5),k=null!=j?j:[],v=function(e,l){let s=[];for(let l of e){let e=(0,r.l)(l.ts),n=s[s.length-1];n&&n.key===e?n.events.push(l):s.push({key:e,events:[l]})}return s}("all"===s?k:k.filter(e=>e.kind===s),0),y=[["all","log.filterAll",i.UI.log.filterAll],["mcp","log.filterAgents",i.UI.log.filterAgents],["connection","log.filterConnections",i.UI.log.filterConnections],["closed","log.filterClosed",i.UI.log.filterClosed]];return(0,n.jsxs)(o.Ay,{active:"/log",cockpit:l,children:[(0,n.jsxs)("div",{className:"pagebar",children:[(0,n.jsx)("h1",{children:(0,n.jsx)(c.T,{k:"room.log",en:i.UI.log.title})}),(0,n.jsx)("span",{className:"purpose",children:(0,n.jsx)(c.T,{k:"log.purpose",en:i.UI.log.purpose})})]}),null===j?(0,n.jsxs)("div",{className:"sweep-wrap",children:[(0,n.jsx)("div",{className:"sweep","aria-hidden":!0}),(0,n.jsx)("span",{children:(0,n.jsx)(g.h,{children:m("log.purpose",i.UI.log.purpose)})})]}):0===k.length?(0,n.jsx)("div",{className:"empty",children:(0,n.jsx)("p",{children:m("log.empty",i.UI.log.empty)})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"logbar",children:[(0,n.jsx)("div",{className:"logchips",role:"group","aria-label":m("log.filterAll",i.UI.log.filterAll),children:y.map(e=>{let[l,t,o]=e;return(0,n.jsxs)("button",{type:"button",className:"logchip".concat(s===l?" on":""),"aria-pressed":s===l,onClick:()=>p(l),children:[(0,n.jsx)(c.T,{k:t,en:o}),(0,n.jsx)("span",{className:"cnt",children:(0,n.jsx)(d.V,{n:"all"===l?k.length:k.filter(e=>e.kind===l).length})})]},l)})}),(0,n.jsx)("p",{className:"logremainder",children:m("log.untaggedNote",i.UI.log.untaggedNote)})]}),v.map(e=>(0,n.jsxs)("section",{className:"logday",children:[(0,n.jsxs)("h2",{className:"logday-h",children:[(e=>{if(e===f)return(0,n.jsx)(c.T,{k:"log.dayToday",en:i.UI.log.dayToday});if(e===N)return(0,n.jsx)(c.T,{k:"log.dayYesterday",en:i.UI.log.dayYesterday});let[l,s,t]=e.split("-").map(Number);return(0,n.jsx)(d.En,{children:new Date(l,(s||1)-1,t||1).toLocaleDateString("en-US",{weekday:"long"})})})(e.key),(0,n.jsx)("span",{className:"cnt",children:(0,n.jsx)(d.V,{n:e.events.length})})]}),(0,n.jsx)("div",{className:"loglist",children:e.events.map(e=>{var l;return(0,n.jsxs)("div",{className:"logrow",children:[(0,n.jsx)("span",{className:"logtime",children:(0,n.jsx)(d.En,{children:new Date(e.ts).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})})}),e.kind?(0,n.jsx)("span",{className:"logkind k-".concat(e.kind),children:"mcp"===(l=e.kind)?m("log.filterAgents",i.UI.log.filterAgents):"closed"===l?m("log.filterClosed",i.UI.log.filterClosed):m("log.filterConnections",i.UI.log.filterConnections)}):null,(0,n.jsx)("span",{className:"logtext",children:(0,n.jsx)(d.En,{children:e.text})})]},"".concat(e.ts," ").concat(e.text))})})]},e.key)),(0,n.jsx)("p",{className:"logfloor",children:m("log.floor",i.UI.log.floor)})]})]})}}},e=>{e.O(0,[3192,1681,8441,1255,7358],()=>e(e.s=694)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[893],{5657:(e,s,n)=>{"use strict";n.r(s),n.d(s,{default:()=>x});var r=n(5155),c=n(2115),a=n(7064),l=n(639),t=n(7897),i=n(5163),o=n(436),p=n(5310),j=n(3034),d=n(2696),h=n(5834),m=n(1551);function x(){var e,s;let n=(0,l.x)(),[x,g]=(0,c.useState)(null),{projects:u,radar:v,changes:N,attention:y}=n,{requestIgnore:I,showToast:k,overlays:U}=(0,t.Wj)(n),f=null!=(s=n.views.projects)?s:"cards",b=(0,c.useRef)(null),w=(0,m.$c)(null==(e=n.cfg)?void 0:e.lang),T=(e,s)=>(0,m.tr)(w,e,s),_="ar"===w,C=e=>(0,i.YV)(y,e),R=e=>"red"===e?2:+("amber"===e),E=[...u].sort((e,s)=>{let r=Number(n.isPinned((0,t.yn)(s)))-Number(n.isPinned((0,t.yn)(e)));return 0!==r?r:R(C((0,t.yn)(s)))-R(C((0,t.yn)(e)))}),V=E.some(e=>null===C((0,t.yn)(e))),P=E.filter(e=>{let s=C((0,t.yn)(e));return null!==s&&"clean"!==s}).length,q=e=>g(s=>s===e?null:e);return(0,r.jsxs)(a.Ay,{active:"/projects",cockpit:n,children:[(0,r.jsxs)("div",{className:"pagebar",children:[(0,r.jsx)("h1",{children:(0,r.jsx)(p.T,{k:"room.projects",en:o.UI.projects.title})}),(0,r.jsx)("span",{className:"purpose",children:(0,r.jsx)(p.T,{k:"projects.purpose",en:o.UI.projects.purpose})})]}),(0,r.jsx)("div",{className:"radar-verdict",children:(0,r.jsx)(d.HE,{cockpit:n})}),v?0===u.length?(0,r.jsxs)("div",{className:"empty",children:[(0,r.jsx)("p",{className:"invite",children:T("projects.emptyInvite",o.UI.projects.emptyInvite)}),(0,r.jsx)("p",{children:T("projects.emptyLine",o.UI.projects.emptyLine)}),(0,r.jsx)("a",{className:"btn primary",href:"/radar",children:T("btn.goRadar",o.UI.projects.goRadar)})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"sec",children:[(0,r.jsx)("h2",{children:(0,r.jsx)(p.T,{k:"sec.projects",en:o.UI.radar.projects})}),(0,r.jsxs)("span",{className:"meta",children:[(0,r.jsx)(j.V,{n:u.length})," \xb7"," ",V?(0,r.jsx)(h.h,{children:T("common.checking",o.UI.common.checking)}):P>0?_?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(j.V,{n:P})," ",T("projects.needingTail","")]}):o.UI.projects.needing(P):T("projects.allClean",o.UI.projects.allClean)]}),(0,r.jsx)("div",{className:"tools",children:(0,r.jsx)(t.aA,{view:f,onChange:e=>n.setView("projects",e)})})]}),"cards"===f?(0,r.jsx)("div",{className:"grid",ref:b,children:E.map(e=>(0,r.jsx)(t.Uj,{p:e,tone:C((0,t.yn)(e)),cockpit:n,change:N[(0,t.yn)(e)],open:x===e.path,onToggle:()=>q(e.path),onIgnoreRequest:I,onToast:k},e.path))}):(0,r.jsx)("div",{className:"irows",ref:b,children:E.map(e=>(0,r.jsx)(t.ou,{p:e,tone:C((0,t.yn)(e)),cockpit:n,change:N[(0,t.yn)(e)],open:x===e.path,onToggle:()=>q(e.path),onIgnoreRequest:I},e.path))})]}):(0,r.jsxs)("div",{className:"sweep-wrap",children:[(0,r.jsx)("div",{className:"sweep","aria-hidden":!0}),(0,r.jsx)("span",{children:(0,r.jsx)(h.h,{children:T("common.scanning",o.UI.common.scanning)})})]}),U]})}},6068:(e,s,n)=>{Promise.resolve().then(n.bind(n,5657))}},e=>{e.O(0,[3192,1681,7897,8441,1255,7358],()=>e(e.s=6068)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2305],{1601:(e,n,a)=>{"use strict";a.r(n),a.d(n,{default:()=>q});var s=a(5155),t=a(2115),r=a(7064),i=a(4097),l=a(5623),o=a(436),c=a(5310),d=a(1551),h=a(8706),p=a(5964),m=a(993),g=a(8261),x=a(7470),u=a(4576),j=a(9378),f=a(9129),w=a(797);function b(e){let n=e.filter(Boolean),a=n.slice(-2).join("/");return n.length>2?"…/"+a:a}function k(e){let n=e;return(n=(n=function(e){let n=new Map;return String(e).replace(/[A-Za-z0-9._%+-]+@(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?(?:\.[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?)*\.[A-Za-z]{2,})/g,e=>{let a;return n.has(e)||n.set(e,n.size+1),a=n.get(e),"[email ".concat(a," hidden]")})}(n=(0,p.dK)(n))).replace(/[A-Za-z]:\\[^\s"'`,;]+/g,e=>b(e.split("\\")))).replace(/(^|\s)(\/(?:home|Users)\/[^\s"'`,;]+)/g,(e,n,a)=>n+b(a.split("/")))}let v={title:"export.title",intro:"diag.intro",safe:"diag.safe",needs:"sec.needsYou",worth:"export.worth",why:"export.why",fix:"export.fix",details:"report.detailsLabel",noNeeds:"export.noNeeds",noWorth:"export.noWorth",foot:"export.foot"},y={title:"Estate check",intro:"A snapshot from ".concat(u.qt," of what is worth your attention right now. Folder paths are shortened and anything shaped like a password or key is hidden, so this file is safe to hand to someone or paste into an AI assistant."),safe:"Folder paths shortened, anything shaped like a password or key hidden, machine name never included.",needs:"Needs attention",worth:"Worth doing",why:"Why it matters",fix:"Suggested fix",details:"Details",noNeeds:"Nothing needs attention right now.",noWorth:"No open discoveries right now.",foot:"Made with ".concat(u.qt," by ").concat(u.rM," - it runs on your machine, and nothing here left it until you chose to share this file.")};function N(e){return"ar"!==e?"en":Object.values(v).every(e=>void 0!==d.AR[e])?"ar":"en"}function I(e){let n=N(e),a={};for(let[e,t]of Object.entries(v)){var s;a[e]="ar"===n&&null!=(s=d.AR[t])?s:y[e]}return a}function U(e,n,a){return"ar"===e&&n?(0,h.DJ)(n,e=>d.AR[e]):a}function A(e,n){var a,s,t;return{needs:(null!=(s=null==(a=e.attention)?void 0:a.items)?s:[]).filter(e=>!e.handled).map(e=>{var a;return{title:k(U(n,e.whatP,e.what)),why:e.why?k(U(n,e.whyP,e.why)):void 0,fixes:(null!=(a=e.steps)?a:[]).map((a,s)=>{var t;return k(U(n,null==(t=e.stepsP)?void 0:t[s],a))})}}),worth:(null!=(t=e.insights)?t:[]).map(e=>{var a;return{title:k(U(n,e.verdictP,e.verdict)),why:e.why?k((0,m.XF)(e.why,e.quoted)):void 0,fixes:(null!=(a=e.steps)?a:[]).map(k),cat:e.cat}})}}function C(e,n){if(!e)return null;let a=N(n),s=null===e.since?"":(0,x.OL)(e.since);return(0,j.lz)(e,(e,n)=>{var s;return"ar"===a&&null!=(s=d.AR[e])?s:n},s)}function T(e){let n=(0,g.X2)(e.attention,e.projects);if(!n)return null;let a=(0,g.sx)(n),s=(0,g.Bx)(n);return"".concat(a.headline.en," ").concat(a.under.en).concat(s?" ".concat(s.en):"")}function P(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function F(e,n,a){let s=new Blob([a],{type:n}),t=URL.createObjectURL(s),r=document.createElement("a");r.download=e,r.href=t,r.click(),setTimeout(()=>URL.revokeObjectURL(t),2e3)}function S(e){let{cockpit:n,onClose:a}=e,[r]=(0,t.useState)(()=>Date.now()),[i,l]=(0,t.useState)(!1),d=(0,c.kj)(),h=(0,c.cO)(),p=(0,c.uU)(),{delta:m}=(0,f.K)(n),g=function(e,n){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"en",s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,{needs:t,worth:r}=A(e,N(a)),i=I(a),l=(0,x.OL)(n),o=[];o.push("# ".concat(i.title," - ").concat(l)),o.push(""),o.push(i.intro),o.push("");let c=C(s,a);c&&(o.push(c),o.push(""));let d=T(e);return d&&(o.push(d),o.push("")),o.push("Summary: ".concat(t.length," thing").concat(1===t.length?"":"s"," need").concat(1===t.length?"s":""," attention, ").concat(r.length," discover").concat(1===r.length?"y":"ies"," worth a look.")),o.push(""),o.push("## ".concat(i.needs," (").concat(t.length,")")),o.push(""),0===t.length&&o.push(i.noNeeds),t.forEach((e,n)=>{o.push("### ".concat(n+1,". ").concat(e.title)),e.why&&o.push("- ".concat(i.why,": ").concat(e.why)),e.fixes.length>0&&(o.push("- ".concat(i.fix,":")),e.fixes.forEach(e=>o.push(" - ".concat(e)))),o.push("")}),o.push("## ".concat(i.worth," (").concat(r.length,")")),o.push(""),0===r.length&&o.push(i.noWorth),r.forEach(e=>{o.push("### ".concat(e.cat?"`".concat(e.cat,"` "):"").concat(e.title)),e.why&&o.push("- ".concat(i.why,": ").concat(e.why)),e.fixes.length>0&&(o.push("- ".concat(i.fix,":")),e.fixes.forEach(e=>o.push(" - ".concat(e)))),o.push("")}),o.push("---"),o.push(i.foot),o.join("\n")}(n,r,p,m),j=(0,x.rq)(r),b=async()=>{try{await navigator.clipboard.writeText(g),l(!0),setTimeout(()=>l(!1),2e3)}catch(e){}};return(0,s.jsx)("div",{className:"confirm-overlay",role:"dialog","aria-modal":"true","aria-label":d("diag.dialogAria",o.UI.diag.dialogAria),onClick:a,children:(0,s.jsxs)("div",{className:"diag",onClick:e=>e.stopPropagation(),children:[(0,s.jsxs)("div",{className:"diag-head",children:[(0,s.jsx)("h2",{children:d("diag.title",o.UI.diag.title)}),(0,s.jsx)("p",{children:d("diag.intro",o.UI.diag.intro)}),(0,s.jsxs)("div",{className:"diag-safe",children:[(0,s.jsx)("i",{}),d("diag.safe",o.UI.diag.safe)]})]}),(0,s.jsx)("div",{className:"diag-preview",children:(0,s.jsx)("pre",{children:g})}),(0,s.jsxs)("p",{className:"diag-hint",children:[(0,s.jsx)("b",{children:d("diag.copyForAi",o.UI.diag.copyForAi)})," ",d("diag.hintText",o.UI.diag.hintText)," \xb7 ",(0,s.jsx)("b",{children:d("diag.downloadText",o.UI.diag.downloadText)})," ",d("diag.hintFile",o.UI.diag.hintFile)," \xb7",(0,s.jsxs)("b",{children:[" ",d("diag.downloadPage",o.UI.diag.downloadPage)]})," ",d("diag.hintPage",o.UI.diag.hintPage),"."]}),(0,s.jsxs)("div",{className:"diag-acts",children:[(0,s.jsx)("button",{className:"btn primary",...(0,w.uN)(h.markdown),onClick:()=>F("estate-check-".concat(j,".md"),"text/markdown",g),children:d("diag.downloadText",o.UI.diag.downloadText)}),(0,s.jsx)("button",{className:"btn",onClick:()=>F("estate-check-".concat(j,".html"),"text/html",function(e,n){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"en",s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,{needs:t,worth:r}=A(e,N(a)),i=I(a),l="ar"===N(a),o=(0,x.OL)(n);return'<!doctype html><html lang="'.concat(l?"ar":"en",'" dir="').concat(l?"rtl":"ltr",'"><head><meta charset="utf-8">\n<meta name="viewport" content="width=device-width, initial-scale=1">\n<title>').concat(P(i.title)," - ").concat(P(o),"</title>\n<style>\n :root { color-scheme: dark; }\n * { box-sizing: border-box; }\n body { margin: 0; background: #0A0D14; color: #E7ECF4; font: 15px/1.55 -apple-system, Segoe UI, system-ui, sans-serif; }\n main { max-width: 720px; margin: 0 auto; padding: 40px 24px 64px; }\n /* the masthead line, and the wordmark it carries */\n .brandline { font-weight: 800; font-size: 18px; margin: 0 0 14px; letter-spacing: .5px; }\n .brandline .maker { color: #9AA6BC; font-weight: 600; font-size: 14px; }\n footer .brand { font-weight: 700; }\n h1 { font-size: 26px; margin: 0 0 4px; }\n .sub { color: #9AA6BC; font-size: 14px; margin: 0 0 6px; }\n .safe { color: #3ECF8E; font-size: 13px; margin: 0 0 28px; }\n /* what moved since the last check - the page's own dim, no new colour */\n .since { color: #E7ECF4; font-size: 14px; margin: 0 0 10px; unicode-bidi: plaintext; }\n /* what a dead disk would cost, in the page's own amber, no new colour */\n .radius { color: #E8B23D; font-size: 14.5px; font-weight: 600; margin: 0 0 18px; unicode-bidi: plaintext; }\n h2 { font-size: 17px; margin: 30px 0 12px; padding-bottom: 8px; border-bottom: 1px solid rgba(148,163,214,.2); }\n .f { background: #0F1420; border: 1px solid rgba(148,163,214,.14); border-radius: 12px; padding: 14px 16px; margin: 0 0 10px; }\n h3 { font-size: 15px; margin: 0 0 6px; }\n .why { color: #9AA6BC; font-size: 13.5px; margin: 0 0 8px; }\n .lbl { color: #5C6880; font-size: 12px; text-transform: uppercase; letter-spacing: .1em; margin: 0 0 4px; }\n ul { margin: 0; padding-inline-start: 20px; } li { font-size: 13.5px; margin: 2px 0; }\n /* the estate is English inside an Arabic page: isolated, never reordered */\n h3, .fact, li, .why { unicode-bidi: plaintext; }\n .wkrow .cat { unicode-bidi: isolate; direction: ltr; }\n .brand { direction: ltr; unicode-bidi: isolate; display: inline-block; }\n .empty { color: #9AA6BC; }\n /* one fact per row: category, fact, why, and the depth behind Details */\n .wk { border: 1px solid rgba(148,163,214,.14); border-radius: 12px; overflow: hidden; }\n .wkrow { display: flex; align-items: baseline; gap: 12px; padding: 10px 14px; background: #0F1420; flex-wrap: wrap; }\n .wkrow + .wkrow { border-top: 1px solid rgba(148,163,214,.14); }\n .wkrow .cat { font: 500 11px ui-monospace, Consolas, monospace; letter-spacing: .12em; text-transform: uppercase; color: #8FB8FF; width: 96px; flex-shrink: 0; }\n .wkrow .fact { font-size: 13.5px; flex: 1 1 260px; min-width: 0; }\n .wkrow .why { color: #5C6880; font-size: 12.5px; }\n .wkrow details { flex-basis: 100%; margin-top: 6px; }\n .wkrow summary { cursor: pointer; color: #9AA6BC; font-size: 12.5px; }\n footer { margin-top: 32px; color: #5C6880; font-size: 12.5px; border-top: 1px solid rgba(148,163,214,.14); padding-top: 14px; }\n /* printed, every disclosure is open: a PDF cannot be clicked */\n @media print { body { background: #fff; color: #141A26; } .f, .wkrow { background: #f6f8fc; } details { display: block; } details > *:not(summary) { display: revert; } }\n</style></head>\n<body><main>\n <p class=\"brandline\">").concat((0,u.pl)("#4D7FFF"),' <span class="maker">by ').concat(P(u.rM),"</span></p>\n <h1>").concat(P(i.title),'</h1>\n <p class="sub">').concat(P(o)," \xb7 ").concat(t.length," need").concat(1===t.length?"s":""," attention, ").concat(r.length," worth a look</p>\n ").concat(C(s,a)?'<p class="since">'.concat(P(C(s,a)),"</p>"):"","\n ").concat(T(e)?'<p class="radius">'.concat(P(T(e)),"</p>"):"",'\n <p class="safe">').concat(P(i.safe),"</p>\n ").concat(((e,n,a,s)=>{if(0===n.length)return"<h2>".concat(P(e),'</h2><p class="empty">').concat(P(s),"</p>");let t=n.map((e,n)=>'\n <div class="f">\n <h3>'.concat(a?"".concat(n+1,". "):"").concat(P(e.title),"</h3>\n ").concat(e.why?'<p class="why">'.concat(P(e.why),"</p>"):"","\n ").concat(e.fixes.length?'<p class="lbl">'.concat(P(i.fix),"</p><ul>").concat(e.fixes.map(e=>"<li>".concat(P(e),"</li>")).join(""),"</ul>"):"","\n </div>")).join("");return"<h2>".concat(P(e),"</h2>").concat(t)})(i.needs,t,!0,i.noNeeds),"\n ").concat(((e,n,a)=>{if(0===n.length)return"<h2>".concat(P(e),'</h2><p class="empty">').concat(P(a),"</p>");let s=n.map(e=>{var n;return'\n <div class="wkrow">\n <span class="cat">'.concat(P(null!=(n=e.cat)?n:""),'</span>\n <div class="fact">').concat(P(e.title)).concat(e.why?'<span class="why"> - '.concat(P(e.why),"</span>"):"","</div>\n ").concat(e.fixes.length?"<details><summary>".concat(P(i.details),"</summary><ul>").concat(e.fixes.map(e=>"<li>".concat(P(e),"</li>")).join(""),"</ul></details>"):"","\n </div>")}).join("");return"<h2>".concat(P(e),'</h2><div class="wk">').concat(s,"</div>")})(i.worth,r,i.noWorth),"\n <footer>").concat(function(e,n,a){let s=String(e).indexOf(n);return -1===s?String(e):e.slice(0,s)+a+e.slice(s+n.length)}(P(i.foot),u.qt,(0,u.pl)("#4D7FFF")),"</footer>\n</main></body></html>")}(n,r,p,m)),children:d("diag.downloadPage",o.UI.diag.downloadPage)}),(0,s.jsx)("button",{className:"btn",...(0,w.uN)(h.copyEstateReport),onClick:b,children:i?d("btn.copied",o.UI.diag.copied):d("diag.copyForAi",o.UI.diag.copyForAi)}),(0,s.jsx)("button",{className:"btn ghost grow",onClick:a,children:(0,s.jsx)(c.T,{k:"btn.close",en:o.UI.common.close})})]})]})})}var z=a(639),R=a(7897),E=a(5163),B=a(2696),L=a(23),M=a(2613),D=a(3034),O=a(8106),V=a(6400),W=a(5834);function q(){var e,n,a,h,p,m,g,x,u;let j=(0,z.x)(),[f,b]=(0,t.useState)(null),[k,v]=(0,t.useState)(null),[y,N]=(0,t.useState)(!1),[I,U]=(0,t.useState)(!1),{radar:A,incidents:C,insights:T,insightsMuted:P,insightsPending:F,demo:O,projects:q,urls:_,views:G,collapsed:J,changes:K,attention:X}=j,{requestIgnore:$,showToast:Q,overlays:ee}=(0,R.Wj)(j),en=(0,d.$c)(null==(e=j.cfg)?void 0:e.lang),ea=(e,n)=>(0,d.tr)(en,e,n),es="ar"===en,et=(0,c.qN)(en);(0,t.useEffect)(()=>{let e=Object.keys(K);if(0===e.length)return;let n=setTimeout(()=>j.markSeen(e),12e3);return()=>clearTimeout(n)},[Object.keys(K).join("|")]);let er=e=>b(n=>n===e?null:e),ei=(0,V.yr)(T),el=e=>(0,E.YV)(X,e),eo=null!=(h=G.projects)?h:"cards",ec=null!=(p=G.urls)?p:"cards",ed=e=>"red"===e?2:+("amber"===e),eh=[...q].sort((e,n)=>{let a=Number(j.isPinned((0,R.yn)(n)))-Number(j.isPinned((0,R.yn)(e)));return 0!==a?a:ed(el((0,R.yn)(n)))-ed(el((0,R.yn)(e)))}),ep=[..._].sort((e,n)=>ed(el(n.entry.id))-ed(el(e.entry.id))),em=e=>{var n;return null!=(n=J[e])?n:"ignored"===e||"drawer"===e},eg=(0,t.useRef)(null),ex=(0,t.useRef)(null),eu=(0,R.j4)(eg,eh.length,260,[eo,em("projects"),null!=(m=null==X?void 0:X.items.length)?m:0,y,O]),ej=(0,R.j4)(ex,ep.length,40,[ec,em("sites"),eu,null!=(g=null==X?void 0:X.items.length)?g:0,y,O]),ef=eh.slice(0,eu),ew=eh.slice(eu),eb=ep.slice(0,ej),ek=ep.slice(ej),ev=X?(0,E.Pl)(X):null,ey=!!X&&(0,E.yy)(X)&&!!A,eN=!X||(0,E.yy)(X)?"idle":"INCIDENT"===X.state?"bad":"NEEDS_YOU"===X.state||"SAFETY"===X.state?"":"ok";return(0,s.jsxs)(r.Ay,{active:"/radar",cockpit:j,children:[(0,s.jsxs)("div",{className:"radar-head ".concat(eN),children:[(0,s.jsx)("div",{className:"rh-left",children:(0,s.jsx)("div",{className:"greet",children:function(e){let n=new Date().getHours();return n<5?e("greet.evening","Good evening"):n<12?e("greet.morning","Good morning"):n<17?e("greet.afternoon","Good afternoon"):e("greet.evening","Good evening")}(ea)})}),(0,s.jsx)("div",{className:"rh-right",children:(0,s.jsx)("div",{className:"row1",children:(0,s.jsx)("button",{className:"b",onClick:()=>U(!0),...(0,w.uN)(ea("radar.shareReportTip",o.UI.radar.shareReportTip)),children:(0,s.jsx)(c.T,{k:"btn.shareReport",en:o.UI.radar.shareReport})})})})]}),(0,s.jsx)(B.zU,{cockpit:j,onToast:Q}),!ey&&(0,s.jsxs)("div",{className:"radar-verdict ".concat(eN),children:[(0,s.jsx)("div",{className:"state",children:ev?(0,s.jsx)(c.P,{p:ev.lineP}):(0,s.jsx)(W.h,{children:ea("common.loading",o.UI.common.loading)})}),ev&&(0,s.jsx)("div",{className:"reason",children:(0,s.jsx)(c.P,{p:ev.underP})}),(0,s.jsx)(B.HE,{cockpit:j})]}),(0,s.jsxs)("div",{className:"pagebar",style:{marginBlockStart:4},children:[(0,s.jsx)("h1",{children:(0,s.jsx)(c.T,{k:"room.radar",en:o.UI.radar.title})}),(0,s.jsx)("span",{className:"purpose",children:(0,s.jsx)(c.T,{k:"radar.purpose",en:o.UI.radar.purpose})})]}),O&&(0,s.jsxs)("p",{className:"banner",children:[ea("banner.radarLead",o.UI.radar.bannerLead)," ",(0,s.jsx)("strong",{children:ea("banner.radarStrong",o.UI.radar.bannerStrong)})," ",ea("banner.radarRest",o.UI.radar.bannerRest)," ",(0,s.jsx)("button",{className:"link",onClick:()=>N(!0),children:ea("banner.radarLink",o.UI.radar.bannerLink)})," ",ea("banner.radarTail",o.UI.radar.bannerTail)]}),X&&X.items.length>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"sec",children:[(0,s.jsx)("h2",{children:(0,s.jsx)(c.T,{k:"sec.needsYou",en:o.UI.radar.needsYou})}),(0,s.jsxs)("span",{className:"meta",children:[(0,s.jsx)(D.V,{n:X.items.length})," \xb7 ",(0,s.jsx)(c.T,{k:"radar.needsYouAlways",en:o.UI.radar.needsYouAlways})]})]}),(0,L.bI)(X).map(e=>(0,s.jsx)(Y,{it:e,cockpit:j,demo:O,onIgnoreRequest:$,onFind:e=>v(e)},e.id))]}),(0,s.jsx)(H,{cockpit:j,collapsed:em("ignored")}),A?0===q.length&&0===_.length?(0,s.jsx)(Z,{cockpit:j}):(0,s.jsxs)(s.Fragment,{children:[q.length>0&&(0,s.jsxs)(s.Fragment,{children:[X&&X.items.length>0&&(0,s.jsx)("div",{className:"secline","aria-hidden":!0}),(0,s.jsxs)("div",{className:"sec",children:[(0,s.jsx)("h2",{children:(0,s.jsx)(c.T,{k:"sec.projects",en:o.UI.radar.projects})}),(0,s.jsxs)("span",{className:"meta",children:[(0,s.jsx)(D.V,{n:q.length})," \xb7 ",(0,s.jsx)(c.T,{k:"radar.projectsMeta",en:o.UI.radar.projectsMeta})]}),(0,s.jsxs)("div",{className:"tools",children:[(0,s.jsx)("button",{className:"b",...(0,w.uN)(et.watch),onClick:()=>N(!y),children:y?(0,s.jsx)(c.T,{k:"btn.close",en:o.UI.common.close}):(0,s.jsx)(c.T,{k:"btn.watchMore",en:o.UI.radar.watchMore})}),(0,s.jsx)(R.aA,{view:eo,onChange:e=>j.setView("projects",e)}),(0,s.jsx)(R.cc,{value:em("projects"),onChange:e=>j.setCollapsed("projects",e)}),(0,s.jsx)("a",{className:"seeall",href:"/projects",children:es?(0,s.jsxs)(s.Fragment,{children:[ea("more.seeAllProjects","")," (",(0,s.jsx)(D.V,{n:q.length}),") ","←"]}):o.UI.radar.seeAllProjects(q.length)})]})]}),y&&(0,s.jsx)("div",{className:"card plain",style:{marginBlockEnd:10},children:(0,s.jsx)(i.A,{watched:null!=(x=null==(n=j.cfg)?void 0:n.roots)?x:[],onChanged:()=>j.refresh(!0)})}),!em("projects")&&(0,s.jsxs)(s.Fragment,{children:["cards"===eo?(0,s.jsx)("div",{className:"grid",ref:eg,children:ef.map(e=>(0,s.jsx)(R.Uj,{p:e,tone:el((0,R.yn)(e)),cockpit:j,change:K[(0,R.yn)(e)],open:f===e.path,onToggle:()=>er(e.path),onIgnoreRequest:$,onToast:Q},e.path))}):(0,s.jsx)("div",{className:"irows",ref:eg,children:ef.map(e=>(0,s.jsx)(R.ou,{p:e,tone:el((0,R.yn)(e)),cockpit:j,change:K[(0,R.yn)(e)],open:f===e.path,onToggle:()=>er(e.path),onIgnoreRequest:$},e.path))}),ew.length>0&&(0,s.jsx)(s.Fragment,{children:(0,s.jsx)("div",{className:"cleanline",children:ew.every(e=>"clean"===el((0,R.yn)(e)))?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"okw",children:"✓"})," ",ew.every(e=>e.hasRemote||e.looksDownloaded)?es?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(D.V,{n:ew.length})," ",ea("more.cleanBacked","")]}):o.UI.radar.moreCleanBacked(ew.length):es?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(D.V,{n:ew.length})," ",ea("more.clean","")]}):o.UI.radar.moreClean(ew.length)]}):es?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(D.V,{n:ew.length})," ",ea("more.projects","")]}):(0,s.jsx)(s.Fragment,{children:o.UI.radar.moreProjects(ew.length)})})})]})]}),_.length>0&&(0,s.jsxs)(s.Fragment,{children:[q.length>0&&(0,s.jsx)("div",{className:"secline","aria-hidden":!0}),(0,s.jsxs)("div",{className:"sec",children:[(0,s.jsx)("h2",{children:(0,s.jsx)(c.T,{k:"sec.sites",en:o.UI.radar.sites})}),(0,s.jsxs)("span",{className:"meta",children:[(0,s.jsx)(D.V,{n:_.length})," \xb7 ",(0,s.jsx)(c.T,{k:"radar.sitesMeta",en:o.UI.radar.sitesMeta})]}),(0,s.jsxs)("div",{className:"tools",children:[(0,s.jsx)(R.aA,{view:ec,onChange:e=>j.setView("urls",e)}),(0,s.jsx)(R.cc,{value:em("sites"),onChange:e=>j.setCollapsed("sites",e)}),(0,s.jsx)("a",{className:"seeall",href:"/sites",children:es?(0,s.jsxs)(s.Fragment,{children:[ea("more.seeAllSites","")," (",(0,s.jsx)(D.V,{n:_.length}),") ","←"]}):o.UI.radar.seeAllSites(_.length)})]})]}),!em("sites")&&(0,s.jsxs)(s.Fragment,{children:["cards"===ec?(0,s.jsx)("div",{className:"grid",ref:ex,children:eb.map(e=>(0,s.jsx)(R.ct,{u:e,tone:el(e.entry.id),cockpit:j,incident:(0,R.G2)(C,e.entry.id),open:f===e.entry.id,onToggle:()=>er(e.entry.id),onIgnoreRequest:$},e.entry.id))}):(0,s.jsx)("div",{className:"irows",ref:ex,children:eb.map(e=>(0,s.jsx)(R.kc,{u:e,tone:el(e.entry.id),cockpit:j,incident:(0,R.G2)(C,e.entry.id),open:f===e.entry.id,onToggle:()=>er(e.entry.id),onIgnoreRequest:$},e.entry.id))}),ek.length>0&&(0,s.jsx)(s.Fragment,{children:(0,s.jsx)("div",{className:"cleanline",children:ek.every(e=>"clean"===el(e.entry.id))?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{className:"okw",children:"✓"})," ",es?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(D.V,{n:ek.length})," ",ea("more.sitesUp","")]}):o.UI.radar.moreSitesUp(ek.length)]}):es?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(D.V,{n:ek.length})," ",ea("more.sites","")]}):(0,s.jsx)(s.Fragment,{children:o.UI.radar.moreSites(ek.length)})})})]})]}),(0,V.ZT)(T).length>0&&(0,s.jsx)(V.LZ,{cockpit:j})]}):(0,s.jsxs)("div",{className:"sweep-wrap",children:[(0,s.jsx)("div",{className:"sweep","aria-hidden":!0}),(0,s.jsx)("span",{children:(0,s.jsx)(W.h,{children:ea("common.scanning",o.UI.common.scanning)})})]}),(null===T||ei.length>0||F>0||P.length>0)&&(0,s.jsxs)(s.Fragment,{children:[(q.length>0||_.length>0||X&&X.items.length>0)&&(0,s.jsx)("div",{className:"secline","aria-hidden":!0}),(0,s.jsxs)("div",{className:"sec",children:[(0,s.jsx)("h2",{children:(0,s.jsx)(c.T,{k:"sec.discoveries",en:o.UI.radar.discoveries})}),(0,s.jsxs)("span",{className:"meta",children:[(0,s.jsx)(D.V,{n:ei.length})," \xb7 ",(0,s.jsx)(c.T,{k:"radar.discoveriesMeta",en:o.UI.radar.discoveriesMeta}),ei.length>3?(0,s.jsxs)(s.Fragment,{children:[" \xb7 ",(0,s.jsx)(c.T,{k:"radar.discoveriesTop3",en:o.UI.radar.discoveriesTop3})]}):null]}),(0,s.jsxs)("div",{className:"tools",children:[(0,s.jsx)(R.cc,{value:em("discoveries"),onChange:e=>j.setCollapsed("discoveries",e),showLabel:o.UI.common.show,hideLabel:o.UI.common.hide,hideKey:"btn.hide"}),(0,s.jsx)("a",{className:"seeall",href:"/discoveries",children:es?(0,s.jsxs)(s.Fragment,{children:[ea("more.seeAllDiscoveries","")," (",(0,s.jsx)(D.V,{n:ei.length}),") ","←"]}):o.UI.radar.seeAll(ei.length)})]})]}),!em("discoveries")&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(M.hf,{done:j.insightsDeepTotal-F,total:j.insightsDeepTotal,working:null===T}),(0,s.jsx)("div",{className:"grid three",children:ei.slice(0,3).map(e=>(0,s.jsx)(l.JF,{d:e,cockpit:j},e.id))}),P.length>0&&(0,s.jsx)("div",{className:"disc-more",children:(0,s.jsxs)("span",{className:"m",children:[P.length," muted, named on the Discoveries page"]})})]})]}),k&&(0,s.jsx)("div",{className:"confirm-overlay",role:"dialog","aria-modal":"true",children:(0,s.jsxs)("div",{className:"confirm",style:{maxInlineSize:560},children:[(0,s.jsxs)("p",{children:[(0,s.jsx)("strong",{children:(0,s.jsx)(D.B,{children:function(e){var n;let a=e.split(/[\\/]/).filter(Boolean);return null!=(n=a[a.length-1])?n:e}(k)})})," ",(0,s.jsx)(c.T,{k:"radar.movedTail",en:o.UI.radar.movedTail})]}),(0,s.jsx)(i.A,{watched:null!=(u=null==(a=j.cfg)?void 0:a.roots)?u:[],autoBrowsePath:function(e){let n=e.split(/[\\/]/).filter(Boolean);return n.length>1?n.slice(0,-1).join("\\"):e}(k),replaceRoot:k,onChanged:()=>{v(null),j.refresh(!0)}}),(0,s.jsx)("div",{className:"setup-actions",children:(0,s.jsx)("button",{className:"b q",onClick:()=>v(null),children:(0,s.jsx)(c.T,{k:"btn.cancel",en:o.UI.common.cancel})})})]})}),I&&(0,s.jsx)(S,{cockpit:j,onClose:()=>U(!1)}),ee]})}function Z(e){var n,a;let{cockpit:r}=e,[l,d]=(0,t.useState)(null),h=(0,c.kj)();return(0,c.cO)(),(0,s.jsxs)("div",{className:"empty welcome",children:[(0,s.jsx)("p",{className:"invite",children:h("empty.invite",o.UI.radar.emptyInvite)}),(0,s.jsx)("p",{className:"wl",children:h("empty.line",o.UI.radar.emptyLine)}),(0,s.jsxs)("div",{className:"setup-actions",children:[(0,s.jsx)("button",{className:"btn ".concat("folder"===l?"":"primary"),"aria-pressed":"folder"===l,onClick:()=>d("folder"===l?null:"folder"),children:"folder"===l?h("btn.back",o.UI.radar.emptyBack):h("empty.pickFolder",o.UI.radar.emptyPickFolder)}),(0,s.jsx)("button",{className:"btn ".concat("site"===l?"":"primary"),"aria-pressed":"site"===l,onClick:()=>d("site"===l?null:"site"),children:"site"===l?h("btn.back",o.UI.radar.emptyBack):h("empty.pickSite",o.UI.radar.emptyPickSite)})]}),"folder"===l&&(0,s.jsx)(i.A,{watched:null!=(a=null==(n=r.cfg)?void 0:n.roots)?a:[],onChanged:()=>r.refresh(!0)}),"site"===l&&(0,s.jsx)(O.T,{cockpit:r}),(0,s.jsx)("p",{className:"someday",children:h("empty.someday",o.UI.radar.emptySomeday)})]})}function H(e){let{cockpit:n,collapsed:a}=e,t=(0,c.kj)(),r=(0,c.cO)();return 0===n.ignored.length?null:(0,s.jsxs)("div",{className:"ign2",children:[(0,s.jsxs)("div",{className:"ign2-row",children:[(0,s.jsxs)("span",{className:"n",...(0,w.uN)(r.ignore),children:[(0,s.jsx)(c.T,{k:"radar.ignoredLabel",en:o.UI.radar.ignoredLabel}),": ",(0,s.jsx)(D.V,{n:n.ignored.length})]}),a&&(0,s.jsx)("span",{className:"why",children:t("radar.ignoredStill",o.UI.radar.ignoredStill)}),(0,s.jsx)("button",{className:"b2 q ign2-toggle","aria-expanded":!a,onClick:()=>n.setCollapsed("ignored",!a),children:a?(0,s.jsx)(c.T,{k:"btn.show",en:o.UI.radar.ignoredShow}):(0,s.jsx)(c.T,{k:"btn.hide",en:o.UI.radar.ignoredHide})})]}),!a&&n.ignored.map(e=>(0,s.jsxs)("div",{className:"ign2-row item",children:[(0,s.jsxs)("span",{className:"item",children:[(0,s.jsx)(D.B,{children:e.label})," ",(0,s.jsx)("span",{className:"mono",children:"project"===e.kind?"project":"site"})]}),(0,s.jsx)("span",{className:"why",children:t("radar.ignoredStill",o.UI.radar.ignoredStill)}),(0,s.jsx)("button",{className:"b2 q",...(0,w.uN)(r.watch),onClick:()=>n.unignore(e.id),children:(0,s.jsx)(c.T,{k:"btn.watchAgain",en:o.UI.radar.watchAgain})})]},e.id))]})}function Y(e){var n,a,i,l,d;let{it:h,cockpit:p,demo:m,onIgnoreRequest:g,onFind:u}=e,j=(0,t.useContext)(r.vC),f=(0,r.cB)(),[b,k]=(0,t.useState)(!1),[v,y]=(0,t.useState)(!1),N=(0,t.useRef)(null);(0,t.useEffect)(()=>{var e,n;b&&v&&(null==(e=N.current)||e.scrollIntoView({block:"nearest"}),null==(n=N.current)||n.focus(),y(!1))},[b,v]);let I=(0,c.kj)(),U=(0,c.cO)(),A=(0,L.pd)(h),C="losable"===A?I("tag.losable",o.UI.radar.tagLosable):"money"===A?I("tag.money",o.UI.radar.tagMoney):I("tag.hygiene",o.UI.radar.tagHygiene),T="losable"===A?U.tagLosable:"money"===A?U.tagMoney:U.tagHygiene,P=[];return!h.handled&&(h.resurfaceId&&P.push({label:I("act.stillIgnore",o.UI.radar.stillIgnore),title:U.ignore,effect:I("eff.stillIgnore",o.UI.radar.effStillIgnore),onClick:()=>p.stillIgnore(h.resurfaceId)}),h.ignore&&!h.resurfaceId&&P.push({label:I("act.ignore",o.UI.radar.ignore),title:U.ignore,effect:I("eff.ignore",o.UI.radar.effIgnore),onClick:()=>g(h.ignore.id,h.ignore.kind,h.ignore.label,h.ignore.atRisk,"project"===h.ignore.kind?I("confirm.project",o.UI.radar.confirmProject):I("confirm.site",o.UI.radar.confirmSite),"site"===h.kind?{down:!0}:void 0)}),h.laterId&&P.push({label:I("act.later",o.UI.radar.later),title:U.later,effect:I("eff.later",o.UI.radar.effLater),onClick:()=>p.later(h.laterId)}),h.findPath&&P.push({label:I("act.stopWatching",o.UI.radar.stopWatching),title:U.unwatch,effect:I("eff.stopWatching",o.UI.radar.effStopWatching),danger:!0,onClick:()=>{p.post({action:"removeRoot",path:h.findPath}).then(e=>{e.ok&&p.resolveRow(h.findPath)})}})),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{[B.J6]:h.id,className:"need".concat(b?" open":"").concat("red"===h.tone&&!h.handled?" bad":"").concat(h.handled?" handled":""),children:[(0,s.jsx)("span",{className:"tag ".concat(A),...(0,w.uN)(T),children:C}),(0,s.jsxs)("div",{className:"txt",children:[(0,s.jsx)("b",{children:h.whatP?(0,s.jsx)(c.P,{p:h.whatP}):h.what}),(0,s.jsx)("span",{children:h.whyP?(0,s.jsx)(c.P,{p:h.whyP}):h.why})]}),h.since&&!(0,x.nW)(h.since,f)&&(0,s.jsx)("span",{className:"age",...(0,w.uN)(U.age),children:function(e){let n=Math.floor(e/6e4);return n<60?"".concat(Math.max(1,n),"m"):n<1440?"".concat(Math.floor(n/60),"h"):"".concat(Math.floor(n/1440),"d")}(f-h.since)}),(0,s.jsxs)("div",{className:"acts",children:[!h.handled&&(h.steps.length>0||(null!=(a=null==(n=h.devSteps)?void 0:n.length)?a:0)>0)&&(0,s.jsx)("button",{className:"b2",...(0,w.uN)(U.fix),onClick:()=>{k(!0),y(!0)},children:(0,s.jsx)(c.T,{k:"btn.fix",en:o.UI.session.fix})}),!h.handled&&h.checkId&&(0,s.jsx)("button",{className:"b2",...(0,w.uN)(U.check),onClick:()=>p.ack(h.checkId),children:I("act.check",o.UI.radar.check)}),!h.handled&&h.resurfaceId&&(0,s.jsx)("button",{className:"b2",...(0,w.uN)(U.watch),onClick:()=>p.unignore(h.resurfaceId),children:(0,s.jsx)(c.T,{k:"btn.watchAgain",en:o.UI.radar.watchAgain})}),!h.handled&&h.findPath&&(0,s.jsx)("button",{className:"b2",onClick:()=>u(h.findPath),children:I("act.findIt",o.UI.radar.findIt)}),(0,s.jsx)("button",{className:"b2 q",...(0,w.uN)(U.details),onClick:()=>k(!b),"aria-expanded":b,children:b?(0,s.jsx)(c.T,{k:"btn.hide",en:o.UI.common.hide}):(0,s.jsx)(c.T,{k:"btn.details",en:o.UI.common.details})}),(0,s.jsx)(M.ob,{actions:P})]}),h.handled&&(0,s.jsx)("span",{className:"ok-line handled-note",children:h.handledNoteP?(0,s.jsx)(c.P,{p:h.handledNoteP}):null!=(i=h.handledNote)?i:I("act.handled",o.UI.radar.handled)})]}),b&&(0,s.jsxs)("div",{className:"need-draw",children:[(0,s.jsxs)("div",{className:"need-detail rec",ref:N,tabIndex:-1,children:[(0,s.jsx)("span",{className:"k",children:I("fix.what",o.UI.session.fixHeadingWhat)}),(0,s.jsx)("span",{children:h.whyP?(0,s.jsx)(c.P,{p:h.whyP}):h.why}),(0,s.jsx)("span",{className:"k",children:I("fix.steps",o.UI.session.fixHeadingSteps)}),(null!=(l=h.stepsP)?l:h.steps.map(e=>({k:"",en:e}))).map((e,n)=>(0,s.jsx)("span",{children:(0,s.jsx)(c.P,{p:e})},n))]}),j&&h.devSteps&&h.devSteps.length>0&&(0,s.jsxs)("div",{className:"need-detail cmds",children:[(0,s.jsx)("span",{className:"k",children:I("fix.commands",o.UI.session.fixHeadingCommands)}),h.devSteps.map(e=>(0,s.jsx)(D.B,{mono:!0,children:e},e)),(0,s.jsx)(B.M0,{it:h})]}),h.openPath&&!m&&(0,s.jsxs)("div",{className:"draw-line",children:[(0,s.jsx)("span",{className:"k",children:I("radar.folder",o.UI.radar.folder)}),(0,s.jsx)(D.B,{mono:!0,children:h.openPath}),(0,s.jsx)(B.r8,{path:h.openPath})]}),(0,s.jsxs)("div",{className:"need-detail",children:[(0,s.jsx)("span",{className:"k",children:I("radar.whatISaw",o.UI.radar.whatISaw)}),(null!=(d=h.evidenceP)?d:h.evidence.map(e=>({k:"",en:e}))).map((e,n)=>(0,s.jsx)("span",{className:"mono",children:(0,s.jsx)(c.P,{p:e})},n))]})]})]})}},8106:(e,n,a)=>{"use strict";a.d(n,{T:()=>l});var s=a(5155),t=a(2115),r=a(436),i=a(5310);function l(e){let{cockpit:n,onAdded:a}=e,[l,o]=(0,t.useState)(""),[c,d]=(0,t.useState)(""),[h,p]=(0,t.useState)(!1),[m,g]=(0,t.useState)(null),x=(0,i.kj)(),u=async e=>{var s;if(e.preventDefault(),!l.trim())return;p(!0),g(null);let t=await n.post({action:"addUrl",url:l.trim(),label:c.trim()||void 0});p(!1),t.ok?(o(""),d(""),g({ok:!0,text:x("site.added",r.UI.radar.siteAdded)}),n.readHealth(),null==a||a()):g({ok:!1,text:null!=(s=t.message)?s:x("common.somethingWrong",r.UI.common.somethingWrong)})};return(0,s.jsxs)("form",{className:"setup",onSubmit:u,children:[(0,s.jsxs)("div",{className:"addrow",children:[(0,s.jsx)("input",{className:"in",type:"text",inputMode:"url",dir:"ltr",value:l,"aria-label":x("site.addrAria",r.UI.radar.siteAddrAria),placeholder:r.UI.radar.sitePlaceholder,onChange:e=>o(e.target.value)}),(0,s.jsx)("input",{className:"in",type:"text",value:c,"aria-label":x("site.nameAria",r.UI.radar.siteNameAria),placeholder:x("site.namePlaceholder",r.UI.radar.siteNamePlaceholder),onChange:e=>d(e.target.value)}),(0,s.jsx)("button",{className:"btn primary",type:"submit",disabled:h||!l.trim(),children:h?x("site.adding",r.UI.radar.siteAdding):x("site.add",r.UI.radar.siteAdd)})]}),m&&(0,s.jsx)("p",{className:m.ok?"ok-line":"error-line",children:m.text})]})}},8216:(e,n,a)=>{Promise.resolve().then(a.bind(a,1601))}},e=>{e.O(0,[3192,1681,7897,5623,2036,4097,8441,1255,7358],()=>e(e.s=8216)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7081],{2149:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>N});var a=r(5155),s=r(2115),n=r(7064),l=r(639),o=r(5163),i=r(8261),c=r(436),d=r(8706);function p(e,t,r){return{fact:e.en,factP:e,why:t.en,whyP:t,detail:r.en,detailP:r}}function h(e){var t;let r=[];if(e.oldestTodo&&r.push({cat:c.UI.report.catTimeCapsule,catKey:"report.catTimeCapsule",...p((0,d.ph)("wk.todoFact",'Your oldest note to yourself is still open, from {0}: "{1}"',e.oldestTodo.from,e.oldestTodo.quote),(0,d.pl)("wk.todoWhy",c.UI.report.wTodoWhy),(0,d.pl)("tip.todosTip",c.UI.report.todosTip))}),e.reclaimableBytes>5e7&&r.push({cat:c.UI.report.catHousekeeping,catKey:"report.catHousekeeping",...p((0,d.ph)("wk.spaceFact","{0} of downloaded code libraries sit in projects you have not touched in months",(t=e.reclaimableBytes)>=1e9?"".concat((t/1e9).toFixed(1)," GB"):"".concat(Math.round(t/1e6)," MB")),(0,d.pl)("wk.spaceWhy",c.UI.report.wSpaceWhy),(0,d.pl)("tip.reclaimableTip",c.UI.report.reclaimableTip))}),e.busiest&&r.push({cat:c.UI.report.catHistory,catKey:"report.catHistory",...p((0,d.ph)("wk.busiestFact","{0} is your busiest project, {1} commits",e.busiest.name,e.busiest.commits.toLocaleString()),(0,d.pl)("wk.busiestWhy",c.UI.report.wBusiestWhy),(0,d.pl)("tip.busiestTip",c.UI.report.busiestTip))}),e.anniversaries.length>0){let t=e.anniversaries[0];r.push({cat:c.UI.report.catMilestone,catKey:"report.catMilestone",...p((0,d.ph)("wk.birthdayFact","{0} turns {1} on {2}",t.name,t.years,t.when),(0,d.pl)("wk.birthdayWhy",c.UI.report.wBirthdayWhy),(0,d.pl)("tip.birthdayTip",c.UI.report.birthdayTip))})}return r}var u=r(7470),f=r(9178),m=r(4576),x=r(5310),g=r(3034),U=r(1551),j=r(9378),v=r(5964),I=r(9129),y=r(5834),k=r(797);function N(){var e,t;let r=(0,l.x)(),{delta:d}=(0,I.K)(r),[p,j]=(0,s.useState)(null),[N,L]=(0,s.useState)(!1),[A,E]=(0,s.useState)(!1);(0,s.useEffect)(()=>{fetch("/api/report",{cache:"no-store"}).then(e=>e.ok?e.json():null).then(e=>e&&"object"==typeof e&&"number"==typeof e.projects&&e.languages&&"object"==typeof e.languages?j(e):L(!0)).catch(()=>L(!0))},[]);let D=(0,U.$c)(null==(e=r.cfg)?void 0:e.lang),F=(e,t)=>(0,U.tr)(D,e,t),M="ar"===D,R=(0,x.qN)(D),O=function(e){var t,r,a,s,n,l;let i=e.projects.filter(e=>!e.looksDownloaded),d=i.filter(e=>e.uncommitted>0),p=i.filter(e=>{var t;return(null!=(t=e.ahead)?t:0)>0}),h=e.incidents.filter(e=>!e.endedTs).length,u=(null!=(a=null==(t=e.expiry)?void 0:t.items)?a:[]).filter(e=>"number"==typeof e.daysLeft).sort((e,t)=>{var r,a;return(null!=(r=e.daysLeft)?r:0)-(null!=(a=t.daysLeft)?a:0)})[0];return{needing:null!=(s=null==(r=e.attention)?void 0:r.open)?s:0,cleanBacked:i.filter(t=>{let r;return"clean"===(r=t.path.toLowerCase(),(0,o.YV)(e.attention,r))&&t.hasRemote}).length,sitesUp:e.urls.filter(e=>{var t;return null==(t=e.current)?void 0:t.ok}).length,sitesTotal:e.urls.length,unsavedProjects:d.length,unsavedChanges:d.reduce((e,t)=>e+t.uncommitted,0),unpushedCommits:p.reduce((e,t)=>{var r;return e+(null!=(r=t.ahead)?r:0)},0),unpushedProjects:p.length,notBackedUp:i.filter(e=>e.isGit&&e.remoteKnown&&!e.hasRemote).length,sitesQuiet:0===h,nextDate:u?{name:u.name,text:c.UI.report.dateIn(null!=(n=c.UI.ahead.kind[u.kind])?n:u.kind,u.daysLeft),judgment:null!=(l=u.judgment)?l:null}:null}}(r),W=(0,i.X2)(r.attention,r.projects),K=(null==p?void 0:p.languages)?Object.entries(p.languages).sort((e,t)=>t[1]-e[1]):[],V=K.reduce((e,t)=>{let[,r]=t;return e+r},0);return(0,a.jsxs)(n.Ay,{active:"/report",cockpit:r,children:[(0,a.jsxs)("div",{className:"pagebar",children:[(0,a.jsx)("h1",{children:(0,a.jsx)(x.T,{k:"room.report",en:c.UI.report.title})}),(0,a.jsx)("span",{className:"purpose",...(0,k.uN)(R.estate),children:(0,a.jsx)(x.T,{k:"report.purpose",en:c.UI.report.purpose})}),p&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{className:"scan",style:{marginInlineStart:"auto"},onClick:()=>{!function(e,t,r,a){let s=document.createElement("canvas");s.width=2400,s.height=1260;let n=s.getContext("2d");if(!n)return;n.scale(2,2),n.fillStyle=S.void,n.fillRect(0,0,1200,630);let l=n.createRadialGradient(983.9999999999999,-80,60,983.9999999999999,-80,700);l.addColorStop(0,"rgba(110,168,255,.10)"),l.addColorStop(1,"rgba(110,168,255,0)"),n.fillStyle=l,n.fillRect(0,0,1200,630);let o=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:400;return"".concat(t," ").concat(e,"px Inter, system-ui, sans-serif")},d=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:400;return"".concat(t," ").concat(e,'px "IBM Plex Mono", Consolas, monospace')};n.strokeStyle="rgba(148,163,214,.25)",n.lineWidth=4,n.beginPath(),n.arc(80,74,15,0,2*Math.PI),n.stroke(),n.strokeStyle=S.accent,n.lineCap="round",n.beginPath(),n.arc(80,74,15,-Math.PI/2,5*Math.PI/6),n.stroke(),n.fillStyle=S.accent,n.beginPath(),n.arc(80,74,4.5,0,2*Math.PI),n.fill(),n.fillStyle=S.text,n.font=o(28,800),n.textBaseline="middle",n.textAlign="left",n.fillText(c.UI.report.heading,108,75),n.textAlign="right",n.font=d(15),n.fillStyle=S.faint,n.fillText((0,u.OL)(e.generatedAt),1136,75),n.textBaseline="alphabetic",r&&(n.fillStyle=S.dim,n.font=o(15),n.textAlign="left",n.fillText(C(n,r,1072),64,108));let p=1048/3;if([[String(t.needing),c.UI.report.vNeeding(t.needing),t.needing>0?S.warn:S.ok],[String(t.cleanBacked),c.UI.report.vClean,S.ok],[0===t.sitesTotal?"-":"".concat(t.sitesUp,"/").concat(t.sitesTotal),c.UI.report.vSites,0===t.sitesTotal?S.dim:t.sitesUp===t.sitesTotal?S.ok:S.warn]].forEach((e,t)=>{let[r,a,s]=e,l=64+t*(p+12);n.fillStyle=S.panel,B(n,l,126,p,96,14),n.fill(),n.strokeStyle=S.line,n.lineWidth=1,B(n,l,126,p,96,14),n.stroke(),n.fillStyle=s,B(n,l+18,126,44,3,1.5),n.fill(),n.fillStyle=s,n.font=o(40,700),n.textAlign="left",n.fillText(r,l+20,184),n.fillStyle=S.dim,n.font=o(15),n.fillText(a,l+20,208)}),a){let e=(0,i.sx)(a);n.fillStyle="clean"===e.tone?S.ok:S.warn,n.font=o(17,700),n.textAlign="left",n.fillText(C(n,e.headline.en,1072),64,243)}n.fillStyle=S.faint,n.font=d(13,500),n.fillText(c.UI.report.rightNow.toUpperCase(),64,260);let h=[];h.push([c.UI.report.rUnsaved,t.unsavedProjects>0?c.UI.report.rUnsavedVal(t.unsavedProjects,t.unsavedChanges):c.UI.report.rNone,t.unsavedProjects>0?S.warn:S.ok]),t.unpushedCommits>0&&h.push([c.UI.report.rUnpushed,c.UI.report.rUnpushedVal(t.unpushedCommits,t.unpushedProjects),S.warn]),h.push([t.notBackedUp>0?c.UI.report.rNoBackup:c.UI.report.rEverythingElse,t.notBackedUp>0?c.UI.report.rNoBackupVal(t.notBackedUp):c.UI.report.rBackedUp,t.notBackedUp>0?S.warn:S.ok]),t.sitesTotal>0&&h.push([c.UI.report.rSites,t.sitesUp===t.sitesTotal?t.sitesQuiet?c.UI.report.rSitesAllUp:c.UI.report.rSitesUpNow:c.UI.report.rSitesDown(t.sitesTotal-t.sitesUp),t.sitesUp===t.sitesTotal?S.ok:S.warn]),t.nextDate&&h.push([c.UI.report.rNext,"".concat(t.nextDate.name," - ").concat(t.nextDate.text),S.dim]);let f=292;for(let[e,t,r]of h.slice(0,5))n.fillStyle=S.dim,n.font=o(17),n.textAlign="left",n.fillText(e,64,f),n.fillStyle=r,n.font=o(17,600),n.textAlign="right",n.fillText(P(t,46),534,f),n.strokeStyle=S.line,n.lineWidth=1,n.beginPath(),n.moveTo(64,f+12),n.lineTo(534,f+12),n.stroke(),f+=36;n.textAlign="left",n.fillStyle=S.faint,n.font=d(13,500),n.fillText(c.UI.report.inNumbers.toUpperCase(),640,260);let x=Object.entries(e.languages).sort((e,t)=>t[1]-e[1]),g=x.reduce((e,t)=>{let[,r]=t;return e+r},0);if(g>0){let e=640,t=[S.accent,"#8FB8FF","#4A7ACB","#3B5A8A"];x.slice(0,4).forEach((r,a)=>{let[,s]=r,l=s/g*496;n.fillStyle=t[a],n.fillRect(e,276,l,10),e+=l}),n.fillStyle=S.faint,n.fillRect(e,276,Math.max(0,1136-e),10)}let U=[[e.lines.toLocaleString(),c.UI.report.fLines],[String(e.projects),c.UI.report.fProjects]];x.length>0&&U.push([String(x.length),c.UI.report.fLanguages(x[0][0])]),null!=e.commits&&U.push([e.commits.toLocaleString(),c.UI.report.fCommits]),U.slice(0,4).forEach((e,t)=>{let[r,a]=e,s=640+t%2*248,l=312+84*Math.floor(t/2);n.fillStyle=S.inset,B(n,s,l,236,68,12),n.fill(),n.strokeStyle=S.line,n.lineWidth=1,B(n,s,l,236,68,12),n.stroke(),n.fillStyle=S.text,n.font=o(24,700),n.textAlign="left",n.fillText(r,s+16,l+32),n.fillStyle=S.faint,n.font=o(14),n.fillText(P(a,30),s+16,l+54)}),e.oldestTodo&&(n.fillStyle=S.dim,n.font="italic 400 17px Inter, system-ui, sans-serif",n.textAlign="left",n.fillText(C(n,'"'.concat(e.oldestTodo.quote,'" - ').concat(c.UI.report.wTodoFrom(e.oldestTodo.from)),1072),64,512)),n.font=d(13),n.textAlign="left";let j=(0,m.dv)(n,64,604,S.text,S.accent);n.fillStyle=S.faint,n.fillText(" ".concat(c.UI.shell.footBy," ").concat(m.rM," \xb7 ").concat(c.UI.report.imageFoot),j,604);let v=document.createElement("a");v.download="your-estate-".concat((0,u.rq)(e.generatedAt),".png"),v.href=s.toDataURL("image/png"),v.click()}(p,O,T(d,D),W)},children:F("report.download",c.UI.report.download)}),(0,a.jsx)("button",{className:"btn",onClick:()=>{!function(e,t,r,a){var s;let n=new Blob([function(e){var t;let{data:r,now:a,seal:s,date:n,since:l,radius:o}=e,i=[];i.push("# ".concat(c.UI.report.heading)),i.push("".concat(c.UI.report.asOf," ").concat(n)),i.push(""),l&&(i.push(l),i.push("")),o&&(i.push(o),i.push("")),i.push("- ".concat(a.needing," ").concat(c.UI.report.vNeeding(a.needing))),i.push("- ".concat(a.cleanBacked," ").concat(c.UI.report.vClean)),i.push("- ".concat(0===a.sitesTotal?"-":"".concat(a.sitesUp,"/").concat(a.sitesTotal)," ").concat(c.UI.report.vSites)),i.push(""),i.push("## ".concat(c.UI.report.rightNow)),i.push(""),i.push("- ".concat(c.UI.report.rUnsaved,": ").concat(a.unsavedProjects>0?c.UI.report.rUnsavedVal(a.unsavedProjects,a.unsavedChanges):c.UI.report.rNone)),a.unpushedCommits>0&&i.push("- ".concat(c.UI.report.rUnpushed,": ").concat(c.UI.report.rUnpushedVal(a.unpushedCommits,a.unpushedProjects))),i.push("- ".concat(a.notBackedUp>0?c.UI.report.rNoBackup:c.UI.report.rEverythingElse,": ").concat(a.notBackedUp>0?c.UI.report.rNoBackupVal(a.notBackedUp):c.UI.report.rBackedUp)),a.sitesTotal>0&&i.push("- ".concat(c.UI.report.rSites,": ").concat(a.sitesUp===a.sitesTotal?a.sitesQuiet?c.UI.report.rSitesAllUp:c.UI.report.rSitesUpNow:c.UI.report.rSitesDown(a.sitesTotal-a.sitesUp))),a.nextDate&&i.push("- ".concat(c.UI.report.rNext,": ").concat(a.nextDate.name," - ").concat(a.nextDate.text)),i.push(""),i.push("## ".concat(c.UI.report.inNumbers)),i.push(""),i.push("- ".concat(r.lines.toLocaleString()," ").concat(c.UI.report.fLines));let d=null!=(t=r.excludedCopies)?t:0;i.push("- ".concat(r.projects," ").concat(c.UI.report.fProjects).concat(d>0?" (".concat(c.UI.report.fProjectsExcluded(d),")"):""));let p=Object.entries(r.languages).sort((e,t)=>t[1]-e[1]);p.length>0&&i.push("- ".concat(p.length," ").concat(c.UI.report.fLanguages(p[0][0]))),null!=r.commits&&i.push("- ".concat(r.commits.toLocaleString()," ").concat(c.UI.report.fCommits)),i.push("");let h=[];if(r.oldestTodo&&h.push('- "'.concat(r.oldestTodo.quote,'" - ').concat(c.UI.report.wTodoFrom(r.oldestTodo.from))),r.busiest&&h.push("- ".concat(c.UI.report.wBusiestFact(r.busiest.name,r.busiest.commits))),h.length>0){for(let e of(i.push("## ".concat(c.UI.report.worthKnowing)),i.push(""),h))i.push(e);i.push("")}return i.push("---"),i.push(""),s.known?(i.push("".concat(m.qt," ").concat(s.id).concat(s.version?" (".concat(s.version,")"):"")),s.proves&&i.push(s.proves)):s.note&&i.push(s.note),i.push(""),i.push("".concat(m.qt," ").concat(c.UI.shell.footBy," ").concat(m.rM," \xb7 ").concat(c.UI.report.imageFoot)),(0,v.dK)(i.join("\n"))}({data:e,now:{needing:t.needing,cleanBacked:t.cleanBacked,sitesUp:t.sitesUp,sitesTotal:t.sitesTotal,unsavedProjects:t.unsavedProjects,unsavedChanges:t.unsavedChanges,unpushedCommits:t.unpushedCommits,unpushedProjects:t.unpushedProjects,notBackedUp:t.notBackedUp,sitesQuiet:t.sitesQuiet,nextDate:t.nextDate?{name:t.nextDate.name,text:t.nextDate.text}:null},seal:e.build,date:(0,u.OL)(e.generatedAt),since:r,radius:a?(0,i.sx)(a).headline.en:null})],{type:"text/markdown"}),l=URL.createObjectURL(n),o=document.createElement("a");s=(0,u.rq)(e.generatedAt),o.download="your-estate-".concat(s,".md"),o.href=l,o.click(),setTimeout(()=>URL.revokeObjectURL(l),2e3)}(p,O,T(d,D),W)},children:F("report.downloadText",c.UI.report.downloadText)}),(0,a.jsx)("button",{className:"btn",disabled:A,onClick:()=>{E(!0),fetch("/api/card",{cache:"no-store"}).then(e=>e.ok?e.json():null).then(e=>{(null==e?void 0:e.card)&&function(e,t){let r=document.createElement("canvas");r.width=2160,r.height=2700;let a=r.getContext("2d");if(!a)return;a.scale(2,2);let s=(e,r)=>(0,U.tr)(t,e,r);a.fillStyle=S.void,a.fillRect(0,0,1080,1350);let n=a.createRadialGradient(540,120,80,540,120,900);n.addColorStop(0,"rgba(77,127,255,.14)"),n.addColorStop(1,"rgba(77,127,255,0)"),a.fillStyle=n,a.fillRect(0,0,1080,1350);let l=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return"".concat(t?700:400," ").concat(e,"px Inter, system-ui, sans-serif")},o=e=>"400 ".concat(e,'px "IBM Plex Mono", Consolas, monospace');a.textBaseline="middle";let i=(0,u.OL)(e.generatedAt);a.font=o(20);let d=a.measureText(i).width;a.fillStyle=S.faint,a.textAlign="right",a.fillText(i,1e3,88),a.font=l(30,!0),a.fillStyle=S.text,a.textAlign="left",a.fillText(C(a,s("sec.reportHeading",c.UI.report.heading),920-d-24),80,88),a.textAlign="center",a.fillStyle=S.text,a.font=l(200,!0),a.fillText(e.lines.toLocaleString(),540,232),a.fillStyle=S.dim,a.font=l(30),a.fillText(s("card.heroLabel",c.UI.card.heroLabel).replace("{0}",String(e.projects)),540,366),a.fillStyle=S.faint,a.font=l(21),a.fillText(s("card.heroSub",c.UI.card.heroSub),540,412);let p=[[s("card.statLanguages",c.UI.card.statLanguages),String(e.languages)],...null===e.ageDays?[]:[[s("card.statAge",c.UI.card.statAge),(0,f.LS)(e.ageDays,"day")]],[s("card.statBranches",c.UI.card.statBranches),String(e.branches)],[s("card.statCommits",c.UI.card.statCommits),String(e.total)],[s("card.statReadProjects",c.UI.card.statReadProjects),String(e.readProjects)],...0!==e.busiestProject&&e.busiestProjectName?[[s("card.statBusiestProject",c.UI.card.statBusiestProject).replace("{0}",(0,f.LS)(e.busiestProject,"commit")),e.busiestProjectName]]:[]],h=e.projects>0;h||(a.fillStyle=S.dim,a.font=l(30),a.fillText(s("card.emptyEstate",c.UI.card.emptyEstate),540,512));let x=920/3;h&&p.forEach((e,t)=>{let[r,s]=e,n=Math.floor(t/3),o=80+920/3*(t%3+.5),i=512+156*n,c=(e=>{for(let t=58;t>=26;t-=4)if(a.font=l(t,!0),a.measureText(e).width<=x-16)return{font:l(t,!0),text:e};a.font=l(26,!0);let t=e;for(;t.length>1&&a.measureText(t+"…").width>x-16;)t=t.slice(0,-1);return{font:l(26,!0),text:t+"…"}})(s);a.fillStyle=S.text,a.font=c.font,a.fillText(c.text,o,i),a.fillStyle=S.faint,a.font=l(20),a.fillText(r,o,i+54)});if(h){a.fillStyle=S.faint,a.font=l(20),a.fillText(s("card.gridHead",c.UI.card.gridHead),540,784);let t=Math.round(309.5),r=824,n=Math.max(1,e.busiestDay);for(let s=0;s<12;s++)for(let l=0;l<7;l++){let o=7*s+l,i=e.days[o],c=t+39*s,d=r+39*l,p=i?i.commits:0;if(0===p)a.fillStyle="rgba(148,163,214,.10)";else{let e=Math.min(1,p/n);a.fillStyle="rgba(77,127,255,".concat((.28+.72*e).toFixed(3),")")}B(a,c,d,32,32,6),a.fill()}}h&&e.capped&&(a.fillStyle=S.faint,a.font=l(18),a.fillText(s("card.capped",c.UI.card.capped).replace("{0}",String(e.readProjects)),540,1174)),a.fillStyle=S.dim,a.font=o(18),a.fillText(e.seal.known&&e.seal.id?s("card.seal",c.UI.card.seal).replace("{0}",e.seal.id):s("card.sealNoBuild",c.UI.card.sealNoBuild),540,1218),a.font=l(20,!0);let g=s("card.foot",c.UI.card.foot),j=a.measureText(g).width;a.textAlign="left";let v=Math.round((1080-j)/2),I=(0,m.dv)(a,v,1280,S.text,S.accent);a.fillStyle=S.faint,a.font=l(20),a.fillText(" ".concat(c.UI.shell.footBy," ").concat(m.rM),I,1280);let y=document.createElement("a");y.download="af360-card-".concat((0,u.rq)(Date.now()),".png"),y.href=r.toDataURL("image/png"),y.click()}(e.card,D)}).catch(()=>{}).finally(()=>E(!1))},children:F("card.button",c.UI.card.button)})]})]}),(null==p?void 0:p.demo)&&(0,a.jsxs)("p",{className:"banner",children:[F("banner.reportLead",c.UI.report.bannerLead)," ",(0,a.jsx)("a",{className:"link",href:"/radar",children:F("banner.radarLink",c.UI.report.bannerLink)})," ",F("banner.reportTail",c.UI.report.bannerTail)]}),N?(0,a.jsx)("p",{className:"error-line",children:F("report.failed",c.UI.report.failed)}):p?0===p.projects?(0,a.jsxs)("div",{className:"empty",children:[(0,a.jsx)("p",{className:"invite",children:F("report.emptyInvite",c.UI.report.emptyInvite)}),(0,a.jsx)("p",{children:F("report.emptyLine",c.UI.report.emptyLine)}),(0,a.jsx)("a",{className:"btn primary",href:"/radar",children:F("btn.goRadar",c.UI.report.goRadar)})]}):(0,a.jsxs)("div",{className:"er",children:[(0,a.jsxs)("div",{className:"er-head",children:[(0,a.jsx)("h1",{children:(0,a.jsx)(x.T,{k:"sec.reportHeading",en:c.UI.report.heading})}),(0,a.jsxs)("span",{className:"when",children:[F("report.asOf",c.UI.report.asOf)," ",(0,a.jsx)(g.En,{children:(0,a.jsx)(n.fV,{ts:p.generatedAt,skewForm:"core"})})," - ",(0,a.jsx)(g.En,{children:new Date(p.generatedAt).toLocaleDateString([],{month:"long",day:"numeric"})})]})]}),(0,a.jsx)("div",{className:"er-sub",children:F("report.sub",c.UI.report.sub)}),(0,a.jsxs)("div",{className:"verdict",children:[(0,a.jsxs)("div",{className:"vcard ".concat(O.needing>0?"warn":"ok"),children:[(0,a.jsx)("div",{className:"big",children:O.needing}),(0,a.jsx)("div",{className:"lbl",children:F("report.vNeeding",c.UI.report.vNeeding(O.needing))})]}),(0,a.jsxs)("div",{className:"vcard ok",children:[(0,a.jsx)("div",{className:"big",children:O.cleanBacked}),(0,a.jsx)("div",{className:"lbl",children:F("report.vClean",c.UI.report.vClean)})]}),(0,a.jsxs)("div",{className:"vcard ".concat(0===O.sitesTotal?"info":O.sitesUp===O.sitesTotal?"ok":"warn"),children:[(0,a.jsx)("div",{className:"big",children:0===O.sitesTotal?"-":"".concat(O.sitesUp,"/").concat(O.sitesTotal)}),(0,a.jsx)("div",{className:"lbl",children:F("report.vSites",c.UI.report.vSites)})]})]}),(0,a.jsxs)("div",{className:"er-block",children:[(0,a.jsx)("h4",{children:(0,a.jsx)(x.T,{k:"sec.rightNow",en:c.UI.report.rightNow})}),(0,a.jsxs)("div",{className:"er-row",children:[(0,a.jsx)("span",{className:"k",children:F("report.rUnsaved",c.UI.report.rUnsaved)}),(0,a.jsx)("span",{className:"v",style:{color:O.unsavedProjects>0?"var(--warn)":"var(--ok)"},children:O.unsavedProjects>0?c.UI.report.rUnsavedVal(O.unsavedProjects,O.unsavedChanges):F("report.rNone",c.UI.report.rNone)})]}),O.unpushedCommits>0&&(0,a.jsxs)("div",{className:"er-row",children:[(0,a.jsx)("span",{className:"k",children:F("report.rUnpushed",c.UI.report.rUnpushed)}),(0,a.jsx)("span",{className:"v",style:{color:"var(--warn)"},children:c.UI.report.rUnpushedVal(O.unpushedCommits,O.unpushedProjects)})]}),(0,a.jsxs)("div",{className:"er-row",children:[(0,a.jsx)("span",{className:"k",children:O.notBackedUp>0?F("report.rNoBackup",c.UI.report.rNoBackup):F("report.rEverythingElse",c.UI.report.rEverythingElse)}),(0,a.jsx)("span",{className:"v",style:{color:O.notBackedUp>0?"var(--warn)":"var(--ok)"},children:O.notBackedUp>0?c.UI.report.rNoBackupVal(O.notBackedUp):F("report.rBackedUp",c.UI.report.rBackedUp)})]}),O.sitesTotal>0&&(0,a.jsxs)("div",{className:"er-row",children:[(0,a.jsx)("span",{className:"k",children:F("report.rSites",c.UI.report.rSites)}),(0,a.jsx)("span",{className:"v",style:{color:O.sitesUp===O.sitesTotal?"var(--ok)":"var(--warn)"},children:O.sitesUp===O.sitesTotal?O.sitesQuiet?F("report.rSitesAllUp",c.UI.report.rSitesAllUp):F("report.rSitesUpNow",c.UI.report.rSitesUpNow):M?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(g.V,{n:O.sitesTotal-O.sitesUp})," ",F("report.rSitesDownTail","")]}):c.UI.report.rSitesDown(O.sitesTotal-O.sitesUp)})]}),O.nextDate&&(0,a.jsxs)("div",{className:"er-row wrap",children:[(0,a.jsx)("span",{className:"k",children:F("report.rNext",c.UI.report.rNext)}),(0,a.jsxs)("span",{className:"v mono",children:[O.nextDate.name," - ",O.nextDate.text]}),O.nextDate.judgment&&(0,a.jsx)("span",{className:"er-why",children:O.nextDate.judgment})]})]}),(0,a.jsxs)("div",{className:"er-block",children:[(0,a.jsx)("h4",{children:(0,a.jsx)(x.T,{k:"sec.inNumbers",en:c.UI.report.inNumbers})}),K.length>0&&V>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"langbar",role:"img","aria-label":F("report.langAria",c.UI.report.langAria),children:[K.slice(0,4).map((e,t)=>{let[r,s]=e;return(0,a.jsx)("span",{...(0,k.uN)("".concat(r," \xb7 ").concat(s.toLocaleString()," ").concat(F("report.linesWord",c.UI.report.linesWord))),style:{inlineSize:"".concat(s/V*100,"%"),background:w[t]}},r)}),K.length>4&&(0,a.jsx)("span",{...(0,k.uN)(F("report.langRest",c.UI.report.langRest)),style:{inlineSize:"".concat(K.slice(4).reduce((e,t)=>{let[,r]=t;return e+r},0)/V*100,"%"),background:"var(--faint)"}})]}),(0,a.jsx)("div",{className:"langkey",children:K.slice(0,4).map((e,t)=>{let[r]=e;return(0,a.jsxs)("span",{children:[(0,a.jsx)("i",{style:{background:w[t]}}),r]},r)})})]}),(0,a.jsxs)("div",{className:"facts",children:[(0,a.jsxs)("div",{className:"fact",children:[(0,a.jsx)("div",{className:"n",children:p.lines.toLocaleString()}),(0,a.jsx)("div",{className:"l",children:F("report.fLines",c.UI.report.fLines)})]}),(0,a.jsxs)("div",{className:"fact",children:[(0,a.jsx)("div",{className:"n",children:p.projects}),(0,a.jsx)("div",{className:"l",children:F("report.fProjects",c.UI.report.fProjects)}),(null!=(t=p.excludedCopies)?t:0)>0&&(0,a.jsx)("div",{className:"l excl",children:M?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(g.V,{n:p.excludedCopies})," ",F("report.fProjectsExcluded","")]}):c.UI.report.fProjectsExcluded(p.excludedCopies)})]}),K.length>0&&(0,a.jsxs)("div",{className:"fact",children:[(0,a.jsx)("div",{className:"n",children:K.length}),(0,a.jsx)("div",{className:"l",children:M?(0,a.jsxs)(a.Fragment,{children:[F("report.fLanguagesTail","")," ",(0,a.jsx)(g.B,{children:K[0][0]})]}):c.UI.report.fLanguages(K[0][0])})]}),null!=p.commits&&(0,a.jsxs)("div",{className:"fact",children:[(0,a.jsx)("div",{className:"n",children:p.commits.toLocaleString()}),(0,a.jsx)("div",{className:"l",children:F("report.fCommits",c.UI.report.fCommits)})]})]})]}),h(p).length>0&&(0,a.jsxs)("div",{className:"er-block",children:[(0,a.jsx)("h4",{children:(0,a.jsx)(x.T,{k:"sec.worthKnowing",en:c.UI.report.worthKnowing})}),(0,a.jsx)("p",{className:"er-subline",children:F("report.worthKnowingSub",c.UI.report.worthKnowingSub)}),(0,a.jsx)("div",{className:"wk",children:h(p).map(e=>(0,a.jsx)(b,{row:e},e.cat+e.fact))})]})]}):(0,a.jsxs)("div",{className:"sweep-wrap",children:[(0,a.jsx)("div",{className:"sweep","aria-hidden":!0}),(0,a.jsx)("span",{children:(0,a.jsx)(y.h,{children:F("report.counting",c.UI.report.counting)})})]})]})}function b(e){let{row:t}=e,[r,n]=(0,s.useState)(!1),l=(0,x.kj)();return(0,x.cO)(),(0,a.jsxs)("div",{className:"wkrow".concat(r?" open":""),children:[(0,a.jsx)("span",{className:"cat mono",children:l(t.catKey,t.cat)}),(0,a.jsxs)("div",{className:"fact",children:[t.factP?(0,a.jsx)(x.P,{p:t.factP}):t.fact,t.why&&(0,a.jsxs)("span",{className:"why",children:[" - ",t.whyP?(0,a.jsx)(x.P,{p:t.whyP}):t.why]})]}),(0,a.jsx)("button",{className:"b2 q wk-details","aria-expanded":r,onClick:()=>n(!r),children:r?l("btn.hide",c.UI.common.hide):l("report.detailsLabel",c.UI.report.detailsLabel)}),r&&(0,a.jsx)("div",{className:"wkdepth",children:t.detailP?(0,a.jsx)(x.P,{p:t.detailP}):t.detail})]})}let w=["var(--accent)","var(--info)","color-mix(in srgb, var(--accent) 55%, var(--panel))","color-mix(in srgb, var(--info) 40%, var(--panel))"],S={void:"#0A0D14",panel:"#0F1420",inset:"#0E1526",line:"rgba(148,163,214,.18)",text:"#E7ECF4",dim:"#9AA6BC",faint:"#5C6880",accent:"#4D7FFF",ok:"#3ECF8E",warn:"#E8B23D"};function T(e,t){if(!e)return null;let r=null===e.since?"":(0,u.OL)(e.since);return(0,j.lz)(e,(e,r)=>(0,U.tr)(t,e,r),r)}function B(e,t,r,a,s,n){e.beginPath(),e.moveTo(t+n,r),e.arcTo(t+a,r,t+a,r+s,n),e.arcTo(t+a,r+s,t,r+s,n),e.arcTo(t,r+s,t,r,n),e.arcTo(t,r,t+a,r,n),e.closePath()}function P(e,t){return e.length>t?e.slice(0,t-1)+"…":e}function C(e,t,r){if(e.measureText(t).width<=r)return t;let a=t.split(" "),s="";for(let t of a){if(e.measureText("".concat(s).concat(s?" ":"").concat(t,"…")).width>r)break;s+=(s?" ":"")+t}return(s||t.slice(0,8))+"…"}},9576:(e,t,r)=>{Promise.resolve().then(r.bind(r,2149))}},e=>{e.O(0,[3192,1681,2036,8441,1255,7358],()=>e(e.s=9576)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9437],{1804:(e,s,t)=>{Promise.resolve().then(t.bind(t,4421))},4421:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>I});var i=t(5155),n=t(2115),a=t(7064),r=t(639),l=t(7897),c=t(5163),d=t(436),o=t(5310),u=t(8106),p=t(3034),m=t(6400),h=t(5834),v=t(1551);function j(e){let{s,cockpit:t}=e,[a,r]=(0,n.useState)(!1),l=(0,o.kj)(),c=s.current,u=!!c&&!c.ok,m=u&&"number"==typeof(null==c?void 0:c.status);return(0,i.jsxs)("div",{className:"irow svcrow".concat(u?" bad":""),children:[(0,i.jsxs)("div",{className:"irow-line",children:[(0,i.jsxs)("button",{className:"irow-main",onClick:()=>r(!a),"aria-expanded":a,children:[(0,i.jsx)("span",{className:"dot ".concat(c?u?"r":"g":"u"),"aria-hidden":!0}),(0,i.jsx)("span",{className:"irow-name",children:s.entry.label}),(0,i.jsx)("span",{className:"irow-truth".concat(u?" bad":""),children:!c||s.checking?(0,i.jsx)(h.h,{children:l("svc.asking",d.UI.sites.svcAsking)}):u?m?(0,i.jsxs)(i.Fragment,{children:[l("svc.errorReply",d.UI.sites.svcErrorReply)," ",(0,i.jsx)(p.V,{n:c.status})]}):l("svc.noAnswer",d.UI.sites.svcNoAnswer):l("svc.answered",d.UI.sites.svcAnswered)}),(0,i.jsx)("span",{className:"irow-path",dir:"ltr",children:s.entry.endpoint})]}),(0,i.jsx)("span",{className:"qk",children:(0,i.jsx)("button",{className:"b2 q danger",onClick:()=>void t.post({action:"removeService",id:s.entry.id}).then(()=>t.readServices()),children:(0,i.jsx)(o.T,{k:"svc.remove",en:d.UI.sites.removeService})})})]}),a&&(0,i.jsxs)("div",{className:"irow-detail",children:[(0,i.jsx)("p",{children:"status"===s.entry.endpointKind?l("svc.viaStatus",d.UI.sites.svcViaStatus):l("svc.viaHome",d.UI.sites.svcViaHome)}),(0,i.jsx)("p",{className:"svc-bound",children:l("svc.notTheWorld",d.UI.sites.svcNotTheWorld)})]})]})}function x(e){var s,t;let{cockpit:n}=e;(0,o.kj)();let a=function(e,s){let t=new Map((null!=s?s:[]).map(e=>[e.entry.id,e]));return e.map(e=>{let s=t.get(e.id);return s?{...s,entry:e}:{entry:e,current:null,since:null}})}(null!=(t=null==(s=n.cfg)?void 0:s.services)?t:[],n.services);return 0===a.length?null:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:"sec",children:[(0,i.jsx)("h2",{children:(0,i.jsx)(o.T,{k:"sites.groupServices",en:d.UI.sites.groupServices})}),(0,i.jsxs)("span",{className:"meta",children:[(0,i.jsx)(p.V,{n:a.length})," \xb7 ",(0,i.jsx)(o.T,{k:"sites.servicesPurpose",en:d.UI.sites.servicesPurpose})]})]}),(0,i.jsx)("div",{className:"irows",children:a.map(e=>(0,i.jsx)(j,{s:e,cockpit:n},e.entry.id))})]})}function g(e){var s,t;let{presets:a,cockpit:r}=e,l=(0,o.kj)(),[c,u]=(0,n.useState)(null),[p,m]=(0,n.useState)(null),h=new Set((null!=(t=null==(s=r.cfg)?void 0:s.services)?t:[]).map(e=>e.service)),v=a.filter(e=>!h.has(e.service));if(0===a.length)return(0,i.jsx)("p",{className:"svc-bound",children:l("svc.noPresets",d.UI.sites.servicesNoPresets)});async function j(e){var s;u(e),m(null);let t=await r.post({action:"addService",service:e});t.ok?await r.readServices():m(null!=(s=t.message)?s:null),u(null)}return(0,i.jsxs)(i.Fragment,{children:[0===h.size&&(0,i.jsx)("p",{className:"svc-bound",children:l("svc.noneAdded",d.UI.sites.servicesNoneAdded)}),v.length>0&&(0,i.jsxs)("p",{className:"svc-add",children:[(0,i.jsx)("span",{className:"k",children:l("svc.add",d.UI.sites.addService)})," ",v.map(e=>(0,i.jsx)("button",{className:"b2 q",disabled:null!==c,onClick:()=>void j(e.service),children:e.label},e.service))]}),p&&(0,i.jsx)("span",{className:"error-line",children:p})]})}function N(e){let{name:s,count:t,onRemove:a}=e,r=(0,o.kj)(),[l,c]=(0,n.useState)(!1);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:"sec",children:[(0,i.jsx)("h2",{children:s}),(0,i.jsxs)("span",{className:"meta",children:[(0,i.jsx)(p.V,{n:t})," ",1===t?r("sites.unitSite",d.UI.sites.unitSite):r("sites.unitSites",d.UI.sites.unitSites)]}),a&&(0,i.jsx)("div",{className:"tools",children:(0,i.jsx)("button",{className:"b".concat(l?" on":""),onClick:()=>c(!l),"aria-expanded":l,children:r("sites.removeGroup",d.UI.sites.removeGroup)})})]}),l&&a&&(0,i.jsxs)("p",{className:"ok-line",children:[r("sites.removeGroupNote",d.UI.sites.removeGroupNote)," ",(0,i.jsx)("button",{className:"b2 danger",onClick:()=>{c(!1),a()},children:r("sites.removeGroup",d.UI.sites.removeGroup)})]})]})}function k(e){let{cockpit:s,onAdded:t}=e,[a,r]=(0,n.useState)(""),[l,c]=(0,n.useState)(null),u=(0,o.kj)();return(0,i.jsxs)("form",{className:"setup",onSubmit:async e=>{var i;if(e.preventDefault(),!a.trim())return;let n=await s.post({action:"addGroup",name:a.trim()});n.ok?(r(""),c(null),null==t||t()):c(null!=(i=n.message)?i:u("common.somethingWrong",d.UI.common.somethingWrong))},children:[(0,i.jsxs)("div",{className:"addrow",children:[(0,i.jsx)("input",{className:"in",type:"text",value:a,autoFocus:!0,"aria-label":u("sites.groupNameAria",d.UI.sites.groupNameAria),placeholder:u("sites.groupNamePlaceholder",d.UI.sites.groupNamePlaceholder),onChange:e=>r(e.target.value)}),(0,i.jsx)("button",{className:"btn primary",type:"submit",disabled:!a.trim(),children:u("sites.createGroup",d.UI.sites.createGroup)})]}),l&&(0,i.jsx)("p",{className:"error-line",children:l})]})}function b(e){let{cockpit:s,siteId:t,groups:n,current:a}=e,r=(0,o.kj)();return 0===n.length?null:(0,i.jsxs)("select",{className:"in gsel",value:null!=a?a:"","aria-label":r("sites.fileIn",d.UI.sites.fileIn),onChange:e=>void s.post({action:"setSiteGroup",id:t,group:e.target.value||null}),children:[(0,i.jsx)("option",{value:"",children:r("sites.groupYours",d.UI.sites.groupYours)}),n.map(e=>(0,i.jsx)("option",{value:e.id,children:e.name},e.id))]})}let y=[{service:"github",label:"GitHub",endpoint:"https://www.githubstatus.com/api/v2/status.json",endpointKind:"status"},{service:"cloudflare",label:"Cloudflare",endpoint:"https://www.cloudflarestatus.com/api/v2/status.json",endpointKind:"status"},{service:"vercel",label:"Vercel",endpoint:"https://www.vercel-status.com/api/v2/status.json",endpointKind:"status"},{service:"netlify",label:"Netlify",endpoint:"https://www.netlifystatus.com/api/v2/status.json",endpointKind:"status"},{service:"npm",label:"npm",endpoint:"https://status.npmjs.org/api/v2/status.json",endpointKind:"status"},{service:"railway",label:"Railway",endpoint:"https://railway.com/",endpointKind:"home"}];function I(){var e,s,t,j;let I=(0,r.x)(),[w,U]=(0,n.useState)(null),[f,S]=(0,n.useState)(!1),[A,G]=(0,n.useState)(!1),{urls:C,health:T,incidents:P,attention:V}=I,{requestIgnore:R,overlays:F}=(0,l.Wj)(I),K=null!=(t=I.views.urls)?t:"cards",W=e=>(0,c.YV)(V,e),_=e=>"red"===e?2:+("amber"===e),q=[...C].sort((e,s)=>_(W(s.entry.id))-_(W(e.entry.id))),M=q.filter(e=>{var s;return null==(s=e.current)?void 0:s.ok}).length,Y=e=>U(s=>s===e?null:e),E=(0,v.$c)(null==(e=I.cfg)?void 0:e.lang),H=(e,s)=>(0,v.tr)(E,e,s),L="ar"===E,B=null!=(j=null==(s=I.cfg)?void 0:s.siteGroups)?j:[],D=e=>B.some(s=>s.id===e.entry.group)?e.entry.group:void 0,O=e=>{let s=(e,s)=>(0,i.jsx)(b,{cockpit:I,siteId:e,groups:B,current:s});return"cards"===K?(0,i.jsx)("div",{className:"grid",children:e.map(e=>(0,i.jsx)(l.ct,{u:e,tone:W(e.entry.id),cockpit:I,incident:(0,l.G2)(P,e.entry.id),open:w===e.entry.id,onToggle:()=>Y(e.entry.id),onIgnoreRequest:R,extra:s(e.entry.id,D(e))},e.entry.id))}):(0,i.jsx)("div",{className:"irows",children:e.map(e=>(0,i.jsx)(l.kc,{u:e,tone:W(e.entry.id),cockpit:I,incident:(0,l.G2)(P,e.entry.id),open:w===e.entry.id,onToggle:()=>Y(e.entry.id),onIgnoreRequest:R,extra:s(e.entry.id,D(e))},e.entry.id))})};return(0,i.jsxs)(a.Ay,{active:"/sites",cockpit:I,children:[(0,i.jsxs)("div",{className:"pagebar",children:[(0,i.jsx)("h1",{children:(0,i.jsx)(o.T,{k:"room.sites",en:d.UI.sites.title})}),(0,i.jsx)("span",{className:"purpose",children:(0,i.jsx)(o.T,{k:"sites.purpose",en:d.UI.sites.purpose})})]}),T?0===C.length?(0,i.jsxs)("div",{className:"empty",children:[(0,i.jsx)("p",{className:"invite",children:H("sites.emptyInvite",d.UI.sites.emptyInvite)}),(0,i.jsx)("p",{children:H("sites.emptyLine",d.UI.sites.emptyLine)}),(0,i.jsxs)("div",{className:"setup-actions",children:[(0,i.jsx)("button",{className:"btn ".concat(f?"":"primary"),"aria-pressed":f,onClick:()=>S(!f),children:f?H("btn.back",d.UI.radar.emptyBack):H("empty.pickSite",d.UI.radar.emptyPickSite)}),(0,i.jsx)("a",{className:"btn",href:"/radar",children:H("btn.goRadar",d.UI.sites.goRadar)})]}),f&&(0,i.jsx)(u.T,{cockpit:I,onAdded:()=>S(!1)})]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:"sec",children:[(0,i.jsx)("h2",{children:(0,i.jsx)(o.T,{k:"sec.sites",en:d.UI.radar.sites})}),(0,i.jsxs)("span",{className:"meta",children:[L?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(p.V,{n:M})," ",H("sites.answeringMid","")," ",(0,i.jsx)(p.V,{n:C.length})," ",H("sites.answeringTail","")]}):d.UI.sites.answering(M,C.length)," \xb7 ",(0,i.jsx)(o.T,{k:"radar.sitesMeta",en:d.UI.radar.sitesMeta})]}),(0,i.jsxs)("div",{className:"tools",children:[(0,i.jsx)("button",{className:"b ".concat(f?"on":""),"aria-pressed":f,"aria-expanded":f,onClick:()=>S(!f),children:f?H("btn.back",d.UI.radar.emptyBack):H("empty.pickSite",d.UI.radar.emptyPickSite)}),(0,i.jsx)("button",{className:"b","aria-pressed":A,"aria-expanded":A,onClick:()=>G(!A),children:(0,i.jsx)(o.T,{k:"sites.newGroup",en:d.UI.sites.newGroup})}),(0,i.jsx)(l.aA,{view:K,onChange:e=>I.setView("urls",e)})]})]}),f&&(0,i.jsx)(u.T,{cockpit:I,onAdded:()=>S(!1)}),A&&(0,i.jsx)(k,{cockpit:I,onAdded:()=>G(!1)}),B.length>0&&(0,i.jsx)(N,{name:H("sites.groupYours",d.UI.sites.groupYours),count:q.filter(e=>!D(e)).length}),O(q.filter(e=>!D(e)))]}):(0,i.jsxs)("div",{className:"sweep-wrap",children:[(0,i.jsx)("div",{className:"sweep","aria-hidden":!0}),(0,i.jsx)("span",{children:(0,i.jsx)(h.h,{children:H("sites.checking",d.UI.sites.checking)})})]}),B.map(e=>{let s=q.filter(s=>D(s)===e.id);return(0,i.jsxs)("div",{children:[(0,i.jsx)(N,{name:e.name,count:s.length,onRemove:()=>void I.post({action:"removeGroup",id:e.id})}),O(s)]},e.id)}),(0,i.jsx)(x,{cockpit:I}),(0,i.jsx)(g,{presets:y,cockpit:I}),(0,i.jsx)(m.LZ,{cockpit:I}),F]})}},8106:(e,s,t)=>{"use strict";t.d(s,{T:()=>l});var i=t(5155),n=t(2115),a=t(436),r=t(5310);function l(e){let{cockpit:s,onAdded:t}=e,[l,c]=(0,n.useState)(""),[d,o]=(0,n.useState)(""),[u,p]=(0,n.useState)(!1),[m,h]=(0,n.useState)(null),v=(0,r.kj)(),j=async e=>{var i;if(e.preventDefault(),!l.trim())return;p(!0),h(null);let n=await s.post({action:"addUrl",url:l.trim(),label:d.trim()||void 0});p(!1),n.ok?(c(""),o(""),h({ok:!0,text:v("site.added",a.UI.radar.siteAdded)}),s.readHealth(),null==t||t()):h({ok:!1,text:null!=(i=n.message)?i:v("common.somethingWrong",a.UI.common.somethingWrong)})};return(0,i.jsxs)("form",{className:"setup",onSubmit:j,children:[(0,i.jsxs)("div",{className:"addrow",children:[(0,i.jsx)("input",{className:"in",type:"text",inputMode:"url",dir:"ltr",value:l,"aria-label":v("site.addrAria",a.UI.radar.siteAddrAria),placeholder:a.UI.radar.sitePlaceholder,onChange:e=>c(e.target.value)}),(0,i.jsx)("input",{className:"in",type:"text",value:d,"aria-label":v("site.nameAria",a.UI.radar.siteNameAria),placeholder:v("site.namePlaceholder",a.UI.radar.siteNamePlaceholder),onChange:e=>o(e.target.value)}),(0,i.jsx)("button",{className:"btn primary",type:"submit",disabled:u||!l.trim(),children:u?v("site.adding",a.UI.radar.siteAdding):v("site.add",a.UI.radar.siteAdd)})]}),m&&(0,i.jsx)("p",{className:m.ok?"ok-line":"error-line",children:m.text})]})}}},e=>{e.O(0,[3192,1681,7897,8441,1255,7358],()=>e(e.s=1804)),_N_E=e.O()}]);