0sec-cli 0.17.0 → 0.21.4

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 (171) hide show
  1. package/{0sec.js → 0.js} +92 -79
  2. package/LICENSE +1 -1
  3. package/README.md +77 -37
  4. package/chunks/adapt-loop-IGBRQAXO.js +18 -0
  5. package/chunks/{adgraph-JLGA6RYI.js → adgraph-AUDQTBYA.js} +5 -5
  6. package/chunks/agent/skills/frameworks/entra-id.yaml +2 -2
  7. package/chunks/agent/skills/techniques/assumption-mining.yaml +2 -2
  8. package/chunks/agent/skills/techniques/cve-poc-adaptation.yaml +2 -2
  9. package/chunks/agent/skills/techniques/entra-attack-paths.yaml +1 -1
  10. package/chunks/agent/skills/techniques/kernel-weaponization.yaml +1 -1
  11. package/chunks/agent/skills/techniques/llm-prompt-injection.yaml +2 -2
  12. package/chunks/agent/skills/techniques/npm-ecosystem.yaml +1 -1
  13. package/chunks/agent/skills/techniques/poc-verification.yaml +1 -1
  14. package/chunks/agent/skills/techniques/seedless-depth-review.yaml +20 -38
  15. package/chunks/{artifact-scraper-GJEZMOHF.js → artifact-scraper-LNQJUORS.js} +6 -6
  16. package/chunks/{assumption-mining-BVMMUZHB.js → assumption-mining-4MJTP6H5.js} +24 -26
  17. package/chunks/{chunk-P6WKNFWX.js → chunk-2OQOQ2FZ.js} +8 -8
  18. package/chunks/{chunk-5G3ZXFBW.js → chunk-2WNCI664.js} +3 -3
  19. package/chunks/{chunk-HDWV7PGI.js → chunk-2WSXFFJZ.js} +4 -4
  20. package/chunks/{chunk-DW5UWPFY.js → chunk-4VGLO2YS.js} +6 -5
  21. package/chunks/{chunk-SNKTC4BP.js → chunk-5T6D5BVY.js} +88 -88
  22. package/chunks/{chunk-OEFNRYI2.js → chunk-6GHSR47F.js} +3 -6
  23. package/chunks/chunk-6YNKRUMC.js +4474 -0
  24. package/chunks/{chunk-O462Y7P2.js → chunk-ANDKY54G.js} +22317 -19616
  25. package/chunks/{chunk-53G27VPS.js → chunk-AZ7L3HFD.js} +7 -2
  26. package/chunks/{chunk-2SANI5RH.js → chunk-BACXRTQ4.js} +691 -318
  27. package/chunks/{chunk-SOG2U7B3.js → chunk-CAJJRUTV.js} +4 -4
  28. package/chunks/{chunk-57ZENEX2.js → chunk-CGHCEN7W.js} +3 -3
  29. package/chunks/{chunk-VGRDNSHA.js → chunk-CL5KAUM6.js} +17 -16
  30. package/chunks/{chunk-QOKTUOU2.js → chunk-CXKDWFNO.js} +6 -6
  31. package/chunks/{chunk-RWONANDA.js → chunk-DQTNI3KY.js} +5 -5
  32. package/chunks/{chunk-K26SZ37E.js → chunk-E2UOY5PJ.js} +288 -100
  33. package/chunks/{chunk-CLHCDHP4.js → chunk-ER3SUMYJ.js} +40 -18
  34. package/chunks/{chunk-IORC6MQX.js → chunk-FAH6V4QM.js} +31964 -32279
  35. package/chunks/{chunk-6LKRLK2R.js → chunk-FHC2B7LN.js} +3 -3
  36. package/chunks/{chunk-4Y4KQJXE.js → chunk-FWAYJ2IV.js} +16 -16
  37. package/chunks/{chunk-WVTBZEQO.js → chunk-G34QP2XW.js} +8 -8
  38. package/chunks/{chunk-MYVT64FN.js → chunk-GHWODZMR.js} +2 -2
  39. package/chunks/{chunk-F3WBKITT.js → chunk-GIQKESMN.js} +10 -10
  40. package/chunks/{chunk-2RMLOJVB.js → chunk-GVD6SJGH.js} +2 -2
  41. package/chunks/{chunk-RDZYQQLW.js → chunk-HBKCGJAV.js} +7 -7
  42. package/chunks/{chunk-SF4KZ4O3.js → chunk-HLFS6WV2.js} +2 -2
  43. package/chunks/chunk-HPQZHOIU.js +67 -0
  44. package/chunks/{chunk-3QFDYBZQ.js → chunk-IMGWPNQM.js} +231 -1308
  45. package/chunks/{chunk-3MOLBTLS.js → chunk-K2PWUPUI.js} +2 -2
  46. package/chunks/{chunk-MMLDQR4H.js → chunk-NDJU5ZZ7.js} +14 -14
  47. package/chunks/{chunk-H44E2CRN.js → chunk-NOPBXZUV.js} +3 -3
  48. package/chunks/{chunk-HE7LCA7G.js → chunk-O6SD4A36.js} +3 -3
  49. package/chunks/{chunk-SAFFWQW4.js → chunk-P6YG6TEZ.js} +6 -6
  50. package/chunks/{chunk-KKGE5RQE.js → chunk-PC6RCKQV.js} +198 -11
  51. package/chunks/{chunk-LP3HHYQU.js → chunk-PD2BBBKT.js} +2 -2
  52. package/chunks/{chunk-BKZFDZ23.js → chunk-QCUFBVIZ.js} +3 -3
  53. package/chunks/{chunk-KLTNTE2Z.js → chunk-QZVG3BG4.js} +14 -14
  54. package/chunks/{chunk-D6S3IIPG.js → chunk-RF5QGKLR.js} +9 -9
  55. package/chunks/{chunk-LOHTE223.js → chunk-SBMB4OL3.js} +9 -9
  56. package/chunks/{chunk-IOL7D5YV.js → chunk-SQCBHFWN.js} +3 -3
  57. package/chunks/{chunk-A6CLR72I.js → chunk-TF46UWFU.js} +3 -3
  58. package/chunks/chunk-TH2LW437.js +7829 -0
  59. package/chunks/chunk-TRH2PJSN.js +547 -0
  60. package/chunks/{chunk-RJWOYEOG.js → chunk-UEX7PFSE.js} +5 -5
  61. package/chunks/{chunk-VQG4FT5D.js → chunk-UFHN6RIU.js} +2 -2
  62. package/chunks/{chunk-WU6AFRAZ.js → chunk-V36HVTUL.js} +12 -12
  63. package/chunks/{chunk-IR537GON.js → chunk-VCSFCHAJ.js} +2 -2
  64. package/chunks/{chunk-YLMN3N25.js → chunk-VIT5ALXF.js} +3 -3
  65. package/chunks/{chunk-UJ4IK5PO.js → chunk-VOAXLO4A.js} +10 -10
  66. package/chunks/{chunk-UM3ZNQIM.js → chunk-W4JOXE4N.js} +100 -84
  67. package/chunks/{chunk-DN25OQQA.js → chunk-WF5W75WY.js} +25 -25
  68. package/chunks/{chunk-QKICO43A.js → chunk-WPQLBN4S.js} +5 -5
  69. package/chunks/{chunk-HT6P7RY3.js → chunk-WZISK5VC.js} +37 -35
  70. package/chunks/{chunk-QJQKHO7G.js → chunk-Y5H6E24H.js} +3 -3
  71. package/chunks/{chunk-KTQDLNSR.js → chunk-YA4PUM4H.js} +41 -41
  72. package/chunks/{chunk-47TQJWDH.js → chunk-YHWWF4QY.js} +9 -9
  73. package/chunks/{chunk-2CJ776PV.js → chunk-YPOA3W4O.js} +48 -39
  74. package/chunks/{chunk-7DQEV5QI.js → chunk-Z3IKZX3X.js} +4 -4
  75. package/chunks/codex-models-TYYV4JNN.js +15 -0
  76. package/chunks/{commands-U3AMV5ZU.js → commands-WF5RG4I2.js} +5620 -2513
  77. package/chunks/corpus-v1.json +2 -2
  78. package/chunks/data/appsec-archetypes.json +2 -2
  79. package/chunks/data/chromium-archetypes.json +1 -1
  80. package/chunks/data/freebsd-archetypes.json +1 -1
  81. package/chunks/data/kernel-archetypes.json +2 -2
  82. package/chunks/db-U3WQZVAO.js +16 -0
  83. package/chunks/{disclose-A6AEIEDA.js → disclose-67GZCDBO.js} +5 -5
  84. package/chunks/{dist-JR67XKYO.js → dist-ACC3DZUZ.js} +11 -5
  85. package/chunks/{dist-GL66KMUX.js → dist-EVTN3UTT.js} +6 -6
  86. package/chunks/{dist-FDKALV4R.js → dist-F6X62TQK.js} +290 -327
  87. package/chunks/dist-KEULE5IQ.js +21914 -0
  88. package/chunks/dist-XZB53PS5.js +53 -0
  89. package/chunks/eval-runner-SA6OUGHZ.js +26 -0
  90. package/chunks/example-manifest.json +2 -2
  91. package/chunks/{exploit-agent-XP23ISN7.js → exploit-agent-36Q7XQFP.js} +4 -4
  92. package/chunks/{exploit-autoclimb-E6T7RRSC.js → exploit-autoclimb-J4OTSTZ6.js} +6 -6
  93. package/chunks/{exploit-climb-2FAUP6XU.js → exploit-climb-PYEJDIC4.js} +12 -12
  94. package/chunks/fix-J2KBRJDV.js +12 -0
  95. package/chunks/{github-issues-MJ6OYOOU.js → github-issues-IGTTWM7V.js} +7 -7
  96. package/chunks/harness-GDUMKGSE.js +22 -0
  97. package/chunks/http-conformance-U5F6GKYG.js +11 -0
  98. package/chunks/http-sender-I5XFFY35.js +10 -0
  99. package/chunks/hunt-scan-UDJSCISU.js +36 -0
  100. package/chunks/{identity-6ZAIIWOR.js → identity-JTIVJSV7.js} +5 -5
  101. package/chunks/{kernel-primitive-TENE3R7T.js → kernel-primitive-F2IXUFAX.js} +6 -6
  102. package/chunks/{kernel-vm-runner-4F6QSNFY.js → kernel-vm-runner-276LHIOV.js} +6 -6
  103. package/chunks/memsafety-scan-NHUOGTEX.js +16 -0
  104. package/chunks/{native-loop-NTONUDP7.js → native-loop-3BSYVDUI.js} +17 -18
  105. package/chunks/{npm-detectors-KB5Y5ZFX.js → npm-detectors-VIYJXKFQ.js} +6 -6
  106. package/chunks/npm-dynamic-discovery-5J7FT3XM.js +13 -0
  107. package/chunks/orchestrate-DHBFRTSI.js +59 -0
  108. package/chunks/{pre-recon-cve-66EB6G4M.js → pre-recon-cve-X2K2P5YQ.js} +4 -4
  109. package/chunks/prepare-KYHGFWCJ.js +13 -0
  110. package/chunks/process-PNMC36JI.js +15 -0
  111. package/chunks/{replay-runner-RRR4E2A7.js → replay-runner-LK2XFIVG.js} +7 -7
  112. package/chunks/{run-ESNN4V5W.js → run-CBGE6DRQ.js} +2401 -1810
  113. package/chunks/{runtime-62ZQAH7H.js → runtime-PXO5G6UV.js} +11 -11
  114. package/chunks/runtime-XFWJTBUO.js +12 -0
  115. package/chunks/{scan-stream-FHI2FYZE.js → scan-stream-BMOCPKQX.js} +7 -7
  116. package/chunks/{scope-BI7BF4ZY.js → scope-NJHIDDTN.js} +4 -4
  117. package/chunks/{session-store-BCFQYDCE.js → session-store-46WBZM22.js} +6 -6
  118. package/chunks/source-files-REHOM44I.js +12 -0
  119. package/chunks/{specdrift-WCLH6TTQ.js → specdrift-AFS54WEJ.js} +5 -5
  120. package/chunks/token-KRWP5JYA.js +72 -0
  121. package/chunks/token-util-DWTL33S3.js +8 -0
  122. package/chunks/variant-candidates-UH2WC2HA.js +13 -0
  123. package/chunks/{web-recon-prepass-DPVCBRZA.js → web-recon-prepass-SFXU44SS.js} +9 -9
  124. package/dashboard/assets/desktop-BT7RkC4q.js +32 -0
  125. package/dashboard/assets/desktop-OaBI0E0e.css +1 -0
  126. package/dashboard/assets/{findings-page-CACW9nw2.js → findings-page-B4rwF6fZ.js} +2 -2
  127. package/dashboard/assets/{format-PoISqsES.js → format-LNQSSpn6.js} +1 -1
  128. package/dashboard/assets/live-page-DoNwpPAO.js +1 -0
  129. package/dashboard/assets/{meta-tile-CcskIV_o.js → meta-tile-BMtBC-Qq.js} +1 -1
  130. package/dashboard/assets/operations-CMFVrXEe.css +2 -0
  131. package/dashboard/assets/operations-app-ER0gg7GN.js +2 -0
  132. package/dashboard/assets/{operations-D8nUP5_m.js → operations-e2CGYKB1.js} +2 -2
  133. package/dashboard/assets/{overview-page-DTGS8dPo.js → overview-page-CmeWH17A.js} +1 -1
  134. package/dashboard/assets/{page-header-MFVvEtZW.js → page-header-CIJyycfz.js} +1 -1
  135. package/dashboard/assets/scans-page-CuhzWhHx.js +1 -0
  136. package/dashboard/assets/{table-BYS-nIVA.js → table-BgsSBdke.js} +1 -1
  137. package/dashboard/assets/{tabs-DivxbhQy.js → tabs-vn6v7Bk6.js} +1 -1
  138. package/dashboard/desktop.html +3 -3
  139. package/dashboard/index.html +3 -3
  140. package/package.json +11 -11
  141. package/chunks/adapt-loop-ECQG7454.js +0 -18
  142. package/chunks/appsec-catalog-CBWHGTEL.js +0 -24
  143. package/chunks/chunk-H2FFLZNK.js +0 -3
  144. package/chunks/chunk-QI233I24.js +0 -333
  145. package/chunks/chunk-RRMJC3ZE.js +0 -105
  146. package/chunks/chunk-SZJCPG2I.js +0 -110
  147. package/chunks/chunk-WKNNZVJS.js +0 -2798
  148. package/chunks/cost-ledger-ZCKMBJEN.js +0 -13
  149. package/chunks/db-26NGQFKO.js +0 -16
  150. package/chunks/eval-runner-DDLE5RQ3.js +0 -27
  151. package/chunks/fix-IG7LYXH3.js +0 -12
  152. package/chunks/harness-HWOYFKFY.js +0 -22
  153. package/chunks/http-conformance-DU66MZIU.js +0 -11
  154. package/chunks/http-sender-GWH2IYEA.js +0 -10
  155. package/chunks/hunt-scan-XPELSPQQ.js +0 -38
  156. package/chunks/memsafety-scan-J7SECV5W.js +0 -16
  157. package/chunks/npm-dynamic-discovery-AHROOZDB.js +0 -13
  158. package/chunks/orchestrate-ZUWAUWBC.js +0 -62
  159. package/chunks/pipeline-FCARFZU3.js +0 -14
  160. package/chunks/prepare-MYY743TK.js +0 -13
  161. package/chunks/process-3Q7QJIOZ.js +0 -13
  162. package/chunks/runtime-J7PLXZNM.js +0 -12
  163. package/chunks/source-files-PWRQR6LY.js +0 -12
  164. package/chunks/variant-candidates-6KM6F6MD.js +0 -13
  165. package/dashboard/assets/0sec-icon-66SreztZ.gif +0 -0
  166. package/dashboard/assets/desktop-CXTQonNm.js +0 -32
  167. package/dashboard/assets/desktop-NOekk4QS.css +0 -1
  168. package/dashboard/assets/live-page-DrgQqQK5.js +0 -1
  169. package/dashboard/assets/operations-BKE8T-vY.css +0 -2
  170. package/dashboard/assets/operations-app-CQQhG54n.js +0 -2
  171. package/dashboard/assets/scans-page-ChVtq8Us.js +0 -1
@@ -0,0 +1 @@
1
+ @font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.conversation-panel{background:var(--surface);flex-direction:column;height:100%;display:flex;position:relative}.conversation-scroll{overscroll-behavior:contain;scroll-behavior:smooth;flex:1;overflow-y:auto}@media (prefers-reduced-motion:reduce){.conversation-scroll{scroll-behavior:auto}}.conversation-empty{flex-direction:column;justify-content:center;align-items:flex-start;max-width:540px;height:100%;margin:0 auto;padding:48px 32px;display:flex}.conversation-empty h2{color:var(--text);margin:0 0 6px;font-size:16px;font-weight:500}.conversation-empty p{color:var(--muted);margin:0 0 20px;font-size:13px;line-height:1.5}.conversation-empty .empty-btn{border:1px solid var(--line);background:var(--surface-raised);color:var(--text);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:6px 14px;font-size:13px;transition:background .15s;display:inline-flex}.conversation-empty .empty-btn:hover{background:var(--hover)}.turn-block{padding:0 16px}.turn-block:first-child{margin-top:12px}.turn-block+.turn-block{margin-top:4px}.user-message{justify-content:flex-end;padding:4px 0;display:flex}.user-message .bubble{background:var(--hover);border:1px solid var(--line);max-width:75%;color:var(--text);word-wrap:break-word;white-space:pre-wrap;border-radius:12px;padding:8px 14px;font-size:14px;line-height:1.45}.assistant-message{padding:8px 0 4px}.assistant-message .message-body{color:var(--text);font-size:15px;line-height:1.6}.system-notice{color:var(--muted);align-items:flex-start;gap:6px;padding:3px 16px;font-size:12px;line-height:1.4;display:flex}.system-notice svg{opacity:.7;flex-shrink:0;margin-top:1px}.reasoning-block{border:1px solid var(--line);background:var(--surface);border-radius:8px;margin:6px 0;overflow:hidden}.reasoning-block summary{cursor:pointer;color:var(--muted);-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:6px 10px;font-size:12px;list-style:none;display:flex}.reasoning-block summary::-webkit-details-marker{display:none}.reasoning-block summary .chevron{opacity:.5;margin-left:auto;transition:transform .15s}.reasoning-block[open] summary .chevron{transform:rotate(180deg)}.reasoning-block .reasoning-content{color:var(--muted);white-space:pre-wrap;padding:0 10px 8px;font-size:12px;line-height:1.5}.tool-call{border:1px solid var(--line);background:var(--surface);border-radius:8px;margin:4px 0;transition:border-color .2s;overflow:hidden}.tool-call.running{border-color:var(--accent);opacity:.85}.tool-call.error{border-color:var(--danger)}.tool-call-header{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:5px 10px;font-family:inherit;font-size:12px;display:flex}.tool-call-header:hover{background:var(--hover)}.tool-call-header .tool-name{font-weight:500;font-family:var(--mono);color:var(--accent);font-size:11px}.tool-call-header .tool-status{color:var(--muted);margin-left:4px;font-size:10px}.tool-call-header .chevron{opacity:.5;margin-left:auto;transition:transform .15s}.tool-call-header .chevron.open{transform:rotate(180deg)}.tool-call-body{border-top:1px solid var(--line);padding:8px 10px}.tool-call-body .section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--faint);margin-bottom:4px;font-size:10px;font-weight:500;display:block}.tool-call-body pre{background:var(--surface-raised);font-size:11px;line-height:1.4;font-family:var(--mono);border-radius:6px;margin:0 0 8px;padding:8px;overflow-x:auto}.tool-call-body pre:last-child{margin-bottom:0}.tool-call-body code{color:var(--text);font-family:inherit}.code-block-wrapper{border:1px solid var(--line);background:var(--surface-raised);border-radius:8px;margin:12px 0;position:relative;overflow:hidden}.code-block-header{background:var(--surface);border-bottom:1px solid var(--line);color:var(--muted);font-size:11px;font-family:var(--mono);justify-content:space-between;align-items:center;padding:4px 10px;display:flex}.code-block-header .copy-btn{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:4px;padding:2px 6px;font-family:inherit;font-size:10px;transition:background .1s;display:inline-flex}.code-block-header .copy-btn:hover{background:var(--hover);color:var(--text)}.code-block-header .copy-btn.copied{color:var(--accent)}.code-block-wrapper pre{font-size:12px;line-height:1.5;font-family:var(--mono);color:var(--text);margin:0;padding:12px 14px;overflow-x:auto}.code-block-wrapper code{font-family:inherit}.message-body p{margin:6px 0}.message-body p:first-child{margin-top:0}.message-body p:last-child{margin-bottom:0}.message-body ul,.message-body ol{margin:6px 0;padding-left:20px}.message-body li{margin:2px 0}.message-body a{color:var(--accent);text-decoration:none}.message-body a:hover{text-decoration:underline}.message-body blockquote{border-left:3px solid var(--line);color:var(--muted);margin:8px 0;padding:4px 12px}.message-body table{border-collapse:collapse;width:100%;margin:8px 0;font-size:13px}.message-body th,.message-body td{border:1px solid var(--line);text-align:left;padding:6px 10px}.message-body th{background:var(--surface-raised);font-weight:500}.message-body hr{border:none;border-top:1px solid var(--line);margin:12px 0}.message-body img{border-radius:6px;max-width:100%}.approval-panel{border:1px solid var(--accent);background:var(--surface-raised);border-radius:10px;margin:8px 0;padding:12px 14px}.approval-panel.resolved{border-color:var(--line);opacity:.7}.approval-panel.resolved.approved{opacity:1;border-color:#22c55e}.approval-panel.resolved.declined{opacity:.5;border-color:var(--danger)}.approval-header{align-items:flex-start;gap:8px;display:flex}.approval-header .approval-icon{flex-shrink:0;margin-top:1px}.approval-header .approval-title{color:var(--text);font-size:13px;font-weight:500}.approval-header .approval-kind{text-transform:uppercase;letter-spacing:.05em;color:var(--faint);margin-left:auto;font-size:10px}.approval-detail{color:var(--muted);margin:6px 0 0;font-size:12px;line-height:1.45}.approval-tool-preview{background:var(--surface);border:1px solid var(--line);border-radius:6px;margin:8px 0;padding:8px}.approval-tool-preview pre{font-size:11px;line-height:1.4;font-family:var(--mono);margin:0;overflow-x:auto}.approval-tool-preview code{color:var(--text)}.approval-actions{gap:8px;margin-top:10px;display:flex}.approval-actions button{cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:6px;padding:5px 14px;font-family:inherit;font-size:12px;font-weight:500;transition:background .1s}.approval-actions button:hover{background:var(--hover)}.approval-actions .approve-btn{background:var(--accent);color:#fff;border-color:var(--accent)}.approval-actions .approve-btn:hover{opacity:.9}.approval-actions .decline-btn:hover{border-color:var(--danger);color:var(--danger)}.approval-resolved-badge{color:var(--muted);align-items:center;gap:4px;margin-top:8px;font-size:12px;display:inline-flex}.approval-resolved-badge.approved{color:#22c55e}.approval-resolved-badge.declined{color:var(--danger)}.question-group{margin:8px 0}.question-item{margin:6px 0}.question-header{color:var(--text);margin-bottom:4px;font-size:12px;font-weight:500}.question-text{color:var(--muted);margin-bottom:6px;font-size:12px;line-height:1.4}.question-options{flex-wrap:wrap;gap:4px;display:flex}.question-option{border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;border-radius:12px;padding:3px 10px;font-family:inherit;font-size:11px;transition:all .1s}.question-option:hover{background:var(--hover)}.question-option.selected{background:var(--accent);color:#fff;border-color:var(--accent)}.question-custom-input{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text);resize:vertical;border-radius:6px;min-height:36px;margin-top:6px;padding:6px 10px;font-family:inherit;font-size:12px}.question-custom-input:focus{border-color:var(--accent);outline:none}.turn-error{border:1px solid var(--danger);background:color-mix(in srgb, var(--danger) 8%, transparent);color:var(--danger);border-radius:8px;margin:6px 0;padding:8px 12px;font-size:13px;line-height:1.4}.turn-error.warning{color:#a16207;background:#eab30814;border-color:#eab308}.conversation-composer{border-top:1px solid var(--line);background:var(--surface);padding:8px 16px}.composer-row{align-items:flex-end;gap:6px;display:flex}.composer-textarea{resize:none;border:1px solid var(--line);background:var(--surface-raised);color:var(--text);border-radius:10px;outline:none;flex:1;min-height:36px;max-height:200px;padding:8px 12px;font-family:inherit;font-size:13px;line-height:1.45;transition:border-color .15s}.composer-textarea:focus{border-color:var(--accent)}.composer-textarea:disabled{opacity:.5;cursor:not-allowed}.composer-textarea::placeholder{color:var(--faint)}.composer-actions{flex-shrink:0;gap:4px;padding-bottom:2px;display:flex}.composer-action-btn{border:1px solid var(--line);background:var(--surface-raised);width:32px;height:32px;color:var(--text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;transition:all .1s;display:flex}.composer-action-btn:hover:not(:disabled){background:var(--hover);border-color:var(--accent)}.composer-action-btn:disabled{opacity:.35;cursor:not-allowed}.composer-action-btn.send-btn:not(:disabled){background:var(--accent);color:#fff;border-color:var(--accent)}.composer-action-btn.stop-btn{color:var(--danger);border-color:var(--danger)}.composer-action-btn.stop-btn:hover{background:var(--danger);color:#fff}.bottom-context-row{color:var(--faint);border-top:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;padding:4px 16px 6px;font-size:11px;display:flex}.bottom-context-row .context-left{align-items:center;gap:8px;display:flex}.bottom-context-row .context-badge{background:var(--surface-raised);border:1px solid var(--line);text-transform:capitalize;border-radius:4px;align-items:center;gap:3px;padding:1px 6px;font-size:10px;font-weight:500;display:inline-flex}.bottom-context-row .context-actions{align-items:center;gap:4px;display:flex}.bottom-context-row .context-action-btn{color:var(--faint);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:3px;padding:2px 6px;font-family:inherit;font-size:10px;transition:all .1s;display:inline-flex}.bottom-context-row .context-action-btn:hover{color:var(--text);background:var(--hover)}.jump-to-latest{z-index:10;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.jump-to-latest button{border:1px solid var(--line);background:var(--surface-raised);color:var(--text);cursor:pointer;border-radius:20px;align-items:center;gap:5px;padding:5px 12px;font-family:inherit;font-size:11px;font-weight:500;transition:background .1s;display:inline-flex;box-shadow:0 2px 8px #00000014}.jump-to-latest button:hover{background:var(--hover)}.inspector{border-left:1px solid var(--line);background:var(--surface);flex-direction:column;width:280px;height:100%;display:flex}.inspector-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.inspector-header h3{color:var(--text);margin:0;font-size:13px;font-weight:500}.inspector-header .close-btn{width:24px;height:24px;color:var(--faint);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;display:flex}.inspector-header .close-btn:hover{background:var(--hover);color:var(--text)}.inspector-tabs{border-bottom:1px solid var(--line);display:flex}.inspector-tab{color:var(--faint);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:8px 6px;font-family:inherit;font-size:11px;font-weight:500;transition:all .1s}.inspector-tab:hover{color:var(--text);background:var(--hover)}.inspector-tab.active{color:var(--text);border-bottom-color:var(--accent)}.inspector-content{flex:1;padding:12px;overflow-y:auto}.inspect-section{margin-bottom:14px}.inspect-section:last-child{margin-bottom:0}.inspect-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--faint);margin-bottom:6px;font-size:10px;font-weight:600}.inspect-row{color:var(--text);justify-content:space-between;align-items:center;padding:4px 0;font-size:12px;display:flex}.inspect-row .inspect-label{color:var(--muted)}.inspect-row .inspect-value{text-transform:capitalize;font-weight:500}.inspect-row .inspect-badge{border-radius:4px;padding:1px 6px;font-size:10px;font-weight:500}.inspect-badge.ready{color:#22c55e;background:#22c55e20}.inspect-badge.working{background:var(--accent);color:#fff}.inspect-badge.waiting{color:#a16207;background:#eab30820}.inspect-badge.closed{background:var(--surface-raised);color:var(--muted)}.inspect-badge.failed{background:var(--danger);color:#fff}.inspect-bar{background:var(--surface-raised);border-radius:2px;height:4px;margin:4px 0;overflow:hidden}.inspect-bar-fill{background:var(--accent);border-radius:2px;height:100%;transition:width .3s}.evidence-list{flex-direction:column;gap:6px;display:flex}.evidence-item{border:1px solid var(--line);border-radius:6px;padding:6px 8px;font-size:11px;line-height:1.4}.evidence-item .ev-tool-name{font-family:var(--mono);color:var(--accent);font-weight:500}.evidence-item .ev-preview{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;overflow:hidden}.evidence-item .ev-result{font-family:var(--mono);color:var(--muted);background:var(--surface-raised);border-radius:4px;max-height:60px;margin-top:4px;padding:3px 6px;font-size:10px;overflow-y:auto}@media (width<=760px){.turn-block{padding:0 10px}.conversation-composer{padding:6px 10px}.user-message .bubble{max-width:90%}.inspector{width:220px}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}:root{--background:#f5f5f3;--surface:#fff;--surface-raised:#fff;--line:#e5e5e3;--text:#161615;--muted:#8a8a88;--faint:#c0c0be;--hover:#eaeae8;--selected:#d4d4d2;--accent:#fd802e;--accent-fg:#1a1815;--danger:#d13838;--danger-bg:#fef2f2;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", monospace;--fs-xs:11px;--fs-sm:12px;--fs-base:13px;--fs-md:14px;--fs-lg:15px;--fs-xl:18px;--fs-2xl:22px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--titlebar-height:44px;--tab-height:32px;--sidebar-width:220px;--inspector-width:320px;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 2px 8px #0000000f;--shadow-lg:0 8px 24px #00000014;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--background:#161615;--surface:#1c1c1b;--surface-raised:#222221;--line:#2a2a28;--text:#e8e8e6;--muted:#a1a19d;--faint:#8a8a86;--hover:#282827;--selected:#333332;--accent:#fd802e;--accent-fg:#1a1815;--danger:#e54848;--danger-bg:#2d1515;--shadow-sm:0 1px 2px #0000001f;--shadow-md:0 2px 8px #0003;--shadow-lg:0 8px 24px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{font-family:var(--font-sans);font-size:var(--fs-base);color:var(--text);background:var(--background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;cursor:default;-webkit-user-select:none;user-select:none;line-height:1.5}[contenteditable],input,textarea,select,.selectable{-webkit-user-select:text;user-select:text}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.app-shell{flex-direction:column;height:100%;display:flex;overflow:hidden}.titlebar{height:var(--titlebar-height);-webkit-app-region:drag;background:var(--background);border-bottom:1px solid var(--line);flex-shrink:0;align-items:center;padding:0 8px;display:flex}.titlebar-title{text-align:center;width:100%;font-size:12px;font-weight:600}.titlebar.macos{padding-inline:96px}.titlebar-leading{flex-shrink:0;width:96px}.titlebar-center{-webkit-app-region:drag;flex:1;justify-content:center;align-items:center;display:flex}.titlebar-trailing{-webkit-app-region:no-drag;align-items:center;gap:4px;display:flex}.tab-bar{height:var(--tab-height);background:var(--background);border-bottom:1px solid var(--line);scrollbar-width:none;-webkit-app-region:no-drag;flex-shrink:0;align-items:stretch;gap:2px;padding:0 8px;display:flex;overflow-x:auto}.tab-bar::-webkit-scrollbar{display:none}.tab{font-size:var(--fs-sm);color:var(--muted);border-radius:var(--radius-sm) var(--radius-sm) 0 0;cursor:pointer;white-space:nowrap;-webkit-app-region:no-drag;-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;border-bottom:none;flex-shrink:0;align-items:center;gap:6px;padding:0 10px;transition:color .12s,background .12s;display:flex;position:relative}.tab:hover{color:var(--text);background:var(--hover)}.tab.active{color:var(--text);background:var(--surface);border-color:var(--line)}.tab.active:after{content:"";background:var(--surface);height:1px;position:absolute;bottom:-1px;left:0;right:0}.tab.home-tab{padding:0 12px}.tab .tab-icon{opacity:.6;flex-shrink:0;width:14px;height:14px}.tab.active .tab-icon{opacity:.9}.tab>[role=tab]{max-width:220px;height:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;display:flex}.tab>[role=tab] span{text-overflow:ellipsis;overflow:hidden}.workspace-toolbar{align-items:center;gap:4px;margin-left:auto;padding-left:12px;display:flex}.tab-close:focus-visible{opacity:1}.tab-close{width:16px;height:16px;color:var(--faint);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:opacity .12s,background .12s,color .12s;display:flex}.tab:hover .tab-close,.tab.active .tab-close{opacity:1}.tab-close:hover{background:var(--hover);color:var(--text)}.tab-close svg{width:10px;height:10px}.new-tab-btn{border-radius:var(--radius-sm);width:24px;height:24px;color:var(--faint);cursor:pointer;-webkit-app-region:no-drag;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;margin-left:2px;transition:color .12s,background .12s;display:flex}.new-tab-btn:hover{color:var(--text);background:var(--hover)}.new-tab-btn svg{width:14px;height:14px}.workspace{background:var(--surface);flex:1;display:flex;overflow:hidden}.session-sidebar{width:var(--sidebar-width);background:var(--background);border-right:1px solid var(--line);font-size:var(--fs-sm);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.session-sidebar.collapsed{border-right:none;width:0}.sidebar-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:12px 12px 8px;display:flex}.sidebar-header h3{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}.sidebar-scroll{flex:1;padding:4px 8px;overflow-y:auto}.target-group{margin-bottom:8px}.target-group-header{font-size:var(--fs-xs);color:var(--muted);cursor:pointer;border-radius:var(--radius-sm);align-items:center;gap:6px;padding:4px 4px 4px 8px;font-weight:500;transition:background .1s;display:flex}.target-group-header:hover{background:var(--hover)}.target-item{border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-sm);color:var(--text);text-align:left;background:0 0;border:0;align-items:center;gap:6px;width:100%;padding:4px 8px;font-family:inherit;transition:background .1s;display:flex}.target-item.active{background:var(--hover);font-weight:500}.session-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sidebar-empty{color:var(--muted);padding:16px}.sidebar-operations{color:var(--muted);border-top:1px solid var(--line);align-items:center;gap:8px;padding:12px;text-decoration:none;display:flex}.home-recent-item{text-align:left;width:100%;font:inherit;color:inherit;background:0 0;border:0}.target-item:hover{background:var(--hover)}.target-item .target-status{border-radius:50%;flex-shrink:0;width:6px;height:6px}.target-status.ready{background:#22c55e}.target-status.working{background:#f59e0b}.target-status.waiting{background:#6366f1}.target-status.closed{background:var(--faint)}.target-status.failed{background:var(--danger)}.sidebar-filter{padding:0 8px 8px}.sidebar-filter input{width:100%;font-size:var(--fs-sm);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-sans);outline:none;padding:4px 8px}.sidebar-filter input:focus{border-color:var(--accent)}.session-content{flex:1;min-width:0;display:flex;overflow:hidden}.session-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.session-header{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;display:flex}.session-title-area{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.session-title-area .session-status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.session-title-input{font-size:var(--fs-md);color:var(--text);min-width:40px;font-weight:500;font-family:var(--font-sans);border-radius:var(--radius-sm);background:0 0;border:none;outline:none;flex:1;padding:2px 4px;transition:background .1s}.session-title-input:hover{background:var(--hover)}.session-title-input:focus{background:var(--surface);box-shadow:0 0 0 1px var(--accent)}.session-header-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.session-header-btn{width:28px;height:28px;color:var(--muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;transition:color .1s,background .1s;display:flex}.session-header-btn:hover{color:var(--text);background:var(--hover)}.session-header-btn svg{width:15px;height:15px}.session-header-btn.active{color:var(--accent);background:var(--selected)}.inspector-panel{width:var(--inspector-width);background:var(--surface);border-left:1px solid var(--line);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.inspector-header{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.inspector-header h3{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}.inspector-close{width:22px;height:22px;color:var(--muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.inspector-close:hover{color:var(--text);background:var(--hover)}.inspector-close svg{width:13px;height:13px}.home-page{flex:1;display:flex;overflow:hidden}.home-projects{border-right:1px solid var(--line);background:var(--background);flex-direction:column;flex-shrink:0;width:200px;display:flex;overflow:hidden}.home-projects-header{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:14px 14px 8px;font-weight:600}.home-projects-list{flex:1;padding:4px 8px;overflow-y:auto}.home-project-item{border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-sm);color:var(--text);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:8px;padding:6px 8px;transition:background .1s;display:flex;overflow:hidden}.home-project-item:hover{background:var(--hover)}.home-project-item svg{width:14px;height:14px;color:var(--muted);flex-shrink:0}.home-project-add{color:var(--muted);cursor:pointer;font-size:var(--fs-sm);border-radius:var(--radius-sm);text-align:left;background:0 0;border:none;align-items:center;gap:6px;width:100%;padding:6px 8px;transition:color .1s,background .1s;display:flex}.home-project-add:hover{color:var(--text);background:var(--hover)}.home-project-add svg{width:12px;height:12px}.home-main{flex-direction:column;flex:1;min-width:0;padding:24px 32px;display:flex;overflow:hidden auto}.home-greeting{font-size:var(--fs-2xl);margin-bottom:4px;font-weight:500}.home-subtitle{font-size:var(--fs-md);color:var(--muted);margin-bottom:24px}.home-actions{flex-wrap:wrap;gap:8px;margin-bottom:28px;display:flex}.home-section-title{font-size:var(--fs-sm);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;font-weight:600}.home-search{margin-bottom:12px;padding:8px 12px}.home-search-input{width:100%;font-size:var(--fs-base);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--text);font-family:var(--font-sans);outline:none;padding:7px 12px;transition:border-color .1s}.home-search-input:focus{border-color:var(--accent)}.home-search-input::placeholder{color:var(--faint)}.home-recent-list{flex-direction:column;gap:2px;display:flex}.home-recent-item{border-radius:var(--radius-sm);cursor:pointer;justify-content:space-between;align-items:center;padding:8px 12px;transition:background .1s;display:flex}.home-recent-item:hover{background:var(--hover)}.home-recent-item .recent-title{font-size:var(--fs-base);color:var(--text);font-weight:450}.home-recent-item .recent-meta{font-size:var(--fs-xs);color:var(--muted)}.empty-state{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;padding:40px;display:flex}.empty-state-icon{width:32px;height:32px;color:var(--faint)}.empty-state h2{font-size:var(--fs-xl);color:var(--text);font-weight:500}.empty-state p{font-size:var(--fs-sm);color:var(--muted);max-width:320px;line-height:1.5}.empty-state .home-actions{margin-bottom:0}.btn{font-size:var(--fs-sm);font-family:var(--font-sans);border-radius:var(--radius-md);border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:6px;padding:6px 14px;font-weight:500;line-height:1.4;transition:background .1s,border-color .1s,box-shadow .1s;display:inline-flex}.btn:hover{background:var(--hover)}.btn:active{background:var(--selected)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.btn-primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.btn-primary:hover{filter:brightness(1.1)}.btn-primary:active{filter:brightness(.95)}.btn-ghost{color:var(--text);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--hover);border-color:#0000}.btn-danger{color:var(--danger);border-color:var(--danger)}.btn-danger:hover{background:var(--danger-bg)}.btn-sm{font-size:var(--fs-xs);padding:4px 10px}.btn-icon{min-width:28px;height:28px;padding:4px}.dialog-overlay{z-index:100;background:#0000004d;justify-content:center;align-items:center;animation:.1s ease-out fadeIn;display:flex;position:fixed;inset:0}[data-theme=dark] .dialog-overlay{background:#00000080}.dialog-content{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:101;flex-direction:column;width:480px;max-width:calc(100vw - 48px);max-height:calc(100vh - 80px);animation:.12s ease-out scaleIn;display:flex;position:fixed;top:50%;left:50%;overflow:auto;translate:-50% -50%}.auth-output{white-space:pre-wrap;overflow-wrap:anywhere;max-height:200px;font:11px var(--font-mono);background:var(--background);border-radius:6px;margin-block:12px;padding:12px;overflow:auto}.dialog-content:focus{outline:none}.dialog-header{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px 12px;display:flex}.dialog-header h2{font-size:var(--fs-lg);color:var(--text);font-weight:550}.dialog-close{width:24px;height:24px;color:var(--muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;transition:color .1s,background .1s;display:flex}.dialog-close:hover{color:var(--text);background:var(--hover)}.dialog-close svg{width:14px;height:14px}.dialog-body{flex-direction:column;flex:1;gap:16px;padding:16px 20px;display:flex;overflow-y:auto}.dialog-footer{border-top:1px solid var(--line);flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;padding:12px 20px 16px;display:flex}.form-group{flex-direction:column;gap:4px;display:flex}.form-label{font-size:var(--fs-sm);color:var(--muted);font-weight:500}.form-label .required{color:var(--danger);margin-left:2px}.form-hint{font-size:var(--fs-xs);color:var(--muted);line-height:1.4}.form-warning{font-size:var(--fs-xs);color:var(--danger);background:var(--danger-bg);border-radius:var(--radius-sm);padding:6px 10px;line-height:1.4}.form-warning strong{font-weight:600}.form-input,.form-select{font-size:var(--fs-base);font-family:var(--font-sans);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--text);outline:none;padding:7px 10px;transition:border-color .1s}.form-input:focus,.form-select:focus{border-color:var(--accent);box-shadow:0 0 0 2px #0059b31a}[data-theme=dark] .form-input:focus,[data-theme=dark] .form-select:focus{box-shadow:0 0 0 2px #4d9eff26}.form-input::placeholder{color:var(--faint)}.form-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238a8a88' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:28px}[data-theme=dark] .form-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%237a7a78' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.input-with-action{gap:6px;display:flex}.input-with-action .form-input{flex:1}.settings-dialog .dialog-content{width:560px}.settings-tabs{border-bottom:1px solid var(--line);flex-shrink:0;gap:0;padding:0 20px;display:flex}.settings-tab{font-size:var(--fs-sm);color:var(--muted);cursor:pointer;font-weight:450;font-family:var(--font-sans);background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 14px;transition:color .1s,border-color .1s}.settings-tab:hover{color:var(--text)}.settings-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.settings-section{flex-direction:column;gap:16px;padding:0;display:flex}.settings-row{justify-content:space-between;align-items:center;gap:16px;padding:8px 0;display:flex}.settings-row-info{flex:1;min-width:0}.settings-row-label{font-size:var(--fs-base);color:var(--text);font-weight:450}.settings-row-desc{font-size:var(--fs-xs);color:var(--muted);margin-top:2px}.theme-options{gap:4px;display:flex}.theme-option{font-size:var(--fs-sm);font-family:var(--font-sans);border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;border-radius:var(--radius-sm);padding:4px 12px;transition:background .1s,border-color .1s}.theme-option:hover{background:var(--hover)}.theme-option.active{border-color:var(--accent);background:var(--selected)}.codex-status{font-size:var(--fs-sm);align-items:center;gap:8px;display:flex}.codex-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.codex-dot.idle{background:var(--faint)}.codex-dot.running{background:#f59e0b}.codex-dot.connected{background:#22c55e}.codex-dot.cancelled{background:var(--muted)}.codex-dot.failed{background:var(--danger)}.shortcuts-list{flex-direction:column;gap:2px;display:flex}.shortcut-row{font-size:var(--fs-sm);justify-content:space-between;align-items:center;padding:6px 0;display:flex}.shortcut-keys{align-items:center;gap:4px;display:flex}kbd{font-size:var(--fs-xs);font-family:var(--font-mono);background:var(--hover);border:1px solid var(--line);min-width:20px;height:20px;color:var(--text);border-radius:3px;justify-content:center;align-items:center;padding:2px 6px;line-height:1;display:inline-flex}.cmdk-overlay{z-index:200;background:#00000040;justify-content:center;align-items:flex-start;padding-top:80px;animation:80ms ease-out fadeIn;display:flex;position:fixed;inset:0}[data-theme=dark] .cmdk-overlay{background:#00000073}.cmdk-dialog{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);width:520px;max-width:calc(100vw - 48px);box-shadow:var(--shadow-lg);animation:.1s ease-out scaleIn;overflow:hidden}.cmdk-input{width:100%;font-size:var(--fs-lg);font-family:var(--font-sans);border:none;border-bottom:1px solid var(--line);color:var(--text);background:0 0;outline:none;padding:12px 16px}.cmdk-input::placeholder{color:var(--faint)}.cmdk-list{max-height:320px;padding:4px;overflow-y:auto}.cmdk-group-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:6px 12px 4px;font-weight:600}.cmdk-item{border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-sm);color:var(--text);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:8px 12px;transition:background 60ms;display:flex}.cmdk-item[data-highlighted]{background:var(--hover)}.cmdk-item[data-disabled]{color:var(--faint);pointer-events:none}.cmdk-item svg{width:14px;height:14px;color:var(--muted);flex-shrink:0}.cmdk-item .cmdk-item-shortcut{font-size:var(--fs-xs);color:var(--faint);margin-left:auto}.cmdk-empty{text-align:center;color:var(--muted);font-size:var(--fs-sm);padding:16px}.error-banner{background:var(--danger-bg);border-bottom:1px solid var(--danger);font-size:var(--fs-sm);color:var(--danger);flex-shrink:0;align-items:center;gap:10px;padding:8px 16px;animation:.15s ease-out slideDown;display:flex}.error-banner svg{flex-shrink:0;width:14px;height:14px}.error-banner-text{flex:1;min-width:0}.error-banner-actions{flex-shrink:0;gap:6px;display:flex}.spinner{border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin}.spinner-sm{border-width:1.5px;width:12px;height:12px}.loading-shell,.error-shell{height:100%;color:var(--muted);font-size:var(--fs-sm);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.error-shell{color:var(--danger)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--faint);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}::-webkit-scrollbar-corner{background:0 0}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button:focus:not(:focus-visible),a:focus:not(:focus-visible){outline:none}@media (width<=900px){.inspector-panel{width:280px}}@media (width<=760px){.session-sidebar:not(.collapsed){width:180px}.home-projects{display:none}.home-main{padding:16px 20px}.dialog-content{width:calc(100vw - 24px);max-height:calc(100vh - 40px)}}
@@ -1,5 +1,5 @@
1
- import{a as e,n as t,t as n}from"./jsx-runtime-C7oxC63R.js";import{n as r}from"./client-DRYsuOGl.js";import{_ as i,n as a,o,v as s,y as c}from"./format-PoISqsES.js";import{T as l,t as u,w as d}from"./operations-D8nUP5_m.js";import{_ as f}from"./dist-CmX-h7a4.js";import{t as p}from"./bot-yILPnRgD.js";import{a as m,i as h,n as g,r as _,t as v}from"./tabs-DivxbhQy.js";import{t as y}from"./copy-Bi5vzoF9.js";import{u as b}from"./dist-DAwYQmf_.js";import{t as x}from"./search-CiooTLck.js";import{a as S,c as C,d as w,f as T,i as E,l as D,n as ee,o as O,p as k,r as te,s as A,t as j,u as ne}from"./table-BYS-nIVA.js";import{n as re,t as M}from"./meta-tile-CcskIV_o.js";import{t as N}from"./page-header-MFVvEtZW.js";import{C as P,D as F,E as I,M as ie,S as L,a as ae,b as R,c as z,d as B,f as oe,g as V,h as H,i as se,l as U,m as W,n as ce,o as le,p as G,r as ue,s as de,t as fe,u as pe,v as K,x as me,y as he}from"./operations-app-CQQhG54n.js";var ge=f(`grip-vertical`,[[`circle`,{cx:`9`,cy:`12`,r:`1`,key:`1vctgf`}],[`circle`,{cx:`9`,cy:`5`,r:`1`,key:`hp0tcf`}],[`circle`,{cx:`9`,cy:`19`,r:`1`,key:`fkjjf6`}],[`circle`,{cx:`15`,cy:`12`,r:`1`,key:`1tmaij`}],[`circle`,{cx:`15`,cy:`5`,r:`1`,key:`19l28e`}],[`circle`,{cx:`15`,cy:`19`,r:`1`,key:`f4zoj3`}]]),_e=f(`shield-question-mark`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3`,key:`mhlwft`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),ve=f(`sliders-horizontal`,[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]),ye=f(`user-round`,[[`circle`,{cx:`12`,cy:`8`,r:`5`,key:`1hypcn`}],[`path`,{d:`M20 21a8 8 0 0 0-16 0`,key:`rfgkzh`}]]),q=f(`wand-sparkles`,[[`path`,{d:`m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72`,key:`ul74o6`}],[`path`,{d:`m14 7 3 3`,key:`1r5n42`}],[`path`,{d:`M5 6v4`,key:`ilb8ba`}],[`path`,{d:`M19 14v4`,key:`blhpug`}],[`path`,{d:`M10 2v2`,key:`7u0qdc`}],[`path`,{d:`M7 8H3`,key:`zfb6yr`}],[`path`,{d:`M21 16h-4`,key:`1cnmox`}],[`path`,{d:`M11 3H9`,key:`1obp7u`}]]),J=e(t()),Y=n();function be({request:e,response:t,analysis:n}){return(0,Y.jsxs)(v,{defaultValue:`request`,className:`space-y-4`,children:[(0,Y.jsx)(_,{children:[[`request`,`Evidence request`],[`response`,`Evidence response`],[`analysis`,`Analysis`]].map(([e,t])=>(0,Y.jsx)(h,{value:e,children:t},e))}),(0,Y.jsx)(g,{value:`request`,children:(0,Y.jsx)(W,{children:(0,Y.jsx)(H,{className:`p-4`,children:(0,Y.jsx)(`pre`,{className:`text-sm leading-6 text-muted-foreground`,children:e})})})}),(0,Y.jsx)(g,{value:`response`,children:(0,Y.jsx)(W,{children:(0,Y.jsx)(H,{className:`p-4`,children:(0,Y.jsx)(`pre`,{className:`text-sm leading-6 text-muted-foreground`,children:t})})})}),(0,Y.jsx)(g,{value:`analysis`,children:(0,Y.jsx)(W,{children:(0,Y.jsx)(H,{className:`p-4`,children:(0,Y.jsx)(`pre`,{className:`text-sm leading-6 text-muted-foreground`,children:n??`No evidence analysis recorded.`})})})})]})}var xe=e(r());function Se(){var e=[...arguments];return(0,J.useMemo)(()=>t=>{e.forEach(e=>e(t))},e)}var Ce=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function we(e){let t=Object.prototype.toString.call(e);return t===`[object Window]`||t===`[object global]`}function Te(e){return`nodeType`in e}function X(e){return e?we(e)?e:Te(e)?e.ownerDocument?.defaultView??window:window:window}function Ee(e){let{Document:t}=X(e);return e instanceof t}function De(e){return!we(e)&&e instanceof X(e).HTMLElement}function Oe(e){return e instanceof X(e).SVGElement}function ke(e){return e?we(e)?e.document:Te(e)?Ee(e)?e:De(e)||Oe(e)?e.ownerDocument:document:document:document}var Ae=Ce?J.useLayoutEffect:J.useEffect;function je(e){let t=(0,J.useRef)(e);return Ae(()=>{t.current=e}),(0,J.useCallback)(function(){var e=[...arguments];return t.current==null?void 0:t.current(...e)},[])}function Me(){let e=(0,J.useRef)(null);return[(0,J.useCallback)((t,n)=>{e.current=setInterval(t,n)},[]),(0,J.useCallback)(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[])]}function Ne(e,t){t===void 0&&(t=[e]);let n=(0,J.useRef)(e);return Ae(()=>{n.current!==e&&(n.current=e)},t),n}function Pe(e,t){let n=(0,J.useRef)();return(0,J.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function Fe(e){let t=je(e),n=(0,J.useRef)(null);return[n,(0,J.useCallback)(e=>{e!==n.current&&t?.(e,n.current),n.current=e},[])]}function Ie(e){let t=(0,J.useRef)();return(0,J.useEffect)(()=>{t.current=e},[e]),t.current}var Le={};function Re(e,t){return(0,J.useMemo)(()=>{if(t)return t;let n=Le[e]==null?0:Le[e]+1;return Le[e]=n,e+`-`+n},[e,t])}function ze(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>{let r=Object.entries(n);for(let[n,i]of r){let r=t[n];r!=null&&(t[n]=r+e*i)}return t},{...t})}}var Be=ze(1),Ve=ze(-1);function He(e){return`clientX`in e&&`clientY`in e}function Ue(e){if(!e)return!1;let{KeyboardEvent:t}=X(e.target);return t&&e instanceof t}function We(e){if(!e)return!1;let{TouchEvent:t}=X(e.target);return t&&e instanceof t}function Ge(e){if(We(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return He(e)?{x:e.clientX,y:e.clientY}:null}var Ke=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:n}=e;return`translate3d(`+(t?Math.round(t):0)+`px, `+(n?Math.round(n):0)+`px, 0)`}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:n}=e;return`scaleX(`+t+`) scaleY(`+n+`)`}},Transform:{toString(e){if(e)return[Ke.Translate.toString(e),Ke.Scale.toString(e)].join(` `)}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+` `+n+`ms `+r}}}),qe=`a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]`;function Je(e){return e.matches(qe)?e:e.querySelector(qe)}var Ye={display:`none`};function Xe(e){let{id:t,value:n}=e;return J.createElement(`div`,{id:t,style:Ye},n)}function Ze(e){let{id:t,announcement:n,ariaLiveType:r=`assertive`}=e;return J.createElement(`div`,{id:t,style:{position:`fixed`,top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0 0 0 0)`,clipPath:`inset(100%)`,whiteSpace:`nowrap`},role:`status`,"aria-live":r,"aria-atomic":!0},n)}function Qe(){let[e,t]=(0,J.useState)(``);return{announce:(0,J.useCallback)(e=>{e!=null&&t(e)},[]),announcement:e}}var $e=(0,J.createContext)(null);function et(e){let t=(0,J.useContext)($e);(0,J.useEffect)(()=>{if(!t)throw Error(`useDndMonitor must be used within a children of <DndContext>`);return t(e)},[e,t])}function tt(){let[e]=(0,J.useState)(()=>new Set),t=(0,J.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,J.useCallback)(t=>{let{type:n,event:r}=t;e.forEach(e=>e[n]?.call(e,r))},[e]),t]}var nt={draggable:`
1
+ import{a as e,n as t,t as n}from"./jsx-runtime-C7oxC63R.js";import{n as r}from"./client-DRYsuOGl.js";import{_ as i,n as a,o,v as s,y as c}from"./format-LNQSSpn6.js";import{T as l,t as u,w as d}from"./operations-e2CGYKB1.js";import{_ as f}from"./dist-CmX-h7a4.js";import{t as p}from"./bot-yILPnRgD.js";import{a as m,i as h,n as g,r as _,t as v}from"./tabs-vn6v7Bk6.js";import{t as y}from"./copy-Bi5vzoF9.js";import{u as b}from"./dist-DAwYQmf_.js";import{t as x}from"./search-CiooTLck.js";import{a as S,c as C,d as w,f as T,i as E,l as D,n as ee,o as O,p as k,r as te,s as A,t as j,u as ne}from"./table-BgsSBdke.js";import{n as re,t as M}from"./meta-tile-BMtBC-Qq.js";import{t as N}from"./page-header-CIJyycfz.js";import{C as P,D as F,E as I,M as ie,S as L,a as ae,b as R,c as z,d as B,f as oe,g as V,h as H,i as se,l as U,m as W,n as ce,o as le,p as G,r as ue,s as de,t as fe,u as pe,v as K,x as me,y as he}from"./operations-app-ER0gg7GN.js";var ge=f(`grip-vertical`,[[`circle`,{cx:`9`,cy:`12`,r:`1`,key:`1vctgf`}],[`circle`,{cx:`9`,cy:`5`,r:`1`,key:`hp0tcf`}],[`circle`,{cx:`9`,cy:`19`,r:`1`,key:`fkjjf6`}],[`circle`,{cx:`15`,cy:`12`,r:`1`,key:`1tmaij`}],[`circle`,{cx:`15`,cy:`5`,r:`1`,key:`19l28e`}],[`circle`,{cx:`15`,cy:`19`,r:`1`,key:`f4zoj3`}]]),_e=f(`shield-question-mark`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3`,key:`mhlwft`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),ve=f(`sliders-horizontal`,[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]),ye=f(`user-round`,[[`circle`,{cx:`12`,cy:`8`,r:`5`,key:`1hypcn`}],[`path`,{d:`M20 21a8 8 0 0 0-16 0`,key:`rfgkzh`}]]),q=f(`wand-sparkles`,[[`path`,{d:`m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72`,key:`ul74o6`}],[`path`,{d:`m14 7 3 3`,key:`1r5n42`}],[`path`,{d:`M5 6v4`,key:`ilb8ba`}],[`path`,{d:`M19 14v4`,key:`blhpug`}],[`path`,{d:`M10 2v2`,key:`7u0qdc`}],[`path`,{d:`M7 8H3`,key:`zfb6yr`}],[`path`,{d:`M21 16h-4`,key:`1cnmox`}],[`path`,{d:`M11 3H9`,key:`1obp7u`}]]),J=e(t()),Y=n();function be({request:e,response:t,analysis:n}){return(0,Y.jsxs)(v,{defaultValue:`request`,className:`space-y-4`,children:[(0,Y.jsx)(_,{children:[[`request`,`Evidence request`],[`response`,`Evidence response`],[`analysis`,`Analysis`]].map(([e,t])=>(0,Y.jsx)(h,{value:e,children:t},e))}),(0,Y.jsx)(g,{value:`request`,children:(0,Y.jsx)(W,{children:(0,Y.jsx)(H,{className:`p-4`,children:(0,Y.jsx)(`pre`,{className:`text-sm leading-6 text-muted-foreground`,children:e})})})}),(0,Y.jsx)(g,{value:`response`,children:(0,Y.jsx)(W,{children:(0,Y.jsx)(H,{className:`p-4`,children:(0,Y.jsx)(`pre`,{className:`text-sm leading-6 text-muted-foreground`,children:t})})})}),(0,Y.jsx)(g,{value:`analysis`,children:(0,Y.jsx)(W,{children:(0,Y.jsx)(H,{className:`p-4`,children:(0,Y.jsx)(`pre`,{className:`text-sm leading-6 text-muted-foreground`,children:n??`No evidence analysis recorded.`})})})})]})}var xe=e(r());function Se(){var e=[...arguments];return(0,J.useMemo)(()=>t=>{e.forEach(e=>e(t))},e)}var Ce=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function we(e){let t=Object.prototype.toString.call(e);return t===`[object Window]`||t===`[object global]`}function Te(e){return`nodeType`in e}function X(e){return e?we(e)?e:Te(e)?e.ownerDocument?.defaultView??window:window:window}function Ee(e){let{Document:t}=X(e);return e instanceof t}function De(e){return!we(e)&&e instanceof X(e).HTMLElement}function Oe(e){return e instanceof X(e).SVGElement}function ke(e){return e?we(e)?e.document:Te(e)?Ee(e)?e:De(e)||Oe(e)?e.ownerDocument:document:document:document}var Ae=Ce?J.useLayoutEffect:J.useEffect;function je(e){let t=(0,J.useRef)(e);return Ae(()=>{t.current=e}),(0,J.useCallback)(function(){var e=[...arguments];return t.current==null?void 0:t.current(...e)},[])}function Me(){let e=(0,J.useRef)(null);return[(0,J.useCallback)((t,n)=>{e.current=setInterval(t,n)},[]),(0,J.useCallback)(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[])]}function Ne(e,t){t===void 0&&(t=[e]);let n=(0,J.useRef)(e);return Ae(()=>{n.current!==e&&(n.current=e)},t),n}function Pe(e,t){let n=(0,J.useRef)();return(0,J.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function Fe(e){let t=je(e),n=(0,J.useRef)(null);return[n,(0,J.useCallback)(e=>{e!==n.current&&t?.(e,n.current),n.current=e},[])]}function Ie(e){let t=(0,J.useRef)();return(0,J.useEffect)(()=>{t.current=e},[e]),t.current}var Le={};function Re(e,t){return(0,J.useMemo)(()=>{if(t)return t;let n=Le[e]==null?0:Le[e]+1;return Le[e]=n,e+`-`+n},[e,t])}function ze(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>{let r=Object.entries(n);for(let[n,i]of r){let r=t[n];r!=null&&(t[n]=r+e*i)}return t},{...t})}}var Be=ze(1),Ve=ze(-1);function He(e){return`clientX`in e&&`clientY`in e}function Ue(e){if(!e)return!1;let{KeyboardEvent:t}=X(e.target);return t&&e instanceof t}function We(e){if(!e)return!1;let{TouchEvent:t}=X(e.target);return t&&e instanceof t}function Ge(e){if(We(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return He(e)?{x:e.clientX,y:e.clientY}:null}var Ke=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:n}=e;return`translate3d(`+(t?Math.round(t):0)+`px, `+(n?Math.round(n):0)+`px, 0)`}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:n}=e;return`scaleX(`+t+`) scaleY(`+n+`)`}},Transform:{toString(e){if(e)return[Ke.Translate.toString(e),Ke.Scale.toString(e)].join(` `)}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+` `+n+`ms `+r}}}),qe=`a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]`;function Je(e){return e.matches(qe)?e:e.querySelector(qe)}var Ye={display:`none`};function Xe(e){let{id:t,value:n}=e;return J.createElement(`div`,{id:t,style:Ye},n)}function Ze(e){let{id:t,announcement:n,ariaLiveType:r=`assertive`}=e;return J.createElement(`div`,{id:t,style:{position:`fixed`,top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0 0 0 0)`,clipPath:`inset(100%)`,whiteSpace:`nowrap`},role:`status`,"aria-live":r,"aria-atomic":!0},n)}function Qe(){let[e,t]=(0,J.useState)(``);return{announce:(0,J.useCallback)(e=>{e!=null&&t(e)},[]),announcement:e}}var $e=(0,J.createContext)(null);function et(e){let t=(0,J.useContext)($e);(0,J.useEffect)(()=>{if(!t)throw Error(`useDndMonitor must be used within a children of <DndContext>`);return t(e)},[e,t])}function tt(){let[e]=(0,J.useState)(()=>new Set),t=(0,J.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,J.useCallback)(t=>{let{type:n,event:r}=t;e.forEach(e=>e[n]?.call(e,r))},[e]),t]}var nt={draggable:`
2
2
  To pick up a draggable item, press the space bar.
3
3
  While dragging, use the arrow keys to move the item.
4
4
  Press space again to drop the item in its new position, or press escape to cancel.
5
- `},rt={onDragStart(e){let{active:t}=e;return`Picked up draggable item `+t.id+`.`},onDragOver(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was moved over droppable area `+n.id+`.`:`Draggable item `+t.id+` is no longer over a droppable area.`},onDragEnd(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was dropped over droppable area `+n.id:`Draggable item `+t.id+` was dropped.`},onDragCancel(e){let{active:t}=e;return`Dragging was cancelled. Draggable item `+t.id+` was dropped.`}};function it(e){let{announcements:t=rt,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=nt}=e,{announce:a,announcement:o}=Qe(),s=Re(`DndLiveRegion`),[c,l]=(0,J.useState)(!1);if((0,J.useEffect)(()=>{l(!0)},[]),et((0,J.useMemo)(()=>({onDragStart(e){let{active:n}=e;a(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:r}=e;t.onDragMove&&a(t.onDragMove({active:n,over:r}))},onDragOver(e){let{active:n,over:r}=e;a(t.onDragOver({active:n,over:r}))},onDragEnd(e){let{active:n,over:r}=e;a(t.onDragEnd({active:n,over:r}))},onDragCancel(e){let{active:n,over:r}=e;a(t.onDragCancel({active:n,over:r}))}}),[a,t])),!c)return null;let u=J.createElement(J.Fragment,null,J.createElement(Xe,{id:r,value:i.draggable}),J.createElement(Ze,{id:s,announcement:o}));return n?(0,xe.createPortal)(u,n):u}var Z;(function(e){e.DragStart=`dragStart`,e.DragMove=`dragMove`,e.DragEnd=`dragEnd`,e.DragCancel=`dragCancel`,e.DragOver=`dragOver`,e.RegisterDroppable=`registerDroppable`,e.SetDroppableDisabled=`setDroppableDisabled`,e.UnregisterDroppable=`unregisterDroppable`})(Z||={});function at(){}function ot(e,t){return(0,J.useMemo)(()=>({sensor:e,options:t??{}}),[e,t])}function st(){var e=[...arguments];return(0,J.useMemo)(()=>[...e].filter(e=>e!=null),[...e])}var ct=Object.freeze({x:0,y:0});function lt(e,t){let n=Ge(e);if(!n)return`0 0`;let r={x:(n.x-t.left)/t.width*100,y:(n.y-t.top)/t.height*100};return r.x+`% `+r.y+`%`}function ut(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function dt(e,t){if(!e||e.length===0)return null;let[n]=e;return t?n[t]:n}function ft(e,t){let n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),a=Math.min(t.top+t.height,e.top+e.height),o=i-r,s=a-n;if(r<i&&n<a){let n=t.width*t.height,r=e.width*e.height,i=o*s,a=i/(n+r-i);return Number(a.toFixed(4))}return 0}var pt=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=[];for(let e of r){let{id:r}=e,a=n.get(r);if(a){let n=ft(a,t);n>0&&i.push({id:r,data:{droppableContainer:e,value:n}})}}return i.sort(ut)};function mt(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function ht(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:ct}function gt(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}var _t=gt(1);function vt(e){if(e.startsWith(`matrix3d(`)){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith(`matrix(`)){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function yt(e,t,n){let r=vt(t);if(!r)return e;let{scaleX:i,scaleY:a,x:o,y:s}=r,c=e.left-o-(1-i)*parseFloat(n),l=e.top-s-(1-a)*parseFloat(n.slice(n.indexOf(` `)+1)),u=i?e.width/i:e.width,d=a?e.height/a:e.height;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c}}var bt={ignoreTransform:!1};function xt(e,t){t===void 0&&(t=bt);let n=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=X(e).getComputedStyle(e);t&&(n=yt(n,t,r))}let{top:r,left:i,width:a,height:o,bottom:s,right:c}=n;return{top:r,left:i,width:a,height:o,bottom:s,right:c}}function St(e){return xt(e,{ignoreTransform:!0})}function Ct(e){let t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function wt(e,t){return t===void 0&&(t=X(e).getComputedStyle(e)),t.position===`fixed`}function Tt(e,t){t===void 0&&(t=X(e).getComputedStyle(e));let n=/(auto|scroll|overlay)/;return[`overflow`,`overflowX`,`overflowY`].some(e=>{let r=t[e];return typeof r==`string`&&n.test(r)})}function Et(e,t){let n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if(Ee(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!De(i)||Oe(i)||n.includes(i))return n;let a=X(e).getComputedStyle(i);return i!==e&&Tt(i,a)&&n.push(i),wt(i,a)?n:r(i.parentNode)}return e?r(e):n}function Dt(e){let[t]=Et(e,1);return t??null}function Ot(e){return!Ce||!e?null:we(e)?e:Te(e)?Ee(e)||e===ke(e).scrollingElement?window:De(e)?e:null:null}function kt(e){return we(e)?e.scrollX:e.scrollLeft}function At(e){return we(e)?e.scrollY:e.scrollTop}function jt(e){return{x:kt(e),y:At(e)}}var Q;(function(e){e[e.Forward=1]=`Forward`,e[e.Backward=-1]=`Backward`})(Q||={});function Mt(e){return!Ce||!e?!1:e===document.scrollingElement}function Nt(e){let t={x:0,y:0},n=Mt(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}var Pt={x:.2,y:.2};function Ft(e,t,n,r,i){let{top:a,left:o,right:s,bottom:c}=n;r===void 0&&(r=10),i===void 0&&(i=Pt);let{isTop:l,isBottom:u,isLeft:d,isRight:f}=Nt(e),p={x:0,y:0},m={x:0,y:0},h={height:t.height*i.y,width:t.width*i.x};return!l&&a<=t.top+h.height?(p.y=Q.Backward,m.y=r*Math.abs((t.top+h.height-a)/h.height)):!u&&c>=t.bottom-h.height&&(p.y=Q.Forward,m.y=r*Math.abs((t.bottom-h.height-c)/h.height)),!f&&s>=t.right-h.width?(p.x=Q.Forward,m.x=r*Math.abs((t.right-h.width-s)/h.width)):!d&&o<=t.left+h.width&&(p.x=Q.Backward,m.x=r*Math.abs((t.left+h.width-o)/h.width)),{direction:p,speed:m}}function It(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:n,right:r,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:i,width:e.clientWidth,height:e.clientHeight}}function Lt(e){return e.reduce((e,t)=>Be(e,jt(t)),ct)}function Rt(e){return e.reduce((e,t)=>e+kt(t),0)}function zt(e){return e.reduce((e,t)=>e+At(t),0)}function Bt(e,t){if(t===void 0&&(t=xt),!e)return;let{top:n,left:r,bottom:i,right:a}=t(e);Dt(e)&&(i<=0||a<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:`center`,inline:`center`})}var Vt=[[`x`,[`left`,`right`],Rt],[`y`,[`top`,`bottom`],zt]],Ht=class{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;let n=Et(t),r=Lt(n);this.rect={...e},this.width=e.width,this.height=e.height;for(let[e,t,i]of Vt)for(let a of t)Object.defineProperty(this,a,{get:()=>{let t=i(n),o=r[e]-t;return this.rect[a]+o},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}},Ut=class{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>this.target?.removeEventListener(...e))},this.target=e}add(e,t,n){var r;(r=this.target)==null||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}};function Wt(e){let{EventTarget:t}=X(e);return e instanceof t?e:ke(e)}function Gt(e,t){let n=Math.abs(e.x),r=Math.abs(e.y);return typeof t==`number`?Math.sqrt(n**2+r**2)>t:`x`in t&&`y`in t?n>t.x&&r>t.y:`x`in t?n>t.x:`y`in t&&r>t.y}var Kt;(function(e){e.Click=`click`,e.DragStart=`dragstart`,e.Keydown=`keydown`,e.ContextMenu=`contextmenu`,e.Resize=`resize`,e.SelectionChange=`selectionchange`,e.VisibilityChange=`visibilitychange`})(Kt||={});function qt(e){e.preventDefault()}function Jt(e){e.stopPropagation()}var $;(function(e){e.Space=`Space`,e.Down=`ArrowDown`,e.Right=`ArrowRight`,e.Left=`ArrowLeft`,e.Up=`ArrowUp`,e.Esc=`Escape`,e.Enter=`Enter`,e.Tab=`Tab`})($||={});var Yt={start:[$.Space,$.Enter],cancel:[$.Esc],end:[$.Space,$.Enter,$.Tab]},Xt=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case $.Right:return{...n,x:n.x+25};case $.Left:return{...n,x:n.x-25};case $.Down:return{...n,y:n.y+25};case $.Up:return{...n,y:n.y-25}}},Zt=class{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;let{event:{target:t}}=e;this.props=e,this.listeners=new Ut(ke(t)),this.windowListeners=new Ut(X(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(Kt.Resize,this.handleCancel),this.windowListeners.add(Kt.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(Kt.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&Bt(n),t(ct)}handleKeyDown(e){if(Ue(e)){let{active:t,context:n,options:r}=this.props,{keyboardCodes:i=Yt,coordinateGetter:a=Xt,scrollBehavior:o=`smooth`}=r,{code:s}=e;if(i.end.includes(s)){this.handleEnd(e);return}if(i.cancel.includes(s)){this.handleCancel(e);return}let{collisionRect:c}=n.current,l=c?{x:c.left,y:c.top}:ct;this.referenceCoordinates||=l;let u=a(e,{active:t,context:n.current,currentCoordinates:l});if(u){let t=Ve(u,l),r={x:0,y:0},{scrollableAncestors:i}=n.current;for(let n of i){let i=e.code,{isTop:a,isRight:s,isLeft:c,isBottom:l,maxScroll:d,minScroll:f}=Nt(n),p=It(n),m={x:Math.min(i===$.Right?p.right-p.width/2:p.right,Math.max(i===$.Right?p.left:p.left+p.width/2,u.x)),y:Math.min(i===$.Down?p.bottom-p.height/2:p.bottom,Math.max(i===$.Down?p.top:p.top+p.height/2,u.y))},h=i===$.Right&&!s||i===$.Left&&!c,g=i===$.Down&&!l||i===$.Up&&!a;if(h&&m.x!==u.x){let e=n.scrollLeft+t.x,a=i===$.Right&&e<=d.x||i===$.Left&&e>=f.x;if(a&&!t.y){n.scrollTo({left:e,behavior:o});return}r.x=a?n.scrollLeft-e:i===$.Right?n.scrollLeft-d.x:n.scrollLeft-f.x,r.x&&n.scrollBy({left:-r.x,behavior:o});break}if(g&&m.y!==u.y){let e=n.scrollTop+t.y,a=i===$.Down&&e<=d.y||i===$.Up&&e>=f.y;if(a&&!t.x){n.scrollTo({top:e,behavior:o});return}r.y=a?n.scrollTop-e:i===$.Down?n.scrollTop-d.y:n.scrollTop-f.y,r.y&&n.scrollBy({top:-r.y,behavior:o});break}}this.handleMove(e,Be(Ve(u,this.referenceCoordinates),r))}}}handleMove(e,t){let{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){let{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){let{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}};Zt.activators=[{eventName:`onKeyDown`,handler:(e,t,n)=>{let{keyboardCodes:r=Yt,onActivation:i}=t,{active:a}=n,{code:o}=e.nativeEvent;if(r.start.includes(o)){let t=a.activatorNode.current;return t&&e.target!==t?!1:(e.preventDefault(),i?.({event:e.nativeEvent}),!0)}return!1}}];function Qt(e){return!!(e&&`distance`in e)}function $t(e){return!!(e&&`delay`in e)}var en=class{constructor(e,t,n){n===void 0&&(n=Wt(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;let{event:r}=e,{target:i}=r;this.props=e,this.events=t,this.document=ke(i),this.documentListeners=new Ut(this.document),this.listeners=new Ut(n),this.windowListeners=new Ut(X(i)),this.initialCoordinates=Ge(r)??ct,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(Kt.Resize,this.handleCancel),this.windowListeners.add(Kt.DragStart,qt),this.windowListeners.add(Kt.VisibilityChange,this.handleCancel),this.windowListeners.add(Kt.ContextMenu,qt),this.documentListeners.add(Kt.Keydown,this.handleKeydown),t){if(n!=null&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if($t(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(Qt(t)){this.handlePending(t);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){let{active:n,onPending:r}=this.props;r(n,e,this.initialCoordinates,t)}handleStart(){let{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(Kt.Click,Jt,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(Kt.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){let{activated:t,initialCoordinates:n,props:r}=this,{onMove:i,options:{activationConstraint:a}}=r;if(!n)return;let o=Ge(e)??ct,s=Ve(n,o);if(!t&&a){if(Qt(a)){if(a.tolerance!=null&&Gt(s,a.tolerance))return this.handleCancel();if(Gt(s,a.distance))return this.handleStart()}if($t(a)&&Gt(s,a.tolerance))return this.handleCancel();this.handlePending(a,s);return}e.cancelable&&e.preventDefault(),i(o)}handleEnd(){let{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){let{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===$.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}},tn={cancel:{name:`pointercancel`},move:{name:`pointermove`},end:{name:`pointerup`}},nn=class extends en{constructor(e){let{event:t}=e,n=ke(t.target);super(e,tn,n)}};nn.activators=[{eventName:`onPointerDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r?.({event:n}),!0)}}];var rn={move:{name:`mousemove`},end:{name:`mouseup`}},an;(function(e){e[e.RightClick=2]=`RightClick`})(an||={});var on=class extends en{constructor(e){super(e,rn,ke(e.event.target))}};on.activators=[{eventName:`onMouseDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button!==an.RightClick&&(r?.({event:n}),!0)}}];var sn={cancel:{name:`touchcancel`},move:{name:`touchmove`},end:{name:`touchend`}},cn=class extends en{constructor(e){super(e,sn)}static setup(){return window.addEventListener(sn.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(sn.move.name,e)};function e(){}}};cn.activators=[{eventName:`onTouchStart`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t,{touches:i}=n;return i.length>1?!1:(r?.({event:n}),!0)}}];var ln;(function(e){e[e.Pointer=0]=`Pointer`,e[e.DraggableRect=1]=`DraggableRect`})(ln||={});var un;(function(e){e[e.TreeOrder=0]=`TreeOrder`,e[e.ReversedTreeOrder=1]=`ReversedTreeOrder`})(un||={});function dn(e){let{acceleration:t,activator:n=ln.Pointer,canScroll:r,draggingRect:i,enabled:a,interval:o=5,order:s=un.TreeOrder,pointerCoordinates:c,scrollableAncestors:l,scrollableAncestorRects:u,delta:d,threshold:f}=e,p=pn({delta:d,disabled:!a}),[m,h]=Me(),g=(0,J.useRef)({x:0,y:0}),_=(0,J.useRef)({x:0,y:0}),v=(0,J.useMemo)(()=>{switch(n){case ln.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case ln.DraggableRect:return i}},[n,i,c]),y=(0,J.useRef)(null),b=(0,J.useCallback)(()=>{let e=y.current;if(!e)return;let t=g.current.x*_.current.x,n=g.current.y*_.current.y;e.scrollBy(t,n)},[]),x=(0,J.useMemo)(()=>s===un.TreeOrder?[...l].reverse():l,[s,l]);(0,J.useEffect)(()=>{if(!a||!l.length||!v){h();return}for(let e of x){if(r?.(e)===!1)continue;let n=l.indexOf(e),i=u[n];if(!i)continue;let{direction:a,speed:s}=Ft(e,i,v,t,f);for(let e of[`x`,`y`])p[e][a[e]]||(s[e]=0,a[e]=0);if(s.x>0||s.y>0){h(),y.current=e,m(b,o),g.current=s,_.current=a;return}}g.current={x:0,y:0},_.current={x:0,y:0},h()},[t,b,r,h,a,o,JSON.stringify(v),JSON.stringify(p),m,l,x,u,JSON.stringify(f)])}var fn={x:{[Q.Backward]:!1,[Q.Forward]:!1},y:{[Q.Backward]:!1,[Q.Forward]:!1}};function pn(e){let{delta:t,disabled:n}=e,r=Ie(t);return Pe(e=>{if(n||!r||!e)return fn;let i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[Q.Backward]:e.x[Q.Backward]||i.x===-1,[Q.Forward]:e.x[Q.Forward]||i.x===1},y:{[Q.Backward]:e.y[Q.Backward]||i.y===-1,[Q.Forward]:e.y[Q.Forward]||i.y===1}}},[n,t,r])}function mn(e,t){let n=t==null?void 0:e.get(t),r=n?n.node.current:null;return Pe(e=>t==null?null:r??e??null,[r,t])}function hn(e,t){return(0,J.useMemo)(()=>e.reduce((e,n)=>{let{sensor:r}=n,i=r.activators.map(e=>({eventName:e.eventName,handler:t(e.handler,n)}));return[...e,...i]},[]),[e,t])}var gn;(function(e){e[e.Always=0]=`Always`,e[e.BeforeDragging=1]=`BeforeDragging`,e[e.WhileDragging=2]=`WhileDragging`})(gn||={});var _n;(function(e){e.Optimized=`optimized`})(_n||={});var vn=new Map;function yn(e,t){let{dragging:n,dependencies:r,config:i}=t,[a,o]=(0,J.useState)(null),{frequency:s,measure:c,strategy:l}=i,u=(0,J.useRef)(e),d=g(),f=Ne(d),p=(0,J.useCallback)(function(e){e===void 0&&(e=[]),!f.current&&o(t=>t===null?e:t.concat(e.filter(e=>!t.includes(e))))},[f]),m=(0,J.useRef)(null),h=Pe(t=>{if(d&&!n)return vn;if(!t||t===vn||u.current!==e||a!=null){let t=new Map;for(let n of e){if(!n)continue;if(a&&a.length>0&&!a.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}let e=n.node.current,r=e?new Ht(c(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,a,n,d,c]);return(0,J.useEffect)(()=>{u.current=e},[e]),(0,J.useEffect)(()=>{d||p()},[n,d]),(0,J.useEffect)(()=>{a&&a.length>0&&o(null)},[JSON.stringify(a)]),(0,J.useEffect)(()=>{d||typeof s!=`number`||m.current!==null||(m.current=setTimeout(()=>{p(),m.current=null},s))},[s,d,p,...r]),{droppableRects:h,measureDroppableContainers:p,measuringScheduled:a!=null};function g(){switch(l){case gn.Always:return!1;case gn.BeforeDragging:return n;default:return!n}}}function bn(e,t){return Pe(n=>e?n||(typeof t==`function`?t(e):e):null,[t,e])}function xn(e,t){return bn(e,t)}function Sn(e){let{callback:t,disabled:n}=e,r=je(t),i=(0,J.useMemo)(()=>{if(n||typeof window>`u`||window.MutationObserver===void 0)return;let{MutationObserver:e}=window;return new e(r)},[r,n]);return(0,J.useEffect)(()=>()=>i?.disconnect(),[i]),i}function Cn(e){let{callback:t,disabled:n}=e,r=je(t),i=(0,J.useMemo)(()=>{if(n||typeof window>`u`||window.ResizeObserver===void 0)return;let{ResizeObserver:e}=window;return new e(r)},[n]);return(0,J.useEffect)(()=>()=>i?.disconnect(),[i]),i}function wn(e){return new Ht(xt(e),e)}function Tn(e,t,n){t===void 0&&(t=wn);let[r,i]=(0,J.useState)(null);function a(){i(r=>{if(!e)return null;if(e.isConnected===!1)return r??n??null;let i=t(e);return JSON.stringify(r)===JSON.stringify(i)?r:i})}let o=Sn({callback(t){if(e)for(let n of t){let{type:t,target:r}=n;if(t===`childList`&&r instanceof HTMLElement&&r.contains(e)){a();break}}}}),s=Cn({callback:a});return Ae(()=>{a(),e?(s?.observe(e),o?.observe(document.body,{childList:!0,subtree:!0})):(s?.disconnect(),o?.disconnect())},[e]),r}function En(e){return ht(e,bn(e))}var Dn=[];function On(e){let t=(0,J.useRef)(e),n=Pe(n=>e?n&&n!==Dn&&e&&t.current&&e.parentNode===t.current.parentNode?n:Et(e):Dn,[e]);return(0,J.useEffect)(()=>{t.current=e},[e]),n}function kn(e){let[t,n]=(0,J.useState)(null),r=(0,J.useRef)(e),i=(0,J.useCallback)(e=>{let t=Ot(e.target);t&&n(e=>e?(e.set(t,jt(t)),new Map(e)):null)},[]);return(0,J.useEffect)(()=>{let t=r.current;if(e!==t){a(t);let o=e.map(e=>{let t=Ot(e);return t?(t.addEventListener(`scroll`,i,{passive:!0}),[t,jt(t)]):null}).filter(e=>e!=null);n(o.length?new Map(o):null),r.current=e}return()=>{a(e),a(t)};function a(e){e.forEach(e=>{Ot(e)?.removeEventListener(`scroll`,i)})}},[i,e]),(0,J.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>Be(e,t),ct):Lt(e):ct,[e,t])}function An(e,t){t===void 0&&(t=[]);let n=(0,J.useRef)(null);return(0,J.useEffect)(()=>{n.current=null},t),(0,J.useEffect)(()=>{let t=e!==ct;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?Ve(e,n.current):ct}function jn(e){(0,J.useEffect)(()=>{if(!Ce)return;let t=e.map(e=>{let{sensor:t}=e;return t.setup==null?void 0:t.setup()});return()=>{for(let e of t)e?.()}},e.map(e=>{let{sensor:t}=e;return t}))}function Mn(e,t){return(0,J.useMemo)(()=>e.reduce((e,n)=>{let{eventName:r,handler:i}=n;return e[r]=e=>{i(e,t)},e},{}),[e,t])}function Nn(e){return(0,J.useMemo)(()=>e?Ct(e):null,[e])}var Pn=[];function Fn(e,t){t===void 0&&(t=xt);let[n]=e,r=Nn(n?X(n):null),[i,a]=(0,J.useState)(Pn);function o(){a(()=>e.length?e.map(e=>Mt(e)?r:new Ht(t(e),e)):Pn)}let s=Cn({callback:o});return Ae(()=>{s?.disconnect(),o(),e.forEach(e=>s?.observe(e))},[e]),i}function In(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return De(t)?t:e}function Ln(e){let{measure:t}=e,[n,r]=(0,J.useState)(null),i=Cn({callback:(0,J.useCallback)(e=>{for(let{target:n}of e)if(De(n)){r(e=>{let r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),[a,o]=Fe((0,J.useCallback)(e=>{let n=In(e);i?.disconnect(),n&&i?.observe(n),r(n?t(n):null)},[t,i]));return(0,J.useMemo)(()=>({nodeRef:a,rect:n,setRef:o}),[n,a,o])}var Rn=[{sensor:nn,options:{}},{sensor:Zt,options:{}}],zn={current:{}},Bn={draggable:{measure:St},droppable:{measure:St,strategy:gn.WhileDragging,frequency:_n.Optimized},dragOverlay:{measure:xt}},Vn=class extends Map{get(e){return e==null?void 0:super.get(e)??void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){return this.get(e)?.node.current??void 0}},Hn={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Vn,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:at},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Bn,measureDroppableContainers:at,windowRect:null,measuringScheduled:!1},Un={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:``},dispatch:at,draggableNodes:new Map,over:null,measureDroppableContainers:at},Wn=(0,J.createContext)(Un),Gn=(0,J.createContext)(Hn);function Kn(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Vn}}}function qn(e,t){switch(t.type){case Z.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case Z.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case Z.DragEnd:case Z.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case Z.RegisterDroppable:{let{element:n}=t,{id:r}=n,i=new Vn(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case Z.SetDroppableDisabled:{let{id:n,key:r,disabled:i}=t,a=e.droppable.containers.get(n);if(!a||r!==a.key)return e;let o=new Vn(e.droppable.containers);return o.set(n,{...a,disabled:i}),{...e,droppable:{...e.droppable,containers:o}}}case Z.UnregisterDroppable:{let{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;let a=new Vn(e.droppable.containers);return a.delete(n),{...e,droppable:{...e.droppable,containers:a}}}default:return e}}function Jn(e){let{disabled:t}=e,{active:n,activatorEvent:r,draggableNodes:i}=(0,J.useContext)(Wn),a=Ie(r),o=Ie(n?.id);return(0,J.useEffect)(()=>{if(!t&&!r&&a&&o!=null){if(!Ue(a)||document.activeElement===a.target)return;let e=i.get(o);if(!e)return;let{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(let e of[t.current,n.current]){if(!e)continue;let t=Je(e);if(t){t.focus();break}}})}},[r,t,i,o,a]),null}function Yn(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}function Xn(e){return(0,J.useMemo)(()=>({draggable:{...Bn.draggable,...e?.draggable},droppable:{...Bn.droppable,...e?.droppable},dragOverlay:{...Bn.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function Zn(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e,a=(0,J.useRef)(!1),{x:o,y:s}=typeof i==`boolean`?{x:i,y:i}:i;Ae(()=>{if(!o&&!s||!t){a.current=!1;return}if(a.current||!r)return;let e=t?.node.current;if(!e||e.isConnected===!1)return;let i=ht(n(e),r);if(o||(i.x=0),s||(i.y=0),a.current=!0,Math.abs(i.x)>0||Math.abs(i.y)>0){let t=Dt(e);t&&t.scrollBy({top:i.y,left:i.x})}},[t,o,s,r,n])}var Qn=(0,J.createContext)({...ct,scaleX:1,scaleY:1}),$n;(function(e){e[e.Uninitialized=0]=`Uninitialized`,e[e.Initializing=1]=`Initializing`,e[e.Initialized=2]=`Initialized`})($n||={});var er=(0,J.memo)(function(e){let{id:t,accessibility:n,autoScroll:r=!0,children:i,sensors:a=Rn,collisionDetection:o=pt,measuring:s,modifiers:c,...l}=e,[u,d]=(0,J.useReducer)(qn,void 0,Kn),[f,p]=tt(),[m,h]=(0,J.useState)($n.Uninitialized),g=m===$n.Initialized,{draggable:{active:_,nodes:v,translate:y},droppable:{containers:b}}=u,x=_==null?null:v.get(_),S=(0,J.useRef)({initial:null,translated:null}),C=(0,J.useMemo)(()=>_==null?null:{id:_,data:x?.data??zn,rect:S},[_,x]),w=(0,J.useRef)(null),[T,E]=(0,J.useState)(null),[D,ee]=(0,J.useState)(null),O=Ne(l,Object.values(l)),k=Re(`DndDescribedBy`,t),te=(0,J.useMemo)(()=>b.getEnabled(),[b]),A=Xn(s),{droppableRects:j,measureDroppableContainers:ne,measuringScheduled:re}=yn(te,{dragging:g,dependencies:[y.x,y.y],config:A.droppable}),M=mn(v,_),N=(0,J.useMemo)(()=>D?Ge(D):null,[D]),P=be(),F=xn(M,A.draggable.measure);Zn({activeNode:_==null?null:v.get(_),config:P.layoutShiftCompensation,initialRect:F,measure:A.draggable.measure});let I=Tn(M,A.draggable.measure,F),ie=Tn(M?M.parentElement:null),L=(0,J.useRef)({activatorEvent:null,active:null,activeNode:M,collisionRect:null,collisions:null,droppableRects:j,draggableNodes:v,draggingNode:null,draggingNodeRect:null,droppableContainers:b,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ae=b.getNodeFor(L.current.over?.id),R=Ln({measure:A.dragOverlay.measure}),z=R.nodeRef.current??M,B=g?R.rect??I:null,oe=!!(R.nodeRef.current&&R.rect),V=En(oe?null:I),H=Nn(z?X(z):null),se=On(g?ae??M:null),U=Fn(se),W=Yn(c,{transform:{x:y.x-V.x,y:y.y-V.y,scaleX:1,scaleY:1},activatorEvent:D,active:C,activeNodeRect:I,containerNodeRect:ie,draggingNodeRect:B,over:L.current.over,overlayNodeRect:R.rect,scrollableAncestors:se,scrollableAncestorRects:U,windowRect:H}),ce=N?Be(N,y):null,le=kn(se),G=An(le),ue=An(le,[I]),de=Be(W,G),fe=B?_t(B,W):null,pe=C&&fe?o({active:C,collisionRect:fe,droppableRects:j,droppableContainers:te,pointerCoordinates:ce}):null,K=dt(pe,`id`),[me,he]=(0,J.useState)(null),ge=mt(oe?W:Be(W,ue),me?.rect??null,I),_e=(0,J.useRef)(null),ve=(0,J.useCallback)((e,t)=>{let{sensor:n,options:r}=t;if(w.current==null)return;let i=v.get(w.current);if(!i)return;let a=e.nativeEvent,o=new n({active:w.current,activeNode:i,event:a,options:r,context:L,onAbort(e){if(!v.get(e))return;let{onDragAbort:t}=O.current,n={id:e};t?.(n),f({type:`onDragAbort`,event:n})},onPending(e,t,n,r){if(!v.get(e))return;let{onDragPending:i}=O.current,a={id:e,constraint:t,initialCoordinates:n,offset:r};i?.(a),f({type:`onDragPending`,event:a})},onStart(e){let t=w.current;if(t==null)return;let n=v.get(t);if(!n)return;let{onDragStart:r}=O.current,i={activatorEvent:a,active:{id:t,data:n.data,rect:S}};(0,xe.unstable_batchedUpdates)(()=>{r?.(i),h($n.Initializing),d({type:Z.DragStart,initialCoordinates:e,active:t}),f({type:`onDragStart`,event:i}),E(_e.current),ee(a)})},onMove(e){d({type:Z.DragMove,coordinates:e})},onEnd:s(Z.DragEnd),onCancel:s(Z.DragCancel)});_e.current=o;function s(e){return async function(){let{active:t,collisions:n,over:r,scrollAdjustedTranslate:i}=L.current,o=null;if(t&&i){let{cancelDrop:s}=O.current;o={activatorEvent:a,active:t,collisions:n,delta:i,over:r},e===Z.DragEnd&&typeof s==`function`&&await Promise.resolve(s(o))&&(e=Z.DragCancel)}w.current=null,(0,xe.unstable_batchedUpdates)(()=>{d({type:e}),h($n.Uninitialized),he(null),E(null),ee(null),_e.current=null;let t=e===Z.DragEnd?`onDragEnd`:`onDragCancel`;if(o){let e=O.current[t];e?.(o),f({type:t,event:o})}})}}},[v]),ye=hn(a,(0,J.useCallback)((e,t)=>(n,r)=>{let i=n.nativeEvent,a=v.get(r);if(w.current!==null||!a||i.dndKit||i.defaultPrevented)return;let o={active:a};e(n,t.options,o)===!0&&(i.dndKit={capturedBy:t.sensor},w.current=r,ve(n,t))},[v,ve]));jn(a),Ae(()=>{I&&m===$n.Initializing&&h($n.Initialized)},[I,m]),(0,J.useEffect)(()=>{let{onDragMove:e}=O.current,{active:t,activatorEvent:n,collisions:r,over:i}=L.current;if(!t||!n)return;let a={active:t,activatorEvent:n,collisions:r,delta:{x:de.x,y:de.y},over:i};(0,xe.unstable_batchedUpdates)(()=>{e?.(a),f({type:`onDragMove`,event:a})})},[de.x,de.y]),(0,J.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:i}=L.current;if(!e||w.current==null||!t||!i)return;let{onDragOver:a}=O.current,o=r.get(K),s=o&&o.rect.current?{id:o.id,rect:o.rect.current,data:o.data,disabled:o.disabled}:null,c={active:e,activatorEvent:t,collisions:n,delta:{x:i.x,y:i.y},over:s};(0,xe.unstable_batchedUpdates)(()=>{he(s),a?.(c),f({type:`onDragOver`,event:c})})},[K]),Ae(()=>{L.current={activatorEvent:D,active:C,activeNode:M,collisionRect:fe,collisions:pe,droppableRects:j,draggableNodes:v,draggingNode:z,draggingNodeRect:B,droppableContainers:b,over:me,scrollableAncestors:se,scrollAdjustedTranslate:de},S.current={initial:B,translated:fe}},[C,M,pe,fe,v,z,B,j,b,me,se,de]),dn({...P,delta:y,draggingRect:fe,pointerCoordinates:ce,scrollableAncestors:se,scrollableAncestorRects:U});let q=(0,J.useMemo)(()=>({active:C,activeNode:M,activeNodeRect:I,activatorEvent:D,collisions:pe,containerNodeRect:ie,dragOverlay:R,draggableNodes:v,droppableContainers:b,droppableRects:j,over:me,measureDroppableContainers:ne,scrollableAncestors:se,scrollableAncestorRects:U,measuringConfiguration:A,measuringScheduled:re,windowRect:H}),[C,M,I,D,pe,ie,R,v,b,j,me,ne,se,U,A,re,H]),Y=(0,J.useMemo)(()=>({activatorEvent:D,activators:ye,active:C,activeNodeRect:I,ariaDescribedById:{draggable:k},dispatch:d,draggableNodes:v,over:me,measureDroppableContainers:ne}),[D,ye,C,I,d,k,v,me,ne]);return J.createElement($e.Provider,{value:p},J.createElement(Wn.Provider,{value:Y},J.createElement(Gn.Provider,{value:q},J.createElement(Qn.Provider,{value:ge},i)),J.createElement(Jn,{disabled:n?.restoreFocus===!1})),J.createElement(it,{...n,hiddenTextDescribedById:k}));function be(){let e=T?.autoScrollEnabled===!1,t=typeof r==`object`?r.enabled===!1:r===!1,n=g&&!e&&!t;return typeof r==`object`?{...r,enabled:n}:{enabled:n}}}),tr=(0,J.createContext)(null),nr=`button`,rr=`Draggable`;function ir(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e,a=Re(rr),{activators:o,activatorEvent:s,active:c,activeNodeRect:l,ariaDescribedById:u,draggableNodes:d,over:f}=(0,J.useContext)(Wn),{role:p=nr,roleDescription:m=`draggable`,tabIndex:h=0}=i??{},g=c?.id===t,_=(0,J.useContext)(g?Qn:tr),[v,y]=Fe(),[b,x]=Fe(),S=Mn(o,t),C=Ne(n);return Ae(()=>(d.set(t,{id:t,key:a,node:v,activatorNode:b,data:C}),()=>{let e=d.get(t);e&&e.key===a&&d.delete(t)}),[d,t]),{active:c,activatorEvent:s,activeNodeRect:l,attributes:(0,J.useMemo)(()=>({role:p,tabIndex:h,"aria-disabled":r,"aria-pressed":g&&p===nr?!0:void 0,"aria-roledescription":m,"aria-describedby":u.draggable}),[r,p,h,g,m,u.draggable]),isDragging:g,listeners:r?void 0:S,node:v,over:f,setNodeRef:y,setActivatorNodeRef:x,transform:_}}function ar(){return(0,J.useContext)(Gn)}var or=`Droppable`,sr={timeout:25};function cr(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:i}=e,a=Re(or),{active:o,dispatch:s,over:c,measureDroppableContainers:l}=(0,J.useContext)(Wn),u=(0,J.useRef)({disabled:n}),d=(0,J.useRef)(!1),f=(0,J.useRef)(null),p=(0,J.useRef)(null),{disabled:m,updateMeasurementsFor:h,timeout:g}={...sr,...i},_=Ne(h??r),v=Cn({callback:(0,J.useCallback)(()=>{if(!d.current){d.current=!0;return}p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>{l(Array.isArray(_.current)?_.current:[_.current]),p.current=null},g)},[g]),disabled:m||!o}),[y,b]=Fe((0,J.useCallback)((e,t)=>{v&&(t&&(v.unobserve(t),d.current=!1),e&&v.observe(e))},[v])),x=Ne(t);return(0,J.useEffect)(()=>{!v||!y.current||(v.disconnect(),d.current=!1,v.observe(y.current))},[y,v]),(0,J.useEffect)(()=>(s({type:Z.RegisterDroppable,element:{id:r,key:a,disabled:n,node:y,rect:f,data:x}}),()=>s({type:Z.UnregisterDroppable,key:a,id:r})),[r]),(0,J.useEffect)(()=>{n!==u.current.disabled&&(s({type:Z.SetDroppableDisabled,id:r,key:a,disabled:n}),u.current.disabled=n)},[r,a,n,s]),{active:o,rect:f,isOver:c?.id===r,node:y,over:c,setNodeRef:b}}function lr(e){let{animation:t,children:n}=e,[r,i]=(0,J.useState)(null),[a,o]=(0,J.useState)(null),s=Ie(n);return!n&&!r&&s&&i(s),Ae(()=>{if(!a)return;let e=r?.key,n=r?.props.id;if(e==null||n==null){i(null);return}Promise.resolve(t(n,a)).then(()=>{i(null)})},[t,r,a]),J.createElement(J.Fragment,null,n,r?(0,J.cloneElement)(r,{ref:o}):null)}var ur={x:0,y:0,scaleX:1,scaleY:1};function dr(e){let{children:t}=e;return J.createElement(Wn.Provider,{value:Un},J.createElement(Qn.Provider,{value:ur},t))}var fr={position:`fixed`,touchAction:`none`},pr=e=>Ue(e)?`transform 250ms ease`:void 0,mr=(0,J.forwardRef)((e,t)=>{let{as:n,activatorEvent:r,adjustScale:i,children:a,className:o,rect:s,style:c,transform:l,transition:u=pr}=e;if(!s)return null;let d=i?l:{...l,scaleX:1,scaleY:1},f={...fr,width:s.width,height:s.height,top:s.top,left:s.left,transform:Ke.Transform.toString(d),transformOrigin:i&&r?lt(r,s):void 0,transition:typeof u==`function`?u(r):u,...c};return J.createElement(n,{className:o,style:f,ref:t},a)}),hr={duration:250,easing:`ease`,keyframes:e=>{let{transform:{initial:t,final:n}}=e;return[{transform:Ke.Transform.toString(t)},{transform:Ke.Transform.toString(n)}]},sideEffects:(e=>t=>{let{active:n,dragOverlay:r}=t,i={},{styles:a,className:o}=e;if(a!=null&&a.active)for(let[e,t]of Object.entries(a.active))t!==void 0&&(i[e]=n.node.style.getPropertyValue(e),n.node.style.setProperty(e,t));if(a!=null&&a.dragOverlay)for(let[e,t]of Object.entries(a.dragOverlay))t!==void 0&&r.node.style.setProperty(e,t);return o!=null&&o.active&&n.node.classList.add(o.active),o!=null&&o.dragOverlay&&r.node.classList.add(o.dragOverlay),function(){for(let[e,t]of Object.entries(i))n.node.style.setProperty(e,t);o!=null&&o.active&&n.node.classList.remove(o.active)}})({styles:{active:{opacity:`0`}}})};function gr(e){let{config:t,draggableNodes:n,droppableContainers:r,measuringConfiguration:i}=e;return je((e,a)=>{if(t===null)return;let o=n.get(e);if(!o)return;let s=o.node.current;if(!s)return;let c=In(a);if(!c)return;let{transform:l}=X(a).getComputedStyle(a),u=vt(l);if(!u)return;let d=typeof t==`function`?t:_r(t);return Bt(s,i.draggable.measure),d({active:{id:e,data:o.data,node:s,rect:i.draggable.measure(s)},draggableNodes:n,dragOverlay:{node:a,rect:i.dragOverlay.measure(c)},droppableContainers:r,measuringConfiguration:i,transform:u})})}function _r(e){let{duration:t,easing:n,sideEffects:r,keyframes:i}={...hr,...e};return e=>{let{active:a,dragOverlay:o,transform:s,...c}=e;if(!t)return;let l={x:o.rect.left-a.rect.left,y:o.rect.top-a.rect.top},u={scaleX:s.scaleX===1?1:a.rect.width*s.scaleX/o.rect.width,scaleY:s.scaleY===1?1:a.rect.height*s.scaleY/o.rect.height},d={x:s.x-l.x,y:s.y-l.y,...u},f=i({...c,active:a,dragOverlay:o,transform:{initial:s,final:d}}),[p]=f,m=f[f.length-1];if(JSON.stringify(p)===JSON.stringify(m))return;let h=r?.({active:a,dragOverlay:o,...c}),g=o.node.animate(f,{duration:t,easing:n,fill:`forwards`});return new Promise(e=>{g.onfinish=()=>{h?.(),e()}})}}var vr=0;function yr(e){return(0,J.useMemo)(()=>{if(e!=null)return vr++,vr},[e])}var br=J.memo(e=>{let{adjustScale:t=!1,children:n,dropAnimation:r,style:i,transition:a,modifiers:o,wrapperElement:s=`div`,className:c,zIndex:l=999}=e,{activatorEvent:u,active:d,activeNodeRect:f,containerNodeRect:p,draggableNodes:m,droppableContainers:h,dragOverlay:g,over:_,measuringConfiguration:v,scrollableAncestors:y,scrollableAncestorRects:b,windowRect:x}=ar(),S=(0,J.useContext)(Qn),C=yr(d?.id),w=Yn(o,{activatorEvent:u,active:d,activeNodeRect:f,containerNodeRect:p,draggingNodeRect:g.rect,over:_,overlayNodeRect:g.rect,scrollableAncestors:y,scrollableAncestorRects:b,transform:S,windowRect:x}),T=bn(f),E=gr({config:r,draggableNodes:m,droppableContainers:h,measuringConfiguration:v}),D=T?g.setRef:void 0;return J.createElement(dr,null,J.createElement(lr,{animation:E},d&&C?J.createElement(mr,{key:C,id:d.id,ref:D,as:s,activatorEvent:u,adjustScale:t,className:c,transition:a,rect:T,style:{zIndex:l,...i},transform:w},n):null))});function xr(e,t,n){let r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function Sr(e,t){return e.reduce((e,n,r)=>{let i=t.get(n);return i&&(e[r]=i),e},Array(e.length))}function Cr(e){return e!==null&&e>=0}function wr(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Tr(e){return typeof e==`boolean`?{draggable:e,droppable:e}:e}var Er=e=>{let{rects:t,activeIndex:n,overIndex:r,index:i}=e,a=xr(t,r,n),o=t[i],s=a[i];return!s||!o?null:{x:s.left-o.left,y:s.top-o.top,scaleX:s.width/o.width,scaleY:s.height/o.height}},Dr={scaleX:1,scaleY:1},Or=e=>{let{activeIndex:t,activeNodeRect:n,index:r,rects:i,overIndex:a}=e,o=i[t]??n;if(!o)return null;if(r===t){let e=i[a];return e?{x:0,y:t<a?e.top+e.height-(o.top+o.height):e.top-o.top,...Dr}:null}let s=kr(i,r,t);return r>t&&r<=a?{x:0,y:-o.height-s,...Dr}:r<t&&r>=a?{x:0,y:o.height+s,...Dr}:{x:0,y:0,...Dr}};function kr(e,t,n){let r=e[t],i=e[t-1],a=e[t+1];return r?n<t?i?r.top-(i.top+i.height):a?a.top-(r.top+r.height):0:a?a.top-(r.top+r.height):i?r.top-(i.top+i.height):0:0}var Ar=`Sortable`,jr=J.createContext({activeIndex:-1,containerId:Ar,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:Er,disabled:{draggable:!1,droppable:!1}});function Mr(e){let{children:t,id:n,items:r,strategy:i=Er,disabled:a=!1}=e,{active:o,dragOverlay:s,droppableRects:c,over:l,measureDroppableContainers:u}=ar(),d=Re(Ar,n),f=s.rect!==null,p=(0,J.useMemo)(()=>r.map(e=>typeof e==`object`&&`id`in e?e.id:e),[r]),m=o!=null,h=o?p.indexOf(o.id):-1,g=l?p.indexOf(l.id):-1,_=(0,J.useRef)(p),v=!wr(p,_.current),y=g!==-1&&h===-1||v,b=Tr(a);Ae(()=>{v&&m&&u(p)},[v,p,m,u]),(0,J.useEffect)(()=>{_.current=p},[p]);let x=(0,J.useMemo)(()=>({activeIndex:h,containerId:d,disabled:b,disableTransforms:y,items:p,overIndex:g,useDragOverlay:f,sortedRects:Sr(p,c),strategy:i}),[h,d,b.draggable,b.droppable,y,p,g,c,f,i]);return J.createElement(jr.Provider,{value:x},t)}var Nr=e=>{let{id:t,items:n,activeIndex:r,overIndex:i}=e;return xr(n,r,i).indexOf(t)},Pr=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:i,items:a,newIndex:o,previousItems:s,previousContainerId:c,transition:l}=e;return!l||!r||s!==a&&i===o?!1:n?!0:o!==i&&t===c},Fr={duration:200,easing:`ease`},Ir=`transform`,Lr=Ke.Transition.toString({property:Ir,duration:0,easing:`linear`}),Rr={roleDescription:`sortable`};function zr(e){let{disabled:t,index:n,node:r,rect:i}=e,[a,o]=(0,J.useState)(null),s=(0,J.useRef)(n);return Ae(()=>{if(!t&&n!==s.current&&r.current){let e=i.current;if(e){let t=xt(r.current,{ignoreTransform:!0}),n={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(n.x||n.y)&&o(n)}}n!==s.current&&(s.current=n)},[t,n,r,i]),(0,J.useEffect)(()=>{a&&o(null)},[a]),a}function Br(e){let{animateLayoutChanges:t=Pr,attributes:n,disabled:r,data:i,getNewIndex:a=Nr,id:o,strategy:s,resizeObserverConfig:c,transition:l=Fr}=e,{items:u,containerId:d,activeIndex:f,disabled:p,disableTransforms:m,sortedRects:h,overIndex:g,useDragOverlay:_,strategy:v}=(0,J.useContext)(jr),y=Vr(r,p),b=u.indexOf(o),x=(0,J.useMemo)(()=>({sortable:{containerId:d,index:b,items:u},...i}),[d,i,b,u]),S=(0,J.useMemo)(()=>u.slice(u.indexOf(o)),[u,o]),{rect:C,node:w,isOver:T,setNodeRef:E}=cr({id:o,data:x,disabled:y.droppable,resizeObserverConfig:{updateMeasurementsFor:S,...c}}),{active:D,activatorEvent:ee,activeNodeRect:O,attributes:k,setNodeRef:te,listeners:A,isDragging:j,over:ne,setActivatorNodeRef:re,transform:M}=ir({id:o,data:x,attributes:{...Rr,...n},disabled:y.draggable}),N=Se(E,te),P=!!D,F=P&&!m&&Cr(f)&&Cr(g),I=!_&&j,ie=F?(I&&F?M:null)??(s??v)({rects:h,activeNodeRect:O,activeIndex:f,overIndex:g,index:b}):null,L=Cr(f)&&Cr(g)?a({id:o,items:u,activeIndex:f,overIndex:g}):b,ae=D?.id,R=(0,J.useRef)({activeId:ae,items:u,newIndex:L,containerId:d}),z=u!==R.current.items,B=t({active:D,containerId:d,isDragging:j,isSorting:P,id:o,index:b,items:u,newIndex:R.current.newIndex,previousItems:R.current.items,previousContainerId:R.current.containerId,transition:l,wasDragging:R.current.activeId!=null}),oe=zr({disabled:!B,index:b,node:w,rect:C});return(0,J.useEffect)(()=>{P&&R.current.newIndex!==L&&(R.current.newIndex=L),d!==R.current.containerId&&(R.current.containerId=d),u!==R.current.items&&(R.current.items=u)},[P,L,d,u]),(0,J.useEffect)(()=>{if(ae===R.current.activeId)return;if(ae!=null&&R.current.activeId==null){R.current.activeId=ae;return}let e=setTimeout(()=>{R.current.activeId=ae},50);return()=>clearTimeout(e)},[ae]),{active:D,activeIndex:f,attributes:k,data:x,rect:C,index:b,newIndex:L,items:u,isOver:T,isSorting:P,isDragging:j,listeners:A,node:w,overIndex:g,over:ne,setNodeRef:N,setActivatorNodeRef:re,setDroppableNodeRef:E,setDraggableNodeRef:te,transform:oe??ie,transition:V()};function V(){if(oe||z&&R.current.newIndex===b)return Lr;if(!(I&&!Ue(ee)||!l)&&(P||B))return Ke.Transition.toString({...l,property:Ir})}}function Vr(e,t){return typeof e==`boolean`?{draggable:e,droppable:!1}:{draggable:e?.draggable??t.draggable,droppable:e?.droppable??t.droppable}}$.Down,$.Right,$.Up,$.Left;var Hr=[{status:`backlog`,label:`Backlog`,description:`New finding families discovered by the pipeline.`},{status:`todo`,label:`Todo`,description:`Queued for a worker or follow-up pass.`},{status:`in_progress`,label:`In Progress`,description:`Autonomous execution is actively running now.`},{status:`blocked`,label:`Blocked`,description:`Needs more access, context, or a better PoC.`},{status:`done`,label:`Done`,description:`Accepted, verified, or reported.`},{status:`cancelled`,label:`Cancelled`,description:`Suppressed or resolved as false positive.`}];function Ur({groups:e,selectedFingerprint:t,pendingFingerprint:n,onSelect:r,onMove:i}){let[a,o]=(0,J.useState)(null),s=st(ot(nn,{activationConstraint:{distance:6}})),c=(0,J.useMemo)(()=>{let t=new Map;for(let e of Hr)t.set(e.status,[]);for(let n of e)t.get(n.workflow.phase)?.push(n);return t},[e]),l=(0,J.useMemo)(()=>a?e.find(e=>e.fingerprint===a)??null:null,[a,e]);function u(e){o(String(e.active.id))}function d(t){o(null);let{active:n,over:r}=t;if(!r)return;let a=String(n.id),s=e.find(e=>e.fingerprint===a);if(!s)return;let c=null,l=String(r.id);if(Hr.some(e=>e.status===l))c=l;else{let t=e.find(e=>e.fingerprint===l);t&&(c=t.workflow.phase)}c&&c!==s.workflow.phase&&i(a,c)}return(0,Y.jsxs)(W,{className:`overflow-hidden`,children:[(0,Y.jsx)(he,{className:`border-b border-border`,children:(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(K,{children:`Finding board`}),(0,Y.jsx)(L,{className:`mt-2`,children:`Finding workflow board`}),(0,Y.jsx)(V,{children:`Use this secondary view only when the queue does not make the next action clear.`})]})}),(0,Y.jsx)(H,{className:`px-0 pb-0`,children:(0,Y.jsxs)(er,{sensors:s,onDragStart:u,onDragEnd:d,children:[(0,Y.jsx)(`div`,{className:`overflow-x-auto pb-4`,children:(0,Y.jsx)(`div`,{className:`flex min-w-max gap-4 px-6 pb-6`,children:Hr.map(e=>(0,Y.jsx)(Wr,{column:e,groups:c.get(e.status)??[],selectedFingerprint:t,pendingFingerprint:n??null,onSelect:r},e.status))})}),(0,Y.jsx)(br,{children:l?(0,Y.jsx)(Gr,{group:l,selected:t===l.fingerprint,onSelect:r,isOverlay:!0}):null})]})})]})}function Wr({column:e,groups:t,selectedFingerprint:n,pendingFingerprint:r,onSelect:i}){let{setNodeRef:a,isOver:o}=cr({id:e.status});return(0,Y.jsxs)(`section`,{className:`flex w-[20rem] shrink-0 flex-col gap-3`,children:[(0,Y.jsx)(`div`,{className:`rounded-md border border-border bg-muted/25 px-3 py-3`,children:(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`div`,{className:`text-xs font-semibold uppercase tracking-[0.18em] text-muted-foreground`,children:e.label}),(0,Y.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-muted-foreground`,children:e.description})]}),(0,Y.jsx)(`div`,{className:`rounded-sm border border-border bg-background px-2 py-1 text-xs text-muted-foreground`,children:t.length})]})}),(0,Y.jsxs)(`div`,{ref:a,className:P(`flex min-h-[20rem] flex-col gap-3 rounded-md border border-dashed border-border bg-muted/15 p-2 transition-colors`,o&&`border-primary/40 bg-primary/7`),children:[(0,Y.jsx)(Mr,{items:t.map(e=>e.fingerprint),strategy:Or,children:t.map(e=>(0,Y.jsx)(Gr,{group:e,selected:n===e.fingerprint,saving:r===e.fingerprint,onSelect:i},e.fingerprint))}),t.length===0?(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center rounded-md border border-dashed border-border/70 bg-background/70 px-4 py-8 text-center text-xs text-muted-foreground`,children:`Drop a finding family here.`}):null]})]})}function Gr({group:e,selected:t,saving:n=!1,onSelect:r,isOverlay:i=!1}){let{attributes:a,listeners:o,setNodeRef:s,transform:c,transition:l,isDragging:u}=Br({id:e.fingerprint,data:{group:e}}),d={transform:Ke.Transform.toString(c),transition:l},f=n?`Syncing workflow update...`:e.workflow.updatedAt?`Updated ${new Date(e.workflow.updatedAt).toLocaleString()}`:`No workflow activity yet`,p=e.workflow.assignee??e.workflow.activeAgentRoles[0]??`Unassigned`,h=e.workflow.persistedStatus!==e.workflow.phase&&e.workflow.persistedStatus!==e.workflow.reviewGate,g=e.workflow.reviewGate===`human_review`?`Waiting on human review`:e.workflow.reviewGate===`agent_review`?`Waiting on agent review`:e.workflow.phase===`in_progress`?`Execution running`:e.workflow.phase===`blocked`?`Blocked`:`${e.count} hit${e.count>1?`s`:``} · ${e.scanCount} scan${e.scanCount>1?`s`:``}`;return(0,Y.jsxs)(`button`,{ref:s,type:`button`,style:d,onClick:()=>r(e.fingerprint),...a,...o,className:P(`rounded-md border border-border bg-card p-3 text-left transition-[border-color,background-color,box-shadow]`,`cursor-grab active:cursor-grabbing hover:border-primary/20 hover:bg-primary/4 hover:shadow-sm`,t&&`border-primary/35 bg-primary/6 shadow-sm ring-1 ring-primary/15`,u&&!i&&`opacity-30`,i&&`shadow-lg ring-1 ring-primary/20`,n&&`border-primary/30 bg-primary/6`),children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`mb-2 flex items-center gap-2 text-[10px] font-semibold uppercase tracking-[0.18em] text-muted-foreground`,children:[(0,Y.jsx)(ge,{className:`size-3.5`}),e.latest.category,t?(0,Y.jsx)(`span`,{className:`rounded-sm bg-primary/10 px-1.5 py-0.5 text-primary`,children:`Open`}):null]}),(0,Y.jsx)(`div`,{className:`line-clamp-2 text-sm font-semibold leading-5 text-foreground`,children:e.latest.title}),(0,Y.jsx)(`div`,{className:`mt-1 text-xs text-muted-foreground`,children:g})]}),(0,Y.jsx)(ne,{severity:e.latest.severity})]}),(0,Y.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2`,children:[e.workflow.reviewGate===`none`?null:(0,Y.jsx)(D,{value:e.workflow.reviewGate}),(0,Y.jsx)(A,{value:e.workflow.consensus}),(0,Y.jsx)(w,{value:e.workflow.evidenceSignal}),h?(0,Y.jsx)(k,{value:e.workflow.persistedStatus}):null]}),(0,Y.jsxs)(`div`,{className:`mt-3 grid gap-2 text-xs text-muted-foreground sm:grid-cols-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 rounded-sm bg-muted/35 px-2.5 py-2`,children:[(0,Y.jsx)(_e,{className:`size-3.5`}),(0,Y.jsxs)(`span`,{children:[e.count,` hit`,e.count>1?`s`:``]})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 rounded-sm bg-muted/35 px-2.5 py-2`,children:[(0,Y.jsx)(ye,{className:`size-3.5`}),(0,Y.jsx)(`span`,{children:p})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 rounded-sm bg-muted/35 px-2.5 py-2`,children:[(0,Y.jsx)(m,{className:`size-3.5`}),(0,Y.jsx)(`span`,{children:f})]})]})]})}function Kr({className:e,...t}){return(0,Y.jsx)(`textarea`,{"data-slot":`textarea`,className:P(`flex field-sizing-content min-h-16 w-full resize-none rounded-md border border-input bg-background px-3 py-3 text-base transition-[color,box-shadow,border-color] outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-2 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40`,e),...t})}function qr(e,t){if(typeof window>`u`)return t;try{let n=window.localStorage.getItem(e);return n?JSON.parse(n):t}catch{return t}}function Jr(e,t){let[n,r]=(0,J.useState)(()=>qr(e,t));return(0,J.useEffect)(()=>{try{window.localStorage.setItem(e,JSON.stringify(n))}catch{}},[e,n]),[n,r]}var Yr=[{value:`backlog`,label:`Backlog`},{value:`todo`,label:`Todo`},{value:`in_progress`,label:`In progress`},{value:`blocked`,label:`Blocked`},{value:`done`,label:`Done`},{value:`cancelled`,label:`Cancelled`}],Xr=[{value:`all`,label:`All consensus`},{value:`pending`,label:`Pending`},{value:`verified`,label:`Verified`},{value:`disputed`,label:`Disputed`},{value:`false-positive`,label:`False positive`}],Zr={search:``,workflowFilter:`all`,reviewFilter:`all`,severityFilter:`all`,consensusFilter:`all`,assigneeFilter:`all`,activeOnly:!1,viewMode:`inbox`,queueSort:`attention`};function Qr(e,t){return[e.latest.title,e.latest.category,e.latest.severity,e.latest.triageStatus,e.workflow.status,e.workflow.phase,e.workflow.reviewGate,e.workflow.persistedStatus,e.workflow.recommendedStatus,e.workflow.reviewReason??``,e.workflow.consensus,e.workflow.assignee??``,e.workflow.activeAgentRoles.join(` `),e.fingerprint].join(` `).toLowerCase().includes(t)}function $r(e,t){let n=t.workflowAssignee.trim()||null,r=t.workflowStatus===`done`||t.workflowStatus===`cancelled`?t.workflowStatus:e.recommendedStatus,i=t.optimisticStatus??(t.workflowStatus===`done`||t.workflowStatus===`cancelled`?t.workflowStatus:e.status),a=_i(t.workflowStatus);return{...e,status:i,persistedStatus:t.workflowStatus,recommendedStatus:r,phase:a,assignee:n,updatedAt:new Date().toISOString()}}function ei(e,t){return{...e,groups:e.groups.map(e=>e.fingerprint===t.fingerprint?{...e,latest:{...e.latest,workflowStatus:t.workflowStatus,workflowAssignee:t.workflowAssignee.trim()||null,workflowUpdatedAt:new Date().toISOString()},workflow:$r(e.workflow,t)}:e)}}function ti(e,t){return e.fingerprint===t.fingerprint?{...e,latest:{...e.latest,workflowStatus:t.workflowStatus,workflowAssignee:t.workflowAssignee.trim()||null,workflowUpdatedAt:new Date().toISOString()},workflow:$r(e.workflow,t)}:e}function ni({dashboard:e}){let{fingerprint:t}=l(),n=d(),r=u(),{openPanel:a,clearPanel:f}=oe(),[m,g]=(0,J.useState)(null),[y,b]=Jr(`0sec:threads:console-state`,Zr),{search:S,workflowFilter:C,reviewFilter:w,severityFilter:T,consensusFilter:E,assigneeFilter:D,activeOnly:ee,viewMode:O,queueSort:k}=y,[te,A]=(0,J.useState)(!1),j=(0,J.useDeferredValue)(S),ne=(0,J.useMemo)(()=>[`all`,...new Set(e.groups.map(e=>e.latest.severity.toLowerCase()))],[e.groups]),re=(0,J.useMemo)(()=>[`all`,...new Set(e.groups.map(e=>e.workflow.assignee).filter(Boolean))],[e.groups]),M=(0,J.useMemo)(()=>{let t=new Set;for(let n of e.groups){n.workflow.assignee&&t.add(n.workflow.assignee);for(let e of n.workflow.activeAgentRoles)t.add(e)}return[...t].sort((e,t)=>e.localeCompare(t))},[e.groups]),P=(0,J.useMemo)(()=>{let t=j.trim().toLowerCase();return e.groups.filter(e=>!(t&&!Qr(e,t)||C!==`all`&&e.workflow.phase!==C||w!==`all`&&e.workflow.reviewGate!==w||T!==`all`&&e.latest.severity.toLowerCase()!==T||E!==`all`&&e.workflow.consensus!==E||D!==`all`&&(e.workflow.assignee??``)!==D&&!e.workflow.activeAgentRoles.includes(D)||ee&&e.workflow.activeAgentRoles.length===0))},[ee,D,E,e.groups,j,w,T,C]),F=(0,J.useMemo)(()=>P.filter(e=>e.workflow.reviewGate!==`none`),[P]),I=(0,J.useMemo)(()=>{let e=[...P];return e.sort((e,t)=>k===`newest`?t.latest.timestamp-e.latest.timestamp:k===`severity`?hi(t.latest.severity)-hi(e.latest.severity):gi(t)-gi(e)),e},[P,k]),R=(0,J.useMemo)(()=>I.filter(e=>e.workflow.reviewGate===`none`&&(e.workflow.phase===`todo`||e.workflow.phase===`backlog`)),[I]),fe=(0,J.useMemo)(()=>I.filter(e=>e.workflow.phase===`in_progress`||e.workflow.activeAgentRoles.length>0),[I]),me=(0,J.useMemo)(()=>I.filter(e=>e.workflow.phase===`blocked`),[I]),ge=(0,J.useMemo)(()=>F.filter(e=>e.workflow.reviewGate===`agent_review`),[F]),_e=(0,J.useMemo)(()=>F.filter(e=>e.workflow.reviewGate===`human_review`),[F]),ye=O===`review`?F:O===`board`?P:I,q=t??null,be=c({queryKey:[`finding-family`,q],queryFn:()=>o(q),enabled:!!q}),xe=ie({mutationFn:({triageStatus:e,triageNote:t})=>i(q,e,t),onSuccess:async()=>{await Promise.all([r.invalidateQueries({queryKey:[`dashboard`]}),r.invalidateQueries({queryKey:[`finding-family`,q]})])}}),Se=ie({mutationFn:({fingerprint:e,workflowStatus:t,workflowAssignee:n})=>s(e,t,n),onMutate:async e=>{await Promise.all([r.cancelQueries({queryKey:[`dashboard`]}),r.cancelQueries({queryKey:[`finding-family`,e.fingerprint]})]);let t=r.getQueryData([`dashboard`]),n=r.getQueryData([`finding-family`,e.fingerprint]);return r.setQueryData([`dashboard`],t=>t&&ei(t,e)),r.setQueryData([`finding-family`,e.fingerprint],t=>t&&ti(t,e)),{previousDashboard:t,previousFamily:n,fingerprint:e.fingerprint}},onError:(e,t,n)=>{n?.previousDashboard&&r.setQueryData([`dashboard`],n.previousDashboard),n?.previousFamily&&r.setQueryData([`finding-family`,n.fingerprint],n.previousFamily)},onSettled:async(e,t,n)=>{await Promise.all([r.invalidateQueries({queryKey:[`dashboard`]}),r.invalidateQueries({queryKey:[`finding-family`,n.fingerprint]})])}}),Ce=e.groups.find(e=>e.fingerprint===q)??null,we=ye.some(e=>e.fingerprint===q),Te=S.trim().length>0||C!==`all`||w!==`all`||T!==`all`||E!==`all`||D!==`all`||ee,X=[C===`all`?null:Yr.find(e=>e.value===C)?.label??C,w===`all`?null:w.replaceAll(`_`,` `),T===`all`?null:T,E===`all`?null:E.replaceAll(`-`,` `),D===`all`?null:D,ee?`active agents`:null].filter(Boolean),Ee=O===`review`?`${F.length} review families`:O===`board`?`${P.length} board families`:`${I.length} queued families`;function De(){b(e=>({...e,search:``,workflowFilter:`all`,reviewFilter:`all`,severityFilter:`all`,consensusFilter:`all`,assigneeFilter:`all`,activeOnly:!1}))}return(0,J.useEffect)(()=>{q!==m&&g(null)},[m,q]),(0,J.useEffect)(()=>{if(!q||q===m){f();return}let e;return e=be.isLoading?(0,Y.jsx)(B,{label:`Finding detail`}):be.error?(0,Y.jsx)(pe,{error:be.error}):be.data?(0,Y.jsx)(ri,{data:be.data,assigneeSuggestions:M,selectedSummary:Ce?.workflow??null,reviewMode:O===`review`,isSaving:xe.isPending||Se.isPending,onTriage:(e,t)=>xe.mutate({triageStatus:e,triageNote:t}),onWorkflow:(e,t,n,r)=>Se.mutate({fingerprint:e,workflowStatus:t,workflowAssignee:n,optimisticStatus:r})}):(0,Y.jsx)(U,{title:`Finding unavailable`,body:`The selected finding family could not be loaded from the local database.`}),a({title:Ce?.latest.title??`Finding detail`,description:`Inspect this finding family as one execution record with ownership, evidence, chat handoff, and review posture.`,content:(0,Y.jsx)(`div`,{className:`p-6`,children:e}),onClose:()=>{g(q),n(`/findings`)}}),()=>{f()}},[M,f,be.data,be.error,be.isLoading,n,a,q,Ce?.latest.title,Ce?.workflow,m,xe.isPending,Se.isPending,O]),(0,Y.jsxs)(`div`,{className:`space-y-6`,children:[(0,Y.jsx)(N,{eyebrow:`Findings`,title:`Findings workspace`,summary:`A finding family groups repeated observations across runs. Start from evidence and the recommended next action; use the scoped chat workspace when the case needs judgment.`,actions:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(z,{variant:`outline`,onClick:()=>A(!0),children:[(0,Y.jsx)(ve,{className:`size-4`}),`Filters`,Te?(0,Y.jsx)(G,{variant:`neutral`,children:X.length+ +!!S.trim()}):null]}),q?(0,Y.jsx)(z,{variant:`outline`,onClick:()=>n(`/findings`),children:`Close finding`}):null]})}),(0,Y.jsxs)(W,{children:[(0,Y.jsx)(he,{children:(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(K,{children:`Work queues`}),(0,Y.jsx)(L,{className:`mt-2`,children:`Start with what needs a decision`}),(0,Y.jsx)(V,{children:`Keep autonomous execution separate from evidence review. The board remains a secondary view, not a second workflow to maintain.`})]}),(0,Y.jsx)(v,{value:O,onValueChange:e=>b(t=>({...t,viewMode:e})),children:(0,Y.jsxs)(_,{children:[(0,Y.jsx)(h,{value:`inbox`,children:`Queue`}),(0,Y.jsx)(h,{value:`review`,children:`Review`}),(0,Y.jsx)(h,{value:`board`,children:`Board`})]})})]})}),(0,Y.jsxs)(H,{className:`grid gap-3 md:grid-cols-2 xl:grid-cols-4`,children:[(0,Y.jsx)(ci,{label:`Ready now`,value:`${R.length}`,meta:`Queued for the next autonomous step.`}),(0,Y.jsx)(ci,{label:`Running now`,value:`${fe.length}`,meta:`Finding families with live worker activity.`}),(0,Y.jsx)(ci,{label:`Blocked`,value:`${me.length}`,meta:`Need more access, context, or a better PoC.`}),(0,Y.jsx)(ci,{label:`Review`,value:`${F.length}`,meta:`Waiting on agent or human sign-off.`})]})]}),(0,Y.jsx)(W,{size:`sm`,children:(0,Y.jsxs)(H,{className:`space-y-4`,children:[(0,Y.jsxs)(`div`,{className:`grid gap-3 lg:grid-cols-[minmax(0,1fr)_auto] lg:items-center`,children:[(0,Y.jsxs)(`div`,{className:`relative`,children:[(0,Y.jsx)(x,{className:`pointer-events-none absolute top-1/2 left-3 size-4 -translate-y-1/2 text-muted-foreground`}),(0,Y.jsx)(de,{value:S,onChange:e=>b(t=>({...t,search:e.target.value})),placeholder:`Search findings, workflow state, assignee, severity, consensus, or fingerprint`,className:`pl-9`})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm text-muted-foreground`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(p,{className:`size-4`}),Ee]}),(0,Y.jsxs)(G,{variant:`neutral`,children:[e.groups.length,` total`]}),q?(0,Y.jsx)(G,{variant:we?`accent`:`warning`,children:we?`Finding open`:`Selected finding hidden by filters`}):null]})]}),Te||S.trim()?(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[S.trim()?(0,Y.jsxs)(G,{variant:`outline`,children:[`query: `,S.trim()]}):null,X.map(e=>(0,Y.jsx)(G,{variant:`outline`,children:e},e)),(0,Y.jsx)(z,{variant:`ghost`,size:`sm`,onClick:De,children:`Clear filters`})]}):null]})}),(0,Y.jsx)(`div`,{className:`min-w-0 space-y-4`,children:O===`board`?(0,Y.jsx)(Ur,{groups:P,selectedFingerprint:q,pendingFingerprint:Se.isPending?Se.variables?.fingerprint??null:null,onSelect:e=>n(`/findings/${e}`),onMove:(t,r)=>{q!==t&&n(`/findings/${t}`),Se.mutate({fingerprint:t,workflowStatus:r,workflowAssignee:e.groups.find(e=>e.fingerprint===t)?.workflow.assignee??``,optimisticStatus:r})}}):O===`review`?(0,Y.jsx)(ai,{agentReviewGroups:ge,humanReviewGroups:_e,selectedFingerprint:q,pendingFingerprint:Se.isPending?Se.variables?.fingerprint??null:null,onSelect:e=>n(`/findings/${e}`)}):(0,Y.jsx)(ii,{groups:I,readyGroups:R,activeGroups:fe,blockedGroups:me,selectedFingerprint:q,queueSort:k,pendingFingerprint:Se.isPending?Se.variables?.fingerprint??null:null,onSortChange:e=>b(t=>({...t,queueSort:e})),onSelect:e=>n(`/findings/${e}`)})}),(0,Y.jsx)(ce,{open:te,onOpenChange:A,children:(0,Y.jsxs)(ue,{side:`right`,className:`w-full overflow-y-auto p-0 sm:max-w-xl`,children:[(0,Y.jsxs)(ae,{className:`border-b border-border pr-12`,children:[(0,Y.jsx)(le,{children:`Finding filters`}),(0,Y.jsx)(se,{children:`Scope finding families by phase, review gate, severity, ownership, or live worker activity.`})]}),(0,Y.jsxs)(`div`,{className:`space-y-5 p-6`,children:[(0,Y.jsxs)(`label`,{className:`block space-y-2`,children:[(0,Y.jsx)(K,{children:`Search`}),(0,Y.jsx)(de,{value:S,onChange:e=>b(t=>({...t,search:e.target.value})),placeholder:`Search workflow, evidence, assignee, or fingerprint`})]}),(0,Y.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,Y.jsxs)(vi,{label:`Workflow`,children:[(0,Y.jsx)(yi,{active:C===`all`,onClick:()=>b(e=>({...e,workflowFilter:`all`})),children:`All phases`}),Yr.map(e=>(0,Y.jsx)(yi,{active:C===e.value,onClick:()=>b(t=>({...t,workflowFilter:e.value})),children:e.label},e.value))]}),(0,Y.jsxs)(vi,{label:`Review gate`,children:[(0,Y.jsx)(yi,{active:w===`all`,onClick:()=>b(e=>({...e,reviewFilter:`all`})),children:`All review states`}),(0,Y.jsx)(yi,{active:w===`agent_review`,onClick:()=>b(e=>({...e,reviewFilter:`agent_review`})),children:`Agent review`}),(0,Y.jsx)(yi,{active:w===`human_review`,onClick:()=>b(e=>({...e,reviewFilter:`human_review`})),children:`Human review`})]}),(0,Y.jsx)(vi,{label:`Severity`,children:ne.map(e=>(0,Y.jsx)(yi,{active:T===e,onClick:()=>b(t=>({...t,severityFilter:e})),children:e===`all`?`All severities`:e[0]?.toUpperCase()+e.slice(1)},e))}),(0,Y.jsx)(vi,{label:`Consensus`,children:Xr.map(e=>(0,Y.jsx)(yi,{active:E===e.value,onClick:()=>b(t=>({...t,consensusFilter:e.value})),children:e.label},e.value))}),(0,Y.jsxs)(vi,{label:`Ownership`,className:`md:col-span-2`,children:[(0,Y.jsx)(yi,{active:D===`all`,onClick:()=>b(e=>({...e,assigneeFilter:`all`})),children:`All assignees`}),re.filter(e=>e!==`all`).map(e=>(0,Y.jsx)(yi,{active:D===e,onClick:()=>b(t=>({...t,assigneeFilter:e})),children:e},e)),(0,Y.jsx)(yi,{active:ee,onClick:()=>b(e=>({...e,activeOnly:!e.activeOnly})),children:`Active agents only`})]})]}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-t border-border pt-4`,children:[(0,Y.jsxs)(`div`,{className:`text-sm text-muted-foreground`,children:[ye.length,` of `,e.groups.length,` finding families visible`]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(z,{variant:`ghost`,size:`sm`,onClick:De,children:`Reset`}),(0,Y.jsx)(z,{size:`sm`,onClick:()=>A(!1),children:`Apply`})]})]})]})]})})]})}function ri({data:e,assigneeSuggestions:t,selectedSummary:n,reviewMode:r,onTriage:i,onWorkflow:o,isSaving:s}){let[c,l]=(0,J.useState)(e.latest.triageNote??``),[u,d]=(0,J.useState)(e.workflow.assignee??``),[f,p]=(0,J.useState)(null),m=`assignee-suggestions-${e.fingerprint}`,x=(0,J.useMemo)(()=>{let n=new Set;e.workflow.assignee&&n.add(e.workflow.assignee);for(let t of e.workflow.activeAgentRoles)n.add(t);for(let e of t)n.add(e);return[...n].slice(0,8)},[t,e.workflow.activeAgentRoles,e.workflow.assignee]),k=e.workItems.find(e=>e.status===`in_progress`)??null,N=e.workItems.find(e=>e.status===`blocked`)??null,P=e.workItems.find(e=>e.status===`todo`||e.status===`backlog`)??null,ie=k?.owner??e.workflow.assignee??e.workflow.activeAgentRoles[0]??N?.owner??`Unassigned`,ae=N?`Execution is blocked.`:k?`Execution is actively running.`:P?`Execution is queued for the next step.`:e.workflow.reviewGate===`none`?`Execution has no active work item yet.`:`Execution is waiting on review.`,R=N?N.summary||e.workflow.reviewReason||`A blocked step needs operator intervention.`:k?k.summary||e.workflow.reviewReason||`An agent-owned execution step is in progress.`:P?P.summary||`The next queued step is ready to run.`:e.workflow.reviewReason||`No explicit runbook activity is available yet.`,B=e.case?.targetType===`repository`&&e.workflow.consensus===`verified`?`draft_fix`:e.workflow.reviewGate===`human_review`?`verify`:`investigate`,oe=e.consoleCommand.replace(`--finding-intent investigate`,`--finding-intent ${B}`),se=B===`draft_fix`?`Plan a source fix in chat`:B===`verify`?`Review the evidence in chat`:`Investigate in chat`,U=B===`draft_fix`?`The chat will establish root cause and propose a patch and regression test. It cannot apply a patch from this handoff.`:B===`verify`?`The chat will independently assess the evidence before you accept or suppress this finding.`:`The chat starts with this finding's evidence and asks for the next smallest authorized step.`,ce=async()=>{try{if(!navigator.clipboard?.writeText)throw Error(`Clipboard access is unavailable.`);await navigator.clipboard.writeText(oe),p(`Copied. Run the command in a terminal to continue with the same finding context.`)}catch{p(`Copy is unavailable here. Select the command below and run it in a terminal.`)}};return(0,J.useEffect)(()=>{l(e.latest.triageNote??``)},[e.fingerprint,e.latest.triageNote]),(0,J.useEffect)(()=>{d(e.workflow.assignee??``)},[e.fingerprint,e.workflow.assignee]),(0,J.useEffect)(()=>{p(null)},[e.fingerprint]),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,Y.jsxs)(re,{className:r?`order-2`:`order-1`,eyebrow:r?`Review`:`Operator`,title:r?e.workflow.reviewGate===`human_review`?`Evidence and disposition`:`Evidence and next action`:`Finding controls`,description:r?`Inspect the evidence first. Operator controls remain available after the review record.`:`Review evidence, route the next action into the console, and make a final disposition only when the proof is sufficient.`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Y.jsx)(ne,{severity:e.latest.severity}),(0,Y.jsx)(C,{value:e.workflow.phase}),(0,Y.jsx)(D,{value:e.workflow.reviewGate}),(0,Y.jsx)(A,{value:e.workflow.consensus}),(0,Y.jsx)(w,{value:e.workflow.evidenceSignal}),(0,Y.jsx)(T,{value:e.latest.triageStatus})]}),(0,Y.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-2 xl:grid-cols-3`,children:[(0,Y.jsx)(di,{label:`Case`,value:e.case?.target??`Unlinked`}),(0,Y.jsx)(di,{label:`Case type`,value:e.case?mi(e.case.targetType):`Unknown`}),(0,Y.jsx)(di,{label:`Fingerprint`,value:e.fingerprint,mono:!0}),(0,Y.jsx)(di,{label:`Category`,value:e.latest.category}),(0,Y.jsx)(di,{label:`Occurrences`,value:String(e.rows.length)}),(0,Y.jsx)(di,{label:`Review gate`,value:e.workflow.reviewGate.replaceAll(`_`,` `)}),(0,Y.jsx)(di,{label:`Active agents`,value:e.workflow.activeAgentRoles.length>0?e.workflow.activeAgentRoles.join(`, `):`None`})]}),(0,Y.jsxs)(`div`,{className:`rounded-md border border-border bg-muted/20 p-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(K,{children:`Execution snapshot`}),(0,Y.jsx)(`div`,{className:`mt-2 text-sm font-medium text-foreground`,children:ae}),(0,Y.jsx)(`div`,{className:`mt-1 text-sm leading-6 text-muted-foreground`,children:R}),P?(0,Y.jsx)(`div`,{className:`mt-3 text-xs leading-5 text-muted-foreground`,children:"Queued autonomous stages are claimed automatically by a live daemon once dependencies clear. If a finding stalls here, check `Operations` for queue health or worker heartbeats."}):null]}),N?(0,Y.jsx)(li,{value:N.status}):k?(0,Y.jsx)(li,{value:k.status}):null]}),(0,Y.jsxs)(`div`,{className:`mt-4 grid gap-3 md:grid-cols-2 xl:grid-cols-4`,children:[(0,Y.jsx)(di,{label:`Current step`,value:k?k.title:N?N.title:`No live step`}),(0,Y.jsx)(di,{label:`Owner`,value:ie}),(0,Y.jsx)(di,{label:`Next step`,value:P?P.title:e.workflow.reviewGate===`none`?`No queued step`:`Review gate`}),(0,Y.jsx)(di,{label:`Blocked by`,value:N?N.title:e.workflow.phase===`blocked`?e.workflow.reviewReason??`Operator input`:`Clear`})]})]}),(0,Y.jsx)(`div`,{className:`rounded-md border border-primary/30 bg-primary/5 p-4`,children:(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 space-y-2`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(b,{className:`size-4 text-primary`}),(0,Y.jsx)(K,{children:`Continue in console`})]}),(0,Y.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:se}),(0,Y.jsx)(`div`,{className:`text-sm leading-6 text-muted-foreground`,children:U}),(0,Y.jsx)(`code`,{className:`block overflow-x-auto rounded bg-background/80 px-3 py-2 font-mono text-xs text-foreground`,children:oe}),f?(0,Y.jsx)(`div`,{className:`text-xs leading-5 text-muted-foreground`,children:f}):null]}),(0,Y.jsxs)(z,{variant:`outline`,size:`sm`,onClick:()=>void ce(),children:[(0,Y.jsx)(y,{className:`size-4`}),`Copy command`]})]})}),(0,Y.jsxs)(`label`,{className:`block space-y-2`,children:[(0,Y.jsx)(K,{children:`Finding owner`}),(0,Y.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Y.jsx)(de,{list:m,value:u,onChange:e=>d(e.target.value),placeholder:`security-verifier / model owner / person`}),(0,Y.jsx)(`datalist`,{id:m,children:x.map(e=>(0,Y.jsx)(`option`,{value:e},e))}),(0,Y.jsxs)(z,{variant:`outline`,onClick:()=>o(e.fingerprint,e.workflow.phase,u),disabled:s,children:[(0,Y.jsx)(ye,{className:`size-4`}),`Assign`]})]})]}),x.length>0?(0,Y.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:x.map(e=>(0,Y.jsx)(z,{variant:u===e?`default`:`outline`,size:`sm`,onClick:()=>d(e),disabled:s,children:e},e))}):null,(0,Y.jsx)(`div`,{className:`rounded-md border border-border bg-muted/20 p-4`,children:(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-4`,children:[(0,Y.jsxs)(`div`,{className:`max-w-2xl space-y-2`,children:[(0,Y.jsx)(K,{children:`Operator disposition`}),(0,Y.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:`Keep execution state derived from real work.`}),(0,Y.jsx)(`div`,{className:`text-sm leading-6 text-muted-foreground`,children:`The queue and console own investigation and remediation planning. Use a disposition only after the evidence is sufficient to accept or suppress this finding family.`})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Y.jsxs)(z,{variant:`success`,onClick:()=>i(`accepted`,c),disabled:s,children:[(0,Y.jsx)(F,{className:`size-4`}),`Accept`]}),(0,Y.jsxs)(z,{variant:`warning`,onClick:()=>i(`suppressed`,c),disabled:s,children:[(0,Y.jsx)(I,{className:`size-4`}),`Suppress`]}),(0,Y.jsxs)(z,{variant:`outline`,onClick:()=>i(`new`,c),disabled:s,children:[(0,Y.jsx)(_e,{className:`size-4`}),`Reset triage`]})]})]})}),e.workflow.reviewGate!==`none`||e.workflow.persistedStatus!==e.workflow.phase?(0,Y.jsxs)(`div`,{className:`rounded-lg border border-border bg-muted/35 px-3 py-3 text-sm text-muted-foreground`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 font-medium text-foreground`,children:[(0,Y.jsx)(q,{className:`size-4 text-primary`}),`Autonomous workflow signal`]}),(0,Y.jsxs)(`div`,{className:`mt-1`,children:[`Live execution is currently in `,(0,Y.jsx)(`span`,{className:`text-foreground`,children:e.workflow.phase}),e.workflow.reviewGate===`none`?`.`:` with ${e.workflow.reviewGate.replaceAll(`_`,` `)}.`,e.workflow.reviewReason?` ${e.workflow.reviewReason}`:``,n&&n.persistedStatus!==n.phase?` The saved operator workflow is ${n.persistedStatus}.`:``]})]}):null,(0,Y.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,Y.jsx)(M,{label:`Consensus`,value:e.workflow.consensus}),(0,Y.jsx)(M,{label:`Evidence signal`,value:e.workflow.evidenceSignal}),(0,Y.jsx)(M,{label:`True positive votes`,value:String(e.workflow.verdictCounts.truePositive)}),(0,Y.jsx)(M,{label:`False positive votes`,value:String(e.workflow.verdictCounts.falsePositive)}),(0,Y.jsx)(M,{label:`Unsure votes`,value:String(e.workflow.verdictCounts.unsure)}),(0,Y.jsx)(M,{label:`Assignee`,value:e.workflow.assignee??`Unassigned`})]}),(0,Y.jsxs)(`label`,{className:`block space-y-2`,children:[(0,Y.jsx)(K,{children:`Triage note`}),(0,Y.jsx)(Kr,{value:c,onChange:e=>l(e.target.value),placeholder:`Capture why this finding is actionable, benign, needs another agent pass, or is waiting on a human call.`})]})]}),(0,Y.jsx)(re,{className:r?`order-1`:`order-2`,eyebrow:r?`Review evidence`:`Execution`,title:r?`Evidence before disposition`:`Execution record`,description:r?`Start with the captured proof, then inspect the work chain or make a disposition.`:`Open the runbook, evidence, and occurrence detail only when this finding needs deeper inspection.`,children:(0,Y.jsxs)(v,{defaultValue:r?`evidence`:`runbook`,className:`gap-4`,children:[(0,Y.jsxs)(_,{children:[(0,Y.jsx)(h,{value:`runbook`,children:`Runbook`}),(0,Y.jsx)(h,{value:`evidence`,children:`Evidence`}),(0,Y.jsx)(h,{value:`occurrences`,children:`Occurrences`})]}),(0,Y.jsxs)(g,{value:`runbook`,className:`space-y-5`,children:[(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsx)(K,{children:`Work chain`}),e.workItems.length===0?(0,Y.jsx)(`div`,{className:`rounded-md border border-dashed border-border bg-muted/20 px-4 py-8 text-sm text-muted-foreground`,children:`No persisted work graph exists yet for this finding.`}):(0,Y.jsx)(ui,{items:e.workItems,activeWorkItemId:k?.id??null,blockedWorkItemId:N?.id??null})]}),(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsx)(K,{children:`Shared artifacts`}),e.artifacts.length===0?(0,Y.jsx)(`div`,{className:`rounded-md border border-dashed border-border bg-muted/20 px-4 py-8 text-sm text-muted-foreground`,children:`No shared artifacts have been persisted for this finding yet.`}):(0,Y.jsx)(`div`,{className:`grid gap-3`,children:e.artifacts.map(e=>(0,Y.jsx)(`div`,{className:`rounded-md border border-border bg-card px-4 py-3`,children:(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:e.label}),(0,Y.jsx)(`div`,{className:`mt-1 text-xs leading-5 text-muted-foreground`,children:e.summary})]}),(0,Y.jsx)(G,{variant:`outline`,children:fi(e.kind)})]})},e.id))})]})]}),(0,Y.jsx)(g,{value:`evidence`,children:(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsx)(K,{children:`Finding evidence`}),(0,Y.jsx)(be,{request:e.latest.evidenceRequest,response:e.latest.evidenceResponse,analysis:e.latest.evidenceAnalysis})]})}),(0,Y.jsx)(g,{value:`occurrences`,children:(0,Y.jsxs)(W,{className:`overflow-hidden`,children:[(0,Y.jsx)(he,{children:(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(K,{children:`Occurrences`}),(0,Y.jsx)(L,{className:`mt-2`,children:`Matching findings`}),(0,Y.jsx)(V,{children:`Each row is an occurrence grouped into this finding family.`})]})}),(0,Y.jsx)(H,{children:(0,Y.jsxs)(j,{children:[(0,Y.jsx)(S,{children:(0,Y.jsxs)(O,{className:`hover:bg-transparent`,children:[(0,Y.jsx)(E,{children:`Finding`}),(0,Y.jsx)(E,{children:`Scan`}),(0,Y.jsx)(E,{children:`Time`}),(0,Y.jsx)(E,{className:`w-[8rem]`,children:`Status`})]})}),(0,Y.jsx)(ee,{children:e.rows.map(e=>(0,Y.jsxs)(O,{children:[(0,Y.jsx)(te,{className:`font-mono text-xs text-foreground`,children:e.id.slice(0,8)}),(0,Y.jsx)(te,{className:`font-mono text-xs text-muted-foreground`,children:e.scanId.slice(0,8)}),(0,Y.jsx)(te,{className:`text-xs text-muted-foreground`,children:a(e.timestamp)}),(0,Y.jsx)(te,{children:(0,Y.jsx)(T,{value:e.status})})]},e.id))})]})})]})})]})})]})}function ii({groups:e,readyGroups:t,activeGroups:n,blockedGroups:r,selectedFingerprint:i,queueSort:a,pendingFingerprint:o,onSortChange:s,onSelect:c}){return(0,Y.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-[minmax(0,1.4fr)_minmax(0,1fr)]`,children:[(0,Y.jsxs)(W,{className:`overflow-hidden`,children:[(0,Y.jsxs)(he,{children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(K,{children:`Autonomous queue`}),(0,Y.jsx)(L,{className:`mt-2`,children:`What can move next`}),(0,Y.jsx)(V,{children:`This queue separates runnable work from active execution. Open a finding when evidence needs a human decision or chat handoff.`})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Y.jsx)(z,{variant:a===`attention`?`default`:`outline`,size:`xs`,onClick:()=>s(`attention`),children:`Needs attention`}),(0,Y.jsx)(z,{variant:a===`newest`?`default`:`outline`,size:`xs`,onClick:()=>s(`newest`),children:`Newest`}),(0,Y.jsx)(z,{variant:a===`severity`?`default`:`outline`,size:`xs`,onClick:()=>s(`severity`),children:`Severity`})]})]}),(0,Y.jsx)(H,{className:`space-y-4`,children:e.length===0?(0,Y.jsx)(U,{title:`No finding families in the queue`,body:`Adjust filters or launch a run to populate the finding queue.`}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(oi,{eyebrow:`Ready`,title:`Ready to claim`,description:`Runnable finding families with no review gate. These are the next autonomous work candidates.`,count:t.length,emptyLabel:`No ready finding families under the active filters.`,children:t.map(e=>(0,Y.jsx)(si,{group:e,selected:i===e.fingerprint,saving:o===e.fingerprint,mode:`inbox`,onSelect:c},e.fingerprint))}),(0,Y.jsx)(oi,{eyebrow:`Running`,title:`Live execution`,description:`Finding families currently owned by a worker or marked in progress.`,count:n.length,emptyLabel:`No live execution right now.`,children:n.map(e=>(0,Y.jsx)(si,{group:e,selected:i===e.fingerprint,saving:o===e.fingerprint,mode:`inbox`,onSelect:c},e.fingerprint))})]})})]}),(0,Y.jsxs)(`div`,{className:`space-y-4`,children:[(0,Y.jsxs)(W,{className:`overflow-hidden`,children:[(0,Y.jsx)(he,{children:(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(K,{children:`Blocked work`}),(0,Y.jsx)(L,{className:`mt-2`,children:`Needs intervention`}),(0,Y.jsx)(V,{children:`Finding families that need context, access, or a better exploit path before the worker can continue.`})]})}),(0,Y.jsx)(H,{className:`px-0 pb-0`,children:r.length===0?(0,Y.jsx)(`div`,{className:`px-6 pb-6`,children:(0,Y.jsx)(U,{title:`Nothing is blocked`,body:`The current finding set has no blocked execution paths.`})}):(0,Y.jsx)(fe,{className:`max-h-[38rem]`,children:(0,Y.jsx)(R,{children:r.map(e=>(0,Y.jsx)(si,{group:e,selected:i===e.fingerprint,saving:o===e.fingerprint,mode:`review`,onSelect:c},e.fingerprint))})})})]}),(0,Y.jsxs)(W,{children:[(0,Y.jsx)(he,{children:(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(K,{children:`Reading model`}),(0,Y.jsx)(L,{className:`mt-2`,children:`How to use findings`}),(0,Y.jsx)(V,{children:`Runs create evidence. Finding families group related observations over time. Workers claim runnable work until a review gate or blocker stops them.`})]})}),(0,Y.jsxs)(H,{className:`grid gap-3`,children:[(0,Y.jsx)(ci,{label:`Filtered families`,value:`${e.length}`,meta:`Current queue scope after search and filters.`}),(0,Y.jsx)(ci,{label:`Ready plus running`,value:`${t.length+n.length}`,meta:`Work automation can touch without human sign-off.`}),(0,Y.jsx)(ci,{label:`Blocked plus review`,value:`${r.length}`,meta:`Cases outside the autonomous happy path.`})]})]})]})]})}function ai({agentReviewGroups:e,humanReviewGroups:t,selectedFingerprint:n,pendingFingerprint:r,onSelect:i}){return(0,Y.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-2`,children:[(0,Y.jsxs)(W,{className:`overflow-hidden`,children:[(0,Y.jsx)(he,{children:(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(K,{children:`Agent review`}),(0,Y.jsx)(L,{className:`mt-2`,children:`Consensus and replication`}),(0,Y.jsx)(V,{children:`Finding families that need another autonomous pass, conflict resolution, or a stronger PoC before operator review.`})]})}),(0,Y.jsx)(H,{className:`px-0 pb-0`,children:e.length===0?(0,Y.jsx)(`div`,{className:`px-6 pb-6`,children:(0,Y.jsx)(U,{title:`No agent-review families`,body:`Nothing currently needs another agent pass under the active filters.`})}):(0,Y.jsx)(fe,{className:`max-h-[70vh]`,children:(0,Y.jsx)(R,{children:e.map(e=>(0,Y.jsx)(si,{group:e,selected:n===e.fingerprint,saving:r===e.fingerprint,mode:`review`,onSelect:i},e.fingerprint))})})})]}),(0,Y.jsxs)(W,{className:`overflow-hidden`,children:[(0,Y.jsx)(he,{children:(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(K,{children:`Human review`}),(0,Y.jsx)(L,{className:`mt-2`,children:`Operator sign-off`}),(0,Y.jsx)(V,{children:`Finding families with enough signal for a final human disposition or report.`})]})}),(0,Y.jsx)(H,{className:`px-0 pb-0`,children:t.length===0?(0,Y.jsx)(`div`,{className:`px-6 pb-6`,children:(0,Y.jsx)(U,{title:`No human-review families`,body:`No finding families currently require operator sign-off under the active filters.`})}):(0,Y.jsx)(fe,{className:`max-h-[70vh]`,children:(0,Y.jsx)(R,{children:t.map(e=>(0,Y.jsx)(si,{group:e,selected:n===e.fingerprint,saving:r===e.fingerprint,mode:`review`,onSelect:i},e.fingerprint))})})})]})]})}function oi({eyebrow:e,title:t,description:n,count:r,emptyLabel:i,children:a}){return(0,Y.jsxs)(W,{className:`overflow-hidden`,size:`sm`,children:[(0,Y.jsx)(he,{className:`border-b border-border`,children:(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(K,{children:e}),(0,Y.jsx)(L,{className:`mt-2`,children:t}),(0,Y.jsx)(V,{children:n})]}),(0,Y.jsx)(G,{variant:`neutral`,children:r})]})}),(0,Y.jsx)(H,{className:`px-0 pb-0`,children:r===0?(0,Y.jsx)(`div`,{className:`px-4 pb-4`,children:(0,Y.jsx)(U,{title:i,body:`The queue will repopulate here as runs produce finding work.`})}):(0,Y.jsx)(R,{children:a})})]})}function si({group:e,selected:t,saving:n,mode:r,onSelect:i}){let o=r===`review`?e.workflow.reviewGate===`agent_review`?`Needs agent replication or conflict resolution.`:`Needs operator decision before final disposition.`:e.workflow.reviewReason?e.workflow.reviewReason:e.workflow.phase===`in_progress`?`Execution is active now.`:e.workflow.phase===`blocked`?`Execution is blocked and needs intervention.`:`Ready for the next autonomous step.`;return(0,Y.jsx)(me,{interactive:!0,selected:t,className:`p-0`,children:(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>i(e.fingerprint),className:`w-full px-4 py-4 text-left`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,Y.jsx)(`div`,{className:`text-sm font-semibold leading-5 text-foreground`,children:e.latest.title}),(0,Y.jsx)(`div`,{className:`text-xs leading-5 text-muted-foreground`,children:o})]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 flex-wrap justify-end gap-2`,children:[e.workflow.reviewGate===`none`?null:(0,Y.jsx)(D,{value:e.workflow.reviewGate}),(0,Y.jsx)(ne,{severity:e.latest.severity})]})]}),(0,Y.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2`,children:[(0,Y.jsx)(C,{value:e.workflow.phase}),(0,Y.jsx)(A,{value:e.workflow.consensus}),(0,Y.jsx)(w,{value:e.workflow.evidenceSignal}),(0,Y.jsx)(T,{value:e.latest.triageStatus}),e.workflow.persistedStatus!==e.workflow.phase&&e.workflow.persistedStatus!==e.workflow.reviewGate?(0,Y.jsx)(k,{value:e.workflow.persistedStatus}):null]}),(0,Y.jsxs)(`div`,{className:`mt-3 grid gap-2 text-xs text-muted-foreground md:grid-cols-4`,children:[(0,Y.jsxs)(`div`,{children:[`Owner: `,e.workflow.assignee??`Unassigned`]}),(0,Y.jsxs)(`div`,{children:[`Coverage: `,e.count,` hits · `,e.scanCount,` scans`]}),(0,Y.jsxs)(`div`,{children:[`Agents: `,e.workflow.activeAgentRoles.length>0?e.workflow.activeAgentRoles.join(`, `):`None`]}),(0,Y.jsxs)(`div`,{className:`inline-flex items-center gap-1.5`,children:[(0,Y.jsx)(m,{className:`size-3.5`}),n?`Saving workflow...`:`Updated ${a(e.workflow.updatedAt??e.latest.timestamp)}`]})]})]})})}function ci({label:e,value:t,meta:n}){return(0,Y.jsxs)(`div`,{className:`rounded-md border border-border bg-card px-4 py-3`,children:[(0,Y.jsx)(`div`,{className:`text-[10px] font-medium uppercase tracking-widest text-muted-foreground/70`,children:e}),(0,Y.jsx)(`div`,{className:`mt-2 text-2xl font-semibold text-foreground`,children:t}),(0,Y.jsx)(`div`,{className:`mt-1 text-xs text-muted-foreground`,children:n})]})}function li({value:e}){return(0,Y.jsx)(G,{variant:e===`done`?`success`:e===`blocked`||e===`cancelled`?`danger`:e===`in_progress`?`accent`:e===`todo`?`warning`:`neutral`,children:e.replaceAll(`_`,` `)})}function ui({items:e,activeWorkItemId:t,blockedWorkItemId:n}){return(0,Y.jsx)(`div`,{className:`grid gap-3 md:grid-cols-2`,children:e.map(e=>{let r=t===e.id,i=n===e.id;return(0,Y.jsxs)(`div`,{className:`rounded-md border px-4 py-3 ${i?`border-destructive/30 bg-destructive/5`:r?`border-primary/30 bg-primary/5`:`border-border bg-card`}`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:e.title}),r?(0,Y.jsx)(G,{variant:`accent`,children:`Current`}):null,i?(0,Y.jsx)(G,{variant:`danger`,children:`Blocked`}):null]}),(0,Y.jsx)(`div`,{className:`mt-1 text-xs leading-5 text-muted-foreground`,children:e.summary})]}),(0,Y.jsx)(li,{value:e.status})]}),(0,Y.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2`,children:[(0,Y.jsx)(G,{variant:`outline`,children:pi(e.kind)}),(0,Y.jsx)(G,{variant:`outline`,children:e.owner??`Unassigned`})]})]},e.id)})})}function di({label:e,value:t,mono:n=!1}){return(0,Y.jsxs)(`div`,{className:`rounded-md border border-border bg-card px-4 py-3`,children:[(0,Y.jsx)(`div`,{className:`text-[10px] font-medium uppercase tracking-widest text-muted-foreground/70`,children:e}),(0,Y.jsx)(`div`,{className:n?`mt-2 truncate font-mono text-xs text-foreground`:`mt-2 text-sm font-medium text-foreground`,children:t})]})}function fi(e){return e.replaceAll(`_`,` `)}function pi(e){return e.replaceAll(`_`,` `)}function mi(e){return e.replaceAll(`-`,` `)}function hi(e){let t=e.toLowerCase();return t===`critical`?5:t===`high`?4:t===`medium`?3:t===`low`?2:1}function gi(e){let t=0;return e.workflow.reviewGate===`human_review`?t+=100:e.workflow.reviewGate===`agent_review`?t+=90:e.workflow.phase===`blocked`?t+=80:e.workflow.phase===`in_progress`?t+=70:e.workflow.phase===`todo`?t+=60:e.workflow.phase===`backlog`&&(t+=50),e.workflow.assignee||(t+=15),e.workflow.consensus===`disputed`&&(t+=12),e.workflow.activeAgentRoles.length>0&&(t+=8),t*1e6+e.latest.timestamp+hi(e.latest.severity)*1e3}function _i(e){return e===`done`||e===`cancelled`||e===`blocked`||e===`in_progress`||e===`todo`?e:`backlog`}function vi({label:e,className:t,children:n}){return(0,Y.jsxs)(`div`,{className:`space-y-3 rounded-md border border-border bg-card px-4 py-4 ${t??``}`,children:[(0,Y.jsx)(K,{children:e}),(0,Y.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:n})]})}function yi({active:e,onClick:t,children:n}){return(0,Y.jsx)(z,{variant:e?`default`:`outline`,size:`xs`,onClick:t,children:n})}export{ni as FindingsPage};
5
+ `},rt={onDragStart(e){let{active:t}=e;return`Picked up draggable item `+t.id+`.`},onDragOver(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was moved over droppable area `+n.id+`.`:`Draggable item `+t.id+` is no longer over a droppable area.`},onDragEnd(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was dropped over droppable area `+n.id:`Draggable item `+t.id+` was dropped.`},onDragCancel(e){let{active:t}=e;return`Dragging was cancelled. Draggable item `+t.id+` was dropped.`}};function it(e){let{announcements:t=rt,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=nt}=e,{announce:a,announcement:o}=Qe(),s=Re(`DndLiveRegion`),[c,l]=(0,J.useState)(!1);if((0,J.useEffect)(()=>{l(!0)},[]),et((0,J.useMemo)(()=>({onDragStart(e){let{active:n}=e;a(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:r}=e;t.onDragMove&&a(t.onDragMove({active:n,over:r}))},onDragOver(e){let{active:n,over:r}=e;a(t.onDragOver({active:n,over:r}))},onDragEnd(e){let{active:n,over:r}=e;a(t.onDragEnd({active:n,over:r}))},onDragCancel(e){let{active:n,over:r}=e;a(t.onDragCancel({active:n,over:r}))}}),[a,t])),!c)return null;let u=J.createElement(J.Fragment,null,J.createElement(Xe,{id:r,value:i.draggable}),J.createElement(Ze,{id:s,announcement:o}));return n?(0,xe.createPortal)(u,n):u}var Z;(function(e){e.DragStart=`dragStart`,e.DragMove=`dragMove`,e.DragEnd=`dragEnd`,e.DragCancel=`dragCancel`,e.DragOver=`dragOver`,e.RegisterDroppable=`registerDroppable`,e.SetDroppableDisabled=`setDroppableDisabled`,e.UnregisterDroppable=`unregisterDroppable`})(Z||={});function at(){}function ot(e,t){return(0,J.useMemo)(()=>({sensor:e,options:t??{}}),[e,t])}function st(){var e=[...arguments];return(0,J.useMemo)(()=>[...e].filter(e=>e!=null),[...e])}var ct=Object.freeze({x:0,y:0});function lt(e,t){let n=Ge(e);if(!n)return`0 0`;let r={x:(n.x-t.left)/t.width*100,y:(n.y-t.top)/t.height*100};return r.x+`% `+r.y+`%`}function ut(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function dt(e,t){if(!e||e.length===0)return null;let[n]=e;return t?n[t]:n}function ft(e,t){let n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),a=Math.min(t.top+t.height,e.top+e.height),o=i-r,s=a-n;if(r<i&&n<a){let n=t.width*t.height,r=e.width*e.height,i=o*s,a=i/(n+r-i);return Number(a.toFixed(4))}return 0}var pt=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=[];for(let e of r){let{id:r}=e,a=n.get(r);if(a){let n=ft(a,t);n>0&&i.push({id:r,data:{droppableContainer:e,value:n}})}}return i.sort(ut)};function mt(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function ht(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:ct}function gt(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}var _t=gt(1);function vt(e){if(e.startsWith(`matrix3d(`)){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith(`matrix(`)){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function yt(e,t,n){let r=vt(t);if(!r)return e;let{scaleX:i,scaleY:a,x:o,y:s}=r,c=e.left-o-(1-i)*parseFloat(n),l=e.top-s-(1-a)*parseFloat(n.slice(n.indexOf(` `)+1)),u=i?e.width/i:e.width,d=a?e.height/a:e.height;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c}}var bt={ignoreTransform:!1};function xt(e,t){t===void 0&&(t=bt);let n=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=X(e).getComputedStyle(e);t&&(n=yt(n,t,r))}let{top:r,left:i,width:a,height:o,bottom:s,right:c}=n;return{top:r,left:i,width:a,height:o,bottom:s,right:c}}function St(e){return xt(e,{ignoreTransform:!0})}function Ct(e){let t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function wt(e,t){return t===void 0&&(t=X(e).getComputedStyle(e)),t.position===`fixed`}function Tt(e,t){t===void 0&&(t=X(e).getComputedStyle(e));let n=/(auto|scroll|overlay)/;return[`overflow`,`overflowX`,`overflowY`].some(e=>{let r=t[e];return typeof r==`string`&&n.test(r)})}function Et(e,t){let n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if(Ee(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!De(i)||Oe(i)||n.includes(i))return n;let a=X(e).getComputedStyle(i);return i!==e&&Tt(i,a)&&n.push(i),wt(i,a)?n:r(i.parentNode)}return e?r(e):n}function Dt(e){let[t]=Et(e,1);return t??null}function Ot(e){return!Ce||!e?null:we(e)?e:Te(e)?Ee(e)||e===ke(e).scrollingElement?window:De(e)?e:null:null}function kt(e){return we(e)?e.scrollX:e.scrollLeft}function At(e){return we(e)?e.scrollY:e.scrollTop}function jt(e){return{x:kt(e),y:At(e)}}var Q;(function(e){e[e.Forward=1]=`Forward`,e[e.Backward=-1]=`Backward`})(Q||={});function Mt(e){return!Ce||!e?!1:e===document.scrollingElement}function Nt(e){let t={x:0,y:0},n=Mt(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}var Pt={x:.2,y:.2};function Ft(e,t,n,r,i){let{top:a,left:o,right:s,bottom:c}=n;r===void 0&&(r=10),i===void 0&&(i=Pt);let{isTop:l,isBottom:u,isLeft:d,isRight:f}=Nt(e),p={x:0,y:0},m={x:0,y:0},h={height:t.height*i.y,width:t.width*i.x};return!l&&a<=t.top+h.height?(p.y=Q.Backward,m.y=r*Math.abs((t.top+h.height-a)/h.height)):!u&&c>=t.bottom-h.height&&(p.y=Q.Forward,m.y=r*Math.abs((t.bottom-h.height-c)/h.height)),!f&&s>=t.right-h.width?(p.x=Q.Forward,m.x=r*Math.abs((t.right-h.width-s)/h.width)):!d&&o<=t.left+h.width&&(p.x=Q.Backward,m.x=r*Math.abs((t.left+h.width-o)/h.width)),{direction:p,speed:m}}function It(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:n,right:r,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:i,width:e.clientWidth,height:e.clientHeight}}function Lt(e){return e.reduce((e,t)=>Be(e,jt(t)),ct)}function Rt(e){return e.reduce((e,t)=>e+kt(t),0)}function zt(e){return e.reduce((e,t)=>e+At(t),0)}function Bt(e,t){if(t===void 0&&(t=xt),!e)return;let{top:n,left:r,bottom:i,right:a}=t(e);Dt(e)&&(i<=0||a<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:`center`,inline:`center`})}var Vt=[[`x`,[`left`,`right`],Rt],[`y`,[`top`,`bottom`],zt]],Ht=class{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;let n=Et(t),r=Lt(n);this.rect={...e},this.width=e.width,this.height=e.height;for(let[e,t,i]of Vt)for(let a of t)Object.defineProperty(this,a,{get:()=>{let t=i(n),o=r[e]-t;return this.rect[a]+o},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}},Ut=class{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>this.target?.removeEventListener(...e))},this.target=e}add(e,t,n){var r;(r=this.target)==null||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}};function Wt(e){let{EventTarget:t}=X(e);return e instanceof t?e:ke(e)}function Gt(e,t){let n=Math.abs(e.x),r=Math.abs(e.y);return typeof t==`number`?Math.sqrt(n**2+r**2)>t:`x`in t&&`y`in t?n>t.x&&r>t.y:`x`in t?n>t.x:`y`in t&&r>t.y}var Kt;(function(e){e.Click=`click`,e.DragStart=`dragstart`,e.Keydown=`keydown`,e.ContextMenu=`contextmenu`,e.Resize=`resize`,e.SelectionChange=`selectionchange`,e.VisibilityChange=`visibilitychange`})(Kt||={});function qt(e){e.preventDefault()}function Jt(e){e.stopPropagation()}var $;(function(e){e.Space=`Space`,e.Down=`ArrowDown`,e.Right=`ArrowRight`,e.Left=`ArrowLeft`,e.Up=`ArrowUp`,e.Esc=`Escape`,e.Enter=`Enter`,e.Tab=`Tab`})($||={});var Yt={start:[$.Space,$.Enter],cancel:[$.Esc],end:[$.Space,$.Enter,$.Tab]},Xt=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case $.Right:return{...n,x:n.x+25};case $.Left:return{...n,x:n.x-25};case $.Down:return{...n,y:n.y+25};case $.Up:return{...n,y:n.y-25}}},Zt=class{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;let{event:{target:t}}=e;this.props=e,this.listeners=new Ut(ke(t)),this.windowListeners=new Ut(X(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(Kt.Resize,this.handleCancel),this.windowListeners.add(Kt.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(Kt.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&Bt(n),t(ct)}handleKeyDown(e){if(Ue(e)){let{active:t,context:n,options:r}=this.props,{keyboardCodes:i=Yt,coordinateGetter:a=Xt,scrollBehavior:o=`smooth`}=r,{code:s}=e;if(i.end.includes(s)){this.handleEnd(e);return}if(i.cancel.includes(s)){this.handleCancel(e);return}let{collisionRect:c}=n.current,l=c?{x:c.left,y:c.top}:ct;this.referenceCoordinates||=l;let u=a(e,{active:t,context:n.current,currentCoordinates:l});if(u){let t=Ve(u,l),r={x:0,y:0},{scrollableAncestors:i}=n.current;for(let n of i){let i=e.code,{isTop:a,isRight:s,isLeft:c,isBottom:l,maxScroll:d,minScroll:f}=Nt(n),p=It(n),m={x:Math.min(i===$.Right?p.right-p.width/2:p.right,Math.max(i===$.Right?p.left:p.left+p.width/2,u.x)),y:Math.min(i===$.Down?p.bottom-p.height/2:p.bottom,Math.max(i===$.Down?p.top:p.top+p.height/2,u.y))},h=i===$.Right&&!s||i===$.Left&&!c,g=i===$.Down&&!l||i===$.Up&&!a;if(h&&m.x!==u.x){let e=n.scrollLeft+t.x,a=i===$.Right&&e<=d.x||i===$.Left&&e>=f.x;if(a&&!t.y){n.scrollTo({left:e,behavior:o});return}r.x=a?n.scrollLeft-e:i===$.Right?n.scrollLeft-d.x:n.scrollLeft-f.x,r.x&&n.scrollBy({left:-r.x,behavior:o});break}if(g&&m.y!==u.y){let e=n.scrollTop+t.y,a=i===$.Down&&e<=d.y||i===$.Up&&e>=f.y;if(a&&!t.x){n.scrollTo({top:e,behavior:o});return}r.y=a?n.scrollTop-e:i===$.Down?n.scrollTop-d.y:n.scrollTop-f.y,r.y&&n.scrollBy({top:-r.y,behavior:o});break}}this.handleMove(e,Be(Ve(u,this.referenceCoordinates),r))}}}handleMove(e,t){let{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){let{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){let{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}};Zt.activators=[{eventName:`onKeyDown`,handler:(e,t,n)=>{let{keyboardCodes:r=Yt,onActivation:i}=t,{active:a}=n,{code:o}=e.nativeEvent;if(r.start.includes(o)){let t=a.activatorNode.current;return t&&e.target!==t?!1:(e.preventDefault(),i?.({event:e.nativeEvent}),!0)}return!1}}];function Qt(e){return!!(e&&`distance`in e)}function $t(e){return!!(e&&`delay`in e)}var en=class{constructor(e,t,n){n===void 0&&(n=Wt(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;let{event:r}=e,{target:i}=r;this.props=e,this.events=t,this.document=ke(i),this.documentListeners=new Ut(this.document),this.listeners=new Ut(n),this.windowListeners=new Ut(X(i)),this.initialCoordinates=Ge(r)??ct,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(Kt.Resize,this.handleCancel),this.windowListeners.add(Kt.DragStart,qt),this.windowListeners.add(Kt.VisibilityChange,this.handleCancel),this.windowListeners.add(Kt.ContextMenu,qt),this.documentListeners.add(Kt.Keydown,this.handleKeydown),t){if(n!=null&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if($t(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(Qt(t)){this.handlePending(t);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){let{active:n,onPending:r}=this.props;r(n,e,this.initialCoordinates,t)}handleStart(){let{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(Kt.Click,Jt,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(Kt.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){let{activated:t,initialCoordinates:n,props:r}=this,{onMove:i,options:{activationConstraint:a}}=r;if(!n)return;let o=Ge(e)??ct,s=Ve(n,o);if(!t&&a){if(Qt(a)){if(a.tolerance!=null&&Gt(s,a.tolerance))return this.handleCancel();if(Gt(s,a.distance))return this.handleStart()}if($t(a)&&Gt(s,a.tolerance))return this.handleCancel();this.handlePending(a,s);return}e.cancelable&&e.preventDefault(),i(o)}handleEnd(){let{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){let{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===$.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}},tn={cancel:{name:`pointercancel`},move:{name:`pointermove`},end:{name:`pointerup`}},nn=class extends en{constructor(e){let{event:t}=e,n=ke(t.target);super(e,tn,n)}};nn.activators=[{eventName:`onPointerDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r?.({event:n}),!0)}}];var rn={move:{name:`mousemove`},end:{name:`mouseup`}},an;(function(e){e[e.RightClick=2]=`RightClick`})(an||={});var on=class extends en{constructor(e){super(e,rn,ke(e.event.target))}};on.activators=[{eventName:`onMouseDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button!==an.RightClick&&(r?.({event:n}),!0)}}];var sn={cancel:{name:`touchcancel`},move:{name:`touchmove`},end:{name:`touchend`}},cn=class extends en{constructor(e){super(e,sn)}static setup(){return window.addEventListener(sn.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(sn.move.name,e)};function e(){}}};cn.activators=[{eventName:`onTouchStart`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t,{touches:i}=n;return i.length>1?!1:(r?.({event:n}),!0)}}];var ln;(function(e){e[e.Pointer=0]=`Pointer`,e[e.DraggableRect=1]=`DraggableRect`})(ln||={});var un;(function(e){e[e.TreeOrder=0]=`TreeOrder`,e[e.ReversedTreeOrder=1]=`ReversedTreeOrder`})(un||={});function dn(e){let{acceleration:t,activator:n=ln.Pointer,canScroll:r,draggingRect:i,enabled:a,interval:o=5,order:s=un.TreeOrder,pointerCoordinates:c,scrollableAncestors:l,scrollableAncestorRects:u,delta:d,threshold:f}=e,p=pn({delta:d,disabled:!a}),[m,h]=Me(),g=(0,J.useRef)({x:0,y:0}),_=(0,J.useRef)({x:0,y:0}),v=(0,J.useMemo)(()=>{switch(n){case ln.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case ln.DraggableRect:return i}},[n,i,c]),y=(0,J.useRef)(null),b=(0,J.useCallback)(()=>{let e=y.current;if(!e)return;let t=g.current.x*_.current.x,n=g.current.y*_.current.y;e.scrollBy(t,n)},[]),x=(0,J.useMemo)(()=>s===un.TreeOrder?[...l].reverse():l,[s,l]);(0,J.useEffect)(()=>{if(!a||!l.length||!v){h();return}for(let e of x){if(r?.(e)===!1)continue;let n=l.indexOf(e),i=u[n];if(!i)continue;let{direction:a,speed:s}=Ft(e,i,v,t,f);for(let e of[`x`,`y`])p[e][a[e]]||(s[e]=0,a[e]=0);if(s.x>0||s.y>0){h(),y.current=e,m(b,o),g.current=s,_.current=a;return}}g.current={x:0,y:0},_.current={x:0,y:0},h()},[t,b,r,h,a,o,JSON.stringify(v),JSON.stringify(p),m,l,x,u,JSON.stringify(f)])}var fn={x:{[Q.Backward]:!1,[Q.Forward]:!1},y:{[Q.Backward]:!1,[Q.Forward]:!1}};function pn(e){let{delta:t,disabled:n}=e,r=Ie(t);return Pe(e=>{if(n||!r||!e)return fn;let i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[Q.Backward]:e.x[Q.Backward]||i.x===-1,[Q.Forward]:e.x[Q.Forward]||i.x===1},y:{[Q.Backward]:e.y[Q.Backward]||i.y===-1,[Q.Forward]:e.y[Q.Forward]||i.y===1}}},[n,t,r])}function mn(e,t){let n=t==null?void 0:e.get(t),r=n?n.node.current:null;return Pe(e=>t==null?null:r??e??null,[r,t])}function hn(e,t){return(0,J.useMemo)(()=>e.reduce((e,n)=>{let{sensor:r}=n,i=r.activators.map(e=>({eventName:e.eventName,handler:t(e.handler,n)}));return[...e,...i]},[]),[e,t])}var gn;(function(e){e[e.Always=0]=`Always`,e[e.BeforeDragging=1]=`BeforeDragging`,e[e.WhileDragging=2]=`WhileDragging`})(gn||={});var _n;(function(e){e.Optimized=`optimized`})(_n||={});var vn=new Map;function yn(e,t){let{dragging:n,dependencies:r,config:i}=t,[a,o]=(0,J.useState)(null),{frequency:s,measure:c,strategy:l}=i,u=(0,J.useRef)(e),d=g(),f=Ne(d),p=(0,J.useCallback)(function(e){e===void 0&&(e=[]),!f.current&&o(t=>t===null?e:t.concat(e.filter(e=>!t.includes(e))))},[f]),m=(0,J.useRef)(null),h=Pe(t=>{if(d&&!n)return vn;if(!t||t===vn||u.current!==e||a!=null){let t=new Map;for(let n of e){if(!n)continue;if(a&&a.length>0&&!a.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}let e=n.node.current,r=e?new Ht(c(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,a,n,d,c]);return(0,J.useEffect)(()=>{u.current=e},[e]),(0,J.useEffect)(()=>{d||p()},[n,d]),(0,J.useEffect)(()=>{a&&a.length>0&&o(null)},[JSON.stringify(a)]),(0,J.useEffect)(()=>{d||typeof s!=`number`||m.current!==null||(m.current=setTimeout(()=>{p(),m.current=null},s))},[s,d,p,...r]),{droppableRects:h,measureDroppableContainers:p,measuringScheduled:a!=null};function g(){switch(l){case gn.Always:return!1;case gn.BeforeDragging:return n;default:return!n}}}function bn(e,t){return Pe(n=>e?n||(typeof t==`function`?t(e):e):null,[t,e])}function xn(e,t){return bn(e,t)}function Sn(e){let{callback:t,disabled:n}=e,r=je(t),i=(0,J.useMemo)(()=>{if(n||typeof window>`u`||window.MutationObserver===void 0)return;let{MutationObserver:e}=window;return new e(r)},[r,n]);return(0,J.useEffect)(()=>()=>i?.disconnect(),[i]),i}function Cn(e){let{callback:t,disabled:n}=e,r=je(t),i=(0,J.useMemo)(()=>{if(n||typeof window>`u`||window.ResizeObserver===void 0)return;let{ResizeObserver:e}=window;return new e(r)},[n]);return(0,J.useEffect)(()=>()=>i?.disconnect(),[i]),i}function wn(e){return new Ht(xt(e),e)}function Tn(e,t,n){t===void 0&&(t=wn);let[r,i]=(0,J.useState)(null);function a(){i(r=>{if(!e)return null;if(e.isConnected===!1)return r??n??null;let i=t(e);return JSON.stringify(r)===JSON.stringify(i)?r:i})}let o=Sn({callback(t){if(e)for(let n of t){let{type:t,target:r}=n;if(t===`childList`&&r instanceof HTMLElement&&r.contains(e)){a();break}}}}),s=Cn({callback:a});return Ae(()=>{a(),e?(s?.observe(e),o?.observe(document.body,{childList:!0,subtree:!0})):(s?.disconnect(),o?.disconnect())},[e]),r}function En(e){return ht(e,bn(e))}var Dn=[];function On(e){let t=(0,J.useRef)(e),n=Pe(n=>e?n&&n!==Dn&&e&&t.current&&e.parentNode===t.current.parentNode?n:Et(e):Dn,[e]);return(0,J.useEffect)(()=>{t.current=e},[e]),n}function kn(e){let[t,n]=(0,J.useState)(null),r=(0,J.useRef)(e),i=(0,J.useCallback)(e=>{let t=Ot(e.target);t&&n(e=>e?(e.set(t,jt(t)),new Map(e)):null)},[]);return(0,J.useEffect)(()=>{let t=r.current;if(e!==t){a(t);let o=e.map(e=>{let t=Ot(e);return t?(t.addEventListener(`scroll`,i,{passive:!0}),[t,jt(t)]):null}).filter(e=>e!=null);n(o.length?new Map(o):null),r.current=e}return()=>{a(e),a(t)};function a(e){e.forEach(e=>{Ot(e)?.removeEventListener(`scroll`,i)})}},[i,e]),(0,J.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>Be(e,t),ct):Lt(e):ct,[e,t])}function An(e,t){t===void 0&&(t=[]);let n=(0,J.useRef)(null);return(0,J.useEffect)(()=>{n.current=null},t),(0,J.useEffect)(()=>{let t=e!==ct;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?Ve(e,n.current):ct}function jn(e){(0,J.useEffect)(()=>{if(!Ce)return;let t=e.map(e=>{let{sensor:t}=e;return t.setup==null?void 0:t.setup()});return()=>{for(let e of t)e?.()}},e.map(e=>{let{sensor:t}=e;return t}))}function Mn(e,t){return(0,J.useMemo)(()=>e.reduce((e,n)=>{let{eventName:r,handler:i}=n;return e[r]=e=>{i(e,t)},e},{}),[e,t])}function Nn(e){return(0,J.useMemo)(()=>e?Ct(e):null,[e])}var Pn=[];function Fn(e,t){t===void 0&&(t=xt);let[n]=e,r=Nn(n?X(n):null),[i,a]=(0,J.useState)(Pn);function o(){a(()=>e.length?e.map(e=>Mt(e)?r:new Ht(t(e),e)):Pn)}let s=Cn({callback:o});return Ae(()=>{s?.disconnect(),o(),e.forEach(e=>s?.observe(e))},[e]),i}function In(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return De(t)?t:e}function Ln(e){let{measure:t}=e,[n,r]=(0,J.useState)(null),i=Cn({callback:(0,J.useCallback)(e=>{for(let{target:n}of e)if(De(n)){r(e=>{let r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),[a,o]=Fe((0,J.useCallback)(e=>{let n=In(e);i?.disconnect(),n&&i?.observe(n),r(n?t(n):null)},[t,i]));return(0,J.useMemo)(()=>({nodeRef:a,rect:n,setRef:o}),[n,a,o])}var Rn=[{sensor:nn,options:{}},{sensor:Zt,options:{}}],zn={current:{}},Bn={draggable:{measure:St},droppable:{measure:St,strategy:gn.WhileDragging,frequency:_n.Optimized},dragOverlay:{measure:xt}},Vn=class extends Map{get(e){return e==null?void 0:super.get(e)??void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){return this.get(e)?.node.current??void 0}},Hn={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Vn,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:at},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Bn,measureDroppableContainers:at,windowRect:null,measuringScheduled:!1},Un={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:``},dispatch:at,draggableNodes:new Map,over:null,measureDroppableContainers:at},Wn=(0,J.createContext)(Un),Gn=(0,J.createContext)(Hn);function Kn(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Vn}}}function qn(e,t){switch(t.type){case Z.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case Z.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case Z.DragEnd:case Z.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case Z.RegisterDroppable:{let{element:n}=t,{id:r}=n,i=new Vn(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case Z.SetDroppableDisabled:{let{id:n,key:r,disabled:i}=t,a=e.droppable.containers.get(n);if(!a||r!==a.key)return e;let o=new Vn(e.droppable.containers);return o.set(n,{...a,disabled:i}),{...e,droppable:{...e.droppable,containers:o}}}case Z.UnregisterDroppable:{let{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;let a=new Vn(e.droppable.containers);return a.delete(n),{...e,droppable:{...e.droppable,containers:a}}}default:return e}}function Jn(e){let{disabled:t}=e,{active:n,activatorEvent:r,draggableNodes:i}=(0,J.useContext)(Wn),a=Ie(r),o=Ie(n?.id);return(0,J.useEffect)(()=>{if(!t&&!r&&a&&o!=null){if(!Ue(a)||document.activeElement===a.target)return;let e=i.get(o);if(!e)return;let{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(let e of[t.current,n.current]){if(!e)continue;let t=Je(e);if(t){t.focus();break}}})}},[r,t,i,o,a]),null}function Yn(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}function Xn(e){return(0,J.useMemo)(()=>({draggable:{...Bn.draggable,...e?.draggable},droppable:{...Bn.droppable,...e?.droppable},dragOverlay:{...Bn.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function Zn(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e,a=(0,J.useRef)(!1),{x:o,y:s}=typeof i==`boolean`?{x:i,y:i}:i;Ae(()=>{if(!o&&!s||!t){a.current=!1;return}if(a.current||!r)return;let e=t?.node.current;if(!e||e.isConnected===!1)return;let i=ht(n(e),r);if(o||(i.x=0),s||(i.y=0),a.current=!0,Math.abs(i.x)>0||Math.abs(i.y)>0){let t=Dt(e);t&&t.scrollBy({top:i.y,left:i.x})}},[t,o,s,r,n])}var Qn=(0,J.createContext)({...ct,scaleX:1,scaleY:1}),$n;(function(e){e[e.Uninitialized=0]=`Uninitialized`,e[e.Initializing=1]=`Initializing`,e[e.Initialized=2]=`Initialized`})($n||={});var er=(0,J.memo)(function(e){let{id:t,accessibility:n,autoScroll:r=!0,children:i,sensors:a=Rn,collisionDetection:o=pt,measuring:s,modifiers:c,...l}=e,[u,d]=(0,J.useReducer)(qn,void 0,Kn),[f,p]=tt(),[m,h]=(0,J.useState)($n.Uninitialized),g=m===$n.Initialized,{draggable:{active:_,nodes:v,translate:y},droppable:{containers:b}}=u,x=_==null?null:v.get(_),S=(0,J.useRef)({initial:null,translated:null}),C=(0,J.useMemo)(()=>_==null?null:{id:_,data:x?.data??zn,rect:S},[_,x]),w=(0,J.useRef)(null),[T,E]=(0,J.useState)(null),[D,ee]=(0,J.useState)(null),O=Ne(l,Object.values(l)),k=Re(`DndDescribedBy`,t),te=(0,J.useMemo)(()=>b.getEnabled(),[b]),A=Xn(s),{droppableRects:j,measureDroppableContainers:ne,measuringScheduled:re}=yn(te,{dragging:g,dependencies:[y.x,y.y],config:A.droppable}),M=mn(v,_),N=(0,J.useMemo)(()=>D?Ge(D):null,[D]),P=be(),F=xn(M,A.draggable.measure);Zn({activeNode:_==null?null:v.get(_),config:P.layoutShiftCompensation,initialRect:F,measure:A.draggable.measure});let I=Tn(M,A.draggable.measure,F),ie=Tn(M?M.parentElement:null),L=(0,J.useRef)({activatorEvent:null,active:null,activeNode:M,collisionRect:null,collisions:null,droppableRects:j,draggableNodes:v,draggingNode:null,draggingNodeRect:null,droppableContainers:b,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ae=b.getNodeFor(L.current.over?.id),R=Ln({measure:A.dragOverlay.measure}),z=R.nodeRef.current??M,B=g?R.rect??I:null,oe=!!(R.nodeRef.current&&R.rect),V=En(oe?null:I),H=Nn(z?X(z):null),se=On(g?ae??M:null),U=Fn(se),W=Yn(c,{transform:{x:y.x-V.x,y:y.y-V.y,scaleX:1,scaleY:1},activatorEvent:D,active:C,activeNodeRect:I,containerNodeRect:ie,draggingNodeRect:B,over:L.current.over,overlayNodeRect:R.rect,scrollableAncestors:se,scrollableAncestorRects:U,windowRect:H}),ce=N?Be(N,y):null,le=kn(se),G=An(le),ue=An(le,[I]),de=Be(W,G),fe=B?_t(B,W):null,pe=C&&fe?o({active:C,collisionRect:fe,droppableRects:j,droppableContainers:te,pointerCoordinates:ce}):null,K=dt(pe,`id`),[me,he]=(0,J.useState)(null),ge=mt(oe?W:Be(W,ue),me?.rect??null,I),_e=(0,J.useRef)(null),ve=(0,J.useCallback)((e,t)=>{let{sensor:n,options:r}=t;if(w.current==null)return;let i=v.get(w.current);if(!i)return;let a=e.nativeEvent,o=new n({active:w.current,activeNode:i,event:a,options:r,context:L,onAbort(e){if(!v.get(e))return;let{onDragAbort:t}=O.current,n={id:e};t?.(n),f({type:`onDragAbort`,event:n})},onPending(e,t,n,r){if(!v.get(e))return;let{onDragPending:i}=O.current,a={id:e,constraint:t,initialCoordinates:n,offset:r};i?.(a),f({type:`onDragPending`,event:a})},onStart(e){let t=w.current;if(t==null)return;let n=v.get(t);if(!n)return;let{onDragStart:r}=O.current,i={activatorEvent:a,active:{id:t,data:n.data,rect:S}};(0,xe.unstable_batchedUpdates)(()=>{r?.(i),h($n.Initializing),d({type:Z.DragStart,initialCoordinates:e,active:t}),f({type:`onDragStart`,event:i}),E(_e.current),ee(a)})},onMove(e){d({type:Z.DragMove,coordinates:e})},onEnd:s(Z.DragEnd),onCancel:s(Z.DragCancel)});_e.current=o;function s(e){return async function(){let{active:t,collisions:n,over:r,scrollAdjustedTranslate:i}=L.current,o=null;if(t&&i){let{cancelDrop:s}=O.current;o={activatorEvent:a,active:t,collisions:n,delta:i,over:r},e===Z.DragEnd&&typeof s==`function`&&await Promise.resolve(s(o))&&(e=Z.DragCancel)}w.current=null,(0,xe.unstable_batchedUpdates)(()=>{d({type:e}),h($n.Uninitialized),he(null),E(null),ee(null),_e.current=null;let t=e===Z.DragEnd?`onDragEnd`:`onDragCancel`;if(o){let e=O.current[t];e?.(o),f({type:t,event:o})}})}}},[v]),ye=hn(a,(0,J.useCallback)((e,t)=>(n,r)=>{let i=n.nativeEvent,a=v.get(r);if(w.current!==null||!a||i.dndKit||i.defaultPrevented)return;let o={active:a};e(n,t.options,o)===!0&&(i.dndKit={capturedBy:t.sensor},w.current=r,ve(n,t))},[v,ve]));jn(a),Ae(()=>{I&&m===$n.Initializing&&h($n.Initialized)},[I,m]),(0,J.useEffect)(()=>{let{onDragMove:e}=O.current,{active:t,activatorEvent:n,collisions:r,over:i}=L.current;if(!t||!n)return;let a={active:t,activatorEvent:n,collisions:r,delta:{x:de.x,y:de.y},over:i};(0,xe.unstable_batchedUpdates)(()=>{e?.(a),f({type:`onDragMove`,event:a})})},[de.x,de.y]),(0,J.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:i}=L.current;if(!e||w.current==null||!t||!i)return;let{onDragOver:a}=O.current,o=r.get(K),s=o&&o.rect.current?{id:o.id,rect:o.rect.current,data:o.data,disabled:o.disabled}:null,c={active:e,activatorEvent:t,collisions:n,delta:{x:i.x,y:i.y},over:s};(0,xe.unstable_batchedUpdates)(()=>{he(s),a?.(c),f({type:`onDragOver`,event:c})})},[K]),Ae(()=>{L.current={activatorEvent:D,active:C,activeNode:M,collisionRect:fe,collisions:pe,droppableRects:j,draggableNodes:v,draggingNode:z,draggingNodeRect:B,droppableContainers:b,over:me,scrollableAncestors:se,scrollAdjustedTranslate:de},S.current={initial:B,translated:fe}},[C,M,pe,fe,v,z,B,j,b,me,se,de]),dn({...P,delta:y,draggingRect:fe,pointerCoordinates:ce,scrollableAncestors:se,scrollableAncestorRects:U});let q=(0,J.useMemo)(()=>({active:C,activeNode:M,activeNodeRect:I,activatorEvent:D,collisions:pe,containerNodeRect:ie,dragOverlay:R,draggableNodes:v,droppableContainers:b,droppableRects:j,over:me,measureDroppableContainers:ne,scrollableAncestors:se,scrollableAncestorRects:U,measuringConfiguration:A,measuringScheduled:re,windowRect:H}),[C,M,I,D,pe,ie,R,v,b,j,me,ne,se,U,A,re,H]),Y=(0,J.useMemo)(()=>({activatorEvent:D,activators:ye,active:C,activeNodeRect:I,ariaDescribedById:{draggable:k},dispatch:d,draggableNodes:v,over:me,measureDroppableContainers:ne}),[D,ye,C,I,d,k,v,me,ne]);return J.createElement($e.Provider,{value:p},J.createElement(Wn.Provider,{value:Y},J.createElement(Gn.Provider,{value:q},J.createElement(Qn.Provider,{value:ge},i)),J.createElement(Jn,{disabled:n?.restoreFocus===!1})),J.createElement(it,{...n,hiddenTextDescribedById:k}));function be(){let e=T?.autoScrollEnabled===!1,t=typeof r==`object`?r.enabled===!1:r===!1,n=g&&!e&&!t;return typeof r==`object`?{...r,enabled:n}:{enabled:n}}}),tr=(0,J.createContext)(null),nr=`button`,rr=`Draggable`;function ir(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e,a=Re(rr),{activators:o,activatorEvent:s,active:c,activeNodeRect:l,ariaDescribedById:u,draggableNodes:d,over:f}=(0,J.useContext)(Wn),{role:p=nr,roleDescription:m=`draggable`,tabIndex:h=0}=i??{},g=c?.id===t,_=(0,J.useContext)(g?Qn:tr),[v,y]=Fe(),[b,x]=Fe(),S=Mn(o,t),C=Ne(n);return Ae(()=>(d.set(t,{id:t,key:a,node:v,activatorNode:b,data:C}),()=>{let e=d.get(t);e&&e.key===a&&d.delete(t)}),[d,t]),{active:c,activatorEvent:s,activeNodeRect:l,attributes:(0,J.useMemo)(()=>({role:p,tabIndex:h,"aria-disabled":r,"aria-pressed":g&&p===nr?!0:void 0,"aria-roledescription":m,"aria-describedby":u.draggable}),[r,p,h,g,m,u.draggable]),isDragging:g,listeners:r?void 0:S,node:v,over:f,setNodeRef:y,setActivatorNodeRef:x,transform:_}}function ar(){return(0,J.useContext)(Gn)}var or=`Droppable`,sr={timeout:25};function cr(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:i}=e,a=Re(or),{active:o,dispatch:s,over:c,measureDroppableContainers:l}=(0,J.useContext)(Wn),u=(0,J.useRef)({disabled:n}),d=(0,J.useRef)(!1),f=(0,J.useRef)(null),p=(0,J.useRef)(null),{disabled:m,updateMeasurementsFor:h,timeout:g}={...sr,...i},_=Ne(h??r),v=Cn({callback:(0,J.useCallback)(()=>{if(!d.current){d.current=!0;return}p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>{l(Array.isArray(_.current)?_.current:[_.current]),p.current=null},g)},[g]),disabled:m||!o}),[y,b]=Fe((0,J.useCallback)((e,t)=>{v&&(t&&(v.unobserve(t),d.current=!1),e&&v.observe(e))},[v])),x=Ne(t);return(0,J.useEffect)(()=>{!v||!y.current||(v.disconnect(),d.current=!1,v.observe(y.current))},[y,v]),(0,J.useEffect)(()=>(s({type:Z.RegisterDroppable,element:{id:r,key:a,disabled:n,node:y,rect:f,data:x}}),()=>s({type:Z.UnregisterDroppable,key:a,id:r})),[r]),(0,J.useEffect)(()=>{n!==u.current.disabled&&(s({type:Z.SetDroppableDisabled,id:r,key:a,disabled:n}),u.current.disabled=n)},[r,a,n,s]),{active:o,rect:f,isOver:c?.id===r,node:y,over:c,setNodeRef:b}}function lr(e){let{animation:t,children:n}=e,[r,i]=(0,J.useState)(null),[a,o]=(0,J.useState)(null),s=Ie(n);return!n&&!r&&s&&i(s),Ae(()=>{if(!a)return;let e=r?.key,n=r?.props.id;if(e==null||n==null){i(null);return}Promise.resolve(t(n,a)).then(()=>{i(null)})},[t,r,a]),J.createElement(J.Fragment,null,n,r?(0,J.cloneElement)(r,{ref:o}):null)}var ur={x:0,y:0,scaleX:1,scaleY:1};function dr(e){let{children:t}=e;return J.createElement(Wn.Provider,{value:Un},J.createElement(Qn.Provider,{value:ur},t))}var fr={position:`fixed`,touchAction:`none`},pr=e=>Ue(e)?`transform 250ms ease`:void 0,mr=(0,J.forwardRef)((e,t)=>{let{as:n,activatorEvent:r,adjustScale:i,children:a,className:o,rect:s,style:c,transform:l,transition:u=pr}=e;if(!s)return null;let d=i?l:{...l,scaleX:1,scaleY:1},f={...fr,width:s.width,height:s.height,top:s.top,left:s.left,transform:Ke.Transform.toString(d),transformOrigin:i&&r?lt(r,s):void 0,transition:typeof u==`function`?u(r):u,...c};return J.createElement(n,{className:o,style:f,ref:t},a)}),hr={duration:250,easing:`ease`,keyframes:e=>{let{transform:{initial:t,final:n}}=e;return[{transform:Ke.Transform.toString(t)},{transform:Ke.Transform.toString(n)}]},sideEffects:(e=>t=>{let{active:n,dragOverlay:r}=t,i={},{styles:a,className:o}=e;if(a!=null&&a.active)for(let[e,t]of Object.entries(a.active))t!==void 0&&(i[e]=n.node.style.getPropertyValue(e),n.node.style.setProperty(e,t));if(a!=null&&a.dragOverlay)for(let[e,t]of Object.entries(a.dragOverlay))t!==void 0&&r.node.style.setProperty(e,t);return o!=null&&o.active&&n.node.classList.add(o.active),o!=null&&o.dragOverlay&&r.node.classList.add(o.dragOverlay),function(){for(let[e,t]of Object.entries(i))n.node.style.setProperty(e,t);o!=null&&o.active&&n.node.classList.remove(o.active)}})({styles:{active:{opacity:`0`}}})};function gr(e){let{config:t,draggableNodes:n,droppableContainers:r,measuringConfiguration:i}=e;return je((e,a)=>{if(t===null)return;let o=n.get(e);if(!o)return;let s=o.node.current;if(!s)return;let c=In(a);if(!c)return;let{transform:l}=X(a).getComputedStyle(a),u=vt(l);if(!u)return;let d=typeof t==`function`?t:_r(t);return Bt(s,i.draggable.measure),d({active:{id:e,data:o.data,node:s,rect:i.draggable.measure(s)},draggableNodes:n,dragOverlay:{node:a,rect:i.dragOverlay.measure(c)},droppableContainers:r,measuringConfiguration:i,transform:u})})}function _r(e){let{duration:t,easing:n,sideEffects:r,keyframes:i}={...hr,...e};return e=>{let{active:a,dragOverlay:o,transform:s,...c}=e;if(!t)return;let l={x:o.rect.left-a.rect.left,y:o.rect.top-a.rect.top},u={scaleX:s.scaleX===1?1:a.rect.width*s.scaleX/o.rect.width,scaleY:s.scaleY===1?1:a.rect.height*s.scaleY/o.rect.height},d={x:s.x-l.x,y:s.y-l.y,...u},f=i({...c,active:a,dragOverlay:o,transform:{initial:s,final:d}}),[p]=f,m=f[f.length-1];if(JSON.stringify(p)===JSON.stringify(m))return;let h=r?.({active:a,dragOverlay:o,...c}),g=o.node.animate(f,{duration:t,easing:n,fill:`forwards`});return new Promise(e=>{g.onfinish=()=>{h?.(),e()}})}}var vr=0;function yr(e){return(0,J.useMemo)(()=>{if(e!=null)return vr++,vr},[e])}var br=J.memo(e=>{let{adjustScale:t=!1,children:n,dropAnimation:r,style:i,transition:a,modifiers:o,wrapperElement:s=`div`,className:c,zIndex:l=999}=e,{activatorEvent:u,active:d,activeNodeRect:f,containerNodeRect:p,draggableNodes:m,droppableContainers:h,dragOverlay:g,over:_,measuringConfiguration:v,scrollableAncestors:y,scrollableAncestorRects:b,windowRect:x}=ar(),S=(0,J.useContext)(Qn),C=yr(d?.id),w=Yn(o,{activatorEvent:u,active:d,activeNodeRect:f,containerNodeRect:p,draggingNodeRect:g.rect,over:_,overlayNodeRect:g.rect,scrollableAncestors:y,scrollableAncestorRects:b,transform:S,windowRect:x}),T=bn(f),E=gr({config:r,draggableNodes:m,droppableContainers:h,measuringConfiguration:v}),D=T?g.setRef:void 0;return J.createElement(dr,null,J.createElement(lr,{animation:E},d&&C?J.createElement(mr,{key:C,id:d.id,ref:D,as:s,activatorEvent:u,adjustScale:t,className:c,transition:a,rect:T,style:{zIndex:l,...i},transform:w},n):null))});function xr(e,t,n){let r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function Sr(e,t){return e.reduce((e,n,r)=>{let i=t.get(n);return i&&(e[r]=i),e},Array(e.length))}function Cr(e){return e!==null&&e>=0}function wr(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Tr(e){return typeof e==`boolean`?{draggable:e,droppable:e}:e}var Er=e=>{let{rects:t,activeIndex:n,overIndex:r,index:i}=e,a=xr(t,r,n),o=t[i],s=a[i];return!s||!o?null:{x:s.left-o.left,y:s.top-o.top,scaleX:s.width/o.width,scaleY:s.height/o.height}},Dr={scaleX:1,scaleY:1},Or=e=>{let{activeIndex:t,activeNodeRect:n,index:r,rects:i,overIndex:a}=e,o=i[t]??n;if(!o)return null;if(r===t){let e=i[a];return e?{x:0,y:t<a?e.top+e.height-(o.top+o.height):e.top-o.top,...Dr}:null}let s=kr(i,r,t);return r>t&&r<=a?{x:0,y:-o.height-s,...Dr}:r<t&&r>=a?{x:0,y:o.height+s,...Dr}:{x:0,y:0,...Dr}};function kr(e,t,n){let r=e[t],i=e[t-1],a=e[t+1];return r?n<t?i?r.top-(i.top+i.height):a?a.top-(r.top+r.height):0:a?a.top-(r.top+r.height):i?r.top-(i.top+i.height):0:0}var Ar=`Sortable`,jr=J.createContext({activeIndex:-1,containerId:Ar,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:Er,disabled:{draggable:!1,droppable:!1}});function Mr(e){let{children:t,id:n,items:r,strategy:i=Er,disabled:a=!1}=e,{active:o,dragOverlay:s,droppableRects:c,over:l,measureDroppableContainers:u}=ar(),d=Re(Ar,n),f=s.rect!==null,p=(0,J.useMemo)(()=>r.map(e=>typeof e==`object`&&`id`in e?e.id:e),[r]),m=o!=null,h=o?p.indexOf(o.id):-1,g=l?p.indexOf(l.id):-1,_=(0,J.useRef)(p),v=!wr(p,_.current),y=g!==-1&&h===-1||v,b=Tr(a);Ae(()=>{v&&m&&u(p)},[v,p,m,u]),(0,J.useEffect)(()=>{_.current=p},[p]);let x=(0,J.useMemo)(()=>({activeIndex:h,containerId:d,disabled:b,disableTransforms:y,items:p,overIndex:g,useDragOverlay:f,sortedRects:Sr(p,c),strategy:i}),[h,d,b.draggable,b.droppable,y,p,g,c,f,i]);return J.createElement(jr.Provider,{value:x},t)}var Nr=e=>{let{id:t,items:n,activeIndex:r,overIndex:i}=e;return xr(n,r,i).indexOf(t)},Pr=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:i,items:a,newIndex:o,previousItems:s,previousContainerId:c,transition:l}=e;return!l||!r||s!==a&&i===o?!1:n?!0:o!==i&&t===c},Fr={duration:200,easing:`ease`},Ir=`transform`,Lr=Ke.Transition.toString({property:Ir,duration:0,easing:`linear`}),Rr={roleDescription:`sortable`};function zr(e){let{disabled:t,index:n,node:r,rect:i}=e,[a,o]=(0,J.useState)(null),s=(0,J.useRef)(n);return Ae(()=>{if(!t&&n!==s.current&&r.current){let e=i.current;if(e){let t=xt(r.current,{ignoreTransform:!0}),n={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(n.x||n.y)&&o(n)}}n!==s.current&&(s.current=n)},[t,n,r,i]),(0,J.useEffect)(()=>{a&&o(null)},[a]),a}function Br(e){let{animateLayoutChanges:t=Pr,attributes:n,disabled:r,data:i,getNewIndex:a=Nr,id:o,strategy:s,resizeObserverConfig:c,transition:l=Fr}=e,{items:u,containerId:d,activeIndex:f,disabled:p,disableTransforms:m,sortedRects:h,overIndex:g,useDragOverlay:_,strategy:v}=(0,J.useContext)(jr),y=Vr(r,p),b=u.indexOf(o),x=(0,J.useMemo)(()=>({sortable:{containerId:d,index:b,items:u},...i}),[d,i,b,u]),S=(0,J.useMemo)(()=>u.slice(u.indexOf(o)),[u,o]),{rect:C,node:w,isOver:T,setNodeRef:E}=cr({id:o,data:x,disabled:y.droppable,resizeObserverConfig:{updateMeasurementsFor:S,...c}}),{active:D,activatorEvent:ee,activeNodeRect:O,attributes:k,setNodeRef:te,listeners:A,isDragging:j,over:ne,setActivatorNodeRef:re,transform:M}=ir({id:o,data:x,attributes:{...Rr,...n},disabled:y.draggable}),N=Se(E,te),P=!!D,F=P&&!m&&Cr(f)&&Cr(g),I=!_&&j,ie=F?(I&&F?M:null)??(s??v)({rects:h,activeNodeRect:O,activeIndex:f,overIndex:g,index:b}):null,L=Cr(f)&&Cr(g)?a({id:o,items:u,activeIndex:f,overIndex:g}):b,ae=D?.id,R=(0,J.useRef)({activeId:ae,items:u,newIndex:L,containerId:d}),z=u!==R.current.items,B=t({active:D,containerId:d,isDragging:j,isSorting:P,id:o,index:b,items:u,newIndex:R.current.newIndex,previousItems:R.current.items,previousContainerId:R.current.containerId,transition:l,wasDragging:R.current.activeId!=null}),oe=zr({disabled:!B,index:b,node:w,rect:C});return(0,J.useEffect)(()=>{P&&R.current.newIndex!==L&&(R.current.newIndex=L),d!==R.current.containerId&&(R.current.containerId=d),u!==R.current.items&&(R.current.items=u)},[P,L,d,u]),(0,J.useEffect)(()=>{if(ae===R.current.activeId)return;if(ae!=null&&R.current.activeId==null){R.current.activeId=ae;return}let e=setTimeout(()=>{R.current.activeId=ae},50);return()=>clearTimeout(e)},[ae]),{active:D,activeIndex:f,attributes:k,data:x,rect:C,index:b,newIndex:L,items:u,isOver:T,isSorting:P,isDragging:j,listeners:A,node:w,overIndex:g,over:ne,setNodeRef:N,setActivatorNodeRef:re,setDroppableNodeRef:E,setDraggableNodeRef:te,transform:oe??ie,transition:V()};function V(){if(oe||z&&R.current.newIndex===b)return Lr;if(!(I&&!Ue(ee)||!l)&&(P||B))return Ke.Transition.toString({...l,property:Ir})}}function Vr(e,t){return typeof e==`boolean`?{draggable:e,droppable:!1}:{draggable:e?.draggable??t.draggable,droppable:e?.droppable??t.droppable}}$.Down,$.Right,$.Up,$.Left;var Hr=[{status:`backlog`,label:`Backlog`,description:`New finding families discovered by the pipeline.`},{status:`todo`,label:`Todo`,description:`Queued for a worker or follow-up pass.`},{status:`in_progress`,label:`In Progress`,description:`Autonomous execution is actively running now.`},{status:`blocked`,label:`Blocked`,description:`Needs more access, context, or a better PoC.`},{status:`done`,label:`Done`,description:`Accepted, verified, or reported.`},{status:`cancelled`,label:`Cancelled`,description:`Suppressed or resolved as false positive.`}];function Ur({groups:e,selectedFingerprint:t,pendingFingerprint:n,onSelect:r,onMove:i}){let[a,o]=(0,J.useState)(null),s=st(ot(nn,{activationConstraint:{distance:6}})),c=(0,J.useMemo)(()=>{let t=new Map;for(let e of Hr)t.set(e.status,[]);for(let n of e)t.get(n.workflow.phase)?.push(n);return t},[e]),l=(0,J.useMemo)(()=>a?e.find(e=>e.fingerprint===a)??null:null,[a,e]);function u(e){o(String(e.active.id))}function d(t){o(null);let{active:n,over:r}=t;if(!r)return;let a=String(n.id),s=e.find(e=>e.fingerprint===a);if(!s)return;let c=null,l=String(r.id);if(Hr.some(e=>e.status===l))c=l;else{let t=e.find(e=>e.fingerprint===l);t&&(c=t.workflow.phase)}c&&c!==s.workflow.phase&&i(a,c)}return(0,Y.jsxs)(W,{className:`overflow-hidden`,children:[(0,Y.jsx)(he,{className:`border-b border-border`,children:(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(K,{children:`Finding board`}),(0,Y.jsx)(L,{className:`mt-2`,children:`Finding workflow board`}),(0,Y.jsx)(V,{children:`Use this secondary view only when the queue does not make the next action clear.`})]})}),(0,Y.jsx)(H,{className:`px-0 pb-0`,children:(0,Y.jsxs)(er,{sensors:s,onDragStart:u,onDragEnd:d,children:[(0,Y.jsx)(`div`,{className:`overflow-x-auto pb-4`,children:(0,Y.jsx)(`div`,{className:`flex min-w-max gap-4 px-6 pb-6`,children:Hr.map(e=>(0,Y.jsx)(Wr,{column:e,groups:c.get(e.status)??[],selectedFingerprint:t,pendingFingerprint:n??null,onSelect:r},e.status))})}),(0,Y.jsx)(br,{children:l?(0,Y.jsx)(Gr,{group:l,selected:t===l.fingerprint,onSelect:r,isOverlay:!0}):null})]})})]})}function Wr({column:e,groups:t,selectedFingerprint:n,pendingFingerprint:r,onSelect:i}){let{setNodeRef:a,isOver:o}=cr({id:e.status});return(0,Y.jsxs)(`section`,{className:`flex w-[20rem] shrink-0 flex-col gap-3`,children:[(0,Y.jsx)(`div`,{className:`rounded-md border border-border bg-muted/25 px-3 py-3`,children:(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`div`,{className:`text-xs font-semibold uppercase tracking-[0.18em] text-muted-foreground`,children:e.label}),(0,Y.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-muted-foreground`,children:e.description})]}),(0,Y.jsx)(`div`,{className:`rounded-sm border border-border bg-background px-2 py-1 text-xs text-muted-foreground`,children:t.length})]})}),(0,Y.jsxs)(`div`,{ref:a,className:P(`flex min-h-[20rem] flex-col gap-3 rounded-md border border-dashed border-border bg-muted/15 p-2 transition-colors`,o&&`border-primary/40 bg-primary/7`),children:[(0,Y.jsx)(Mr,{items:t.map(e=>e.fingerprint),strategy:Or,children:t.map(e=>(0,Y.jsx)(Gr,{group:e,selected:n===e.fingerprint,saving:r===e.fingerprint,onSelect:i},e.fingerprint))}),t.length===0?(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center rounded-md border border-dashed border-border/70 bg-background/70 px-4 py-8 text-center text-xs text-muted-foreground`,children:`Drop a finding family here.`}):null]})]})}function Gr({group:e,selected:t,saving:n=!1,onSelect:r,isOverlay:i=!1}){let{attributes:a,listeners:o,setNodeRef:s,transform:c,transition:l,isDragging:u}=Br({id:e.fingerprint,data:{group:e}}),d={transform:Ke.Transform.toString(c),transition:l},f=n?`Syncing workflow update...`:e.workflow.updatedAt?`Updated ${new Date(e.workflow.updatedAt).toLocaleString()}`:`No workflow activity yet`,p=e.workflow.assignee??e.workflow.activeAgentRoles[0]??`Unassigned`,h=e.workflow.persistedStatus!==e.workflow.phase&&e.workflow.persistedStatus!==e.workflow.reviewGate,g=e.workflow.reviewGate===`human_review`?`Waiting on human review`:e.workflow.reviewGate===`agent_review`?`Waiting on agent review`:e.workflow.phase===`in_progress`?`Execution running`:e.workflow.phase===`blocked`?`Blocked`:`${e.count} hit${e.count>1?`s`:``} · ${e.scanCount} scan${e.scanCount>1?`s`:``}`;return(0,Y.jsxs)(`button`,{ref:s,type:`button`,style:d,onClick:()=>r(e.fingerprint),...a,...o,className:P(`rounded-md border border-border bg-card p-3 text-left transition-[border-color,background-color,box-shadow]`,`cursor-grab active:cursor-grabbing hover:border-primary/20 hover:bg-primary/4 hover:shadow-sm`,t&&`border-primary/35 bg-primary/6 shadow-sm ring-1 ring-primary/15`,u&&!i&&`opacity-30`,i&&`shadow-lg ring-1 ring-primary/20`,n&&`border-primary/30 bg-primary/6`),children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`mb-2 flex items-center gap-2 text-[10px] font-semibold uppercase tracking-[0.18em] text-muted-foreground`,children:[(0,Y.jsx)(ge,{className:`size-3.5`}),e.latest.category,t?(0,Y.jsx)(`span`,{className:`rounded-sm bg-primary/10 px-1.5 py-0.5 text-primary-text`,children:`Open`}):null]}),(0,Y.jsx)(`div`,{className:`line-clamp-2 text-sm font-semibold leading-5 text-foreground`,children:e.latest.title}),(0,Y.jsx)(`div`,{className:`mt-1 text-xs text-muted-foreground`,children:g})]}),(0,Y.jsx)(ne,{severity:e.latest.severity})]}),(0,Y.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2`,children:[e.workflow.reviewGate===`none`?null:(0,Y.jsx)(D,{value:e.workflow.reviewGate}),(0,Y.jsx)(A,{value:e.workflow.consensus}),(0,Y.jsx)(w,{value:e.workflow.evidenceSignal}),h?(0,Y.jsx)(k,{value:e.workflow.persistedStatus}):null]}),(0,Y.jsxs)(`div`,{className:`mt-3 grid gap-2 text-xs text-muted-foreground sm:grid-cols-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 rounded-sm bg-muted/35 px-2.5 py-2`,children:[(0,Y.jsx)(_e,{className:`size-3.5`}),(0,Y.jsxs)(`span`,{children:[e.count,` hit`,e.count>1?`s`:``]})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 rounded-sm bg-muted/35 px-2.5 py-2`,children:[(0,Y.jsx)(ye,{className:`size-3.5`}),(0,Y.jsx)(`span`,{children:p})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 rounded-sm bg-muted/35 px-2.5 py-2`,children:[(0,Y.jsx)(m,{className:`size-3.5`}),(0,Y.jsx)(`span`,{children:f})]})]})]})}function Kr({className:e,...t}){return(0,Y.jsx)(`textarea`,{"data-slot":`textarea`,className:P(`flex field-sizing-content min-h-16 w-full resize-none rounded-md border border-input bg-background px-3 py-3 text-base transition-[color,box-shadow,border-color] outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-2 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40`,e),...t})}function qr(e,t){if(typeof window>`u`)return t;try{let n=window.localStorage.getItem(e);return n?JSON.parse(n):t}catch{return t}}function Jr(e,t){let[n,r]=(0,J.useState)(()=>qr(e,t));return(0,J.useEffect)(()=>{try{window.localStorage.setItem(e,JSON.stringify(n))}catch{}},[e,n]),[n,r]}var Yr=[{value:`backlog`,label:`Backlog`},{value:`todo`,label:`Todo`},{value:`in_progress`,label:`In progress`},{value:`blocked`,label:`Blocked`},{value:`done`,label:`Done`},{value:`cancelled`,label:`Cancelled`}],Xr=[{value:`all`,label:`All consensus`},{value:`pending`,label:`Pending`},{value:`verified`,label:`Verified`},{value:`disputed`,label:`Disputed`},{value:`false-positive`,label:`False positive`}],Zr={search:``,workflowFilter:`all`,reviewFilter:`all`,severityFilter:`all`,consensusFilter:`all`,assigneeFilter:`all`,activeOnly:!1,viewMode:`inbox`,queueSort:`attention`};function Qr(e,t){return[e.latest.title,e.latest.category,e.latest.severity,e.latest.triageStatus,e.workflow.status,e.workflow.phase,e.workflow.reviewGate,e.workflow.persistedStatus,e.workflow.recommendedStatus,e.workflow.reviewReason??``,e.workflow.consensus,e.workflow.assignee??``,e.workflow.activeAgentRoles.join(` `),e.fingerprint].join(` `).toLowerCase().includes(t)}function $r(e,t){let n=t.workflowAssignee.trim()||null,r=t.workflowStatus===`done`||t.workflowStatus===`cancelled`?t.workflowStatus:e.recommendedStatus,i=t.optimisticStatus??(t.workflowStatus===`done`||t.workflowStatus===`cancelled`?t.workflowStatus:e.status),a=_i(t.workflowStatus);return{...e,status:i,persistedStatus:t.workflowStatus,recommendedStatus:r,phase:a,assignee:n,updatedAt:new Date().toISOString()}}function ei(e,t){return{...e,groups:e.groups.map(e=>e.fingerprint===t.fingerprint?{...e,latest:{...e.latest,workflowStatus:t.workflowStatus,workflowAssignee:t.workflowAssignee.trim()||null,workflowUpdatedAt:new Date().toISOString()},workflow:$r(e.workflow,t)}:e)}}function ti(e,t){return e.fingerprint===t.fingerprint?{...e,latest:{...e.latest,workflowStatus:t.workflowStatus,workflowAssignee:t.workflowAssignee.trim()||null,workflowUpdatedAt:new Date().toISOString()},workflow:$r(e.workflow,t)}:e}function ni({dashboard:e}){let{fingerprint:t}=l(),n=d(),r=u(),{openPanel:a,clearPanel:f}=oe(),[m,g]=(0,J.useState)(null),[y,b]=Jr(`0:threads:console-state`,Zr),{search:S,workflowFilter:C,reviewFilter:w,severityFilter:T,consensusFilter:E,assigneeFilter:D,activeOnly:ee,viewMode:O,queueSort:k}=y,[te,A]=(0,J.useState)(!1),j=(0,J.useDeferredValue)(S),ne=(0,J.useMemo)(()=>[`all`,...new Set(e.groups.map(e=>e.latest.severity.toLowerCase()))],[e.groups]),re=(0,J.useMemo)(()=>[`all`,...new Set(e.groups.map(e=>e.workflow.assignee).filter(Boolean))],[e.groups]),M=(0,J.useMemo)(()=>{let t=new Set;for(let n of e.groups){n.workflow.assignee&&t.add(n.workflow.assignee);for(let e of n.workflow.activeAgentRoles)t.add(e)}return[...t].sort((e,t)=>e.localeCompare(t))},[e.groups]),P=(0,J.useMemo)(()=>{let t=j.trim().toLowerCase();return e.groups.filter(e=>!(t&&!Qr(e,t)||C!==`all`&&e.workflow.phase!==C||w!==`all`&&e.workflow.reviewGate!==w||T!==`all`&&e.latest.severity.toLowerCase()!==T||E!==`all`&&e.workflow.consensus!==E||D!==`all`&&(e.workflow.assignee??``)!==D&&!e.workflow.activeAgentRoles.includes(D)||ee&&e.workflow.activeAgentRoles.length===0))},[ee,D,E,e.groups,j,w,T,C]),F=(0,J.useMemo)(()=>P.filter(e=>e.workflow.reviewGate!==`none`),[P]),I=(0,J.useMemo)(()=>{let e=[...P];return e.sort((e,t)=>k===`newest`?t.latest.timestamp-e.latest.timestamp:k===`severity`?hi(t.latest.severity)-hi(e.latest.severity):gi(t)-gi(e)),e},[P,k]),R=(0,J.useMemo)(()=>I.filter(e=>e.workflow.reviewGate===`none`&&(e.workflow.phase===`todo`||e.workflow.phase===`backlog`)),[I]),fe=(0,J.useMemo)(()=>I.filter(e=>e.workflow.phase===`in_progress`||e.workflow.activeAgentRoles.length>0),[I]),me=(0,J.useMemo)(()=>I.filter(e=>e.workflow.phase===`blocked`),[I]),ge=(0,J.useMemo)(()=>F.filter(e=>e.workflow.reviewGate===`agent_review`),[F]),_e=(0,J.useMemo)(()=>F.filter(e=>e.workflow.reviewGate===`human_review`),[F]),ye=O===`review`?F:O===`board`?P:I,q=t??null,be=c({queryKey:[`finding-family`,q],queryFn:()=>o(q),enabled:!!q}),xe=ie({mutationFn:({triageStatus:e,triageNote:t})=>i(q,e,t),onSuccess:async()=>{await Promise.all([r.invalidateQueries({queryKey:[`dashboard`]}),r.invalidateQueries({queryKey:[`finding-family`,q]})])}}),Se=ie({mutationFn:({fingerprint:e,workflowStatus:t,workflowAssignee:n})=>s(e,t,n),onMutate:async e=>{await Promise.all([r.cancelQueries({queryKey:[`dashboard`]}),r.cancelQueries({queryKey:[`finding-family`,e.fingerprint]})]);let t=r.getQueryData([`dashboard`]),n=r.getQueryData([`finding-family`,e.fingerprint]);return r.setQueryData([`dashboard`],t=>t&&ei(t,e)),r.setQueryData([`finding-family`,e.fingerprint],t=>t&&ti(t,e)),{previousDashboard:t,previousFamily:n,fingerprint:e.fingerprint}},onError:(e,t,n)=>{n?.previousDashboard&&r.setQueryData([`dashboard`],n.previousDashboard),n?.previousFamily&&r.setQueryData([`finding-family`,n.fingerprint],n.previousFamily)},onSettled:async(e,t,n)=>{await Promise.all([r.invalidateQueries({queryKey:[`dashboard`]}),r.invalidateQueries({queryKey:[`finding-family`,n.fingerprint]})])}}),Ce=e.groups.find(e=>e.fingerprint===q)??null,we=ye.some(e=>e.fingerprint===q),Te=S.trim().length>0||C!==`all`||w!==`all`||T!==`all`||E!==`all`||D!==`all`||ee,X=[C===`all`?null:Yr.find(e=>e.value===C)?.label??C,w===`all`?null:w.replaceAll(`_`,` `),T===`all`?null:T,E===`all`?null:E.replaceAll(`-`,` `),D===`all`?null:D,ee?`active agents`:null].filter(Boolean),Ee=O===`review`?`${F.length} review families`:O===`board`?`${P.length} board families`:`${I.length} queued families`;function De(){b(e=>({...e,search:``,workflowFilter:`all`,reviewFilter:`all`,severityFilter:`all`,consensusFilter:`all`,assigneeFilter:`all`,activeOnly:!1}))}return(0,J.useEffect)(()=>{q!==m&&g(null)},[m,q]),(0,J.useEffect)(()=>{if(!q||q===m){f();return}let e;return e=be.isLoading?(0,Y.jsx)(B,{label:`Finding detail`}):be.error?(0,Y.jsx)(pe,{error:be.error}):be.data?(0,Y.jsx)(ri,{data:be.data,assigneeSuggestions:M,selectedSummary:Ce?.workflow??null,reviewMode:O===`review`,isSaving:xe.isPending||Se.isPending,onTriage:(e,t)=>xe.mutate({triageStatus:e,triageNote:t}),onWorkflow:(e,t,n,r)=>Se.mutate({fingerprint:e,workflowStatus:t,workflowAssignee:n,optimisticStatus:r})}):(0,Y.jsx)(U,{title:`Finding unavailable`,body:`The selected finding family could not be loaded from the local database.`}),a({title:Ce?.latest.title??`Finding detail`,description:`Inspect this finding family as one execution record with ownership, evidence, chat handoff, and review posture.`,content:(0,Y.jsx)(`div`,{className:`p-6`,children:e}),onClose:()=>{g(q),n(`/findings`)}}),()=>{f()}},[M,f,be.data,be.error,be.isLoading,n,a,q,Ce?.latest.title,Ce?.workflow,m,xe.isPending,Se.isPending,O]),(0,Y.jsxs)(`div`,{className:`space-y-6`,children:[(0,Y.jsx)(N,{eyebrow:`Findings`,title:`Findings workspace`,summary:`A finding family groups repeated observations across runs. Start from evidence and the recommended next action; use the scoped chat workspace when the case needs judgment.`,actions:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(z,{variant:`outline`,onClick:()=>A(!0),children:[(0,Y.jsx)(ve,{className:`size-4`}),`Filters`,Te?(0,Y.jsx)(G,{variant:`neutral`,children:X.length+ +!!S.trim()}):null]}),q?(0,Y.jsx)(z,{variant:`outline`,onClick:()=>n(`/findings`),children:`Close finding`}):null]})}),(0,Y.jsxs)(W,{children:[(0,Y.jsx)(he,{children:(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(K,{children:`Work queues`}),(0,Y.jsx)(L,{className:`mt-2`,children:`Start with what needs a decision`}),(0,Y.jsx)(V,{children:`Keep autonomous execution separate from evidence review. The board remains a secondary view, not a second workflow to maintain.`})]}),(0,Y.jsx)(v,{value:O,onValueChange:e=>b(t=>({...t,viewMode:e})),children:(0,Y.jsxs)(_,{children:[(0,Y.jsx)(h,{value:`inbox`,children:`Queue`}),(0,Y.jsx)(h,{value:`review`,children:`Review`}),(0,Y.jsx)(h,{value:`board`,children:`Board`})]})})]})}),(0,Y.jsxs)(H,{className:`grid gap-3 md:grid-cols-2 xl:grid-cols-4`,children:[(0,Y.jsx)(ci,{label:`Ready now`,value:`${R.length}`,meta:`Queued for the next autonomous step.`}),(0,Y.jsx)(ci,{label:`Running now`,value:`${fe.length}`,meta:`Finding families with live worker activity.`}),(0,Y.jsx)(ci,{label:`Blocked`,value:`${me.length}`,meta:`Need more access, context, or a better PoC.`}),(0,Y.jsx)(ci,{label:`Review`,value:`${F.length}`,meta:`Waiting on agent or human sign-off.`})]})]}),(0,Y.jsx)(W,{size:`sm`,children:(0,Y.jsxs)(H,{className:`space-y-4`,children:[(0,Y.jsxs)(`div`,{className:`grid gap-3 lg:grid-cols-[minmax(0,1fr)_auto] lg:items-center`,children:[(0,Y.jsxs)(`div`,{className:`relative`,children:[(0,Y.jsx)(x,{className:`pointer-events-none absolute top-1/2 left-3 size-4 -translate-y-1/2 text-muted-foreground`}),(0,Y.jsx)(de,{value:S,onChange:e=>b(t=>({...t,search:e.target.value})),placeholder:`Search findings, workflow state, assignee, severity, consensus, or fingerprint`,className:`pl-9`})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm text-muted-foreground`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(p,{className:`size-4`}),Ee]}),(0,Y.jsxs)(G,{variant:`neutral`,children:[e.groups.length,` total`]}),q?(0,Y.jsx)(G,{variant:we?`accent`:`warning`,children:we?`Finding open`:`Selected finding hidden by filters`}):null]})]}),Te||S.trim()?(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[S.trim()?(0,Y.jsxs)(G,{variant:`outline`,children:[`query: `,S.trim()]}):null,X.map(e=>(0,Y.jsx)(G,{variant:`outline`,children:e},e)),(0,Y.jsx)(z,{variant:`ghost`,size:`sm`,onClick:De,children:`Clear filters`})]}):null]})}),(0,Y.jsx)(`div`,{className:`min-w-0 space-y-4`,children:O===`board`?(0,Y.jsx)(Ur,{groups:P,selectedFingerprint:q,pendingFingerprint:Se.isPending?Se.variables?.fingerprint??null:null,onSelect:e=>n(`/findings/${e}`),onMove:(t,r)=>{q!==t&&n(`/findings/${t}`),Se.mutate({fingerprint:t,workflowStatus:r,workflowAssignee:e.groups.find(e=>e.fingerprint===t)?.workflow.assignee??``,optimisticStatus:r})}}):O===`review`?(0,Y.jsx)(ai,{agentReviewGroups:ge,humanReviewGroups:_e,selectedFingerprint:q,pendingFingerprint:Se.isPending?Se.variables?.fingerprint??null:null,onSelect:e=>n(`/findings/${e}`)}):(0,Y.jsx)(ii,{groups:I,readyGroups:R,activeGroups:fe,blockedGroups:me,selectedFingerprint:q,queueSort:k,pendingFingerprint:Se.isPending?Se.variables?.fingerprint??null:null,onSortChange:e=>b(t=>({...t,queueSort:e})),onSelect:e=>n(`/findings/${e}`)})}),(0,Y.jsx)(ce,{open:te,onOpenChange:A,children:(0,Y.jsxs)(ue,{side:`right`,className:`w-full overflow-y-auto p-0 sm:max-w-xl`,children:[(0,Y.jsxs)(ae,{className:`border-b border-border pr-12`,children:[(0,Y.jsx)(le,{children:`Finding filters`}),(0,Y.jsx)(se,{children:`Scope finding families by phase, review gate, severity, ownership, or live worker activity.`})]}),(0,Y.jsxs)(`div`,{className:`space-y-5 p-6`,children:[(0,Y.jsxs)(`label`,{className:`block space-y-2`,children:[(0,Y.jsx)(K,{children:`Search`}),(0,Y.jsx)(de,{value:S,onChange:e=>b(t=>({...t,search:e.target.value})),placeholder:`Search workflow, evidence, assignee, or fingerprint`})]}),(0,Y.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,Y.jsxs)(vi,{label:`Workflow`,children:[(0,Y.jsx)(yi,{active:C===`all`,onClick:()=>b(e=>({...e,workflowFilter:`all`})),children:`All phases`}),Yr.map(e=>(0,Y.jsx)(yi,{active:C===e.value,onClick:()=>b(t=>({...t,workflowFilter:e.value})),children:e.label},e.value))]}),(0,Y.jsxs)(vi,{label:`Review gate`,children:[(0,Y.jsx)(yi,{active:w===`all`,onClick:()=>b(e=>({...e,reviewFilter:`all`})),children:`All review states`}),(0,Y.jsx)(yi,{active:w===`agent_review`,onClick:()=>b(e=>({...e,reviewFilter:`agent_review`})),children:`Agent review`}),(0,Y.jsx)(yi,{active:w===`human_review`,onClick:()=>b(e=>({...e,reviewFilter:`human_review`})),children:`Human review`})]}),(0,Y.jsx)(vi,{label:`Severity`,children:ne.map(e=>(0,Y.jsx)(yi,{active:T===e,onClick:()=>b(t=>({...t,severityFilter:e})),children:e===`all`?`All severities`:e[0]?.toUpperCase()+e.slice(1)},e))}),(0,Y.jsx)(vi,{label:`Consensus`,children:Xr.map(e=>(0,Y.jsx)(yi,{active:E===e.value,onClick:()=>b(t=>({...t,consensusFilter:e.value})),children:e.label},e.value))}),(0,Y.jsxs)(vi,{label:`Ownership`,className:`md:col-span-2`,children:[(0,Y.jsx)(yi,{active:D===`all`,onClick:()=>b(e=>({...e,assigneeFilter:`all`})),children:`All assignees`}),re.filter(e=>e!==`all`).map(e=>(0,Y.jsx)(yi,{active:D===e,onClick:()=>b(t=>({...t,assigneeFilter:e})),children:e},e)),(0,Y.jsx)(yi,{active:ee,onClick:()=>b(e=>({...e,activeOnly:!e.activeOnly})),children:`Active agents only`})]})]}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-t border-border pt-4`,children:[(0,Y.jsxs)(`div`,{className:`text-sm text-muted-foreground`,children:[ye.length,` of `,e.groups.length,` finding families visible`]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(z,{variant:`ghost`,size:`sm`,onClick:De,children:`Reset`}),(0,Y.jsx)(z,{size:`sm`,onClick:()=>A(!1),children:`Apply`})]})]})]})]})})]})}function ri({data:e,assigneeSuggestions:t,selectedSummary:n,reviewMode:r,onTriage:i,onWorkflow:o,isSaving:s}){let[c,l]=(0,J.useState)(e.latest.triageNote??``),[u,d]=(0,J.useState)(e.workflow.assignee??``),[f,p]=(0,J.useState)(null),m=`assignee-suggestions-${e.fingerprint}`,x=(0,J.useMemo)(()=>{let n=new Set;e.workflow.assignee&&n.add(e.workflow.assignee);for(let t of e.workflow.activeAgentRoles)n.add(t);for(let e of t)n.add(e);return[...n].slice(0,8)},[t,e.workflow.activeAgentRoles,e.workflow.assignee]),k=e.workItems.find(e=>e.status===`in_progress`)??null,N=e.workItems.find(e=>e.status===`blocked`)??null,P=e.workItems.find(e=>e.status===`todo`||e.status===`backlog`)??null,ie=k?.owner??e.workflow.assignee??e.workflow.activeAgentRoles[0]??N?.owner??`Unassigned`,ae=N?`Execution is blocked.`:k?`Execution is actively running.`:P?`Execution is queued for the next step.`:e.workflow.reviewGate===`none`?`Execution has no active work item yet.`:`Execution is waiting on review.`,R=N?N.summary||e.workflow.reviewReason||`A blocked step needs operator intervention.`:k?k.summary||e.workflow.reviewReason||`An agent-owned execution step is in progress.`:P?P.summary||`The next queued step is ready to run.`:e.workflow.reviewReason||`No explicit runbook activity is available yet.`,B=e.case?.targetType===`repository`&&e.workflow.consensus===`verified`?`draft_fix`:e.workflow.reviewGate===`human_review`?`verify`:`investigate`,oe=e.consoleCommand.replace(`--finding-intent investigate`,`--finding-intent ${B}`),se=B===`draft_fix`?`Plan a source fix in chat`:B===`verify`?`Review the evidence in chat`:`Investigate in chat`,U=B===`draft_fix`?`The chat will establish root cause and propose a patch and regression test. It cannot apply a patch from this handoff.`:B===`verify`?`The chat will independently assess the evidence before you accept or suppress this finding.`:`The chat starts with this finding's evidence and asks for the next smallest authorized step.`,ce=async()=>{try{if(!navigator.clipboard?.writeText)throw Error(`Clipboard access is unavailable.`);await navigator.clipboard.writeText(oe),p(`Copied. Run the command in a terminal to continue with the same finding context.`)}catch{p(`Copy is unavailable here. Select the command below and run it in a terminal.`)}};return(0,J.useEffect)(()=>{l(e.latest.triageNote??``)},[e.fingerprint,e.latest.triageNote]),(0,J.useEffect)(()=>{d(e.workflow.assignee??``)},[e.fingerprint,e.workflow.assignee]),(0,J.useEffect)(()=>{p(null)},[e.fingerprint]),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,Y.jsxs)(re,{className:r?`order-2`:`order-1`,eyebrow:r?`Review`:`Operator`,title:r?e.workflow.reviewGate===`human_review`?`Evidence and disposition`:`Evidence and next action`:`Finding controls`,description:r?`Inspect the evidence first. Operator controls remain available after the review record.`:`Review evidence, route the next action into the console, and make a final disposition only when the proof is sufficient.`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Y.jsx)(ne,{severity:e.latest.severity}),(0,Y.jsx)(C,{value:e.workflow.phase}),(0,Y.jsx)(D,{value:e.workflow.reviewGate}),(0,Y.jsx)(A,{value:e.workflow.consensus}),(0,Y.jsx)(w,{value:e.workflow.evidenceSignal}),(0,Y.jsx)(T,{value:e.latest.triageStatus})]}),(0,Y.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-2 xl:grid-cols-3`,children:[(0,Y.jsx)(di,{label:`Case`,value:e.case?.target??`Unlinked`}),(0,Y.jsx)(di,{label:`Case type`,value:e.case?mi(e.case.targetType):`Unknown`}),(0,Y.jsx)(di,{label:`Fingerprint`,value:e.fingerprint,mono:!0}),(0,Y.jsx)(di,{label:`Category`,value:e.latest.category}),(0,Y.jsx)(di,{label:`Occurrences`,value:String(e.rows.length)}),(0,Y.jsx)(di,{label:`Review gate`,value:e.workflow.reviewGate.replaceAll(`_`,` `)}),(0,Y.jsx)(di,{label:`Active agents`,value:e.workflow.activeAgentRoles.length>0?e.workflow.activeAgentRoles.join(`, `):`None`})]}),(0,Y.jsxs)(`div`,{className:`rounded-md border border-border bg-muted/20 p-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(K,{children:`Execution snapshot`}),(0,Y.jsx)(`div`,{className:`mt-2 text-sm font-medium text-foreground`,children:ae}),(0,Y.jsx)(`div`,{className:`mt-1 text-sm leading-6 text-muted-foreground`,children:R}),P?(0,Y.jsx)(`div`,{className:`mt-3 text-xs leading-5 text-muted-foreground`,children:"Queued autonomous stages are claimed automatically by a live daemon once dependencies clear. If a finding stalls here, check `Operations` for queue health or worker heartbeats."}):null]}),N?(0,Y.jsx)(li,{value:N.status}):k?(0,Y.jsx)(li,{value:k.status}):null]}),(0,Y.jsxs)(`div`,{className:`mt-4 grid gap-3 md:grid-cols-2 xl:grid-cols-4`,children:[(0,Y.jsx)(di,{label:`Current step`,value:k?k.title:N?N.title:`No live step`}),(0,Y.jsx)(di,{label:`Owner`,value:ie}),(0,Y.jsx)(di,{label:`Next step`,value:P?P.title:e.workflow.reviewGate===`none`?`No queued step`:`Review gate`}),(0,Y.jsx)(di,{label:`Blocked by`,value:N?N.title:e.workflow.phase===`blocked`?e.workflow.reviewReason??`Operator input`:`Clear`})]})]}),(0,Y.jsx)(`div`,{className:`rounded-md border border-primary/30 bg-primary/5 p-4`,children:(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 space-y-2`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(b,{className:`size-4 text-primary-text`}),(0,Y.jsx)(K,{children:`Continue in console`})]}),(0,Y.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:se}),(0,Y.jsx)(`div`,{className:`text-sm leading-6 text-muted-foreground`,children:U}),(0,Y.jsx)(`code`,{className:`block overflow-x-auto rounded bg-background/80 px-3 py-2 font-mono text-xs text-foreground`,children:oe}),f?(0,Y.jsx)(`div`,{className:`text-xs leading-5 text-muted-foreground`,children:f}):null]}),(0,Y.jsxs)(z,{variant:`outline`,size:`sm`,onClick:()=>void ce(),children:[(0,Y.jsx)(y,{className:`size-4`}),`Copy command`]})]})}),(0,Y.jsxs)(`label`,{className:`block space-y-2`,children:[(0,Y.jsx)(K,{children:`Finding owner`}),(0,Y.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Y.jsx)(de,{list:m,value:u,onChange:e=>d(e.target.value),placeholder:`security-verifier / model owner / person`}),(0,Y.jsx)(`datalist`,{id:m,children:x.map(e=>(0,Y.jsx)(`option`,{value:e},e))}),(0,Y.jsxs)(z,{variant:`outline`,onClick:()=>o(e.fingerprint,e.workflow.phase,u),disabled:s,children:[(0,Y.jsx)(ye,{className:`size-4`}),`Assign`]})]})]}),x.length>0?(0,Y.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:x.map(e=>(0,Y.jsx)(z,{variant:u===e?`default`:`outline`,size:`sm`,onClick:()=>d(e),disabled:s,children:e},e))}):null,(0,Y.jsx)(`div`,{className:`rounded-md border border-border bg-muted/20 p-4`,children:(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-4`,children:[(0,Y.jsxs)(`div`,{className:`max-w-2xl space-y-2`,children:[(0,Y.jsx)(K,{children:`Operator disposition`}),(0,Y.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:`Keep execution state derived from real work.`}),(0,Y.jsx)(`div`,{className:`text-sm leading-6 text-muted-foreground`,children:`The queue and console own investigation and remediation planning. Use a disposition only after the evidence is sufficient to accept or suppress this finding family.`})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Y.jsxs)(z,{variant:`success`,onClick:()=>i(`accepted`,c),disabled:s,children:[(0,Y.jsx)(F,{className:`size-4`}),`Accept`]}),(0,Y.jsxs)(z,{variant:`warning`,onClick:()=>i(`suppressed`,c),disabled:s,children:[(0,Y.jsx)(I,{className:`size-4`}),`Suppress`]}),(0,Y.jsxs)(z,{variant:`outline`,onClick:()=>i(`new`,c),disabled:s,children:[(0,Y.jsx)(_e,{className:`size-4`}),`Reset triage`]})]})]})}),e.workflow.reviewGate!==`none`||e.workflow.persistedStatus!==e.workflow.phase?(0,Y.jsxs)(`div`,{className:`rounded-lg border border-border bg-muted/35 px-3 py-3 text-sm text-muted-foreground`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 font-medium text-foreground`,children:[(0,Y.jsx)(q,{className:`size-4 text-primary-text`}),`Autonomous workflow signal`]}),(0,Y.jsxs)(`div`,{className:`mt-1`,children:[`Live execution is currently in `,(0,Y.jsx)(`span`,{className:`text-foreground`,children:e.workflow.phase}),e.workflow.reviewGate===`none`?`.`:` with ${e.workflow.reviewGate.replaceAll(`_`,` `)}.`,e.workflow.reviewReason?` ${e.workflow.reviewReason}`:``,n&&n.persistedStatus!==n.phase?` The saved operator workflow is ${n.persistedStatus}.`:``]})]}):null,(0,Y.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,Y.jsx)(M,{label:`Consensus`,value:e.workflow.consensus}),(0,Y.jsx)(M,{label:`Evidence signal`,value:e.workflow.evidenceSignal}),(0,Y.jsx)(M,{label:`True positive votes`,value:String(e.workflow.verdictCounts.truePositive)}),(0,Y.jsx)(M,{label:`False positive votes`,value:String(e.workflow.verdictCounts.falsePositive)}),(0,Y.jsx)(M,{label:`Unsure votes`,value:String(e.workflow.verdictCounts.unsure)}),(0,Y.jsx)(M,{label:`Assignee`,value:e.workflow.assignee??`Unassigned`})]}),(0,Y.jsxs)(`label`,{className:`block space-y-2`,children:[(0,Y.jsx)(K,{children:`Triage note`}),(0,Y.jsx)(Kr,{value:c,onChange:e=>l(e.target.value),placeholder:`Capture why this finding is actionable, benign, needs another agent pass, or is waiting on a human call.`})]})]}),(0,Y.jsx)(re,{className:r?`order-1`:`order-2`,eyebrow:r?`Review evidence`:`Execution`,title:r?`Evidence before disposition`:`Execution record`,description:r?`Start with the captured proof, then inspect the work chain or make a disposition.`:`Open the runbook, evidence, and occurrence detail only when this finding needs deeper inspection.`,children:(0,Y.jsxs)(v,{defaultValue:r?`evidence`:`runbook`,className:`gap-4`,children:[(0,Y.jsxs)(_,{children:[(0,Y.jsx)(h,{value:`runbook`,children:`Runbook`}),(0,Y.jsx)(h,{value:`evidence`,children:`Evidence`}),(0,Y.jsx)(h,{value:`occurrences`,children:`Occurrences`})]}),(0,Y.jsxs)(g,{value:`runbook`,className:`space-y-5`,children:[(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsx)(K,{children:`Work chain`}),e.workItems.length===0?(0,Y.jsx)(`div`,{className:`rounded-md border border-dashed border-border bg-muted/20 px-4 py-8 text-sm text-muted-foreground`,children:`No persisted work graph exists yet for this finding.`}):(0,Y.jsx)(ui,{items:e.workItems,activeWorkItemId:k?.id??null,blockedWorkItemId:N?.id??null})]}),(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsx)(K,{children:`Shared artifacts`}),e.artifacts.length===0?(0,Y.jsx)(`div`,{className:`rounded-md border border-dashed border-border bg-muted/20 px-4 py-8 text-sm text-muted-foreground`,children:`No shared artifacts have been persisted for this finding yet.`}):(0,Y.jsx)(`div`,{className:`grid gap-3`,children:e.artifacts.map(e=>(0,Y.jsx)(`div`,{className:`rounded-md border border-border bg-card px-4 py-3`,children:(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:e.label}),(0,Y.jsx)(`div`,{className:`mt-1 text-xs leading-5 text-muted-foreground`,children:e.summary})]}),(0,Y.jsx)(G,{variant:`outline`,children:fi(e.kind)})]})},e.id))})]})]}),(0,Y.jsx)(g,{value:`evidence`,children:(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsx)(K,{children:`Finding evidence`}),(0,Y.jsx)(be,{request:e.latest.evidenceRequest,response:e.latest.evidenceResponse,analysis:e.latest.evidenceAnalysis})]})}),(0,Y.jsx)(g,{value:`occurrences`,children:(0,Y.jsxs)(W,{className:`overflow-hidden`,children:[(0,Y.jsx)(he,{children:(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(K,{children:`Occurrences`}),(0,Y.jsx)(L,{className:`mt-2`,children:`Matching findings`}),(0,Y.jsx)(V,{children:`Each row is an occurrence grouped into this finding family.`})]})}),(0,Y.jsx)(H,{children:(0,Y.jsxs)(j,{children:[(0,Y.jsx)(S,{children:(0,Y.jsxs)(O,{className:`hover:bg-transparent`,children:[(0,Y.jsx)(E,{children:`Finding`}),(0,Y.jsx)(E,{children:`Scan`}),(0,Y.jsx)(E,{children:`Time`}),(0,Y.jsx)(E,{className:`w-[8rem]`,children:`Status`})]})}),(0,Y.jsx)(ee,{children:e.rows.map(e=>(0,Y.jsxs)(O,{children:[(0,Y.jsx)(te,{className:`font-mono text-xs text-foreground`,children:e.id.slice(0,8)}),(0,Y.jsx)(te,{className:`font-mono text-xs text-muted-foreground`,children:e.scanId.slice(0,8)}),(0,Y.jsx)(te,{className:`text-xs text-muted-foreground`,children:a(e.timestamp)}),(0,Y.jsx)(te,{children:(0,Y.jsx)(T,{value:e.status})})]},e.id))})]})})]})})]})})]})}function ii({groups:e,readyGroups:t,activeGroups:n,blockedGroups:r,selectedFingerprint:i,queueSort:a,pendingFingerprint:o,onSortChange:s,onSelect:c}){return(0,Y.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-[minmax(0,1.4fr)_minmax(0,1fr)]`,children:[(0,Y.jsxs)(W,{className:`overflow-hidden`,children:[(0,Y.jsxs)(he,{children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(K,{children:`Autonomous queue`}),(0,Y.jsx)(L,{className:`mt-2`,children:`What can move next`}),(0,Y.jsx)(V,{children:`This queue separates runnable work from active execution. Open a finding when evidence needs a human decision or chat handoff.`})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Y.jsx)(z,{variant:a===`attention`?`default`:`outline`,size:`xs`,onClick:()=>s(`attention`),children:`Needs attention`}),(0,Y.jsx)(z,{variant:a===`newest`?`default`:`outline`,size:`xs`,onClick:()=>s(`newest`),children:`Newest`}),(0,Y.jsx)(z,{variant:a===`severity`?`default`:`outline`,size:`xs`,onClick:()=>s(`severity`),children:`Severity`})]})]}),(0,Y.jsx)(H,{className:`space-y-4`,children:e.length===0?(0,Y.jsx)(U,{title:`No finding families in the queue`,body:`Adjust filters or launch a run to populate the finding queue.`}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(oi,{eyebrow:`Ready`,title:`Ready to claim`,description:`Runnable finding families with no review gate. These are the next autonomous work candidates.`,count:t.length,emptyLabel:`No ready finding families under the active filters.`,children:t.map(e=>(0,Y.jsx)(si,{group:e,selected:i===e.fingerprint,saving:o===e.fingerprint,mode:`inbox`,onSelect:c},e.fingerprint))}),(0,Y.jsx)(oi,{eyebrow:`Running`,title:`Live execution`,description:`Finding families currently owned by a worker or marked in progress.`,count:n.length,emptyLabel:`No live execution right now.`,children:n.map(e=>(0,Y.jsx)(si,{group:e,selected:i===e.fingerprint,saving:o===e.fingerprint,mode:`inbox`,onSelect:c},e.fingerprint))})]})})]}),(0,Y.jsxs)(`div`,{className:`space-y-4`,children:[(0,Y.jsxs)(W,{className:`overflow-hidden`,children:[(0,Y.jsx)(he,{children:(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(K,{children:`Blocked work`}),(0,Y.jsx)(L,{className:`mt-2`,children:`Needs intervention`}),(0,Y.jsx)(V,{children:`Finding families that need context, access, or a better exploit path before the worker can continue.`})]})}),(0,Y.jsx)(H,{className:`px-0 pb-0`,children:r.length===0?(0,Y.jsx)(`div`,{className:`px-6 pb-6`,children:(0,Y.jsx)(U,{title:`Nothing is blocked`,body:`The current finding set has no blocked execution paths.`})}):(0,Y.jsx)(fe,{className:`max-h-[38rem]`,children:(0,Y.jsx)(R,{children:r.map(e=>(0,Y.jsx)(si,{group:e,selected:i===e.fingerprint,saving:o===e.fingerprint,mode:`review`,onSelect:c},e.fingerprint))})})})]}),(0,Y.jsxs)(W,{children:[(0,Y.jsx)(he,{children:(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(K,{children:`Reading model`}),(0,Y.jsx)(L,{className:`mt-2`,children:`How to use findings`}),(0,Y.jsx)(V,{children:`Runs create evidence. Finding families group related observations over time. Workers claim runnable work until a review gate or blocker stops them.`})]})}),(0,Y.jsxs)(H,{className:`grid gap-3`,children:[(0,Y.jsx)(ci,{label:`Filtered families`,value:`${e.length}`,meta:`Current queue scope after search and filters.`}),(0,Y.jsx)(ci,{label:`Ready plus running`,value:`${t.length+n.length}`,meta:`Work automation can touch without human sign-off.`}),(0,Y.jsx)(ci,{label:`Blocked plus review`,value:`${r.length}`,meta:`Cases outside the autonomous happy path.`})]})]})]})]})}function ai({agentReviewGroups:e,humanReviewGroups:t,selectedFingerprint:n,pendingFingerprint:r,onSelect:i}){return(0,Y.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-2`,children:[(0,Y.jsxs)(W,{className:`overflow-hidden`,children:[(0,Y.jsx)(he,{children:(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(K,{children:`Agent review`}),(0,Y.jsx)(L,{className:`mt-2`,children:`Consensus and replication`}),(0,Y.jsx)(V,{children:`Finding families that need another autonomous pass, conflict resolution, or a stronger PoC before operator review.`})]})}),(0,Y.jsx)(H,{className:`px-0 pb-0`,children:e.length===0?(0,Y.jsx)(`div`,{className:`px-6 pb-6`,children:(0,Y.jsx)(U,{title:`No agent-review families`,body:`Nothing currently needs another agent pass under the active filters.`})}):(0,Y.jsx)(fe,{className:`max-h-[70vh]`,children:(0,Y.jsx)(R,{children:e.map(e=>(0,Y.jsx)(si,{group:e,selected:n===e.fingerprint,saving:r===e.fingerprint,mode:`review`,onSelect:i},e.fingerprint))})})})]}),(0,Y.jsxs)(W,{className:`overflow-hidden`,children:[(0,Y.jsx)(he,{children:(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(K,{children:`Human review`}),(0,Y.jsx)(L,{className:`mt-2`,children:`Operator sign-off`}),(0,Y.jsx)(V,{children:`Finding families with enough signal for a final human disposition or report.`})]})}),(0,Y.jsx)(H,{className:`px-0 pb-0`,children:t.length===0?(0,Y.jsx)(`div`,{className:`px-6 pb-6`,children:(0,Y.jsx)(U,{title:`No human-review families`,body:`No finding families currently require operator sign-off under the active filters.`})}):(0,Y.jsx)(fe,{className:`max-h-[70vh]`,children:(0,Y.jsx)(R,{children:t.map(e=>(0,Y.jsx)(si,{group:e,selected:n===e.fingerprint,saving:r===e.fingerprint,mode:`review`,onSelect:i},e.fingerprint))})})})]})]})}function oi({eyebrow:e,title:t,description:n,count:r,emptyLabel:i,children:a}){return(0,Y.jsxs)(W,{className:`overflow-hidden`,size:`sm`,children:[(0,Y.jsx)(he,{className:`border-b border-border`,children:(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(K,{children:e}),(0,Y.jsx)(L,{className:`mt-2`,children:t}),(0,Y.jsx)(V,{children:n})]}),(0,Y.jsx)(G,{variant:`neutral`,children:r})]})}),(0,Y.jsx)(H,{className:`px-0 pb-0`,children:r===0?(0,Y.jsx)(`div`,{className:`px-4 pb-4`,children:(0,Y.jsx)(U,{title:i,body:`The queue will repopulate here as runs produce finding work.`})}):(0,Y.jsx)(R,{children:a})})]})}function si({group:e,selected:t,saving:n,mode:r,onSelect:i}){let o=r===`review`?e.workflow.reviewGate===`agent_review`?`Needs agent replication or conflict resolution.`:`Needs operator decision before final disposition.`:e.workflow.reviewReason?e.workflow.reviewReason:e.workflow.phase===`in_progress`?`Execution is active now.`:e.workflow.phase===`blocked`?`Execution is blocked and needs intervention.`:`Ready for the next autonomous step.`;return(0,Y.jsx)(me,{interactive:!0,selected:t,className:`p-0`,children:(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>i(e.fingerprint),className:`w-full px-4 py-4 text-left`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,Y.jsx)(`div`,{className:`text-sm font-semibold leading-5 text-foreground`,children:e.latest.title}),(0,Y.jsx)(`div`,{className:`text-xs leading-5 text-muted-foreground`,children:o})]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 flex-wrap justify-end gap-2`,children:[e.workflow.reviewGate===`none`?null:(0,Y.jsx)(D,{value:e.workflow.reviewGate}),(0,Y.jsx)(ne,{severity:e.latest.severity})]})]}),(0,Y.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2`,children:[(0,Y.jsx)(C,{value:e.workflow.phase}),(0,Y.jsx)(A,{value:e.workflow.consensus}),(0,Y.jsx)(w,{value:e.workflow.evidenceSignal}),(0,Y.jsx)(T,{value:e.latest.triageStatus}),e.workflow.persistedStatus!==e.workflow.phase&&e.workflow.persistedStatus!==e.workflow.reviewGate?(0,Y.jsx)(k,{value:e.workflow.persistedStatus}):null]}),(0,Y.jsxs)(`div`,{className:`mt-3 grid gap-2 text-xs text-muted-foreground md:grid-cols-4`,children:[(0,Y.jsxs)(`div`,{children:[`Owner: `,e.workflow.assignee??`Unassigned`]}),(0,Y.jsxs)(`div`,{children:[`Coverage: `,e.count,` hits · `,e.scanCount,` scans`]}),(0,Y.jsxs)(`div`,{children:[`Agents: `,e.workflow.activeAgentRoles.length>0?e.workflow.activeAgentRoles.join(`, `):`None`]}),(0,Y.jsxs)(`div`,{className:`inline-flex items-center gap-1.5`,children:[(0,Y.jsx)(m,{className:`size-3.5`}),n?`Saving workflow...`:`Updated ${a(e.workflow.updatedAt??e.latest.timestamp)}`]})]})]})})}function ci({label:e,value:t,meta:n}){return(0,Y.jsxs)(`div`,{className:`rounded-md border border-border bg-card px-4 py-3`,children:[(0,Y.jsx)(`div`,{className:`text-[10px] font-medium uppercase tracking-widest text-muted-foreground/70`,children:e}),(0,Y.jsx)(`div`,{className:`mt-2 text-2xl font-semibold text-foreground`,children:t}),(0,Y.jsx)(`div`,{className:`mt-1 text-xs text-muted-foreground`,children:n})]})}function li({value:e}){return(0,Y.jsx)(G,{variant:e===`done`?`success`:e===`blocked`||e===`cancelled`?`danger`:e===`in_progress`?`accent`:e===`todo`?`warning`:`neutral`,children:e.replaceAll(`_`,` `)})}function ui({items:e,activeWorkItemId:t,blockedWorkItemId:n}){return(0,Y.jsx)(`div`,{className:`grid gap-3 md:grid-cols-2`,children:e.map(e=>{let r=t===e.id,i=n===e.id;return(0,Y.jsxs)(`div`,{className:`rounded-md border px-4 py-3 ${i?`border-destructive/30 bg-destructive/5`:r?`border-primary/30 bg-primary/5`:`border-border bg-card`}`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:e.title}),r?(0,Y.jsx)(G,{variant:`accent`,children:`Current`}):null,i?(0,Y.jsx)(G,{variant:`danger`,children:`Blocked`}):null]}),(0,Y.jsx)(`div`,{className:`mt-1 text-xs leading-5 text-muted-foreground`,children:e.summary})]}),(0,Y.jsx)(li,{value:e.status})]}),(0,Y.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2`,children:[(0,Y.jsx)(G,{variant:`outline`,children:pi(e.kind)}),(0,Y.jsx)(G,{variant:`outline`,children:e.owner??`Unassigned`})]})]},e.id)})})}function di({label:e,value:t,mono:n=!1}){return(0,Y.jsxs)(`div`,{className:`rounded-md border border-border bg-card px-4 py-3`,children:[(0,Y.jsx)(`div`,{className:`text-[10px] font-medium uppercase tracking-widest text-muted-foreground/70`,children:e}),(0,Y.jsx)(`div`,{className:n?`mt-2 truncate font-mono text-xs text-foreground`:`mt-2 text-sm font-medium text-foreground`,children:t})]})}function fi(e){return e.replaceAll(`_`,` `)}function pi(e){return e.replaceAll(`_`,` `)}function mi(e){return e.replaceAll(`-`,` `)}function hi(e){let t=e.toLowerCase();return t===`critical`?5:t===`high`?4:t===`medium`?3:t===`low`?2:1}function gi(e){let t=0;return e.workflow.reviewGate===`human_review`?t+=100:e.workflow.reviewGate===`agent_review`?t+=90:e.workflow.phase===`blocked`?t+=80:e.workflow.phase===`in_progress`?t+=70:e.workflow.phase===`todo`?t+=60:e.workflow.phase===`backlog`&&(t+=50),e.workflow.assignee||(t+=15),e.workflow.consensus===`disputed`&&(t+=12),e.workflow.activeAgentRoles.length>0&&(t+=8),t*1e6+e.latest.timestamp+hi(e.latest.severity)*1e3}function _i(e){return e===`done`||e===`cancelled`||e===`blocked`||e===`in_progress`||e===`todo`?e:`backlog`}function vi({label:e,className:t,children:n}){return(0,Y.jsxs)(`div`,{className:`space-y-3 rounded-md border border-border bg-card px-4 py-4 ${t??``}`,children:[(0,Y.jsx)(K,{children:e}),(0,Y.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:n})]})}function yi({active:e,onClick:t,children:n}){return(0,Y.jsx)(z,{variant:e?`default`:`outline`,size:`xs`,onClick:t,children:n})}export{ni as FindingsPage};