@codeyam/codeyam-cli 0.1.0-staging.ad31e3e → 0.1.0-staging.bbe4da9

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 (161) hide show
  1. package/analyzer-template/.build-info.json +7 -7
  2. package/analyzer-template/log.txt +3 -3
  3. package/analyzer-template/packages/ai/index.ts +4 -1
  4. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +18 -0
  5. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +56 -0
  6. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +64 -1
  7. package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +2 -0
  8. package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +29 -2
  9. package/analyzer-template/packages/analyze/src/lib/asts/nodes/getNodeType.ts +1 -1
  10. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExportedNodes.ts +4 -2
  11. package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +5 -3
  12. package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +21 -33
  13. package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +75 -10
  14. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +26 -0
  15. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.ts +12 -2
  16. package/analyzer-template/packages/aws/dist/src/lib/s3/getPresignedUrl.d.ts.map +1 -1
  17. package/analyzer-template/packages/aws/dist/src/lib/s3/getPresignedUrl.js +2 -2
  18. package/analyzer-template/packages/aws/dist/src/lib/s3/getPresignedUrl.js.map +1 -1
  19. package/analyzer-template/packages/aws/src/lib/s3/getPresignedUrl.ts +2 -2
  20. package/analyzer-template/packages/github/dist/supabase/src/lib/scenarioToDb.d.ts.map +1 -1
  21. package/analyzer-template/packages/github/dist/supabase/src/lib/scenarioToDb.js +1 -1
  22. package/analyzer-template/packages/github/dist/supabase/src/lib/scenarioToDb.js.map +1 -1
  23. package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.d.ts.map +1 -1
  24. package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.js +39 -5
  25. package/analyzer-template/packages/github/dist/utils/src/lib/applyUniversalMocks.js.map +1 -1
  26. package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -1
  27. package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js +17 -0
  28. package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
  29. package/analyzer-template/packages/supabase/src/lib/scenarioToDb.ts +1 -0
  30. package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.d.ts.map +1 -1
  31. package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.js +39 -5
  32. package/analyzer-template/packages/utils/dist/utils/src/lib/applyUniversalMocks.js.map +1 -1
  33. package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -1
  34. package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js +17 -0
  35. package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
  36. package/analyzer-template/packages/utils/src/lib/applyUniversalMocks.ts +46 -7
  37. package/analyzer-template/packages/utils/src/lib/lightweightEntityExtractor.ts +16 -0
  38. package/analyzer-template/project/constructMockCode.ts +29 -3
  39. package/analyzer-template/project/runMultiScenarioServer.ts +0 -4
  40. package/analyzer-template/project/runScenarioServer.ts +0 -4
  41. package/analyzer-template/project/start.ts +1 -11
  42. package/analyzer-template/project/startServer.ts +50 -70
  43. package/analyzer-template/project/writeMockDataTsx.ts +66 -3
  44. package/analyzer-template/project/writeScenarioComponents.ts +451 -25
  45. package/analyzer-template/scripts/postbuild.cjs +12 -1
  46. package/background/src/lib/virtualized/project/constructMockCode.js +25 -4
  47. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  48. package/background/src/lib/virtualized/project/runMultiScenarioServer.js +0 -3
  49. package/background/src/lib/virtualized/project/runMultiScenarioServer.js.map +1 -1
  50. package/background/src/lib/virtualized/project/start.js +1 -8
  51. package/background/src/lib/virtualized/project/start.js.map +1 -1
  52. package/background/src/lib/virtualized/project/startServer.js +40 -68
  53. package/background/src/lib/virtualized/project/startServer.js.map +1 -1
  54. package/background/src/lib/virtualized/project/writeMockDataTsx.js +61 -3
  55. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  56. package/background/src/lib/virtualized/project/writeScenarioComponents.js +296 -20
  57. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  58. package/codeyam-cli/src/commands/debug.js +3 -2
  59. package/codeyam-cli/src/commands/debug.js.map +1 -1
  60. package/codeyam-cli/src/commands/setup-sandbox.js +2 -1
  61. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
  62. package/codeyam-cli/src/commands/test-startup.js +14 -5
  63. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  64. package/codeyam-cli/src/utils/analysisRunner.js +2 -1
  65. package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
  66. package/codeyam-cli/src/utils/analyzer.js +8 -16
  67. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  68. package/codeyam-cli/src/utils/generateReport.js +12 -6
  69. package/codeyam-cli/src/utils/generateReport.js.map +1 -1
  70. package/codeyam-cli/src/utils/queue/job.js +5 -4
  71. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  72. package/codeyam-cli/src/utils/sandbox.js +190 -0
  73. package/codeyam-cli/src/utils/sandbox.js.map +1 -0
  74. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-D5ZHFomX.js → EntityTypeIcon-Dp_FTAs1.js} +1 -1
  75. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-TlHocYno.js +26 -0
  76. package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-BYVx9KFp.js → LibraryFunctionPreview-CVMmGuIc.js} +1 -1
  77. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-CRcT5fOZ.js → LogViewer-JkfQ-VaI.js} +1 -1
  78. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-Cqce0_KG.js +1 -0
  79. package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-Bual6h18.js → SafeScreenshot-BrMAP1nP.js} +1 -1
  80. package/codeyam-cli/src/webserver/build/client/assets/ScenarioPreview-Bi-__7HT.js +6 -0
  81. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-4D2vLLJz.js → ScenarioViewer-XmIpHcLJ.js} +1 -1
  82. package/codeyam-cli/src/webserver/build/client/assets/_index-BmfhU6CA.js +1 -0
  83. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-Dm8lM73z.js +10 -0
  84. package/codeyam-cli/src/webserver/build/client/assets/{chart-column-B8fb6wnw.js → chart-column-kA4jn9if.js} +1 -1
  85. package/codeyam-cli/src/webserver/build/client/assets/{chunk-WWGJGFF6-De6i8FUT.js → chunk-WWGJGFF6-CgXbbZRx.js} +1 -1
  86. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-BACUUf75.js → circle-check-B2oHQ-zo.js} +1 -1
  87. package/codeyam-cli/src/webserver/build/client/assets/{clock-vWeoCemX.js → clock-BAfbP_iK.js} +1 -1
  88. package/codeyam-cli/src/webserver/build/client/assets/codeyam-name-logo-CvKwUgHo.svg +9 -0
  89. package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-CS7XDrKv.js → createLucideIcon-BBYuR56H.js} +1 -1
  90. package/codeyam-cli/src/webserver/build/client/assets/{dev.empty-DIOEw_3i.js → dev.empty-BgPXZbm0.js} +1 -1
  91. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-C6fctQ5v.js → entity._sha._-BkoAXaOa.js} +10 -10
  92. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.create-scenario-C3FZJx1w.js → entity._sha_.create-scenario-Bj5GHkhb.js} +1 -1
  93. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-YJz_igar.js → entity._sha_.edit._scenarioId-eW5z9AyZ.js} +1 -1
  94. package/codeyam-cli/src/webserver/build/client/assets/{entityStatus-BEqj2qBy.js → entityStatus-C5Okl18j.js} +1 -1
  95. package/codeyam-cli/src/webserver/build/client/assets/{entityVersioning-Bk_YB1jM.js → entityVersioning-CU_Lchhc.js} +1 -1
  96. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-DiP0q291.js → entry.client-B9tSboXM.js} +2 -2
  97. package/codeyam-cli/src/webserver/build/client/assets/{file-text-LM0mgxXE.js → file-text-18aYHZGd.js} +1 -1
  98. package/codeyam-cli/src/webserver/build/client/assets/files-Df79EyEb.js +1 -0
  99. package/codeyam-cli/src/webserver/build/client/assets/git-CDEwTVH_.js +12 -0
  100. package/codeyam-cli/src/webserver/build/client/assets/globals-DXRB6jBc.css +1 -0
  101. package/codeyam-cli/src/webserver/build/client/assets/{index-D-zYbzFZ.js → index-_LjBsTxX.js} +1 -1
  102. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-BXPKbHEb.js → loader-circle-D_EGChhq.js} +1 -1
  103. package/codeyam-cli/src/webserver/build/client/assets/manifest-3e0ffbcc.js +1 -0
  104. package/codeyam-cli/src/webserver/build/client/assets/{root-D0s7DnXb.js → root-CGyT4J4b.js} +3 -3
  105. package/codeyam-cli/src/webserver/build/client/assets/{settings-5zF_GOcS.js → settings-CEPbAsom.js} +1 -1
  106. package/codeyam-cli/src/webserver/build/client/assets/settings-R8QF_mHX.js +1 -0
  107. package/codeyam-cli/src/webserver/build/client/assets/simulations-B_PXvFom.js +1 -0
  108. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-D7k-ArFa.js → triangle-alert-BthANBVv.js} +1 -1
  109. package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-AlhS7g5F.js → useLastLogLine-Blr5oZDE.js} +1 -1
  110. package/codeyam-cli/src/webserver/build/client/assets/useReportContext-CANr3QJ5.js +1 -0
  111. package/codeyam-cli/src/webserver/build/client/assets/{useToast-Ddo4UQv7.js → useToast-Bbf4Hokd.js} +1 -1
  112. package/codeyam-cli/src/webserver/build/server/assets/{index-iaMjuNME.js → index-vf1FETCO.js} +1 -1
  113. package/codeyam-cli/src/webserver/build/server/assets/server-build-B5s58TvB.js +169 -0
  114. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  115. package/codeyam-cli/src/webserver/build-info.json +5 -5
  116. package/package.json +1 -1
  117. package/packages/ai/index.js +1 -1
  118. package/packages/ai/index.js.map +1 -1
  119. package/packages/ai/src/lib/astScopes/processExpression.js +12 -0
  120. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  121. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +38 -0
  122. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  123. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +55 -1
  124. package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
  125. package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
  126. package/packages/analyze/src/lib/FileAnalyzer.js +22 -2
  127. package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
  128. package/packages/analyze/src/lib/asts/nodes/getNodeType.js +1 -1
  129. package/packages/analyze/src/lib/asts/nodes/getNodeType.js.map +1 -1
  130. package/packages/analyze/src/lib/asts/sourceFiles/getAllExportedNodes.js +3 -2
  131. package/packages/analyze/src/lib/asts/sourceFiles/getAllExportedNodes.js.map +1 -1
  132. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +4 -3
  133. package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -1
  134. package/packages/analyze/src/lib/files/analyzeRemixRoute.js +18 -23
  135. package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -1
  136. package/packages/analyze/src/lib/files/getImportedExports.js +56 -4
  137. package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
  138. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +24 -0
  139. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  140. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js +8 -2
  141. package/packages/analyze/src/lib/files/scenarios/mergeValidatedDataStructures.js.map +1 -1
  142. package/packages/supabase/src/lib/scenarioToDb.js +1 -1
  143. package/packages/supabase/src/lib/scenarioToDb.js.map +1 -1
  144. package/packages/utils/src/lib/applyUniversalMocks.js +39 -5
  145. package/packages/utils/src/lib/applyUniversalMocks.js.map +1 -1
  146. package/packages/utils/src/lib/lightweightEntityExtractor.js +17 -0
  147. package/packages/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
  148. package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-XDSzQLOY.js +0 -26
  149. package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-BORLgi0X.js +0 -1
  150. package/codeyam-cli/src/webserver/build/client/assets/ScenarioPreview-Bi-YUMa-.js +0 -6
  151. package/codeyam-cli/src/webserver/build/client/assets/_index-BC200mfN.js +0 -1
  152. package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-CxvZPkCv.js +0 -10
  153. package/codeyam-cli/src/webserver/build/client/assets/circle-alert-IdsgAK39.js +0 -1
  154. package/codeyam-cli/src/webserver/build/client/assets/files-Dxh9CcaV.js +0 -1
  155. package/codeyam-cli/src/webserver/build/client/assets/git-BXmqrWCH.js +0 -12
  156. package/codeyam-cli/src/webserver/build/client/assets/globals-BGS74ED-.css +0 -1
  157. package/codeyam-cli/src/webserver/build/client/assets/manifest-e039ab42.js +0 -1
  158. package/codeyam-cli/src/webserver/build/client/assets/settings-Dc4MlMpK.js +0 -1
  159. package/codeyam-cli/src/webserver/build/client/assets/simulations-BQ-02-jB.js +0 -1
  160. package/codeyam-cli/src/webserver/build/client/assets/zap-_jw-9DCp.js +0 -1
  161. package/codeyam-cli/src/webserver/build/server/assets/server-build-CpyX1FZX.js +0 -169
@@ -1 +1 @@
1
- import{w as W,j as e,u as A,a as F,r as o,L as G}from"./chunk-WWGJGFF6-De6i8FUT.js";import{W as J,u as M,a as U,I as _}from"./InteractivePreview-XDSzQLOY.js";import"./useLastLogLine-AlhS7g5F.js";import"./index-D-zYbzFZ.js";const Q=({data:a})=>[{title:a?.entity?`Create Scenario - ${a.entity.name} - CodeYam`:"Create Scenario - CodeYam"},{name:"description",content:"Create a new scenario"}];function H(){const{analysis:a,defaultScenario:s,entity:C,entitySha:c,projectSlug:f}=A(),h=F(),{iframeRef:Y}=M(),[n,N]=o.useState(""),[I,S]=o.useState(!1),[P,w]=o.useState(!1),[y,p]=o.useState(null),[b,r]=o.useState(null),{interactiveServerUrl:d,isStarting:k,isLoading:E,showIframe:D,iframeKey:R,onIframeLoad:T}=U({analysisId:a?.id,scenarioId:s?.id,scenarioName:s?.name,projectSlug:f,enabled:!0}),L=o.useCallback(async()=>{if(!n.trim()){p("Please describe how you want to change the scenario");return}S(!0),p(null),r("Generating scenario with AI...");try{const t=await fetch("/api/generate-scenario-data",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({description:n,existingScenarios:a.scenarios,scenariosDataStructure:a.metadata?.scenariosDataStructure})}),l=await t.json();if(!t.ok||!l.success)throw new Error(l.error||"Failed to generate scenario data");console.log("[CreateScenario] AI generated scenario:",l.data);const i=l.data;if(!i.name||!i.data)throw new Error("AI response missing required fields (name or data)");r("Saving new scenario..."),w(!0);const O={name:i.name,description:i.description||n,metadata:{data:i.data,interactiveExamplePath:s.metadata?.interactiveExamplePath}},$=[...a.scenarios||[],O],v=await fetch("/api/save-scenarios",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({analysis:a,scenarios:$})}),m=await v.json();if(!v.ok||!m.success)throw new Error(m.error||"Failed to save scenario");console.log("[CreateScenario] Scenario saved:",m);const x=m.analysis?.scenarios?.find(u=>u.name===i.name);if(!x?.id){console.warn("[CreateScenario] Could not find saved scenario ID, navigating to entity page"),r("Scenario created! Redirecting..."),setTimeout(()=>h(`/entity/${c}`),1e3);return}if(d){r("Capturing screenshot...");const u=await fetch("/api/capture-screenshot",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverUrl:d,scenarioId:x.id,projectId:a.projectId,viewportWidth:1440})}),j=await u.json();!u.ok||!j.success?(console.error("[CreateScenario] Capture failed:",j),r("Scenario created! (Screenshot capture failed)")):r("Scenario created and captured!")}else r("Scenario created!");setTimeout(()=>{h(`/entity/${c}/scenarios/${x.id}`)},1e3)}catch(t){console.error("[CreateScenario] Error:",t),p(t instanceof Error?t.message:String(t)),r(null)}finally{S(!1),w(!1)}},[n,a,s,c,d,h]),g=I||P;return e.jsxs("div",{className:"h-screen bg-gray-50 flex flex-col",children:[e.jsxs("header",{className:"bg-white border-b border-gray-200 px-8 py-6 shrink-0",children:[e.jsx("div",{className:"mb-4",children:e.jsxs(G,{to:`/entity/${c}`,className:"text-blue-600 no-underline text-sm font-medium transition-colors hover:text-blue-700 hover:underline",children:["← Back to ",C?.name]})}),e.jsx("h1",{className:"text-[32px] font-bold text-gray-900 m-0 mb-3",children:"Create New Scenario"}),e.jsx("p",{className:"text-gray-600 text-[15px] leading-relaxed m-0",children:"Create a new scenario based on the Default Scenario"})]}),e.jsxs("div",{className:"flex flex-1 gap-0 min-h-0",children:[e.jsxs("aside",{className:"w-[400px] bg-white border-r border-gray-200 overflow-y-auto shrink-0 p-6 flex flex-col",children:[e.jsxs("div",{className:"mb-6",children:[e.jsx("h2",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Default Scenario Preview"}),e.jsx("p",{className:"text-sm text-gray-600 leading-relaxed",children:"The preview on the right shows the Default Scenario. Describe how you'd like to change it to create your new scenario."})]}),e.jsxs("div",{className:"flex-1",children:[e.jsx("label",{htmlFor:"prompt",className:"block text-sm font-medium text-gray-700 mb-2",children:"How would you like to change it for your new scenario?"}),e.jsx("textarea",{id:"prompt",value:n,onChange:t=>N(t.target.value),placeholder:"e.g., Show an empty state with no items in the list, or Display an error message when the API fails, or Show a user with admin privileges...",className:"w-full h-40 px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500 text-sm resize-none",disabled:g})]}),e.jsxs("div",{className:"mt-6 space-y-3",children:[e.jsx("button",{onClick:()=>{L()},disabled:g||!n.trim(),className:"w-full px-4 py-2 bg-[#005c75] text-white rounded-md text-sm font-medium hover:bg-[#004a5e] disabled:bg-gray-400 disabled:cursor-not-allowed transition-colors",children:g?"Creating...":"Create Scenario"}),b&&e.jsx("div",{className:"text-sm text-blue-600 bg-blue-50 px-3 py-2 rounded-md",children:b}),y&&e.jsx("div",{className:"text-sm text-red-600 bg-red-50 px-3 py-2 rounded-md",children:y})]})]}),e.jsx("main",{className:"flex-1 bg-gray-100 overflow-auto flex flex-col min-w-0",children:e.jsx(_,{scenarioId:s.id||s.name,scenarioName:s.name,iframeUrl:d,isStarting:k,isLoading:E,showIframe:D,iframeKey:R,onIframeLoad:T,projectSlug:f,defaultWidth:1440,defaultHeight:900})})]})]})}const V=W(function(){return e.jsx(J,{children:e.jsx(H,{})})});export{V as default,Q as meta};
1
+ import{w as W,j as e,u as A,a as F,r as o,L as G}from"./chunk-WWGJGFF6-CgXbbZRx.js";import{W as J,u as M,a as U,I as _}from"./InteractivePreview-TlHocYno.js";import"./useLastLogLine-Blr5oZDE.js";import"./index-_LjBsTxX.js";const Q=({data:a})=>[{title:a?.entity?`Create Scenario - ${a.entity.name} - CodeYam`:"Create Scenario - CodeYam"},{name:"description",content:"Create a new scenario"}];function H(){const{analysis:a,defaultScenario:s,entity:C,entitySha:c,projectSlug:f}=A(),h=F(),{iframeRef:Y}=M(),[n,N]=o.useState(""),[I,S]=o.useState(!1),[P,w]=o.useState(!1),[y,p]=o.useState(null),[b,r]=o.useState(null),{interactiveServerUrl:d,isStarting:k,isLoading:E,showIframe:D,iframeKey:R,onIframeLoad:T}=U({analysisId:a?.id,scenarioId:s?.id,scenarioName:s?.name,projectSlug:f,enabled:!0}),L=o.useCallback(async()=>{if(!n.trim()){p("Please describe how you want to change the scenario");return}S(!0),p(null),r("Generating scenario with AI...");try{const t=await fetch("/api/generate-scenario-data",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({description:n,existingScenarios:a.scenarios,scenariosDataStructure:a.metadata?.scenariosDataStructure})}),l=await t.json();if(!t.ok||!l.success)throw new Error(l.error||"Failed to generate scenario data");console.log("[CreateScenario] AI generated scenario:",l.data);const i=l.data;if(!i.name||!i.data)throw new Error("AI response missing required fields (name or data)");r("Saving new scenario..."),w(!0);const O={name:i.name,description:i.description||n,metadata:{data:i.data,interactiveExamplePath:s.metadata?.interactiveExamplePath}},$=[...a.scenarios||[],O],v=await fetch("/api/save-scenarios",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({analysis:a,scenarios:$})}),m=await v.json();if(!v.ok||!m.success)throw new Error(m.error||"Failed to save scenario");console.log("[CreateScenario] Scenario saved:",m);const x=m.analysis?.scenarios?.find(u=>u.name===i.name);if(!x?.id){console.warn("[CreateScenario] Could not find saved scenario ID, navigating to entity page"),r("Scenario created! Redirecting..."),setTimeout(()=>h(`/entity/${c}`),1e3);return}if(d){r("Capturing screenshot...");const u=await fetch("/api/capture-screenshot",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverUrl:d,scenarioId:x.id,projectId:a.projectId,viewportWidth:1440})}),j=await u.json();!u.ok||!j.success?(console.error("[CreateScenario] Capture failed:",j),r("Scenario created! (Screenshot capture failed)")):r("Scenario created and captured!")}else r("Scenario created!");setTimeout(()=>{h(`/entity/${c}/scenarios/${x.id}`)},1e3)}catch(t){console.error("[CreateScenario] Error:",t),p(t instanceof Error?t.message:String(t)),r(null)}finally{S(!1),w(!1)}},[n,a,s,c,d,h]),g=I||P;return e.jsxs("div",{className:"h-screen bg-gray-50 flex flex-col",children:[e.jsxs("header",{className:"bg-white border-b border-gray-200 px-8 py-6 shrink-0",children:[e.jsx("div",{className:"mb-4",children:e.jsxs(G,{to:`/entity/${c}`,className:"text-blue-600 no-underline text-sm font-medium transition-colors hover:text-blue-700 hover:underline",children:["← Back to ",C?.name]})}),e.jsx("h1",{className:"text-[32px] font-bold text-gray-900 m-0 mb-3",children:"Create New Scenario"}),e.jsx("p",{className:"text-gray-600 text-[15px] leading-relaxed m-0",children:"Create a new scenario based on the Default Scenario"})]}),e.jsxs("div",{className:"flex flex-1 gap-0 min-h-0",children:[e.jsxs("aside",{className:"w-[400px] bg-white border-r border-gray-200 overflow-y-auto shrink-0 p-6 flex flex-col",children:[e.jsxs("div",{className:"mb-6",children:[e.jsx("h2",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Default Scenario Preview"}),e.jsx("p",{className:"text-sm text-gray-600 leading-relaxed",children:"The preview on the right shows the Default Scenario. Describe how you'd like to change it to create your new scenario."})]}),e.jsxs("div",{className:"flex-1",children:[e.jsx("label",{htmlFor:"prompt",className:"block text-sm font-medium text-gray-700 mb-2",children:"How would you like to change it for your new scenario?"}),e.jsx("textarea",{id:"prompt",value:n,onChange:t=>N(t.target.value),placeholder:"e.g., Show an empty state with no items in the list, or Display an error message when the API fails, or Show a user with admin privileges...",className:"w-full h-40 px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500 text-sm resize-none",disabled:g})]}),e.jsxs("div",{className:"mt-6 space-y-3",children:[e.jsx("button",{onClick:()=>{L()},disabled:g||!n.trim(),className:"w-full px-4 py-2 bg-[#005c75] text-white rounded-md text-sm font-medium hover:bg-[#004a5e] disabled:bg-gray-400 disabled:cursor-not-allowed transition-colors",children:g?"Creating...":"Create Scenario"}),b&&e.jsx("div",{className:"text-sm text-blue-600 bg-blue-50 px-3 py-2 rounded-md",children:b}),y&&e.jsx("div",{className:"text-sm text-red-600 bg-red-50 px-3 py-2 rounded-md",children:y})]})]}),e.jsx("main",{className:"flex-1 bg-gray-100 overflow-auto flex flex-col min-w-0",children:e.jsx(_,{scenarioId:s.id||s.name,scenarioName:s.name,iframeUrl:d,isStarting:k,isLoading:E,showIframe:D,iframeKey:R,onIframeLoad:T,projectSlug:f,defaultWidth:1440,defaultHeight:900})})]})]})}const V=W(function(){return e.jsx(J,{children:e.jsx(H,{})})});export{V as default,Q as meta};
@@ -1,4 +1,4 @@
1
- import{j as e,r as l,w as z,u as H,a as V,L as U}from"./chunk-WWGJGFF6-De6i8FUT.js";import{W as Y,u as K,a as Q,I as X}from"./InteractivePreview-XDSzQLOY.js";import"./useLastLogLine-AlhS7g5F.js";import"./index-D-zYbzFZ.js";function W(t,a,r){if(Array.isArray(t)){if(!isNaN(parseInt(a)))return t[parseInt(a)];for(const s of t)if(s.name===a||s.title===a||s.id===a)return s}return t[a]}function J(t){return t&&(typeof t=="object"||Array.isArray(t))}function Z(t){return Array.isArray(t)?t.length:void 0}function ee(t){const{data:a,structure:r}=t;if(!(!a&&!r)){if(Array.isArray(r))return Array.isArray(a)?a.map((s,d)=>d.toString()):[];if(typeof r=="object")return[...new Set([...Object.keys(a),...Object.keys(r)])].sort((d,i)=>{const f=J(a[d]),h=J(a[i]);return f&&!h?1:!f&&h?-1:d.localeCompare(i)});if(typeof a=="object")return Object.keys(a).sort((d,i)=>d.localeCompare(i))}}function te({scenarioFormData:t,handleInputChange:a}){return e.jsxs("div",{className:"p-3 flex flex-col gap-3",children:[e.jsxs("div",{className:"grid w-full max-w-sm items-center gap-1.5",children:[e.jsx("label",{htmlFor:"name",className:"text-sm font-medium text-gray-700",children:"Name"}),e.jsx("input",{type:"text",id:"name",placeholder:"Name",name:"name",value:t.name,onChange:a,required:!0,className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),e.jsxs("div",{className:"grid w-full gap-1.5 pt-2",children:[e.jsx("label",{htmlFor:"description",className:"text-sm font-medium text-gray-700",children:"Description"}),e.jsx("textarea",{placeholder:"Type your message here.",id:"description",name:"description",value:t.description,onChange:a,required:!0,className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 min-h-[100px]"})]}),e.jsx("button",{type:"submit",className:"mt-3 w-full px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 font-medium",children:"Save Name & Description"})]})}function re({path:t,namedPath:a,isArray:r,count:s,onClick:d}){const i=l.useCallback(()=>{d&&d(t)},[d,t]);return e.jsxs("div",{className:"bg-blue-50 p-3 rounded-lg flex items-center justify-between cursor-pointer group hover:bg-blue-100 transition-colors border border-blue-200",onClick:i,children:[e.jsxs("div",{className:"flex items-center gap-3",children:[r&&e.jsx("svg",{className:"w-4 h-4 text-gray-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 6h16M4 12h16M4 18h16"})}),e.jsxs("div",{className:"capitalize font-medium text-gray-900",children:[a[a.length-1],s!==void 0&&` (${s})`]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[r&&e.jsx("svg",{className:"w-5 h-5 text-red-500 opacity-0 group-hover:opacity-100 transition-opacity",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})}),e.jsx("svg",{className:"w-4 h-4 text-gray-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})]})]})}var G=(t=>(t.STRING="string",t.NUMBER="number",t.BOOLEAN="boolean",t.UNION="union",t.OBJECT="object",t.ARRAY="array",t))(G||{});const ae=({name:t,value:a,options:r,onChange:s})=>{const d=l.useCallback(i=>{s({target:{name:t,value:i.target.value}})},[t,s]);return e.jsx("select",{name:t,value:a,onChange:d,className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",children:r.map((i,f)=>e.jsx("option",{value:i.trim(),children:i.trim()},f))})},se=({name:t,value:a,onChange:r})=>{const s=l.useCallback(d=>{const i=d.target.checked;r({target:{name:t,value:i}})},[t,r]);return e.jsx("label",{className:"flex items-center gap-2 cursor-pointer",children:e.jsx("input",{type:"checkbox",name:t,checked:a,onChange:s,className:`w-10 h-6 rounded-full appearance-none cursor-pointer transition-colors relative
1
+ import{j as e,r as l,w as z,u as H,a as V,L as U}from"./chunk-WWGJGFF6-CgXbbZRx.js";import{W as Y,u as K,a as Q,I as X}from"./InteractivePreview-TlHocYno.js";import"./useLastLogLine-Blr5oZDE.js";import"./index-_LjBsTxX.js";function W(t,a,r){if(Array.isArray(t)){if(!isNaN(parseInt(a)))return t[parseInt(a)];for(const s of t)if(s.name===a||s.title===a||s.id===a)return s}return t[a]}function J(t){return t&&(typeof t=="object"||Array.isArray(t))}function Z(t){return Array.isArray(t)?t.length:void 0}function ee(t){const{data:a,structure:r}=t;if(!(!a&&!r)){if(Array.isArray(r))return Array.isArray(a)?a.map((s,d)=>d.toString()):[];if(typeof r=="object")return[...new Set([...Object.keys(a),...Object.keys(r)])].sort((d,i)=>{const f=J(a[d]),h=J(a[i]);return f&&!h?1:!f&&h?-1:d.localeCompare(i)});if(typeof a=="object")return Object.keys(a).sort((d,i)=>d.localeCompare(i))}}function te({scenarioFormData:t,handleInputChange:a}){return e.jsxs("div",{className:"p-3 flex flex-col gap-3",children:[e.jsxs("div",{className:"grid w-full max-w-sm items-center gap-1.5",children:[e.jsx("label",{htmlFor:"name",className:"text-sm font-medium text-gray-700",children:"Name"}),e.jsx("input",{type:"text",id:"name",placeholder:"Name",name:"name",value:t.name,onChange:a,required:!0,className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"})]}),e.jsxs("div",{className:"grid w-full gap-1.5 pt-2",children:[e.jsx("label",{htmlFor:"description",className:"text-sm font-medium text-gray-700",children:"Description"}),e.jsx("textarea",{placeholder:"Type your message here.",id:"description",name:"description",value:t.description,onChange:a,required:!0,className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 min-h-[100px]"})]}),e.jsx("button",{type:"submit",className:"mt-3 w-full px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 font-medium",children:"Save Name & Description"})]})}function re({path:t,namedPath:a,isArray:r,count:s,onClick:d}){const i=l.useCallback(()=>{d&&d(t)},[d,t]);return e.jsxs("div",{className:"bg-blue-50 p-3 rounded-lg flex items-center justify-between cursor-pointer group hover:bg-blue-100 transition-colors border border-blue-200",onClick:i,children:[e.jsxs("div",{className:"flex items-center gap-3",children:[r&&e.jsx("svg",{className:"w-4 h-4 text-gray-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 6h16M4 12h16M4 18h16"})}),e.jsxs("div",{className:"capitalize font-medium text-gray-900",children:[a[a.length-1],s!==void 0&&` (${s})`]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[r&&e.jsx("svg",{className:"w-5 h-5 text-red-500 opacity-0 group-hover:opacity-100 transition-opacity",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})}),e.jsx("svg",{className:"w-4 h-4 text-gray-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})]})]})}var G=(t=>(t.STRING="string",t.NUMBER="number",t.BOOLEAN="boolean",t.UNION="union",t.OBJECT="object",t.ARRAY="array",t))(G||{});const ae=({name:t,value:a,options:r,onChange:s})=>{const d=l.useCallback(i=>{s({target:{name:t,value:i.target.value}})},[t,s]);return e.jsx("select",{name:t,value:a,onChange:d,className:"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",children:r.map((i,f)=>e.jsx("option",{value:i.trim(),children:i.trim()},f))})},se=({name:t,value:a,onChange:r})=>{const s=l.useCallback(d=>{const i=d.target.checked;r({target:{name:t,value:i}})},[t,r]);return e.jsx("label",{className:"flex items-center gap-2 cursor-pointer",children:e.jsx("input",{type:"checkbox",name:t,checked:a,onChange:s,className:`w-10 h-6 rounded-full appearance-none cursor-pointer transition-colors relative
2
2
  bg-gray-300 checked:bg-blue-600
3
3
  after:content-[''] after:absolute after:top-1 after:left-1 after:w-4 after:h-4
4
4
  after:bg-white after:rounded-full after:transition-transform
@@ -1 +1 @@
1
- import{c as x}from"./createLucideIcon-CS7XDrKv.js";import{j as a}from"./chunk-WWGJGFF6-De6i8FUT.js";import{C}from"./clock-vWeoCemX.js";const z=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],w=x("chevron-down",z),S=()=>a.jsxs("svg",{width:"8",height:"8",viewBox:"0 0 9 9",fill:"none",className:"animate-spin",children:[a.jsx("circle",{cx:"4.5",cy:"4.5",r:"3.5",stroke:"#FFF4FC",strokeWidth:"1",fill:"none"}),a.jsx("path",{d:"M4.5 1C2.57 1 1 2.57 1 4.5C1 5.6 1.5 6.58 2.28 7.23",stroke:"#FF2AB5",strokeWidth:"1",strokeLinecap:"round",fill:"none"})]});function N(o,u,f){const h=o.entityType==="visual"||o.entityType==="library",g=(f?.jobs.some(s=>s.entityShas?.includes(o.sha)||s.type==="analysis"&&s.entityShas&&s.entityShas.length===0)??!1)||(f?.currentlyExecuting?.entityShas?.includes(o.sha)??!1),d=u?.currentEntityShas?.includes(o.sha)??!1,i=o.analyses?.[0],r=!!i,e=(i?.scenarios||[]).length,b=i?.entitySha===o.sha,y=r&&!b,p=i?.status?.scenarios||[],l=p.filter(s=>s.screenshotFinishedAt).length,m=e>0&&l===e,A=p.some(s=>s.screenshotStartedAt&&!s.screenshotFinishedAt),c=e>0&&!m&&b&&(d||A||!!u?.capturePid);let t,n;return g?(t="queued",n={label:"In Queue",color:"text-[#3098b4]",bgColor:"bg-[#cbf3fa]",icon:a.jsx(C,{size:14}),shouldAnimate:!1}):d||c?(t=c?"capturing":"analyzing",n={label:"Analyzing...",subtitle:c&&l>0?`(${l}/${e})`:void 0,color:"text-[#ff2ab5]",bgColor:"bg-[#ffdbf6]",icon:a.jsx(S,{}),shouldAnimate:!0}):y?(t="outdated",n={label:"Out of date",color:"text-[#c69538]",bgColor:"bg-[#fdf9c9]",icon:"⚠",shouldAnimate:!1}):r&&m?(t="up-to-date",n={label:"Up to date",color:"text-[#00925d]",bgColor:"bg-[#e8ffe6]",icon:a.jsx("div",{className:"w-2 h-2 rounded-full bg-[#00925d]"}),shouldAnimate:!1}):r&&e===0?(t="analyzed",n={label:"Analyzed",subtitle:"(no scenarios)",color:"text-[#00925d]",bgColor:"bg-[#e8ffe6]",icon:"✓",shouldAnimate:!1}):h?(t="not-analyzed",n={label:"Not analyzed",color:"text-[#646464]",bgColor:"bg-[#f9f9f9]",icon:a.jsx("div",{className:"w-2 h-2 rounded-full border border-[#646464]"}),shouldAnimate:!1}):(t="not-analyzable",n=null),{isQueued:g,isAnalyzing:d,isCapturing:c,hasAnalysis:r,hasScenarios:e>0,isOutdated:y,canBeAnalyzed:h,scenariosCaptured:l,totalScenarios:e,captureProgress:e>0?Math.round(l/e*100):0,status:t,badge:n}}export{w as C,N as g};
1
+ import{c as x}from"./createLucideIcon-BBYuR56H.js";import{j as a}from"./chunk-WWGJGFF6-CgXbbZRx.js";import{C}from"./clock-BAfbP_iK.js";const z=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],w=x("chevron-down",z),S=()=>a.jsxs("svg",{width:"8",height:"8",viewBox:"0 0 9 9",fill:"none",className:"animate-spin",children:[a.jsx("circle",{cx:"4.5",cy:"4.5",r:"3.5",stroke:"#FFF4FC",strokeWidth:"1",fill:"none"}),a.jsx("path",{d:"M4.5 1C2.57 1 1 2.57 1 4.5C1 5.6 1.5 6.58 2.28 7.23",stroke:"#FF2AB5",strokeWidth:"1",strokeLinecap:"round",fill:"none"})]});function N(o,u,f){const h=o.entityType==="visual"||o.entityType==="library",g=(f?.jobs.some(s=>s.entityShas?.includes(o.sha)||s.type==="analysis"&&s.entityShas&&s.entityShas.length===0)??!1)||(f?.currentlyExecuting?.entityShas?.includes(o.sha)??!1),d=u?.currentEntityShas?.includes(o.sha)??!1,i=o.analyses?.[0],r=!!i,e=(i?.scenarios||[]).length,b=i?.entitySha===o.sha,y=r&&!b,p=i?.status?.scenarios||[],l=p.filter(s=>s.screenshotFinishedAt).length,m=e>0&&l===e,A=p.some(s=>s.screenshotStartedAt&&!s.screenshotFinishedAt),c=e>0&&!m&&b&&(d||A||!!u?.capturePid);let t,n;return g?(t="queued",n={label:"In Queue",color:"text-[#3098b4]",bgColor:"bg-[#cbf3fa]",icon:a.jsx(C,{size:14}),shouldAnimate:!1}):d||c?(t=c?"capturing":"analyzing",n={label:"Analyzing...",subtitle:c&&l>0?`(${l}/${e})`:void 0,color:"text-[#ff2ab5]",bgColor:"bg-[#ffdbf6]",icon:a.jsx(S,{}),shouldAnimate:!0}):y?(t="outdated",n={label:"Out of date",color:"text-[#c69538]",bgColor:"bg-[#fdf9c9]",icon:"⚠",shouldAnimate:!1}):r&&m?(t="up-to-date",n={label:"Up to date",color:"text-[#00925d]",bgColor:"bg-[#e8ffe6]",icon:a.jsx("div",{className:"w-2 h-2 rounded-full bg-[#00925d]"}),shouldAnimate:!1}):r&&e===0?(t="analyzed",n={label:"Analyzed",subtitle:"(no scenarios)",color:"text-[#00925d]",bgColor:"bg-[#e8ffe6]",icon:"✓",shouldAnimate:!1}):h?(t="not-analyzed",n={label:"Not analyzed",color:"text-[#646464]",bgColor:"bg-[#f9f9f9]",icon:a.jsx("div",{className:"w-2 h-2 rounded-full border border-[#646464]"}),shouldAnimate:!1}):(t="not-analyzable",n=null),{isQueued:g,isAnalyzing:d,isCapturing:c,hasAnalysis:r,hasScenarios:e>0,isOutdated:y,canBeAnalyzed:h,scenariosCaptured:l,totalScenarios:e,captureProgress:e>0?Math.round(l/e*100):0,status:t,badge:n}}export{w as C,N as g};
@@ -1 +1 @@
1
- function i(e,s){const r=e.metadata?.isUncommitted===!0,a=e.analyses&&e.analyses.length>0&&e.analyses.some(t=>t.scenarios&&t.scenarios.length>0);if(!r){const t=!!e.metadata?.previousVersionWithAnalyses,o=a&&e.analyses&&e.analyses.length>0&&e.analyses[0].entitySha!==e.sha;return t||o?a?{state:"committed_no_simulations",hasSimulations:!0,hasOutdatedSimulations:!0,canGenerateSimulations:!0,badge:{label:"Committed - Simulations Outdated",color:"text-orange-700",bgColor:"bg-orange-50",borderColor:"border-orange-300",icon:"⚠"}}:{state:"committed_no_simulations",hasSimulations:!1,hasOutdatedSimulations:!1,canGenerateSimulations:!0,badge:{label:"Not Yet Analyzed",color:"text-gray-600",bgColor:"bg-gray-50",borderColor:"border-gray-200",icon:"○"}}:a?{state:"committed_with_simulations",hasSimulations:!0,hasOutdatedSimulations:!1,canGenerateSimulations:!1,badge:{label:"Up to date",color:"text-green-700",bgColor:"bg-green-50",borderColor:"border-green-200",icon:"✓"}}:{state:"committed_no_simulations",hasSimulations:!1,hasOutdatedSimulations:!1,canGenerateSimulations:!0,badge:{label:"Not analyzed",color:"text-gray-600",bgColor:"bg-gray-50",borderColor:"border-gray-200",icon:"○"}}}const n=!!e.metadata?.previousCommittedSha;if(!!e.metadata?.previousVersionWithAnalyses||n){const t=a&&e.analyses&&e.analyses.length>0&&e.analyses[0].entitySha===e.metadata?.previousVersionWithAnalyses;return a&&!t?{state:"uncommitted_with_new_simulations",hasSimulations:!0,hasOutdatedSimulations:!1,canGenerateSimulations:!1,badge:{label:"Up-to-date Simulations",color:"text-green-700",bgColor:"bg-green-50",borderColor:"border-green-200",icon:"●"}}:a?{state:"uncommitted_outdated_simulations",hasSimulations:!0,hasOutdatedSimulations:!0,canGenerateSimulations:!0,badge:{label:"Edited - Simulations Outdated",color:"text-amber-700",bgColor:"bg-amber-50",borderColor:"border-amber-300",icon:"⚠"}}:{state:"uncommitted_outdated_simulations",hasSimulations:!1,hasOutdatedSimulations:!1,canGenerateSimulations:!0,badge:{label:"Not Analyzed",color:"text-gray-600",bgColor:"bg-gray-50",borderColor:"border-gray-200",icon:"○"}}}else return a?{state:"uncommitted_with_new_simulations",hasSimulations:!0,hasOutdatedSimulations:!1,canGenerateSimulations:!1,badge:{label:"Up-to-date Simulations",color:"text-green-700",bgColor:"bg-green-50",borderColor:"border-green-200",icon:"●"}}:{state:"uncommitted_no_previous_simulations",hasSimulations:!1,hasOutdatedSimulations:!1,canGenerateSimulations:!0,badge:{label:"New",color:"text-purple-700",bgColor:"bg-purple-50",borderColor:"border-purple-200",icon:"+"}}}function u(e){return i(e).hasOutdatedSimulations}export{i as g,u as s};
1
+ function i(e,s){const r=e.metadata?.isUncommitted===!0,a=e.analyses&&e.analyses.length>0&&e.analyses.some(t=>t.scenarios&&t.scenarios.length>0);if(!r){const t=!!e.metadata?.previousVersionWithAnalyses,o=a&&e.analyses&&e.analyses.length>0&&e.analyses[0].entitySha!==e.sha;return t||o?a?{state:"committed_no_simulations",hasSimulations:!0,hasOutdatedSimulations:!0,canGenerateSimulations:!0,badge:{label:"Committed - Simulations Outdated",color:"text-orange-700",bgColor:"bg-orange-50",borderColor:"border-orange-300",icon:"⚠"}}:{state:"committed_no_simulations",hasSimulations:!1,hasOutdatedSimulations:!1,canGenerateSimulations:!0,badge:{label:"Not Yet Analyzed",color:"text-gray-600",bgColor:"bg-gray-50",borderColor:"border-gray-200",icon:"○"}}:a?{state:"committed_with_simulations",hasSimulations:!0,hasOutdatedSimulations:!1,canGenerateSimulations:!1,badge:{label:"Up to date",color:"text-green-700",bgColor:"bg-green-50",borderColor:"border-green-200",icon:"✓"}}:{state:"committed_no_simulations",hasSimulations:!1,hasOutdatedSimulations:!1,canGenerateSimulations:!0,badge:{label:"Not analyzed",color:"text-gray-600",bgColor:"bg-gray-50",borderColor:"border-gray-200",icon:"○"}}}const n=!!e.metadata?.previousCommittedSha;if(!!e.metadata?.previousVersionWithAnalyses||n){const t=a&&e.analyses&&e.analyses.length>0&&e.analyses[0].entitySha===e.metadata?.previousVersionWithAnalyses;return a&&!t?{state:"uncommitted_with_new_simulations",hasSimulations:!0,hasOutdatedSimulations:!1,canGenerateSimulations:!1,badge:{label:"Up-to-date Simulations",color:"text-green-700",bgColor:"bg-green-50",borderColor:"border-green-200",icon:"●"}}:a?{state:"uncommitted_outdated_simulations",hasSimulations:!0,hasOutdatedSimulations:!0,canGenerateSimulations:!0,badge:{label:"Edited - Simulations Outdated",color:"text-amber-700",bgColor:"bg-amber-50",borderColor:"border-amber-300",icon:"⚠"}}:{state:"uncommitted_outdated_simulations",hasSimulations:!1,hasOutdatedSimulations:!1,canGenerateSimulations:!0,badge:{label:"Not Analyzed",color:"text-gray-600",bgColor:"bg-gray-50",borderColor:"border-gray-200",icon:"○"}}}else return a?{state:"uncommitted_with_new_simulations",hasSimulations:!0,hasOutdatedSimulations:!1,canGenerateSimulations:!1,badge:{label:"Up-to-date Simulations",color:"text-green-700",bgColor:"bg-green-50",borderColor:"border-green-200",icon:"●"}}:{state:"uncommitted_no_previous_simulations",hasSimulations:!1,hasOutdatedSimulations:!1,canGenerateSimulations:!0,badge:{label:"New",color:"text-purple-700",bgColor:"bg-purple-50",borderColor:"border-purple-200",icon:"+"}}}function u(e){return i(e).hasOutdatedSimulations}export{u as s};
@@ -1,5 +1,5 @@
1
- import{m as g,s as v,E as _,N as S,R as l,i as D,r as u,g as w,h as b,F as M,k as C,l as P,n as F,o as k,p as L,q as T,t as H,v as I,x as z,y as O,z as N,j as p}from"./chunk-WWGJGFF6-De6i8FUT.js";import{r as E}from"./index-D-zYbzFZ.js";var h={},y;function j(){if(y)return h;y=1;var t=E();return h.createRoot=t.createRoot,h.hydrateRoot=t.hydrateRoot,h}var q=j();[...S];new TextEncoder;(class extends l.Component{constructor(t){super(t),this.state={error:null,location:t.location}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,o){return o.location!==t.location?{error:null,location:t.location}:{error:o.error,location:o.location}}render(){return this.state.error?l.createElement(B,{error:this.state.error,renderAppShell:!0}):this.props.children}});function R({renderAppShell:t,title:o,children:a}){return t?l.createElement("html",{lang:"en"},l.createElement("head",null,l.createElement("meta",{charSet:"utf-8"}),l.createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),l.createElement("title",null,o)),l.createElement("body",null,l.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},a))):a}function B({error:t,renderAppShell:o}){console.error(t);let a=l.createElement("script",{dangerouslySetInnerHTML:{__html:`
1
+ import{m as v,s as g,E as _,N as S,R as l,i as D,r as u,h as w,k as b,F as M,l as C,n as P,o as F,p as k,q as L,t as T,v as H,x as I,y as z,z as O,A as N,j as p}from"./chunk-WWGJGFF6-CgXbbZRx.js";import{r as E}from"./index-_LjBsTxX.js";var h={},y;function j(){if(y)return h;y=1;var t=E();return h.createRoot=t.createRoot,h.hydrateRoot=t.hydrateRoot,h}var q=j();[...S];new TextEncoder;(class extends l.Component{constructor(t){super(t),this.state={error:null,location:t.location}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,o){return o.location!==t.location?{error:null,location:t.location}:{error:o.error,location:o.location}}render(){return this.state.error?l.createElement(A,{error:this.state.error,renderAppShell:!0}):this.props.children}});function R({renderAppShell:t,title:o,children:a}){return t?l.createElement("html",{lang:"en"},l.createElement("head",null,l.createElement("meta",{charSet:"utf-8"}),l.createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),l.createElement("title",null,o)),l.createElement("body",null,l.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},a))):a}function A({error:t,renderAppShell:o}){console.error(t);let a=l.createElement("script",{dangerouslySetInnerHTML:{__html:`
2
2
  console.log(
3
3
  "💿 Hey developer 👋. You can provide a way better UX than this when your app throws errors. Check out https://reactrouter.com/how-to/error-boundary for more information."
4
4
  );
5
- `}});if(D(t))return l.createElement(R,{renderAppShell:o,title:"Unhandled Thrown Response!"},l.createElement("h1",{style:{fontSize:"24px"}},t.status," ",t.statusText),a);let n;if(t instanceof Error)n=t;else{let r=t==null?"Unknown Error":typeof t=="object"&&"toString"in t?t.toString():JSON.stringify(t);n=new Error(r)}return l.createElement(R,{renderAppShell:o,title:"Application Error!"},l.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),l.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},n.stack),a)}function U(t){if(!t)return null;let o=Object.entries(t),a={};for(let[n,r]of o)if(r&&r.__type==="RouteErrorResponse")a[n]=new _(r.status,r.statusText,r.data,r.internal===!0);else if(r&&r.__type==="Error"){if(r.__subType){let i=window[r.__subType];if(typeof i=="function")try{let s=new i(r.message);s.stack=r.stack,a[n]=s}catch{}}if(a[n]==null){let i=new Error(r.message);i.stack=r.stack,a[n]=i}}else a[n]=r;return a}function A({state:t,routes:o,getRouteInfo:a,location:n,basename:r,isSpaMode:i}){let s={...t,loaderData:{...t.loaderData}},c=g(o,n,r);if(c)for(let x of c){let m=x.route.id,d=a(m);v(m,d.clientLoader,d.hasLoader,i)&&(d.hasHydrateFallback||!d.hasLoader)?delete s.loaderData[m]:d.hasLoader||(s.loaderData[m]=null)}return s}var W=E();function Y(t){return u.createElement(P,{flushSync:W.flushSync,...t})}var e=null,f=null;function J(){if(!e&&window.__reactRouterContext&&window.__reactRouterManifest&&window.__reactRouterRouteModules){if(window.__reactRouterManifest.sri===!0){const t=document.querySelector("script[rr-importmap]");if(t?.textContent)try{window.__reactRouterManifest.sri=JSON.parse(t.textContent).integrity}catch(o){console.error("Failed to parse import map",o)}}e={context:window.__reactRouterContext,manifest:window.__reactRouterManifest,routeModules:window.__reactRouterRouteModules,stateDecodingPromise:void 0,router:void 0,routerInitialized:!1}}}function V({getContext:t,unstable_instrumentations:o}){if(J(),!e)throw new Error("You must be using the SSR features of React Router in order to skip passing a `router` prop to `<RouterProvider>`");let a=e;if(!e.stateDecodingPromise){let s=e.context.stream;w(s,"No stream found for single fetch decoding"),e.context.stream=void 0,e.stateDecodingPromise=F(s,window).then(c=>{e.context.state=c.value,a.stateDecodingPromise.value=!0}).catch(c=>{a.stateDecodingPromise.error=c})}if(e.stateDecodingPromise.error)throw e.stateDecodingPromise.error;if(!e.stateDecodingPromise.value)throw e.stateDecodingPromise;let n=k(e.manifest.routes,e.routeModules,e.context.state,e.context.ssr,e.context.isSpaMode),r;if(e.context.isSpaMode){let{loaderData:s}=e.context.state;e.manifest.routes.root?.hasLoader&&s&&"root"in s&&(r={loaderData:{root:s.root}})}else r=A({state:e.context.state,routes:n,getRouteInfo:s=>({clientLoader:e.routeModules[s]?.clientLoader,hasLoader:e.manifest.routes[s]?.hasLoader===!0,hasHydrateFallback:e.routeModules[s]?.HydrateFallback!=null}),location:window.location,basename:window.__reactRouterContext?.basename,isSpaMode:e.context.isSpaMode}),r&&r.errors&&(r.errors=U(r.errors));let i=L({routes:n,history:I(),basename:e.context.basename,getContext:t,hydrationData:r,hydrationRouteProperties:N,unstable_instrumentations:o,mapRouteProperties:O,future:{middleware:e.context.future.v8_middleware},dataStrategy:H(()=>i,e.manifest,e.routeModules,e.context.ssr,e.context.basename),patchRoutesOnNavigation:T(e.manifest,e.routeModules,e.context.ssr,e.context.routeDiscovery,e.context.isSpaMode,e.context.basename)});return e.router=i,i.state.initialized&&(e.routerInitialized=!0,i.initialize()),i.createRoutesForHMR=z,window.__reactRouterDataRouter=i,i}function X(t){f||(f=V({getContext:t.getContext,unstable_instrumentations:t.unstable_instrumentations}));let[o,a]=u.useState(void 0);u.useEffect(()=>{},[]),u.useEffect(()=>{},[o]);let[n,r]=u.useState(f.state.location);return u.useLayoutEffect(()=>{e&&e.router&&!e.routerInitialized&&(e.routerInitialized=!0,e.router.initialize())},[]),u.useLayoutEffect(()=>{if(e&&e.router)return e.router.subscribe(i=>{i.location!==n&&r(i.location)})},[n]),w(e,"ssrInfo unavailable for HydratedRouter"),b(f,e.manifest,e.routeModules,e.context.ssr,e.context.routeDiscovery,e.context.isSpaMode),u.createElement(u.Fragment,null,u.createElement(M.Provider,{value:{manifest:e.manifest,routeModules:e.routeModules,future:e.context.future,criticalCss:o,ssr:e.context.ssr,isSpaMode:e.context.isSpaMode,routeDiscovery:e.context.routeDiscovery}},u.createElement(C,{location:n},u.createElement(Y,{router:f,unstable_useTransitions:t.unstable_useTransitions,unstable_onError:t.unstable_onError}))),u.createElement(u.Fragment,null))}u.startTransition(()=>{q.hydrateRoot(document,p.jsx(u.StrictMode,{children:p.jsx(X,{})}))});
5
+ `}});if(D(t))return l.createElement(R,{renderAppShell:o,title:"Unhandled Thrown Response!"},l.createElement("h1",{style:{fontSize:"24px"}},t.status," ",t.statusText),a);let n;if(t instanceof Error)n=t;else{let r=t==null?"Unknown Error":typeof t=="object"&&"toString"in t?t.toString():JSON.stringify(t);n=new Error(r)}return l.createElement(R,{renderAppShell:o,title:"Application Error!"},l.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),l.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},n.stack),a)}function B(t){if(!t)return null;let o=Object.entries(t),a={};for(let[n,r]of o)if(r&&r.__type==="RouteErrorResponse")a[n]=new _(r.status,r.statusText,r.data,r.internal===!0);else if(r&&r.__type==="Error"){if(r.__subType){let i=window[r.__subType];if(typeof i=="function")try{let s=new i(r.message);s.stack=r.stack,a[n]=s}catch{}}if(a[n]==null){let i=new Error(r.message);i.stack=r.stack,a[n]=i}}else a[n]=r;return a}function U({state:t,routes:o,getRouteInfo:a,location:n,basename:r,isSpaMode:i}){let s={...t,loaderData:{...t.loaderData}},c=v(o,n,r);if(c)for(let x of c){let m=x.route.id,d=a(m);g(m,d.clientLoader,d.hasLoader,i)&&(d.hasHydrateFallback||!d.hasLoader)?delete s.loaderData[m]:d.hasLoader||(s.loaderData[m]=null)}return s}var W=E();function Y(t){return u.createElement(P,{flushSync:W.flushSync,...t})}var e=null,f=null;function J(){if(!e&&window.__reactRouterContext&&window.__reactRouterManifest&&window.__reactRouterRouteModules){if(window.__reactRouterManifest.sri===!0){const t=document.querySelector("script[rr-importmap]");if(t?.textContent)try{window.__reactRouterManifest.sri=JSON.parse(t.textContent).integrity}catch(o){console.error("Failed to parse import map",o)}}e={context:window.__reactRouterContext,manifest:window.__reactRouterManifest,routeModules:window.__reactRouterRouteModules,stateDecodingPromise:void 0,router:void 0,routerInitialized:!1}}}function V({getContext:t,unstable_instrumentations:o}){if(J(),!e)throw new Error("You must be using the SSR features of React Router in order to skip passing a `router` prop to `<RouterProvider>`");let a=e;if(!e.stateDecodingPromise){let s=e.context.stream;w(s,"No stream found for single fetch decoding"),e.context.stream=void 0,e.stateDecodingPromise=F(s,window).then(c=>{e.context.state=c.value,a.stateDecodingPromise.value=!0}).catch(c=>{a.stateDecodingPromise.error=c})}if(e.stateDecodingPromise.error)throw e.stateDecodingPromise.error;if(!e.stateDecodingPromise.value)throw e.stateDecodingPromise;let n=k(e.manifest.routes,e.routeModules,e.context.state,e.context.ssr,e.context.isSpaMode),r;if(e.context.isSpaMode){let{loaderData:s}=e.context.state;e.manifest.routes.root?.hasLoader&&s&&"root"in s&&(r={loaderData:{root:s.root}})}else r=U({state:e.context.state,routes:n,getRouteInfo:s=>({clientLoader:e.routeModules[s]?.clientLoader,hasLoader:e.manifest.routes[s]?.hasLoader===!0,hasHydrateFallback:e.routeModules[s]?.HydrateFallback!=null}),location:window.location,basename:window.__reactRouterContext?.basename,isSpaMode:e.context.isSpaMode}),r&&r.errors&&(r.errors=B(r.errors));let i=L({routes:n,history:I(),basename:e.context.basename,getContext:t,hydrationData:r,hydrationRouteProperties:N,unstable_instrumentations:o,mapRouteProperties:O,future:{middleware:e.context.future.v8_middleware},dataStrategy:H(()=>i,e.manifest,e.routeModules,e.context.ssr,e.context.basename),patchRoutesOnNavigation:T(e.manifest,e.routeModules,e.context.ssr,e.context.routeDiscovery,e.context.isSpaMode,e.context.basename)});return e.router=i,i.state.initialized&&(e.routerInitialized=!0,i.initialize()),i.createRoutesForHMR=z,window.__reactRouterDataRouter=i,i}function X(t){f||(f=V({getContext:t.getContext,unstable_instrumentations:t.unstable_instrumentations}));let[o,a]=u.useState(void 0);u.useEffect(()=>{},[]),u.useEffect(()=>{},[o]);let[n,r]=u.useState(f.state.location);return u.useLayoutEffect(()=>{e&&e.router&&!e.routerInitialized&&(e.routerInitialized=!0,e.router.initialize())},[]),u.useLayoutEffect(()=>{if(e&&e.router)return e.router.subscribe(i=>{i.location!==n&&r(i.location)})},[n]),w(e,"ssrInfo unavailable for HydratedRouter"),b(f,e.manifest,e.routeModules,e.context.ssr,e.context.routeDiscovery,e.context.isSpaMode),u.createElement(u.Fragment,null,u.createElement(M.Provider,{value:{manifest:e.manifest,routeModules:e.routeModules,future:e.context.future,criticalCss:o,ssr:e.context.ssr,isSpaMode:e.context.isSpaMode,routeDiscovery:e.context.routeDiscovery}},u.createElement(C,{location:n},u.createElement(Y,{router:f,unstable_useTransitions:t.unstable_useTransitions,unstable_onError:t.unstable_onError}))),u.createElement(u.Fragment,null))}u.startTransition(()=>{q.hydrateRoot(document,p.jsx(u.StrictMode,{children:p.jsx(X,{})}))});
@@ -1 +1 @@
1
- import{c as e}from"./createLucideIcon-CS7XDrKv.js";const a=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],o=e("file-text",a);export{o as F};
1
+ import{c as e}from"./createLucideIcon-BBYuR56H.js";const a=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],o=e("file-text",a);export{o as F};
@@ -0,0 +1 @@
1
+ import{b as X,r as b,j as e,L as z,f as Z,w as _,u as ee,d as te}from"./chunk-WWGJGFF6-CgXbbZRx.js";import{u as se}from"./useReportContext-CANr3QJ5.js";import{E as ae}from"./EntityTypeIcon-Dp_FTAs1.js";import{s as ne}from"./entityVersioning-CU_Lchhc.js";import{L as Q,g as re}from"./LibraryFunctionPreview-CVMmGuIc.js";import{S as G}from"./SafeScreenshot-BrMAP1nP.js";import{g as ie,C as V}from"./entityStatus-C5Okl18j.js";import{T as oe}from"./triangle-alert-BthANBVv.js";import"./file-text-18aYHZGd.js";import"./createLucideIcon-BBYuR56H.js";import"./chart-column-kA4jn9if.js";import"./clock-BAfbP_iK.js";function le({entity:n,currentRun:d,queueState:v}){const E=X(),w=n.entityType==="visual"||n.entityType==="library",m=ie(n,d,v),S=n.analyses?.[0],A=S?.status,P=S?.scenarios||[],F=b.useCallback(()=>{E.submit({entitySha:n.sha,filePath:n.filePath||""},{method:"post",action:"/api/analyze"})},[n,E]),N=ne(n),x=n.metadata?.isSuperseded===!0,h=m.isAnalyzing||m.isCapturing,T=h||m.isQueued;return e.jsxs("div",{className:"flex flex-col gap-1.5 p-3 rounded-lg transition-all bg-white hover:bg-gray-100",children:[e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-1 overflow-hidden",children:[e.jsx(ae,{type:n.entityType}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx(z,{to:`/entity/${n.sha}`,className:"font-semibold text-sm text-gray-900 whitespace-nowrap",children:n.name}),e.jsx("div",{className:"px-1 py-0 h-[15px] flex items-center justify-center rounded text-[10px] leading-[15px] uppercase font-semibold",style:{backgroundColor:n.entityType==="visual"?"#f3e8ff":n.entityType==="library"||n.entityType==="type"?"#f9f9f9":n.entityType==="data"?"#dbeafe":n.entityType==="index"?"#f9f9f9":"#f3f4f6",color:n.entityType==="visual"?"#7c3aed":n.entityType==="library"?"#06b6d5":n.entityType==="type"?"#db2627":n.entityType==="data"?"#2563eb":n.entityType==="index"?"#ea580c":"#6b7280"},children:n.entityType||"other"})]}),e.jsx("div",{className:"text-xs text-gray-500 mt-0.5 truncate",children:n.filePath}),n.description&&e.jsx("div",{className:"text-sm text-gray-600 mt-1 italic",children:n.description})]})]}),e.jsx("div",{className:"flex-1 shrink flex justify-end items-center gap-3",children:e.jsxs("div",{className:"flex items-center gap-3",children:[m.badge&&e.jsxs("div",{className:`flex items-center gap-1.5 px-2 py-0 h-[26px] rounded ${m.badge.bgColor}`,children:[typeof m.badge.icon=="string"?e.jsx("span",{className:"text-xs",children:m.badge.icon}):m.badge.icon,e.jsxs("span",{className:`text-[10px] leading-[15px] font-medium ${m.badge.color}`,children:[m.badge.label,m.badge.subtitle&&e.jsx("span",{className:"opacity-75 ml-1",children:m.badge.subtitle})]})]}),w&&!m.isQueued&&!h&&e.jsx("button",{onClick:F,disabled:T,className:`px-[15px] py-0 h-[23px] border-none rounded text-[12px] font-medium transition-all whitespace-nowrap flex items-center justify-center ${T?"cursor-not-allowed opacity-50":"cursor-pointer hover:-translate-y-px"}`,style:{backgroundColor:"#005C75",color:"#ffffff"},onMouseEnter:f=>{T||(f.currentTarget.style.backgroundColor="#004560")},onMouseLeave:f=>{T||(f.currentTarget.style.backgroundColor="#005C75")},title:h?"Analysis in progress":m.isQueued?"Already queued for analysis":"Analyze this entity",children:"Analyze"})]})})]}),P.length>0&&!m.isQueued&&!h&&e.jsx("div",{className:"flex gap-2 flex-wrap px-0 mt-3",children:P.slice(0,5).map((f,C)=>{if(!f.id)return null;if(n.entityType==="library")return e.jsx(Q,{scenario:f,entitySha:n.sha,size:"medium",isOutdated:x||N},C);const L=f.metadata?.screenshotPaths?.[0],g=re(f,A,h,n.sha,v);if(g.isCaptured){const k=x||N;return e.jsx(z,{to:`/entity/${n.sha}/scenarios/${f.id}`,className:`relative w-20 h-15 border-2 rounded overflow-hidden cursor-pointer transition-all flex items-center justify-center hover:scale-105 hover:shadow-md ${k?"border-[#c69538] bg-[#fdf9c9] hover:border-[#a07a2d]":"border-gray-200 bg-gray-50 hover:border-blue-600"}`,children:e.jsx(G,{screenshotPath:L,alt:f.name,title:f.name,className:"max-w-full max-h-full object-contain object-center"})},C)}else{const k=g.hasError?"text-red-500":"text-gray-400";return e.jsx(z,{to:`/entity/${n.sha}/scenarios/${f.id}`,className:`w-20 h-15 border-2 border-dashed ${g.borderColor} rounded ${g.bgColor} flex items-center justify-center text-2xl`,title:g.title,children:e.jsx("span",{className:g.shouldSpin?"animate-pulse":k,children:g.icon})},C)}})})]})}function ce({entities:n,page:d,itemsPerPage:v=50,currentRun:E,filter:w,entityType:m,queueState:S}){const[A,P]=Z(),[F,N]=b.useState(new Set),[x,h]=b.useState(""),[T,f]=b.useState(!1),[C,L]=b.useState("all"),[g,k]=b.useState("desc"),D=m||"all",Y=(t,r=[])=>{if(r.some(a=>a.entityShas?.includes(t.sha)))return"analyzing";if(!t.analyses||t.analyses.length===0)return"not-analyzed";const l=t.analyses[0],y=l.createdAt?new Date(l.createdAt).getTime():0,s=t.metadata?.editedAt?new Date(t.metadata.editedAt).getTime():0;return y>=s?"up-to-date":"out-of-date"},M=b.useMemo(()=>{let t=n;return D!=="all"&&(t=t.filter(r=>r.entityType===D)),w==="analyzed"&&(t=t.filter(r=>r.analyses&&r.analyses.length>0)),t},[n,D,w]),$=b.useMemo(()=>{const t=new Map,r=new Map,o=new Map;M.forEach(s=>{const a=`${s.filePath}::${s.name}`,i=r.get(a);if(!i)r.set(a,s),o.set(a,[]);else{const p=i.metadata?.editedAt||i.createdAt||"",c=s.metadata?.editedAt||s.createdAt||"";let u=!1;if(c>p)u=!0;else if(c===p){const j=i.createdAt||"";u=(s.createdAt||"")>j}u?(o.get(a).push(i),r.set(a,s)):o.get(a).push(s)}}),r.forEach((s,a)=>{if(!(s.analyses&&s.analyses.length>0)&&s.metadata?.previousVersionWithAnalyses){const c=(o.get(a)||[]).find(u=>u.sha===s.metadata?.previousVersionWithAnalyses);c&&c.analyses&&c.analyses.length>0&&(s.analyses=c.analyses)}}),Array.from(r.values()).sort((s,a)=>{const i=!s.metadata?.notExported&&!s.metadata?.namedExport,p=!a.metadata?.notExported&&!a.metadata?.namedExport;return i&&!p?-1:!i&&p?1:0}).forEach(s=>{const a=s.filePath??"No File Path";t.has(a)||t.set(a,{filePath:a,entities:[],totalCount:0,uncommittedCount:0,lastUpdated:null,previewScreenshots:[],previewScreenshotErrors:[],previewLibraryScenarios:[],state:"up-to-date",simulationCount:0});const i=t.get(a);i.entities.push(s),i.totalCount++,s.metadata?.isUncommitted&&i.uncommittedCount++;const p=s.analyses?.[0]?.scenarios?.length||0;i.simulationCount+=p;const c=s.metadata?.editedAt||s.updatedAt;c&&(!i.lastUpdated||new Date(c)>new Date(i.lastUpdated))&&(i.lastUpdated=c)});const l=S?.jobs||[];t.forEach(s=>{const a=s.entities.map(i=>Y(i,l));a.includes("analyzing")?s.state="analyzing":a.includes("out-of-date")?s.state="out-of-date":a.includes("not-analyzed")?s.state="not-analyzed":s.state="up-to-date"}),t.forEach(s=>{for(const a of s.entities){if(s.previewScreenshots.length+s.previewLibraryScenarios.length>=3)break;const p=a.analyses?.[0]?.scenarios||[];if(a.entityType==="library"){const c=p.find(u=>u.metadata?.executionResult||u.metadata?.error);c&&s.previewLibraryScenarios.push({scenario:c,entitySha:a.sha})}else{const c=p.find(u=>u.metadata?.screenshotPaths?.[0]);if(c){const u=c.metadata?.screenshotPaths?.[0],j=!!c.metadata?.error;u&&!s.previewScreenshots.includes(u)&&(s.previewScreenshots.push(u),s.previewScreenshotErrors.push(j))}}}});const y=Array.from(t.values());return y.sort((s,a)=>{if(w==="analyzed"){const c=Math.max(...s.entities.filter(j=>j.analyses?.[0]?.createdAt).map(j=>new Date(j.analyses[0].createdAt).getTime()),0),u=Math.max(...a.entities.filter(j=>j.analyses?.[0]?.createdAt).map(j=>new Date(j.analyses[0].createdAt).getTime()),0);return g==="desc"?u-c:c-u}if(s.uncommittedCount>0&&a.uncommittedCount===0)return-1;if(s.uncommittedCount===0&&a.uncommittedCount>0)return 1;const i=s.lastUpdated?new Date(s.lastUpdated).getTime():0,p=a.lastUpdated?new Date(a.lastUpdated).getTime():0;return g==="desc"?p-i:i-p}),y},[M,w,g]),I=b.useMemo(()=>{let t=$;if(C!=="all"&&(t=t.filter(r=>r.state===C)),x.trim()){const r=x.toLowerCase();t=t.filter(o=>o.filePath.toLowerCase().includes(r))}return t},[$,x,C]),O=(d-1)*v,H=O+v,R=I.slice(O,H),U=Math.ceil(I.length/v),W=t=>{N(r=>{const o=new Set(r);return o.has(t)?o.delete(t):o.add(t),o})},K=()=>{if(T)N(new Set),f(!1);else{const t=new Set(R.map(r=>r.filePath));N(t),f(!0)}},B=()=>{k(t=>t==="desc"?"asc":"desc")},q=t=>{switch(t){case"analyzing":return{text:"Analyzing...",bgColor:"#ffdbf6",textColor:"#ff2ab5",icon:e.jsxs("svg",{width:"8",height:"8",viewBox:"0 0 9 9",fill:"none",className:"animate-spin",children:[e.jsx("circle",{cx:"4.5",cy:"4.5",r:"3.5",stroke:"#FFF4FC",strokeWidth:"1",fill:"none"}),e.jsx("path",{d:"M4.5 1C2.57 1 1 2.57 1 4.5C1 5.6 1.5 6.58 2.28 7.23",stroke:"#FF2AB5",strokeWidth:"1",strokeLinecap:"round",fill:"none"})]})};case"up-to-date":return{text:"Up to date",bgColor:"#e8ffe6",textColor:"#00925d",icon:null};case"out-of-date":return{text:"Out of date",bgColor:"#fdf9c9",textColor:"#c69538",icon:null};case"not-analyzed":return{text:"Not analyzed",bgColor:"#f9f9f9",textColor:"#646464",icon:null}}},J=t=>{if(!t)return"Never";const r=new Date(t),o=new Date;if(r.getDate()===o.getDate()&&r.getMonth()===o.getMonth()&&r.getFullYear()===o.getFullYear()){const y=r.getHours(),s=r.getMinutes(),a=y>=12?"pm":"am",i=y%12||12,p=s.toString().padStart(2,"0");return`Today, ${i}:${p} ${a}`}return r.toLocaleString("en-US",{month:"numeric",day:"numeric",year:"2-digit",hour:"2-digit",minute:"2-digit",hour12:!0})};return e.jsxs("div",{children:[e.jsxs("div",{className:"bg-white border-b border-gray-200 rounded-t-lg px-5 py-4 mb-6",children:[e.jsx("div",{className:"text-[10px] text-gray-500 mb-2 uppercase",children:"Filters"}),e.jsxs("div",{className:"flex gap-3",children:[e.jsxs("div",{className:"relative w-[130px]",children:[e.jsxs("select",{value:D,onChange:t=>{const r=t.target.value,o=new URLSearchParams(A);r==="all"?o.delete("entityType"):o.set("entityType",r),o.set("page","1"),P(o)},className:"appearance-none bg-gray-50 border border-gray-200 rounded px-[10px] pr-6 text-[12px] h-[39px] w-full cursor-pointer focus:outline-none focus:ring-0 focus:border-2 focus:border-[#005c75] hover:border-gray-300 transition-colors",children:[e.jsx("option",{value:"all",children:"All Types"}),e.jsx("option",{value:"visual",children:"Visual"}),e.jsx("option",{value:"library",children:"Library"})]}),e.jsx(V,{className:"absolute right-2 top-1/2 -translate-y-1/2 w-2 h-2 text-gray-500 pointer-events-none"})]}),e.jsxs("div",{className:"relative w-[130px]",children:[e.jsxs("select",{value:C,onChange:t=>L(t.target.value),className:"appearance-none bg-gray-50 border border-gray-200 rounded px-[10px] pr-6 text-[12px] h-[39px] w-full cursor-pointer focus:outline-none focus:ring-0 focus:border-2 focus:border-[#005c75] hover:border-gray-300 transition-colors",children:[e.jsx("option",{value:"all",children:"All States"}),e.jsx("option",{value:"analyzing",children:"Analyzing..."}),e.jsx("option",{value:"up-to-date",children:"Up to date"}),e.jsx("option",{value:"out-of-date",children:"Out of date"}),e.jsx("option",{value:"not-analyzed",children:"Not analyzed"})]}),e.jsx(V,{className:"absolute right-2 top-1/2 -translate-y-1/2 w-2 h-2 text-gray-500 pointer-events-none"})]}),e.jsxs("div",{className:"flex-1 relative",children:[e.jsx("span",{className:"absolute left-3 top-1/2 -translate-y-1/2 text-gray-400",children:"🔎"}),e.jsx("input",{type:"text",placeholder:"Search component",value:x,onChange:t=>h(t.target.value),className:"w-full bg-gray-50 border border-gray-200 rounded pl-9 pr-[10px] text-[12px] h-[39px] placeholder:text-gray-400 focus:outline-none focus:ring-0 focus:border-2 focus:border-[#005c75] transition-colors"})]}),e.jsx("button",{onClick:K,className:"px-[10px] h-[39px] border-none rounded text-[12px] font-medium cursor-pointer transition-colors whitespace-nowrap bg-[#005c75] text-white hover:bg-[#004a5e] disabled:bg-gray-400 disabled:cursor-not-allowed w-[130px]",children:T?"Collapse All":"Expand All"})]})]}),e.jsx("div",{className:"bg-[#f5f5f5] rounded-lg mb-2 text-[10px] font-normal leading-[15px] text-[#3e3e3e] uppercase",children:e.jsxs("div",{className:"flex justify-between items-center px-3 py-2",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:[e.jsx("span",{className:"w-4"}),e.jsx("span",{children:"FILE"})]}),e.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[e.jsx("div",{className:"flex items-center h-[38px]",style:{width:"160px"},children:e.jsx("span",{className:"text-center w-full",children:"SIMULATIONS"})}),e.jsxs("div",{className:"flex gap-4 items-center",children:[e.jsx("span",{className:"text-center",style:{width:"70px"},children:"ENTITIES"}),e.jsx("span",{className:"text-center",style:{width:"127px"},children:"STATE"}),e.jsxs("div",{className:"flex items-center gap-1 cursor-pointer hover:text-[#232323] transition-colors",style:{width:"116px"},onClick:B,role:"button",tabIndex:0,onKeyDown:t=>{(t.key==="Enter"||t.key===" ")&&(t.preventDefault(),B())},children:[e.jsx("span",{className:"text-left",children:"MODIFIED"}),e.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{transform:g==="asc"?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.2s ease"},children:e.jsx("path",{d:"M3 5L6 8L9 5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]})]})]})]})}),e.jsx("div",{className:"flex flex-col gap-3",children:R.map(t=>{const r=F.has(t.filePath),o=t.uncommittedCount>0;return e.jsxs("div",{className:"bg-white overflow-hidden",style:r?{border:"1px solid #e5e7eb",borderLeft:"4px solid #306AFF",borderRadius:"8px"}:{borderRadius:"8px"},children:[e.jsxs("div",{className:"flex justify-between items-center p-3 cursor-pointer select-none transition-colors hover:bg-gray-200",style:{outlineColor:"#005C75"},onClick:()=>W(t.filePath),role:"button",tabIndex:0,onKeyDown:l=>{(l.key==="Enter"||l.key===" ")&&(l.preventDefault(),W(t.filePath))},children:[e.jsxs("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:[e.jsx("span",{className:"text-xs w-4 inline-flex items-center justify-center shrink-0",style:{color:r?"#3e3e3e":"#c7c7c7",transform:r?"rotate(90deg)":"none"},children:"▶"}),e.jsx("img",{src:"/icons/file-icon.svg",alt:"file",className:"w-4 h-5 shrink-0"}),e.jsx("span",{className:"font-normal text-gray-900 text-[12px] overflow-hidden text-ellipsis whitespace-nowrap",children:t.filePath}),o&&e.jsxs("span",{className:"text-[10px] text-amber-500 font-medium shrink-0 whitespace-nowrap",children:[t.uncommittedCount," uncommitted"]})]}),e.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[e.jsxs("div",{className:"flex gap-1.5 items-center justify-center h-[38px]",style:{width:"160px"},children:[t.previewScreenshots.map((l,y)=>{const s=t.previewScreenshotErrors[y],a=s?"border-red-400":"border-gray-200";return e.jsxs("div",{className:`relative w-[50px] h-[38px] border ${a} rounded overflow-hidden bg-gray-50 shrink-0 flex items-center justify-center`,children:[e.jsx(G,{screenshotPath:l,alt:`Preview ${y+1}`,className:"max-w-full max-h-full object-contain object-center"}),s&&e.jsx("div",{className:"absolute top-0 right-0 w-4 h-4 bg-red-500 text-white flex items-center justify-center text-[10px] rounded-bl",title:"Error during capture",children:e.jsx(oe,{size:12,color:"white"})})]},`screenshot-${y}`)}),t.previewLibraryScenarios.map((l,y)=>e.jsx(Q,{scenario:l.scenario,entitySha:l.entitySha,size:"small",showBorder:!0},`library-${y}`))]}),e.jsxs("div",{className:"flex gap-3 items-center",children:[e.jsx("div",{className:"flex items-center justify-center",style:{minWidth:"70px"},children:e.jsx("div",{className:"bg-[#f9f9f9] flex items-center justify-center px-2 rounded whitespace-nowrap",style:{height:"23px"},children:e.jsxs("span",{className:"text-[12px] text-[#3e3e3e]",children:[t.totalCount," ",t.totalCount===1?"entity":"entities"]})})}),e.jsx("div",{className:"flex items-center justify-center",style:{width:"127px"},children:(()=>{const l=q(t.state);return e.jsxs("span",{className:"text-[12px] px-2 rounded inline-flex items-center gap-1.5",style:{backgroundColor:l.bgColor,color:l.textColor,height:"23px"},children:[l.icon,l.text]})})()}),e.jsx("span",{className:"text-[11px] text-gray-400",style:{width:"116px",textAlign:"center"},children:J(t.lastUpdated)})]})]})]}),r&&e.jsx("div",{className:"p-2 bg-gray-50 flex flex-col gap-2",children:t.entities.map(l=>e.jsx(le,{entity:l,currentRun:E,queueState:S},l.sha))})]},t.filePath)})}),U>1&&e.jsxs("div",{className:"flex justify-center items-center gap-4 mt-6 p-4",children:[d>1&&e.jsx("a",{href:`?${new URLSearchParams({...Object.fromEntries(A),page:String(d-1)}).toString()}`,className:"no-underline font-medium hover:underline",style:{color:"#005C75"},children:"← Previous"}),e.jsxs("span",{children:["Page ",d," of ",U]}),d<U&&e.jsx("a",{href:`?${new URLSearchParams({...Object.fromEntries(A),page:String(d+1)}).toString()}`,className:"no-underline font-medium hover:underline",style:{color:"#005C75"},children:"Next →"})]})]})}const Ne=()=>[{title:"CodeYam - Files & Entities"},{name:"description",content:"Browse your codebase files and entities"}],Ce=_(function(){const{entities:d,currentCommit:v,page:E,filter:w,entityType:m,queueState:S}=ee(),A=te();se({source:"files-page"});const P=b.useMemo(()=>{if(!d)return[];const x=new Set([]);for(const h of d)x.add(h.filePath??"No File Path");return Array.from(x)},[d]),F=b.useMemo(()=>d?d.sort((x,h)=>x.metadata?.isUncommitted&&!h.metadata?.isUncommitted?-1:!x.metadata?.isUncommitted&&h.metadata?.isUncommitted?1:new Date(h.metadata?.editedAt||0).getTime()-new Date(x.metadata?.editedAt||0).getTime()):[],[d]),N=b.useMemo(()=>{if(!d)return[];const x=new Set([]);for(const h of d)h.metadata?.isUncommitted&&x.add(h.filePath??"No File Path");return Array.from(x)},[d]);return d?e.jsx("div",{className:"bg-[#f9f9f9] min-h-screen",children:e.jsxs("div",{className:"px-36 py-12 font-sans",children:[e.jsxs("div",{className:"mb-8",children:[e.jsx("h1",{className:"text-3xl font-bold text-gray-900",children:"Files & Entities"}),e.jsxs("div",{className:"flex gap-4 text-sm text-gray-500 mt-2",children:[A.state==="loading"&&e.jsx("span",{className:"text-blue-600 font-medium animate-pulse",children:"🔄"}),e.jsxs("span",{children:[P.length," files"]}),e.jsxs("span",{children:[d.length," entities"]}),e.jsxs("span",{className:"text-amber-500 font-medium",children:[N.length," uncommitted files"]})]})]}),e.jsx(ce,{entities:F,page:E,itemsPerPage:50,currentRun:v?.metadata?.currentRun,filter:w,entityType:m,queueState:S})]})}):e.jsx("div",{className:"bg-[#f9f9f9] min-h-screen",children:e.jsxs("div",{className:"px-36 py-12 font-sans",children:[e.jsx("h1",{className:"text-3xl font-bold text-gray-900",children:"Error"}),e.jsx("p",{className:"text-base text-gray-500",children:"Unable to retrieve entities"})]})})});export{Ce as default,Ne as meta};
@@ -0,0 +1,12 @@
1
+ import{r as $,b as et,G as en,H as wn,B as jn,I as Cn,j as p,w as Sn,u as Nn,f as Ln}from"./chunk-WWGJGFF6-CgXbbZRx.js";import{u as _n}from"./useReportContext-CANr3QJ5.js";import{u as Dn}from"./useToast-Bbf4Hokd.js";import{L as An}from"./LogViewer-JkfQ-VaI.js";import{E as vt}from"./EntityTypeIcon-Dp_FTAs1.js";import{S as Tn}from"./SafeScreenshot-BrMAP1nP.js";import{L as Pn}from"./LibraryFunctionPreview-CVMmGuIc.js";import{T as En}from"./triangle-alert-BthANBVv.js";import"./file-text-18aYHZGd.js";import"./createLucideIcon-BBYuR56H.js";import"./chart-column-kA4jn9if.js";function Mn(e,n,s=10){const r=new Map,i=o=>o.entityType==="visual"||o.entityType==="library";for(const o of e)i(o)&&r.set(o.sha,{entity:o,depth:0});const t=new Map;for(const o of n){const c=o.metadata?.importedBy;if(c)for(const l of Object.keys(c))for(const f of Object.keys(c[l])){const{shas:x}=c[l][f];for(const m of x)t.has(o.sha)||t.set(o.sha,new Set),t.get(o.sha).add(m)}}const a=[],d=new Set;for(const o of e)a.push({sha:o.sha,depth:0}),d.add(o.sha);for(;a.length>0;){const{sha:o,depth:c}=a.shift();if(c>=s)continue;const l=t.get(o);if(l)for(const f of l){if(d.has(f))continue;d.add(f);const x=n.find(m=>m.sha===f);if(x){if(i(x)){const m=c+1,y=r.get(f);(!y||m<y.depth)&&r.set(f,{entity:x,depth:m})}a.push({sha:f,depth:c+1})}}}return Array.from(r.values()).sort((o,c)=>o.depth!==c.depth?o.depth-c.depth:o.entity.name.localeCompare(c.entity.name))}function Oe(e){const n=new Map;for(const r of e)n.has(r.name)||n.set(r.name,[]),n.get(r.name).push(r);const s=[];for(const r of n.values())if(r.length===1)s.push(r[0]);else{const i=r.sort((t,a)=>{const d=t.metadata?.editedAt||t.createdAt||"";return(a.metadata?.editedAt||a.createdAt||"").localeCompare(d)});s.push(i[0])}return s}function kn(e,n){const s=new Map,r=new Set(e.map(i=>i.path));for(const i of e)i.status==="renamed"&&i.oldPath&&r.add(i.oldPath);for(const i of e){const t=n.filter(o=>o.filePath===i.path||i.status==="renamed"&&i.oldPath&&o.filePath===i.oldPath),a=t.filter(o=>r.has(o.filePath)&&o.metadata?.isUncommitted&&!o.metadata?.isSuperseded),d=Oe(a);s.set(i.path,{status:i,entities:t,editedEntities:d})}return s}function Bn(e,n,s){const r=new Map;if(!s){for(const t of e)if(t.status==="deleted")r.set(t.path,{status:t,entities:[]});else{const a=n.filter(o=>o.filePath===t.path||t.status==="renamed"&&t.oldPath&&o.filePath===t.oldPath),d=Oe(a);r.set(t.path,{status:t,entities:d})}return r}const i=new Map;for(const t of s.fileComparisons){const a=new Set;for(const d of t.newEntities)a.add(d.name);for(const d of t.modifiedEntities)a.add(d.name);for(const d of t.deletedEntities)a.add(d.name);a.size>0&&i.set(t.filePath,a)}for(const t of e){const a=i.get(t.path);if(t.status==="deleted")r.set(t.path,{status:t,entities:[]});else{const d=a?n.filter(c=>(c.filePath===t.path||t.status==="renamed"&&t.oldPath&&c.filePath===t.oldPath)&&a.has(c.name)):[],o=Oe(d);r.set(t.path,{status:t,entities:o})}}return r}function On(e,n){const s=new Map,r=Fn(e,n);for(const i of r){const a=Mn([i],n).filter(({depth:d})=>d>0);s.set(i.sha,a)}return s}function Fn(e,n){const s=new Set(e.map(i=>i.path));for(const i of e)i.status==="renamed"&&i.oldPath&&s.add(i.oldPath);const r=n.filter(i=>s.has(i.filePath)&&i.metadata?.isUncommitted&&!i.metadata?.isSuperseded);return Oe(r)}function Rn(e,n,s){const[r,i]=$.useState(()=>new Set(n)),[t,a]=$.useState(()=>new Set(s)),d=$.useRef([]),o=$.useRef([]);return $.useEffect(()=>{(n.length!==d.current.length||n.some((w,v)=>w!==d.current[v]))&&(d.current=n,i(w=>{const v=new Set(w);return n.forEach(u=>{w.has(u)||v.add(u)}),v}))},[n]),$.useEffect(()=>{(s.length!==o.current.length||s.some((w,v)=>w!==o.current[v]))&&(o.current=s,a(w=>{const v=new Set(w);return s.forEach(u=>{w.has(u)||v.add(u)}),v}))},[s]),{expandedUncommitted:r,expandedBranch:t,setExpandedUncommitted:i,setExpandedBranch:a,toggleFile:(y,w,v)=>{v(u=>{const g=new Set(u);return g.has(y)?g.delete(y):g.add(y),g})},expandAllUncommitted:()=>{i(new Set(n))},collapseAllUncommitted:()=>{i(new Set)},expandAllBranch:()=>{a(new Set(s))},collapseAllBranch:()=>{a(new Set)}}}function In(e,n,s){const[r,i]=$.useState(null),[t,a]=$.useState(null),d=et();$.useEffect(()=>{d.data?.oldContent!==void 0&&d.data?.newContent!==void 0&&a({oldContent:d.data.oldContent,newContent:d.data.newContent,fileName:d.data.fileName})},[d.data]);const o=f=>{i({type:"file",path:f}),a(null);const x=new FormData;x.append("actionType","getDiff"),x.append("filePath",f),x.append("diffType",s==="branch"?"branch":"uncommitted"),x.append("baseBranch",e),x.append("currentBranch",n||""),d.submit(x,{method:"post"})},c=(f,x)=>{i({type:"entity",path:f,entitySha:x}),a(null);const m=new FormData;m.append("actionType","getDiff"),m.append("filePath",f),m.append("diffType",s==="branch"?"branch":"uncommitted"),m.append("baseBranch",e),m.append("currentBranch",n||""),m.append("entitySha",x),d.submit(m,{method:"post"})},l=()=>{i(null),a(null)};return{diffView:r,diffContent:t,isLoading:d.state==="loading"||d.state==="submitting",handleShowFileDiff:o,handleShowEntityDiff:c,handleCloseDiff:l}}function qn(e){const n=et(),{showToast:s}=Dn();$.useEffect(()=>{if(n.state==="idle"&&n.data){const a=n.data;a?.error&&s(`Error: ${a.error}`,"error",6e3)}},[n.state,n.data,s]);const r=a=>{console.log("Generate analysis clicked for entity:",a.sha,a.name);const d=new FormData;d.append("entitySha",a.sha),d.append("filePath",a.filePath||""),n.submit(d,{method:"post",action:"/api/analyze"})},i=a=>{const d=a.filter(l=>l.entityType==="visual"||l.entityType==="library");console.log("Generate analysis for all entities:",d.length);const o=d.map(l=>l.sha).join(","),c=new FormData;c.append("entityShas",o),n.submit(c,{method:"post",action:"/api/analyze"})},t=a=>e?.includes(a)??!1;return{isAnalyzing:n.state!=="idle",handleGenerateSimulation:r,handleGenerateAllSimulations:i,isEntityBeingAnalyzed:t}}var K={},We={exports:{}};var bt;function zn(){return bt||(bt=1,(function(e){(function(){var n={}.hasOwnProperty;function s(){for(var t="",a=0;a<arguments.length;a++){var d=arguments[a];d&&(t=i(t,r(d)))}return t}function r(t){if(typeof t=="string"||typeof t=="number")return t;if(typeof t!="object")return"";if(Array.isArray(t))return s.apply(null,t);if(t.toString!==Object.prototype.toString&&!t.toString.toString().includes("[native code]"))return t.toString();var a="";for(var d in t)n.call(t,d)&&t[d]&&(a=i(a,d));return a}function i(t,a){return a?t?t+" "+a:t+a:t}e.exports?(s.default=s,e.exports=s):window.classNames=s})()})(We)),We.exports}var W={},Ue={},Je={},wt;function ae(){return wt||(wt=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=n;function n(){}n.prototype={diff:function(i,t){var a,d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=d.callback;typeof d=="function"&&(o=d,d={}),this.options=d;var c=this;function l(j){return o?(setTimeout(function(){o(void 0,j)},0),!0):j}i=this.castInput(i),t=this.castInput(t),i=this.removeEmpty(this.tokenize(i)),t=this.removeEmpty(this.tokenize(t));var f=t.length,x=i.length,m=1,y=f+x;d.maxEditLength&&(y=Math.min(y,d.maxEditLength));var w=(a=d.timeout)!==null&&a!==void 0?a:1/0,v=Date.now()+w,u=[{oldPos:-1,lastComponent:void 0}],g=this.extractCommon(u[0],t,i,0);if(u[0].oldPos+1>=x&&g+1>=f)return l([{value:this.join(t),count:t.length}]);var N=-1/0,L=1/0;function T(){for(var j=Math.max(N,-m);j<=Math.min(L,m);j+=2){var D=void 0,P=u[j-1],k=u[j+1];P&&(u[j-1]=void 0);var h=!1;if(k){var b=k.oldPos-j;h=k&&0<=b&&b<f}var S=P&&P.oldPos+1<x;if(!h&&!S){u[j]=void 0;continue}if(!S||h&&P.oldPos+1<k.oldPos?D=c.addToPath(k,!0,void 0,0):D=c.addToPath(P,void 0,!0,1),g=c.extractCommon(D,t,i,j),D.oldPos+1>=x&&g+1>=f)return l(s(c,D.lastComponent,t,i,c.useLongestToken));u[j]=D,D.oldPos+1>=x&&(L=Math.min(L,j-1)),g+1>=f&&(N=Math.max(N,j+1))}m++}if(o)(function j(){setTimeout(function(){if(m>y||Date.now()>v)return o();T()||j()},0)})();else for(;m<=y&&Date.now()<=v;){var _=T();if(_)return _}},addToPath:function(i,t,a,d){var o=i.lastComponent;return o&&o.added===t&&o.removed===a?{oldPos:i.oldPos+d,lastComponent:{count:o.count+1,added:t,removed:a,previousComponent:o.previousComponent}}:{oldPos:i.oldPos+d,lastComponent:{count:1,added:t,removed:a,previousComponent:o}}},extractCommon:function(i,t,a,d){for(var o=t.length,c=a.length,l=i.oldPos,f=l-d,x=0;f+1<o&&l+1<c&&this.equals(t[f+1],a[l+1]);)f++,l++,x++;return x&&(i.lastComponent={count:x,previousComponent:i.lastComponent}),i.oldPos=l,f},equals:function(i,t){return this.options.comparator?this.options.comparator(i,t):i===t||this.options.ignoreCase&&i.toLowerCase()===t.toLowerCase()},removeEmpty:function(i){for(var t=[],a=0;a<i.length;a++)i[a]&&t.push(i[a]);return t},castInput:function(i){return i},tokenize:function(i){return i.split("")},join:function(i){return i.join("")}};function s(r,i,t,a,d){for(var o=[],c;i;)o.push(i),c=i.previousComponent,delete i.previousComponent,i=c;o.reverse();for(var l=0,f=o.length,x=0,m=0;l<f;l++){var y=o[l];if(y.removed){if(y.value=r.join(a.slice(m,m+y.count)),m+=y.count,l&&o[l-1].added){var v=o[l-1];o[l-1]=o[l],o[l]=v}}else{if(!y.added&&d){var w=t.slice(x,x+y.count);w=w.map(function(g,N){var L=a[m+N];return L.length>g.length?L:g}),y.value=r.join(w)}else y.value=r.join(t.slice(x,x+y.count));x+=y.count,y.added||(m+=y.count)}}var u=o[f-1];return f>1&&typeof u.value=="string"&&(u.added||u.removed)&&r.equals("",u.value)&&(o[f-2].value+=u.value,o.pop()),o}})(Je)),Je}var fe={},jt;function $n(){if(jt)return fe;jt=1,Object.defineProperty(fe,"__esModule",{value:!0}),fe.diffChars=r,fe.characterDiff=void 0;var e=n(ae());function n(i){return i&&i.__esModule?i:{default:i}}var s=new e.default;fe.characterDiff=s;function r(i,t,a){return s.diff(i,t,a)}return fe}var oe={},_e={},Ct;function tn(){if(Ct)return _e;Ct=1,Object.defineProperty(_e,"__esModule",{value:!0}),_e.generateOptions=e;function e(n,s){if(typeof n=="function")s.callback=n;else if(n)for(var r in n)n.hasOwnProperty(r)&&(s[r]=n[r]);return s}return _e}var St;function Gn(){if(St)return oe;St=1,Object.defineProperty(oe,"__esModule",{value:!0}),oe.diffWords=a,oe.diffWordsWithSpace=d,oe.wordDiff=void 0;var e=s(ae()),n=tn();function s(o){return o&&o.__esModule?o:{default:o}}var r=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,i=/\S/,t=new e.default;oe.wordDiff=t,t.equals=function(o,c){return this.options.ignoreCase&&(o=o.toLowerCase(),c=c.toLowerCase()),o===c||this.options.ignoreWhitespace&&!i.test(o)&&!i.test(c)},t.tokenize=function(o){for(var c=o.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),l=0;l<c.length-1;l++)!c[l+1]&&c[l+2]&&r.test(c[l])&&r.test(c[l+2])&&(c[l]+=c[l+2],c.splice(l+1,2),l--);return c};function a(o,c,l){return l=(0,n.generateOptions)(l,{ignoreWhitespace:!0}),t.diff(o,c,l)}function d(o,c,l){return t.diff(o,c,l)}return oe}var le={},Nt;function tt(){if(Nt)return le;Nt=1,Object.defineProperty(le,"__esModule",{value:!0}),le.diffLines=i,le.diffTrimmedLines=t,le.lineDiff=void 0;var e=s(ae()),n=tn();function s(a){return a&&a.__esModule?a:{default:a}}var r=new e.default;le.lineDiff=r,r.tokenize=function(a){this.options.stripTrailingCr&&(a=a.replace(/\r\n/g,`
2
+ `));var d=[],o=a.split(/(\n|\r\n)/);o[o.length-1]||o.pop();for(var c=0;c<o.length;c++){var l=o[c];c%2&&!this.options.newlineIsToken?d[d.length-1]+=l:(this.options.ignoreWhitespace&&(l=l.trim()),d.push(l))}return d};function i(a,d,o){return r.diff(a,d,o)}function t(a,d,o){var c=(0,n.generateOptions)(o,{ignoreWhitespace:!0});return r.diff(a,d,c)}return le}var ue={},Lt;function Vn(){if(Lt)return ue;Lt=1,Object.defineProperty(ue,"__esModule",{value:!0}),ue.diffSentences=r,ue.sentenceDiff=void 0;var e=n(ae());function n(i){return i&&i.__esModule?i:{default:i}}var s=new e.default;ue.sentenceDiff=s,s.tokenize=function(i){return i.split(/(\S.+?[.!?])(?=\s+|$)/)};function r(i,t,a){return s.diff(i,t,a)}return ue}var he={},_t;function Hn(){if(_t)return he;_t=1,Object.defineProperty(he,"__esModule",{value:!0}),he.diffCss=r,he.cssDiff=void 0;var e=n(ae());function n(i){return i&&i.__esModule?i:{default:i}}var s=new e.default;he.cssDiff=s,s.tokenize=function(i){return i.split(/([{}:;,]|\s+)/)};function r(i,t,a){return s.diff(i,t,a)}return he}var ce={},Dt;function Wn(){if(Dt)return ce;Dt=1,Object.defineProperty(ce,"__esModule",{value:!0}),ce.diffJson=a,ce.canonicalize=d,ce.jsonDiff=void 0;var e=s(ae()),n=tt();function s(o){return o&&o.__esModule?o:{default:o}}function r(o){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?r=function(l){return typeof l}:r=function(l){return l&&typeof Symbol=="function"&&l.constructor===Symbol&&l!==Symbol.prototype?"symbol":typeof l},r(o)}var i=Object.prototype.toString,t=new e.default;ce.jsonDiff=t,t.useLongestToken=!0,t.tokenize=n.lineDiff.tokenize,t.castInput=function(o){var c=this.options,l=c.undefinedReplacement,f=c.stringifyReplacer,x=f===void 0?function(m,y){return typeof y>"u"?l:y}:f;return typeof o=="string"?o:JSON.stringify(d(o,null,null,x),x," ")},t.equals=function(o,c){return e.default.prototype.equals.call(t,o.replace(/,([\r\n])/g,"$1"),c.replace(/,([\r\n])/g,"$1"))};function a(o,c,l){return t.diff(o,c,l)}function d(o,c,l,f,x){c=c||[],l=l||[],f&&(o=f(x,o));var m;for(m=0;m<c.length;m+=1)if(c[m]===o)return l[m];var y;if(i.call(o)==="[object Array]"){for(c.push(o),y=new Array(o.length),l.push(y),m=0;m<o.length;m+=1)y[m]=d(o[m],c,l,f,x);return c.pop(),l.pop(),y}if(o&&o.toJSON&&(o=o.toJSON()),r(o)==="object"&&o!==null){c.push(o),y={},l.push(y);var w=[],v;for(v in o)o.hasOwnProperty(v)&&w.push(v);for(w.sort(),m=0;m<w.length;m+=1)v=w[m],y[v]=d(o[v],c,l,f,v);c.pop(),l.pop()}else y=o;return y}return ce}var pe={},At;function Un(){if(At)return pe;At=1,Object.defineProperty(pe,"__esModule",{value:!0}),pe.diffArrays=r,pe.arrayDiff=void 0;var e=n(ae());function n(i){return i&&i.__esModule?i:{default:i}}var s=new e.default;pe.arrayDiff=s,s.tokenize=function(i){return i.slice()},s.join=s.removeEmpty=function(i){return i};function r(i,t,a){return s.diff(i,t,a)}return pe}var ye={},De={},Tt;function nt(){if(Tt)return De;Tt=1,Object.defineProperty(De,"__esModule",{value:!0}),De.parsePatch=e;function e(n){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=n.split(/\r\n|[\n\v\f\r\x85]/),i=n.match(/\r\n|[\n\v\f\r\x85]/g)||[],t=[],a=0;function d(){var l={};for(t.push(l);a<r.length;){var f=r[a];if(/^(\-\-\-|\+\+\+|@@)\s/.test(f))break;var x=/^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(f);x&&(l.index=x[1]),a++}for(o(l),o(l),l.hunks=[];a<r.length;){var m=r[a];if(/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(m))break;if(/^@@/.test(m))l.hunks.push(c());else{if(m&&s.strict)throw new Error("Unknown line "+(a+1)+" "+JSON.stringify(m));a++}}}function o(l){var f=/^(---|\+\+\+)\s+(.*)$/.exec(r[a]);if(f){var x=f[1]==="---"?"old":"new",m=f[2].split(" ",2),y=m[0].replace(/\\\\/g,"\\");/^".*"$/.test(y)&&(y=y.substr(1,y.length-2)),l[x+"FileName"]=y,l[x+"Header"]=(m[1]||"").trim(),a++}}function c(){var l=a,f=r[a++],x=f.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/),m={oldStart:+x[1],oldLines:typeof x[2]>"u"?1:+x[2],newStart:+x[3],newLines:typeof x[4]>"u"?1:+x[4],lines:[],linedelimiters:[]};m.oldLines===0&&(m.oldStart+=1),m.newLines===0&&(m.newStart+=1);for(var y=0,w=0;a<r.length&&!(r[a].indexOf("--- ")===0&&a+2<r.length&&r[a+1].indexOf("+++ ")===0&&r[a+2].indexOf("@@")===0);a++){var v=r[a].length==0&&a!=r.length-1?" ":r[a][0];if(v==="+"||v==="-"||v===" "||v==="\\")m.lines.push(r[a]),m.linedelimiters.push(i[a]||`
3
+ `),v==="+"?y++:v==="-"?w++:v===" "&&(y++,w++);else break}if(!y&&m.newLines===1&&(m.newLines=0),!w&&m.oldLines===1&&(m.oldLines=0),s.strict){if(y!==m.newLines)throw new Error("Added line count did not match for hunk at line "+(l+1));if(w!==m.oldLines)throw new Error("Removed line count did not match for hunk at line "+(l+1))}return m}for(;a<r.length;)d();return t}return De}var Ye={},Pt;function Jn(){return Pt||(Pt=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=n;function n(s,r,i){var t=!0,a=!1,d=!1,o=1;return function c(){if(t&&!d){if(a?o++:t=!1,s+o<=i)return o;d=!0}if(!a)return d||(t=!0),r<=s-o?-o++:(a=!0,c())}}})(Ye)),Ye}var Et;function Yn(){if(Et)return ye;Et=1,Object.defineProperty(ye,"__esModule",{value:!0}),ye.applyPatch=r,ye.applyPatches=i;var e=nt(),n=s(Jn());function s(t){return t&&t.__esModule?t:{default:t}}function r(t,a){var d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(typeof a=="string"&&(a=(0,e.parsePatch)(a)),Array.isArray(a)){if(a.length>1)throw new Error("applyPatch only works with a single input.");a=a[0]}var o=t.split(/\r\n|[\n\v\f\r\x85]/),c=t.match(/\r\n|[\n\v\f\r\x85]/g)||[],l=a.hunks,f=d.compareLine||function(q,z,U,Y){return z===Y},x=0,m=d.fuzzFactor||0,y=0,w=0,v,u;function g(q,z){for(var U=0;U<q.lines.length;U++){var Y=q.lines[U],Z=Y.length>0?Y[0]:" ",re=Y.length>0?Y.substr(1):Y;if(Z===" "||Z==="-"){if(!f(z+1,o[z],Z,re)&&(x++,x>m))return!1;z++}}return!0}for(var N=0;N<l.length;N++){for(var L=l[N],T=o.length-L.oldLines,_=0,j=w+L.oldStart-1,D=(0,n.default)(j,y,T);_!==void 0;_=D())if(g(L,j+_)){L.offset=w+=_;break}if(_===void 0)return!1;y=L.offset+L.oldStart+L.oldLines}for(var P=0,k=0;k<l.length;k++){var h=l[k],b=h.oldStart+h.offset+P-1;P+=h.newLines-h.oldLines;for(var S=0;S<h.lines.length;S++){var C=h.lines[S],A=C.length>0?C[0]:" ",E=C.length>0?C.substr(1):C,M=h.linedelimiters&&h.linedelimiters[S]||`
4
+ `;if(A===" ")b++;else if(A==="-")o.splice(b,1),c.splice(b,1);else if(A==="+")o.splice(b,0,E),c.splice(b,0,M),b++;else if(A==="\\"){var F=h.lines[S-1]?h.lines[S-1][0]:null;F==="+"?v=!0:F==="-"&&(u=!0)}}}if(v)for(;!o[o.length-1];)o.pop(),c.pop();else u&&(o.push(""),c.push(`
5
+ `));for(var B=0;B<o.length-1;B++)o[B]=o[B]+c[B];return o.join("")}function i(t,a){typeof t=="string"&&(t=(0,e.parsePatch)(t));var d=0;function o(){var c=t[d++];if(!c)return a.complete();a.loadFile(c,function(l,f){if(l)return a.complete(l);var x=r(f,c,a);a.patched(c,x,function(m){if(m)return a.complete(m);o()})})}o()}return ye}var ve={},de={},Mt;function nn(){if(Mt)return de;Mt=1,Object.defineProperty(de,"__esModule",{value:!0}),de.structuredPatch=d,de.formatPatch=o,de.createTwoFilesPatch=c,de.createPatch=l;var e=tt();function n(f){return t(f)||i(f)||r(f)||s()}function s(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
6
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function r(f,x){if(f){if(typeof f=="string")return a(f,x);var m=Object.prototype.toString.call(f).slice(8,-1);if(m==="Object"&&f.constructor&&(m=f.constructor.name),m==="Map"||m==="Set")return Array.from(f);if(m==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(m))return a(f,x)}}function i(f){if(typeof Symbol<"u"&&Symbol.iterator in Object(f))return Array.from(f)}function t(f){if(Array.isArray(f))return a(f)}function a(f,x){(x==null||x>f.length)&&(x=f.length);for(var m=0,y=new Array(x);m<x;m++)y[m]=f[m];return y}function d(f,x,m,y,w,v,u){u||(u={}),typeof u.context>"u"&&(u.context=4);var g=(0,e.diffLines)(m,y,u);if(!g)return;g.push({value:"",lines:[]});function N(b){return b.map(function(S){return" "+S})}for(var L=[],T=0,_=0,j=[],D=1,P=1,k=function(S){var C=g[S],A=C.lines||C.value.replace(/\n$/,"").split(`
7
+ `);if(C.lines=A,C.added||C.removed){var E;if(!T){var M=g[S-1];T=D,_=P,M&&(j=u.context>0?N(M.lines.slice(-u.context)):[],T-=j.length,_-=j.length)}(E=j).push.apply(E,n(A.map(function(re){return(C.added?"+":"-")+re}))),C.added?P+=A.length:D+=A.length}else{if(T)if(A.length<=u.context*2&&S<g.length-2){var F;(F=j).push.apply(F,n(N(A)))}else{var B,q=Math.min(A.length,u.context);(B=j).push.apply(B,n(N(A.slice(0,q))));var z={oldStart:T,oldLines:D-T+q,newStart:_,newLines:P-_+q,lines:j};if(S>=g.length-2&&A.length<=u.context){var U=/\n$/.test(m),Y=/\n$/.test(y),Z=A.length==0&&j.length>z.oldLines;!U&&Z&&m.length>0&&j.splice(z.oldLines,0,"\"),(!U&&!Z||!Y)&&j.push("\")}L.push(z),T=0,_=0,j=[]}D+=A.length,P+=A.length}},h=0;h<g.length;h++)k(h);return{oldFileName:f,newFileName:x,oldHeader:w,newHeader:v,hunks:L}}function o(f){if(Array.isArray(f))return f.map(o).join(`
8
+ `);var x=[];f.oldFileName==f.newFileName&&x.push("Index: "+f.oldFileName),x.push("==================================================================="),x.push("--- "+f.oldFileName+(typeof f.oldHeader>"u"?"":" "+f.oldHeader)),x.push("+++ "+f.newFileName+(typeof f.newHeader>"u"?"":" "+f.newHeader));for(var m=0;m<f.hunks.length;m++){var y=f.hunks[m];y.oldLines===0&&(y.oldStart-=1),y.newLines===0&&(y.newStart-=1),x.push("@@ -"+y.oldStart+","+y.oldLines+" +"+y.newStart+","+y.newLines+" @@"),x.push.apply(x,y.lines)}return x.join(`
9
+ `)+`
10
+ `}function c(f,x,m,y,w,v,u){return o(d(f,x,m,y,w,v,u))}function l(f,x,m,y,w,v){return c(f,f,x,m,y,w,v)}return de}var be={},kt;function Xn(){if(kt)return be;kt=1,Object.defineProperty(be,"__esModule",{value:!0}),be.arrayEqual=e,be.arrayStartsWith=n;function e(s,r){return s.length!==r.length?!1:n(s,r)}function n(s,r){if(r.length>s.length)return!1;for(var i=0;i<r.length;i++)if(r[i]!==s[i])return!1;return!0}return be}var Bt;function Kn(){if(Bt)return ve;Bt=1,Object.defineProperty(ve,"__esModule",{value:!0}),ve.calcLineCount=c,ve.merge=l;var e=nn(),n=nt(),s=Xn();function r(h){return d(h)||a(h)||t(h)||i()}function i(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
11
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function t(h,b){if(h){if(typeof h=="string")return o(h,b);var S=Object.prototype.toString.call(h).slice(8,-1);if(S==="Object"&&h.constructor&&(S=h.constructor.name),S==="Map"||S==="Set")return Array.from(h);if(S==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(S))return o(h,b)}}function a(h){if(typeof Symbol<"u"&&Symbol.iterator in Object(h))return Array.from(h)}function d(h){if(Array.isArray(h))return o(h)}function o(h,b){(b==null||b>h.length)&&(b=h.length);for(var S=0,C=new Array(b);S<b;S++)C[S]=h[S];return C}function c(h){var b=k(h.lines),S=b.oldLines,C=b.newLines;S!==void 0?h.oldLines=S:delete h.oldLines,C!==void 0?h.newLines=C:delete h.newLines}function l(h,b,S){h=f(h,S),b=f(b,S);var C={};(h.index||b.index)&&(C.index=h.index||b.index),(h.newFileName||b.newFileName)&&(x(h)?x(b)?(C.oldFileName=m(C,h.oldFileName,b.oldFileName),C.newFileName=m(C,h.newFileName,b.newFileName),C.oldHeader=m(C,h.oldHeader,b.oldHeader),C.newHeader=m(C,h.newHeader,b.newHeader)):(C.oldFileName=h.oldFileName,C.newFileName=h.newFileName,C.oldHeader=h.oldHeader,C.newHeader=h.newHeader):(C.oldFileName=b.oldFileName||h.oldFileName,C.newFileName=b.newFileName||h.newFileName,C.oldHeader=b.oldHeader||h.oldHeader,C.newHeader=b.newHeader||h.newHeader)),C.hunks=[];for(var A=0,E=0,M=0,F=0;A<h.hunks.length||E<b.hunks.length;){var B=h.hunks[A]||{oldStart:1/0},q=b.hunks[E]||{oldStart:1/0};if(y(B,q))C.hunks.push(w(B,M)),A++,F+=B.newLines-B.oldLines;else if(y(q,B))C.hunks.push(w(q,F)),E++,M+=q.newLines-q.oldLines;else{var z={oldStart:Math.min(B.oldStart,q.oldStart),oldLines:0,newStart:Math.min(B.newStart+M,q.oldStart+F),newLines:0,lines:[]};v(z,B.oldStart,B.lines,q.oldStart,q.lines),E++,A++,C.hunks.push(z)}}return C}function f(h,b){if(typeof h=="string"){if(/^@@/m.test(h)||/^Index:/m.test(h))return(0,n.parsePatch)(h)[0];if(!b)throw new Error("Must provide a base reference or pass in a patch");return(0,e.structuredPatch)(void 0,void 0,b,h)}return h}function x(h){return h.newFileName&&h.newFileName!==h.oldFileName}function m(h,b,S){return b===S?b:(h.conflict=!0,{mine:b,theirs:S})}function y(h,b){return h.oldStart<b.oldStart&&h.oldStart+h.oldLines<b.oldStart}function w(h,b){return{oldStart:h.oldStart,oldLines:h.oldLines,newStart:h.newStart+b,newLines:h.newLines,lines:h.lines}}function v(h,b,S,C,A){var E={offset:b,lines:S,index:0},M={offset:C,lines:A,index:0};for(L(h,E,M),L(h,M,E);E.index<E.lines.length&&M.index<M.lines.length;){var F=E.lines[E.index],B=M.lines[M.index];if((F[0]==="-"||F[0]==="+")&&(B[0]==="-"||B[0]==="+"))u(h,E,M);else if(F[0]==="+"&&B[0]===" "){var q;(q=h.lines).push.apply(q,r(_(E)))}else if(B[0]==="+"&&F[0]===" "){var z;(z=h.lines).push.apply(z,r(_(M)))}else F[0]==="-"&&B[0]===" "?g(h,E,M):B[0]==="-"&&F[0]===" "?g(h,M,E,!0):F===B?(h.lines.push(F),E.index++,M.index++):N(h,_(E),_(M))}T(h,E),T(h,M),c(h)}function u(h,b,S){var C=_(b),A=_(S);if(D(C)&&D(A)){if((0,s.arrayStartsWith)(C,A)&&P(S,C,C.length-A.length)){var E;(E=h.lines).push.apply(E,r(C));return}else if((0,s.arrayStartsWith)(A,C)&&P(b,A,A.length-C.length)){var M;(M=h.lines).push.apply(M,r(A));return}}else if((0,s.arrayEqual)(C,A)){var F;(F=h.lines).push.apply(F,r(C));return}N(h,C,A)}function g(h,b,S,C){var A=_(b),E=j(S,A);if(E.merged){var M;(M=h.lines).push.apply(M,r(E.merged))}else N(h,C?E:A,C?A:E)}function N(h,b,S){h.conflict=!0,h.lines.push({conflict:!0,mine:b,theirs:S})}function L(h,b,S){for(;b.offset<S.offset&&b.index<b.lines.length;){var C=b.lines[b.index++];h.lines.push(C),b.offset++}}function T(h,b){for(;b.index<b.lines.length;){var S=b.lines[b.index++];h.lines.push(S)}}function _(h){for(var b=[],S=h.lines[h.index][0];h.index<h.lines.length;){var C=h.lines[h.index];if(S==="-"&&C[0]==="+"&&(S="+"),S===C[0])b.push(C),h.index++;else break}return b}function j(h,b){for(var S=[],C=[],A=0,E=!1,M=!1;A<b.length&&h.index<h.lines.length;){var F=h.lines[h.index],B=b[A];if(B[0]==="+")break;if(E=E||F[0]!==" ",C.push(B),A++,F[0]==="+")for(M=!0;F[0]==="+";)S.push(F),F=h.lines[++h.index];B.substr(1)===F.substr(1)?(S.push(F),h.index++):M=!0}if((b[A]||"")[0]==="+"&&E&&(M=!0),M)return S;for(;A<b.length;)C.push(b[A++]);return{merged:C,changes:S}}function D(h){return h.reduce(function(b,S){return b&&S[0]==="-"},!0)}function P(h,b,S){for(var C=0;C<S;C++){var A=b[b.length-S+C].substr(1);if(h.lines[h.index+C]!==" "+A)return!1}return h.index+=S,!0}function k(h){var b=0,S=0;return h.forEach(function(C){if(typeof C!="string"){var A=k(C.mine),E=k(C.theirs);b!==void 0&&(A.oldLines===E.oldLines?b+=A.oldLines:b=void 0),S!==void 0&&(A.newLines===E.newLines?S+=A.newLines:S=void 0)}else S!==void 0&&(C[0]==="+"||C[0]===" ")&&S++,b!==void 0&&(C[0]==="-"||C[0]===" ")&&b++}),{oldLines:b,newLines:S}}return ve}var Ae={},Ot;function Zn(){if(Ot)return Ae;Ot=1,Object.defineProperty(Ae,"__esModule",{value:!0}),Ae.reversePatch=r;function e(i,t){var a=Object.keys(i);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(i);t&&(d=d.filter(function(o){return Object.getOwnPropertyDescriptor(i,o).enumerable})),a.push.apply(a,d)}return a}function n(i){for(var t=1;t<arguments.length;t++){var a=arguments[t]!=null?arguments[t]:{};t%2?e(Object(a),!0).forEach(function(d){s(i,d,a[d])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(a)):e(Object(a)).forEach(function(d){Object.defineProperty(i,d,Object.getOwnPropertyDescriptor(a,d))})}return i}function s(i,t,a){return t in i?Object.defineProperty(i,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):i[t]=a,i}function r(i){return Array.isArray(i)?i.map(r).reverse():n(n({},i),{},{oldFileName:i.newFileName,oldHeader:i.newHeader,newFileName:i.oldFileName,newHeader:i.oldHeader,hunks:i.hunks.map(function(t){return{oldLines:t.newLines,oldStart:t.newStart,newLines:t.oldLines,newStart:t.oldStart,linedelimiters:t.linedelimiters,lines:t.lines.map(function(a){return a.startsWith("-")?"+".concat(a.slice(1)):a.startsWith("+")?"-".concat(a.slice(1)):a})}})})}return Ae}var Te={},Ft;function Qn(){if(Ft)return Te;Ft=1,Object.defineProperty(Te,"__esModule",{value:!0}),Te.convertChangesToDMP=e;function e(n){for(var s=[],r,i,t=0;t<n.length;t++)r=n[t],r.added?i=1:r.removed?i=-1:i=0,s.push([i,r.value]);return s}return Te}var Pe={},Rt;function er(){if(Rt)return Pe;Rt=1,Object.defineProperty(Pe,"__esModule",{value:!0}),Pe.convertChangesToXML=e;function e(s){for(var r=[],i=0;i<s.length;i++){var t=s[i];t.added?r.push("<ins>"):t.removed&&r.push("<del>"),r.push(n(t.value)),t.added?r.push("</ins>"):t.removed&&r.push("</del>")}return r.join("")}function n(s){var r=s;return r=r.replace(/&/g,"&amp;"),r=r.replace(/</g,"&lt;"),r=r.replace(/>/g,"&gt;"),r=r.replace(/"/g,"&quot;"),r}return Pe}var It;function tr(){return It||(It=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"Diff",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(e,"diffChars",{enumerable:!0,get:function(){return s.diffChars}}),Object.defineProperty(e,"diffWords",{enumerable:!0,get:function(){return r.diffWords}}),Object.defineProperty(e,"diffWordsWithSpace",{enumerable:!0,get:function(){return r.diffWordsWithSpace}}),Object.defineProperty(e,"diffLines",{enumerable:!0,get:function(){return i.diffLines}}),Object.defineProperty(e,"diffTrimmedLines",{enumerable:!0,get:function(){return i.diffTrimmedLines}}),Object.defineProperty(e,"diffSentences",{enumerable:!0,get:function(){return t.diffSentences}}),Object.defineProperty(e,"diffCss",{enumerable:!0,get:function(){return a.diffCss}}),Object.defineProperty(e,"diffJson",{enumerable:!0,get:function(){return d.diffJson}}),Object.defineProperty(e,"canonicalize",{enumerable:!0,get:function(){return d.canonicalize}}),Object.defineProperty(e,"diffArrays",{enumerable:!0,get:function(){return o.diffArrays}}),Object.defineProperty(e,"applyPatch",{enumerable:!0,get:function(){return c.applyPatch}}),Object.defineProperty(e,"applyPatches",{enumerable:!0,get:function(){return c.applyPatches}}),Object.defineProperty(e,"parsePatch",{enumerable:!0,get:function(){return l.parsePatch}}),Object.defineProperty(e,"merge",{enumerable:!0,get:function(){return f.merge}}),Object.defineProperty(e,"reversePatch",{enumerable:!0,get:function(){return x.reversePatch}}),Object.defineProperty(e,"structuredPatch",{enumerable:!0,get:function(){return m.structuredPatch}}),Object.defineProperty(e,"createTwoFilesPatch",{enumerable:!0,get:function(){return m.createTwoFilesPatch}}),Object.defineProperty(e,"createPatch",{enumerable:!0,get:function(){return m.createPatch}}),Object.defineProperty(e,"formatPatch",{enumerable:!0,get:function(){return m.formatPatch}}),Object.defineProperty(e,"convertChangesToDMP",{enumerable:!0,get:function(){return y.convertChangesToDMP}}),Object.defineProperty(e,"convertChangesToXML",{enumerable:!0,get:function(){return w.convertChangesToXML}});var n=v(ae()),s=$n(),r=Gn(),i=tt(),t=Vn(),a=Hn(),d=Wn(),o=Un(),c=Yn(),l=nt(),f=Kn(),x=Zn(),m=nn(),y=Qn(),w=er();function v(u){return u&&u.__esModule?u:{default:u}}})(Ue)),Ue}var qt;function nr(){if(qt)return W;qt=1;var e=W&&W.__createBinding||(Object.create?(function(l,f,x,m){m===void 0&&(m=x);var y=Object.getOwnPropertyDescriptor(f,x);(!y||("get"in y?!f.__esModule:y.writable||y.configurable))&&(y={enumerable:!0,get:function(){return f[x]}}),Object.defineProperty(l,m,y)}):(function(l,f,x,m){m===void 0&&(m=x),l[m]=f[x]})),n=W&&W.__setModuleDefault||(Object.create?(function(l,f){Object.defineProperty(l,"default",{enumerable:!0,value:f})}):function(l,f){l.default=f}),s=W&&W.__importStar||function(l){if(l&&l.__esModule)return l;var f={};if(l!=null)for(var x in l)x!=="default"&&Object.prototype.hasOwnProperty.call(l,x)&&e(f,l,x);return n(f,l),f};Object.defineProperty(W,"__esModule",{value:!0}),W.computeLineInformation=W.DiffMethod=W.DiffType=void 0;const r=s(tr()),i=r;var t;(function(l){l[l.DEFAULT=0]="DEFAULT",l[l.ADDED=1]="ADDED",l[l.REMOVED=2]="REMOVED",l[l.CHANGED=3]="CHANGED"})(t||(W.DiffType=t={}));var a;(function(l){l.CHARS="diffChars",l.WORDS="diffWords",l.WORDS_WITH_SPACE="diffWordsWithSpace",l.LINES="diffLines",l.TRIMMED_LINES="diffTrimmedLines",l.SENTENCES="diffSentences",l.CSS="diffCss",l.JSON="diffJson"})(a||(W.DiffMethod=a={}));const d=l=>l===""?[]:l.replace(/\n$/,"").split(`
12
+ `),o=(l,f,x=a.CHARS)=>{const m=i[x](l,f),y={left:[],right:[]};return m.forEach(({added:w,removed:v,value:u})=>{const g={};return w&&(g.type=t.ADDED,g.value=u,y.right.push(g)),v&&(g.type=t.REMOVED,g.value=u,y.left.push(g)),!v&&!w&&(g.type=t.DEFAULT,g.value=u,y.right.push(g),y.left.push(g)),g}),y},c=(l,f,x=!1,m=a.CHARS,y=0,w=[])=>{let v=[];typeof l=="string"&&typeof f=="string"?v=r.diffLines(l.trimRight(),f.trimRight(),{newlineIsToken:!1,ignoreWhitespace:!1,ignoreCase:!1}):v=r.diffJson(l,f);let u=y,g=y,N=[],L=0;const T=[],_=[],j=(D,P,k,h,b)=>d(D).map((C,A)=>{const E={},M={};if(!(_.includes(`${P}-${A}`)||b&&A!==0)){if(k||h){let F=!0;if(h){g+=1,E.lineNumber=g,E.type=t.REMOVED,E.value=C||" ";const B=v[P+1];if(B&&B.added){const q=d(B.value)[A];if(q){const z=j(q,P,!0,!1,!0),{value:U,lineNumber:Y,type:Z}=z[0].right;if(_.push(`${P+1}-${A}`),M.lineNumber=Y,E.value===U)F=!1,M.type=0,E.type=0,M.value=U;else if(M.type=Z,x)M.value=U;else{const re=o(C,U,m);M.value=re.right,E.value=re.left}}}}else u+=1,M.lineNumber=u,M.type=t.ADDED,M.value=C;F&&!b&&(T.includes(L)||T.push(L))}else g+=1,u+=1,E.lineNumber=g,E.type=t.DEFAULT,E.value=C,M.lineNumber=u,M.type=t.DEFAULT,M.value=C;return(w?.includes(`L-${E.lineNumber}`)||w?.includes(`R-${M.lineNumber}`)&&!T.includes(L))&&T.push(L),b||(L+=1),{right:M,left:E}}}).filter(Boolean);return v.forEach(({added:D,removed:P,value:k},h)=>{N=[...N,...j(k,h,D,P)]}),{lineInformation:N,diffLines:T}};return W.computeLineInformation=c,W}var ie={};function rr(e){if(e.sheet)return e.sheet;for(var n=0;n<document.styleSheets.length;n++)if(document.styleSheets[n].ownerNode===e)return document.styleSheets[n]}function ir(e){var n=document.createElement("style");return n.setAttribute("data-emotion",e.key),e.nonce!==void 0&&n.setAttribute("nonce",e.nonce),n.appendChild(document.createTextNode("")),n.setAttribute("data-s",""),n}var sr=(function(){function e(s){var r=this;this._insertTag=function(i){var t;r.tags.length===0?r.insertionPoint?t=r.insertionPoint.nextSibling:r.prepend?t=r.container.firstChild:t=r.before:t=r.tags[r.tags.length-1].nextSibling,r.container.insertBefore(i,t),r.tags.push(i)},this.isSpeedy=s.speedy===void 0?!0:s.speedy,this.tags=[],this.ctr=0,this.nonce=s.nonce,this.key=s.key,this.container=s.container,this.prepend=s.prepend,this.insertionPoint=s.insertionPoint,this.before=null}var n=e.prototype;return n.hydrate=function(r){r.forEach(this._insertTag)},n.insert=function(r){this.ctr%(this.isSpeedy?65e3:1)===0&&this._insertTag(ir(this));var i=this.tags[this.tags.length-1];if(this.isSpeedy){var t=rr(i);try{t.insertRule(r,t.cssRules.length)}catch{}}else i.appendChild(document.createTextNode(r));this.ctr++},n.flush=function(){this.tags.forEach(function(r){var i;return(i=r.parentNode)==null?void 0:i.removeChild(r)}),this.tags=[],this.ctr=0},e})(),H="-ms-",Fe="-moz-",R="-webkit-",rn="comm",rt="rule",it="decl",ar="@import",sn="@keyframes",or="@layer",lr=Math.abs,Ie=String.fromCharCode,cr=Object.assign;function dr(e,n){return V(e,0)^45?(((n<<2^V(e,0))<<2^V(e,1))<<2^V(e,2))<<2^V(e,3):0}function an(e){return e.trim()}function fr(e,n){return(e=n.exec(e))?e[0]:e}function I(e,n,s){return e.replace(n,s)}function Ze(e,n){return e.indexOf(n)}function V(e,n){return e.charCodeAt(n)|0}function Ce(e,n,s){return e.slice(n,s)}function Q(e){return e.length}function st(e){return e.length}function Ee(e,n){return n.push(e),e}function ur(e,n){return e.map(n).join("")}var qe=1,ge=1,on=0,J=0,G=0,xe="";function ze(e,n,s,r,i,t,a){return{value:e,root:n,parent:s,type:r,props:i,children:t,line:qe,column:ge,length:a,return:""}}function we(e,n){return cr(ze("",null,null,"",null,null,0),e,{length:-e.length},n)}function hr(){return G}function pr(){return G=J>0?V(xe,--J):0,ge--,G===10&&(ge=1,qe--),G}function X(){return G=J<on?V(xe,J++):0,ge++,G===10&&(ge=1,qe++),G}function ee(){return V(xe,J)}function Me(){return J}function Ne(e,n){return Ce(xe,e,n)}function Se(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function ln(e){return qe=ge=1,on=Q(xe=e),J=0,[]}function cn(e){return xe="",e}function ke(e){return an(Ne(J-1,Qe(e===91?e+2:e===40?e+1:e)))}function mr(e){for(;(G=ee())&&G<33;)X();return Se(e)>2||Se(G)>3?"":" "}function gr(e,n){for(;--n&&X()&&!(G<48||G>102||G>57&&G<65||G>70&&G<97););return Ne(e,Me()+(n<6&&ee()==32&&X()==32))}function Qe(e){for(;X();)switch(G){case e:return J;case 34:case 39:e!==34&&e!==39&&Qe(G);break;case 40:e===41&&Qe(e);break;case 92:X();break}return J}function xr(e,n){for(;X()&&e+G!==57;)if(e+G===84&&ee()===47)break;return"/*"+Ne(n,J-1)+"*"+Ie(e===47?e:X())}function yr(e){for(;!Se(ee());)X();return Ne(e,J)}function vr(e){return cn(Be("",null,null,null,[""],e=ln(e),0,[0],e))}function Be(e,n,s,r,i,t,a,d,o){for(var c=0,l=0,f=a,x=0,m=0,y=0,w=1,v=1,u=1,g=0,N="",L=i,T=t,_=r,j=N;v;)switch(y=g,g=X()){case 40:if(y!=108&&V(j,f-1)==58){Ze(j+=I(ke(g),"&","&\f"),"&\f")!=-1&&(u=-1);break}case 34:case 39:case 91:j+=ke(g);break;case 9:case 10:case 13:case 32:j+=mr(y);break;case 92:j+=gr(Me()-1,7);continue;case 47:switch(ee()){case 42:case 47:Ee(br(xr(X(),Me()),n,s),o);break;default:j+="/"}break;case 123*w:d[c++]=Q(j)*u;case 125*w:case 59:case 0:switch(g){case 0:case 125:v=0;case 59+l:u==-1&&(j=I(j,/\f/g,"")),m>0&&Q(j)-f&&Ee(m>32?$t(j+";",r,s,f-1):$t(I(j," ","")+";",r,s,f-2),o);break;case 59:j+=";";default:if(Ee(_=zt(j,n,s,c,l,i,d,N,L=[],T=[],f),t),g===123)if(l===0)Be(j,n,_,_,L,t,f,d,T);else switch(x===99&&V(j,3)===110?100:x){case 100:case 108:case 109:case 115:Be(e,_,_,r&&Ee(zt(e,_,_,0,0,i,d,N,i,L=[],f),T),i,T,f,d,r?L:T);break;default:Be(j,_,_,_,[""],T,0,d,T)}}c=l=m=0,w=u=1,N=j="",f=a;break;case 58:f=1+Q(j),m=y;default:if(w<1){if(g==123)--w;else if(g==125&&w++==0&&pr()==125)continue}switch(j+=Ie(g),g*w){case 38:u=l>0?1:(j+="\f",-1);break;case 44:d[c++]=(Q(j)-1)*u,u=1;break;case 64:ee()===45&&(j+=ke(X())),x=ee(),l=f=Q(N=j+=yr(Me())),g++;break;case 45:y===45&&Q(j)==2&&(w=0)}}return t}function zt(e,n,s,r,i,t,a,d,o,c,l){for(var f=i-1,x=i===0?t:[""],m=st(x),y=0,w=0,v=0;y<r;++y)for(var u=0,g=Ce(e,f+1,f=lr(w=a[y])),N=e;u<m;++u)(N=an(w>0?x[u]+" "+g:I(g,/&\f/g,x[u])))&&(o[v++]=N);return ze(e,n,s,i===0?rt:d,o,c,l)}function br(e,n,s){return ze(e,n,s,rn,Ie(hr()),Ce(e,2,-2),0)}function $t(e,n,s,r){return ze(e,n,s,it,Ce(e,0,r),Ce(e,r+1,-1),r)}function me(e,n){for(var s="",r=st(e),i=0;i<r;i++)s+=n(e[i],i,e,n)||"";return s}function wr(e,n,s,r){switch(e.type){case or:if(e.children.length)break;case ar:case it:return e.return=e.return||e.value;case rn:return"";case sn:return e.return=e.value+"{"+me(e.children,r)+"}";case rt:e.value=e.props.join(",")}return Q(s=me(e.children,r))?e.return=e.value+"{"+s+"}":""}function jr(e){var n=st(e);return function(s,r,i,t){for(var a="",d=0;d<n;d++)a+=e[d](s,r,i,t)||"";return a}}function Cr(e){return function(n){n.root||(n=n.return)&&e(n)}}function Sr(e){var n=Object.create(null);return function(s){return n[s]===void 0&&(n[s]=e(s)),n[s]}}var Nr=function(n,s,r){for(var i=0,t=0;i=t,t=ee(),i===38&&t===12&&(s[r]=1),!Se(t);)X();return Ne(n,J)},Lr=function(n,s){var r=-1,i=44;do switch(Se(i)){case 0:i===38&&ee()===12&&(s[r]=1),n[r]+=Nr(J-1,s,r);break;case 2:n[r]+=ke(i);break;case 4:if(i===44){n[++r]=ee()===58?"&\f":"",s[r]=n[r].length;break}default:n[r]+=Ie(i)}while(i=X());return n},_r=function(n,s){return cn(Lr(ln(n),s))},Gt=new WeakMap,Dr=function(n){if(!(n.type!=="rule"||!n.parent||n.length<1)){for(var s=n.value,r=n.parent,i=n.column===r.column&&n.line===r.line;r.type!=="rule";)if(r=r.parent,!r)return;if(!(n.props.length===1&&s.charCodeAt(0)!==58&&!Gt.get(r))&&!i){Gt.set(n,!0);for(var t=[],a=_r(s,t),d=r.props,o=0,c=0;o<a.length;o++)for(var l=0;l<d.length;l++,c++)n.props[c]=t[o]?a[o].replace(/&\f/g,d[l]):d[l]+" "+a[o]}}},Ar=function(n){if(n.type==="decl"){var s=n.value;s.charCodeAt(0)===108&&s.charCodeAt(2)===98&&(n.return="",n.value="")}};function dn(e,n){switch(dr(e,n)){case 5103:return R+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return R+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return R+e+Fe+e+H+e+e;case 6828:case 4268:return R+e+H+e+e;case 6165:return R+e+H+"flex-"+e+e;case 5187:return R+e+I(e,/(\w+).+(:[^]+)/,R+"box-$1$2"+H+"flex-$1$2")+e;case 5443:return R+e+H+"flex-item-"+I(e,/flex-|-self/,"")+e;case 4675:return R+e+H+"flex-line-pack"+I(e,/align-content|flex-|-self/,"")+e;case 5548:return R+e+H+I(e,"shrink","negative")+e;case 5292:return R+e+H+I(e,"basis","preferred-size")+e;case 6060:return R+"box-"+I(e,"-grow","")+R+e+H+I(e,"grow","positive")+e;case 4554:return R+I(e,/([^-])(transform)/g,"$1"+R+"$2")+e;case 6187:return I(I(I(e,/(zoom-|grab)/,R+"$1"),/(image-set)/,R+"$1"),e,"")+e;case 5495:case 3959:return I(e,/(image-set\([^]*)/,R+"$1$`$1");case 4968:return I(I(e,/(.+:)(flex-)?(.*)/,R+"box-pack:$3"+H+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+R+e+e;case 4095:case 3583:case 4068:case 2532:return I(e,/(.+)-inline(.+)/,R+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(Q(e)-1-n>6)switch(V(e,n+1)){case 109:if(V(e,n+4)!==45)break;case 102:return I(e,/(.+:)(.+)-([^]+)/,"$1"+R+"$2-$3$1"+Fe+(V(e,n+3)==108?"$3":"$2-$3"))+e;case 115:return~Ze(e,"stretch")?dn(I(e,"stretch","fill-available"),n)+e:e}break;case 4949:if(V(e,n+1)!==115)break;case 6444:switch(V(e,Q(e)-3-(~Ze(e,"!important")&&10))){case 107:return I(e,":",":"+R)+e;case 101:return I(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+R+(V(e,14)===45?"inline-":"")+"box$3$1"+R+"$2$3$1"+H+"$2box$3")+e}break;case 5936:switch(V(e,n+11)){case 114:return R+e+H+I(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return R+e+H+I(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return R+e+H+I(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return R+e+H+e+e}return e}var Tr=function(n,s,r,i){if(n.length>-1&&!n.return)switch(n.type){case it:n.return=dn(n.value,n.length);break;case sn:return me([we(n,{value:I(n.value,"@","@"+R)})],i);case rt:if(n.length)return ur(n.props,function(t){switch(fr(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return me([we(n,{props:[I(t,/:(read-\w+)/,":"+Fe+"$1")]})],i);case"::placeholder":return me([we(n,{props:[I(t,/:(plac\w+)/,":"+R+"input-$1")]}),we(n,{props:[I(t,/:(plac\w+)/,":"+Fe+"$1")]}),we(n,{props:[I(t,/:(plac\w+)/,H+"input-$1")]})],i)}return""})}},Pr=[Tr],Er=function(n){var s=n.key;if(s==="css"){var r=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(r,function(w){var v=w.getAttribute("data-emotion");v.indexOf(" ")!==-1&&(document.head.appendChild(w),w.setAttribute("data-s",""))})}var i=n.stylisPlugins||Pr,t={},a,d=[];a=n.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+s+' "]'),function(w){for(var v=w.getAttribute("data-emotion").split(" "),u=1;u<v.length;u++)t[v[u]]=!0;d.push(w)});var o,c=[Dr,Ar];{var l,f=[wr,Cr(function(w){l.insert(w)})],x=jr(c.concat(i,f)),m=function(v){return me(vr(v),x)};o=function(v,u,g,N){l=g,m(v?v+"{"+u.styles+"}":u.styles),N&&(y.inserted[u.name]=!0)}}var y={key:s,sheet:new sr({key:s,container:a,nonce:n.nonce,speedy:n.speedy,prepend:n.prepend,insertionPoint:n.insertionPoint}),nonce:n.nonce,inserted:t,registered:{},insert:o};return y.sheet.hydrate(d),y};function Mr(e){for(var n=0,s,r=0,i=e.length;i>=4;++r,i-=4)s=e.charCodeAt(r)&255|(e.charCodeAt(++r)&255)<<8|(e.charCodeAt(++r)&255)<<16|(e.charCodeAt(++r)&255)<<24,s=(s&65535)*1540483477+((s>>>16)*59797<<16),s^=s>>>24,n=(s&65535)*1540483477+((s>>>16)*59797<<16)^(n&65535)*1540483477+((n>>>16)*59797<<16);switch(i){case 3:n^=(e.charCodeAt(r+2)&255)<<16;case 2:n^=(e.charCodeAt(r+1)&255)<<8;case 1:n^=e.charCodeAt(r)&255,n=(n&65535)*1540483477+((n>>>16)*59797<<16)}return n^=n>>>13,n=(n&65535)*1540483477+((n>>>16)*59797<<16),((n^n>>>15)>>>0).toString(36)}var kr={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},Br=/[A-Z]|^ms/g,Or=/_EMO_([^_]+?)_([^]*?)_EMO_/g,fn=function(n){return n.charCodeAt(1)===45},Vt=function(n){return n!=null&&typeof n!="boolean"},Xe=Sr(function(e){return fn(e)?e:e.replace(Br,"-$&").toLowerCase()}),Ht=function(n,s){switch(n){case"animation":case"animationName":if(typeof s=="string")return s.replace(Or,function(r,i,t){return se={name:i,styles:t,next:se},i})}return kr[n]!==1&&!fn(n)&&typeof s=="number"&&s!==0?s+"px":s};function Re(e,n,s){if(s==null)return"";var r=s;if(r.__emotion_styles!==void 0)return r;switch(typeof s){case"boolean":return"";case"object":{var i=s;if(i.anim===1)return se={name:i.name,styles:i.styles,next:se},i.name;var t=s;if(t.styles!==void 0){var a=t.next;if(a!==void 0)for(;a!==void 0;)se={name:a.name,styles:a.styles,next:se},a=a.next;var d=t.styles+";";return d}return Fr(e,n,s)}}var o=s;if(n==null)return o;var c=n[o];return c!==void 0?c:o}function Fr(e,n,s){var r="";if(Array.isArray(s))for(var i=0;i<s.length;i++)r+=Re(e,n,s[i])+";";else for(var t in s){var a=s[t];if(typeof a!="object"){var d=a;n!=null&&n[d]!==void 0?r+=t+"{"+n[d]+"}":Vt(d)&&(r+=Xe(t)+":"+Ht(t,d)+";")}else if(Array.isArray(a)&&typeof a[0]=="string"&&(n==null||n[a[0]]===void 0))for(var o=0;o<a.length;o++)Vt(a[o])&&(r+=Xe(t)+":"+Ht(t,a[o])+";");else{var c=Re(e,n,a);switch(t){case"animation":case"animationName":{r+=Xe(t)+":"+c+";";break}default:r+=t+"{"+c+"}"}}}return r}var Wt=/label:\s*([^\s;{]+)\s*(;|$)/g,se;function Ke(e,n,s){if(e.length===1&&typeof e[0]=="object"&&e[0]!==null&&e[0].styles!==void 0)return e[0];var r=!0,i="";se=void 0;var t=e[0];if(t==null||t.raw===void 0)r=!1,i+=Re(s,n,t);else{var a=t;i+=a[0]}for(var d=1;d<e.length;d++)if(i+=Re(s,n,e[d]),r){var o=t;i+=o[d]}Wt.lastIndex=0;for(var c="",l;(l=Wt.exec(i))!==null;)c+="-"+l[1];var f=Mr(i)+c;return{name:f,styles:i,next:se}}function un(e,n,s){var r="";return s.split(" ").forEach(function(i){e[i]!==void 0?n.push(e[i]+";"):i&&(r+=i+" ")}),r}var Rr=function(n,s,r){var i=n.key+"-"+s.name;n.registered[i]===void 0&&(n.registered[i]=s.styles)},Ir=function(n,s,r){Rr(n,s);var i=n.key+"-"+s.name;if(n.inserted[s.name]===void 0){var t=s;do n.insert(s===t?"."+i:"",t,n.sheet,!0),t=t.next;while(t!==void 0)}};function Ut(e,n){if(e.inserted[n.name]===void 0)return e.insert("",n,e.sheet,!0)}function Jt(e,n,s){var r=[],i=un(e,r,s);return r.length<2?s:i+n(r)}var qr=function(n){var s=Er(n);s.sheet.speedy=function(d){this.isSpeedy=d},s.compat=!0;var r=function(){for(var o=arguments.length,c=new Array(o),l=0;l<o;l++)c[l]=arguments[l];var f=Ke(c,s.registered,void 0);return Ir(s,f),s.key+"-"+f.name},i=function(){for(var o=arguments.length,c=new Array(o),l=0;l<o;l++)c[l]=arguments[l];var f=Ke(c,s.registered),x="animation-"+f.name;return Ut(s,{name:f.name,styles:"@keyframes "+x+"{"+f.styles+"}"}),x},t=function(){for(var o=arguments.length,c=new Array(o),l=0;l<o;l++)c[l]=arguments[l];var f=Ke(c,s.registered);Ut(s,f)},a=function(){for(var o=arguments.length,c=new Array(o),l=0;l<o;l++)c[l]=arguments[l];return Jt(s.registered,r,zr(c))};return{css:r,cx:a,injectGlobal:t,keyframes:i,hydrate:function(o){o.forEach(function(c){s.inserted[c]=!0})},flush:function(){s.registered={},s.inserted={},s.sheet.flush()},sheet:s.sheet,cache:s,getRegisteredStyles:un.bind(null,s.registered),merge:Jt.bind(null,s.registered,r)}},zr=function e(n){for(var s="",r=0;r<n.length;r++){var i=n[r];if(i!=null){var t=void 0;switch(typeof i){case"boolean":break;case"object":{if(Array.isArray(i))t=e(i);else{t="";for(var a in i)i[a]&&a&&(t&&(t+=" "),t+=a)}break}default:t=i}t&&(s&&(s+=" "),s+=t)}}return s};const $r=Object.freeze(Object.defineProperty({__proto__:null,default:qr},Symbol.toStringTag,{value:"Module"})),Gr=en($r);var Yt;function Vr(){if(Yt)return ie;Yt=1;var e=ie&&ie.__rest||function(r,i){var t={};for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&i.indexOf(a)<0&&(t[a]=r[a]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var d=0,a=Object.getOwnPropertySymbols(r);d<a.length;d++)i.indexOf(a[d])<0&&Object.prototype.propertyIsEnumerable.call(r,a[d])&&(t[a[d]]=r[a[d]]);return t},n=ie&&ie.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(ie,"__esModule",{value:!0});const s=n(Gr);return ie.default=(r,i=!1,t="")=>{const{variables:a={}}=r,d=e(r,["variables"]),o={light:Object.assign({diffViewerBackground:"#fff",diffViewerColor:"#212529",addedBackground:"#e6ffed",addedColor:"#24292e",removedBackground:"#ffeef0",removedColor:"#24292e",changedBackground:"#fffbdd",wordAddedBackground:"#acf2bd",wordRemovedBackground:"#fdb8c0",addedGutterBackground:"#cdffd8",removedGutterBackground:"#ffdce0",gutterBackground:"#f7f7f7",gutterBackgroundDark:"#f3f1f1",highlightBackground:"#fffbdd",highlightGutterBackground:"#fff5b1",codeFoldGutterBackground:"#dbedff",codeFoldBackground:"#f1f8ff",emptyLineBackground:"#fafbfc",gutterColor:"#212529",addedGutterColor:"#212529",removedGutterColor:"#212529",codeFoldContentColor:"#212529",diffViewerTitleBackground:"#fafbfc",diffViewerTitleColor:"#212529",diffViewerTitleBorderColor:"#eee"},a.light||{}),dark:Object.assign({diffViewerBackground:"#2e303c",diffViewerColor:"#FFF",addedBackground:"#044B53",addedColor:"white",removedBackground:"#632F34",removedColor:"white",changedBackground:"#3e302c",wordAddedBackground:"#055d67",wordRemovedBackground:"#7d383f",addedGutterBackground:"#034148",removedGutterBackground:"#632b30",gutterBackground:"#2c2f3a",gutterBackgroundDark:"#262933",highlightBackground:"#2a3967",highlightGutterBackground:"#2d4077",codeFoldGutterBackground:"#21232b",codeFoldBackground:"#262831",emptyLineBackground:"#363946",gutterColor:"#666c87",addedGutterColor:"#8c8c8c",removedGutterColor:"#8c8c8c",codeFoldContentColor:"#656a8b",diffViewerTitleBackground:"#2f323e",diffViewerTitleColor:"#555a7b",diffViewerTitleBorderColor:"#353846"},a.dark||{})},c=i?o.dark:o.light,{css:l,cx:f}=(0,s.default)({key:"react-diff",nonce:t}),x=l({width:"100%",label:"content"}),m=l({[`.${x}`]:{width:"50%"},label:"split-view"}),y=l({width:"100%",background:c.diffViewerBackground,pre:{margin:0,whiteSpace:"pre-wrap",lineHeight:"25px"},label:"diff-container",borderCollapse:"collapse"}),w=l({color:c.codeFoldContentColor,label:"code-fold-content"}),v=l({color:c.diffViewerColor,label:"content-text"}),u=l({background:c.diffViewerTitleBackground,padding:10,borderBottom:`1px solid ${c.diffViewerTitleBorderColor}`,label:"title-block",":last-child":{borderLeft:`1px solid ${c.diffViewerTitleBorderColor}`},[`.${v}`]:{color:c.diffViewerTitleColor}}),g=l({color:c.gutterColor,label:"line-number"}),N=l({background:c.removedBackground,color:c.removedColor,pre:{color:c.removedColor},[`.${g}`]:{color:c.removedGutterColor},label:"diff-removed"}),L=l({background:c.addedBackground,color:c.addedColor,pre:{color:c.addedColor},[`.${g}`]:{color:c.addedGutterColor},label:"diff-added"}),T=l({background:c.changedBackground,[`.${g}`]:{color:c.gutterColor},label:"diff-changed"}),_=l({padding:2,display:"inline-flex",borderRadius:4,wordBreak:"break-all",label:"word-diff"}),j=l({background:c.wordAddedBackground,label:"word-added"}),D=l({background:c.wordRemovedBackground,label:"word-removed"}),P=l({backgroundColor:c.codeFoldGutterBackground,label:"code-fold-gutter"}),k=l({backgroundColor:c.codeFoldBackground,height:40,fontSize:14,fontWeight:700,label:"code-fold",a:{textDecoration:"underline !important",cursor:"pointer",pre:{display:"inline"}}}),h=l({backgroundColor:c.emptyLineBackground,label:"empty-line"}),b=l({width:25,paddingLeft:10,paddingRight:10,userSelect:"none",label:"marker",[`&.${L}`]:{pre:{color:c.addedColor}},[`&.${N}`]:{pre:{color:c.removedColor}}}),S=l({background:c.highlightBackground,label:"highlighted-line",[`.${j}, .${D}`]:{backgroundColor:"initial"}}),C=l({label:"highlighted-gutter"}),A=l({userSelect:"none",minWidth:50,padding:"0 10px",whiteSpace:"nowrap",label:"gutter",textAlign:"right",background:c.gutterBackground,"&:hover":{cursor:"pointer",background:c.gutterBackgroundDark,pre:{opacity:1}},pre:{opacity:.5},[`&.${L}`]:{background:c.addedGutterBackground},[`&.${N}`]:{background:c.removedGutterBackground},[`&.${C}`]:{background:c.highlightGutterBackground,"&:hover":{background:c.highlightGutterBackground}}}),E=l({"&:hover":{background:c.gutterBackground,cursor:"initial"},label:"empty-gutter"}),M=l({verticalAlign:"baseline",label:"line"}),F={diffContainer:y,diffRemoved:N,diffAdded:L,diffChanged:T,splitView:m,marker:b,highlightedGutter:C,highlightedLine:S,gutter:A,line:M,wordDiff:_,wordAdded:j,wordRemoved:D,codeFoldGutter:P,codeFold:k,emptyGutter:E,emptyLine:h,lineNumber:g,contentText:v,content:x,codeFoldContent:w,titleBlock:u},B=Object.keys(d).reduce((q,z)=>Object.assign(Object.assign({},q),{[z]:l(d[z])}),{});return Object.keys(F).reduce((q,z)=>Object.assign(Object.assign({},q),{[z]:B[z]?f(F[z],B[z]):F[z]}),{})},ie}var je={},Xt;function Hr(){if(Xt)return je;Xt=1,Object.defineProperty(je,"__esModule",{value:!0}),je.computeHiddenBlocks=void 0;function e(n,s,r){let i=0,t,a={},d=[];return n.forEach((o,c)=>{const l=s.some(f=>f>=c-r&&f<=c+r);!l&&t==null?(t={index:i,startLine:c,endLine:c,lines:1},d.push(t),a[c]=t.index,i++):l?t=void 0:(t.endLine=c,t.lines++,a[c]=t.index)}),{lineBlocks:a,blocks:d}}return je.computeHiddenBlocks=e,je}var Kt=Number.isNaN||function(n){return typeof n=="number"&&n!==n};function Wr(e,n){return!!(e===n||Kt(e)&&Kt(n))}function Ur(e,n){if(e.length!==n.length)return!1;for(var s=0;s<e.length;s++)if(!Wr(e[s],n[s]))return!1;return!0}function Jr(e,n){n===void 0&&(n=Ur);var s=null;function r(){for(var i=[],t=0;t<arguments.length;t++)i[t]=arguments[t];if(s&&s.lastThis===this&&n(i,s.lastArgs))return s.lastResult;var a=e.apply(this,i);return s={lastResult:a,lastArgs:i,lastThis:this},a}return r.clear=function(){s=null},r}const Yr=Object.freeze(Object.defineProperty({__proto__:null,default:Jr},Symbol.toStringTag,{value:"Module"})),Xr=en(Yr);var Zt;function Kr(){return Zt||(Zt=1,(function(e){var n=K&&K.__createBinding||(Object.create?(function(w,v,u,g){g===void 0&&(g=u);var N=Object.getOwnPropertyDescriptor(v,u);(!N||("get"in N?!v.__esModule:N.writable||N.configurable))&&(N={enumerable:!0,get:function(){return v[u]}}),Object.defineProperty(w,g,N)}):(function(w,v,u,g){g===void 0&&(g=u),w[g]=v[u]})),s=K&&K.__setModuleDefault||(Object.create?(function(w,v){Object.defineProperty(w,"default",{enumerable:!0,value:v})}):function(w,v){w.default=v}),r=K&&K.__importStar||function(w){if(w&&w.__esModule)return w;var v={};if(w!=null)for(var u in w)u!=="default"&&Object.prototype.hasOwnProperty.call(w,u)&&n(v,w,u);return s(v,w),v},i=K&&K.__importDefault||function(w){return w&&w.__esModule?w:{default:w}};Object.defineProperty(e,"__esModule",{value:!0}),e.DiffMethod=e.LineNumberPrefix=void 0;const t=wn(),a=r(jn()),d=i(zn()),o=nr();Object.defineProperty(e,"DiffMethod",{enumerable:!0,get:function(){return o.DiffMethod}});const c=i(Vr()),l=Hr(),f=Xr,x=f.default||f;var m;(function(w){w.LEFT="L",w.RIGHT="R"})(m||(e.LineNumberPrefix=m={}));class y extends a.Component{constructor(v){super(v),this.resetCodeBlocks=()=>this.state.expandedBlocks.length>0?(this.setState({expandedBlocks:[]}),!0):!1,this.onBlockExpand=u=>{const g=this.state.expandedBlocks.slice();g.push(u),this.setState({expandedBlocks:g})},this.computeStyles=x(c.default),this.onLineNumberClickProxy=u=>this.props.onLineNumberClick?g=>this.props.onLineNumberClick(u,g):()=>{},this.renderWordDiff=(u,g)=>u.map((N,L)=>(0,t.jsx)("span",{className:(0,d.default)(this.styles.wordDiff,{[this.styles.wordAdded]:N.type===o.DiffType.ADDED,[this.styles.wordRemoved]:N.type===o.DiffType.REMOVED}),children:g?g(N.value):N.value},L)),this.renderLine=(u,g,N,L,T,_)=>{const j=`${N}-${u}`,D=`${_}-${T}`,P=this.props.highlightLines.includes(j)||this.props.highlightLines.includes(D),k=g===o.DiffType.ADDED,h=g===o.DiffType.REMOVED,b=g===o.DiffType.CHANGED;let S;return Array.isArray(L)?S=this.renderWordDiff(L,this.props.renderContent):this.props.renderContent?S=this.props.renderContent(L):S=L,(0,t.jsxs)(a.Fragment,{children:[!this.props.hideLineNumbers&&(0,t.jsx)("td",{onClick:u&&this.onLineNumberClickProxy(j),className:(0,d.default)(this.styles.gutter,{[this.styles.emptyGutter]:!u,[this.styles.diffAdded]:k,[this.styles.diffRemoved]:h,[this.styles.diffChanged]:b,[this.styles.highlightedGutter]:P}),children:(0,t.jsx)("pre",{className:this.styles.lineNumber,children:u})}),!this.props.splitView&&!this.props.hideLineNumbers&&(0,t.jsx)("td",{onClick:T&&this.onLineNumberClickProxy(D),className:(0,d.default)(this.styles.gutter,{[this.styles.emptyGutter]:!T,[this.styles.diffAdded]:k,[this.styles.diffRemoved]:h,[this.styles.diffChanged]:b,[this.styles.highlightedGutter]:P}),children:(0,t.jsx)("pre",{className:this.styles.lineNumber,children:T})}),this.props.renderGutter?this.props.renderGutter({lineNumber:u,type:g,prefix:N,value:L,additionalLineNumber:T,additionalPrefix:_,styles:this.styles}):null,!this.props.hideMarkers&&(0,t.jsx)("td",{className:(0,d.default)(this.styles.marker,{[this.styles.emptyLine]:!S,[this.styles.diffAdded]:k,[this.styles.diffRemoved]:h,[this.styles.diffChanged]:b,[this.styles.highlightedLine]:P}),children:(0,t.jsxs)("pre",{children:[k&&"+",h&&"-"]})}),(0,t.jsx)("td",{className:(0,d.default)(this.styles.content,{[this.styles.emptyLine]:!S,[this.styles.diffAdded]:k,[this.styles.diffRemoved]:h,[this.styles.diffChanged]:b,[this.styles.highlightedLine]:P}),children:(0,t.jsx)("pre",{className:this.styles.contentText,children:S})})]})},this.renderSplitView=({left:u,right:g},N)=>(0,t.jsxs)("tr",{className:this.styles.line,children:[this.renderLine(u.lineNumber,u.type,m.LEFT,u.value),this.renderLine(g.lineNumber,g.type,m.RIGHT,g.value)]},N),this.renderInlineView=({left:u,right:g},N)=>{let L;return u.type===o.DiffType.REMOVED&&g.type===o.DiffType.ADDED?(0,t.jsxs)(a.Fragment,{children:[(0,t.jsx)("tr",{className:this.styles.line,children:this.renderLine(u.lineNumber,u.type,m.LEFT,u.value,null)}),(0,t.jsx)("tr",{className:this.styles.line,children:this.renderLine(null,g.type,m.RIGHT,g.value,g.lineNumber)})]},N):(u.type===o.DiffType.REMOVED&&(L=this.renderLine(u.lineNumber,u.type,m.LEFT,u.value,null)),u.type===o.DiffType.DEFAULT&&(L=this.renderLine(u.lineNumber,u.type,m.LEFT,u.value,g.lineNumber,m.RIGHT)),g.type===o.DiffType.ADDED&&(L=this.renderLine(null,g.type,m.RIGHT,g.value,g.lineNumber)),(0,t.jsx)("tr",{className:this.styles.line,children:L},N))},this.onBlockClickProxy=u=>()=>this.onBlockExpand(u),this.renderSkippedLineIndicator=(u,g,N,L)=>{const{hideLineNumbers:T,splitView:_}=this.props,j=this.props.codeFoldMessageRenderer?this.props.codeFoldMessageRenderer(u,N,L):(0,t.jsxs)("pre",{className:this.styles.codeFoldContent,children:["Expand ",u," lines ..."]}),D=(0,t.jsx)("td",{children:(0,t.jsx)("a",{onClick:this.onBlockClickProxy(g),tabIndex:0,children:j})}),P=!_&&!T;return(0,t.jsxs)("tr",{className:this.styles.codeFold,children:[!T&&(0,t.jsx)("td",{className:this.styles.codeFoldGutter}),this.props.renderGutter?(0,t.jsx)("td",{className:this.styles.codeFoldGutter}):null,(0,t.jsx)("td",{className:(0,d.default)({[this.styles.codeFoldGutter]:P})}),P?(0,t.jsxs)(a.Fragment,{children:[(0,t.jsx)("td",{}),D]}):(0,t.jsxs)(a.Fragment,{children:[D,this.props.renderGutter?(0,t.jsx)("td",{}):null,(0,t.jsx)("td",{})]}),(0,t.jsx)("td",{}),(0,t.jsx)("td",{})]},`${N}-${L}`)},this.renderDiff=()=>{const{oldValue:u,newValue:g,splitView:N,disableWordDiff:L,compareMethod:T,linesOffset:_}=this.props,{lineInformation:j,diffLines:D}=(0,o.computeLineInformation)(u,g,L,T,_,this.props.alwaysShowLines),P=this.props.extraLinesSurroundingDiff<0?0:Math.round(this.props.extraLinesSurroundingDiff),{lineBlocks:k,blocks:h}=(0,l.computeHiddenBlocks)(j,D,P);return j.map((b,S)=>{if(this.props.showDiffOnly){const A=k[S];if(A!==void 0){const E=h[A].endLine===S;if(!this.state.expandedBlocks.includes(A)&&E)return(0,t.jsx)(a.Fragment,{children:this.renderSkippedLineIndicator(h[A].lines,A,b.left.lineNumber,b.right.lineNumber)},S);if(!this.state.expandedBlocks.includes(A))return null}}return N?this.renderSplitView(b,S):this.renderInlineView(b,S)})},this.render=()=>{const{oldValue:u,newValue:g,useDarkTheme:N,leftTitle:L,rightTitle:T,splitView:_,hideLineNumbers:j,hideMarkers:D,nonce:P}=this.props;if(this.props.compareMethod!==o.DiffMethod.JSON&&(typeof u!="string"||typeof g!="string"))throw Error('"oldValue" and "newValue" should be strings');this.styles=this.computeStyles(this.props.styles,N,P);const k=this.renderDiff();let h=j?2:3,b=j?2:4;D&&(h-=1,b-=1);const S=this.props.renderGutter?1:0,C=(L||T)&&(0,t.jsxs)("tr",{children:[(0,t.jsx)("td",{colSpan:(_?h:b)+S,className:this.styles.titleBlock,children:(0,t.jsx)("pre",{className:this.styles.contentText,children:L})}),_&&(0,t.jsx)("td",{colSpan:h+S,className:this.styles.titleBlock,children:(0,t.jsx)("pre",{className:this.styles.contentText,children:T})})]});return(0,t.jsx)("table",{className:(0,d.default)(this.styles.diffContainer,{[this.styles.splitView]:_}),children:(0,t.jsxs)("tbody",{children:[C,k]})})},this.state={expandedBlocks:[]}}}y.defaultProps={oldValue:"",newValue:"",splitView:!0,highlightLines:[],disableWordDiff:!1,compareMethod:o.DiffMethod.CHARS,styles:{},hideLineNumbers:!1,hideMarkers:!1,extraLinesSurroundingDiff:3,showDiffOnly:!0,useDarkTheme:!1,linesOffset:0,nonce:""},e.default=y})(K)),K}var Zr=Kr();const Qr=Cn(Zr);function ei({diffView:e,diffContent:n,isLoading:s,entities:r,onClose:i}){const[t,a]=$.useState(!1),[d,o]=$.useState(!1);return $.useEffect(()=>{o(!0)},[]),p.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center p-8 z-50",children:p.jsxs("div",{className:"bg-white rounded-xl shadow-2xl max-w-6xl w-full max-h-[90vh] flex flex-col",children:[p.jsxs("div",{className:"p-6 border-b border-[#e1e1e1] flex items-center justify-between",children:[p.jsxs("div",{children:[p.jsx("h2",{className:"font-['IBM_Plex_Sans'] text-2xl font-semibold text-[#232323]",children:e.type==="file"?"File Diff":"Entity Diff"}),p.jsx("p",{className:"font-['IBM_Plex_Mono'] text-sm text-[#8e8e8e] mt-1",children:e.path}),e.type==="entity"&&e.entitySha&&p.jsxs("p",{className:"font-['IBM_Plex_Mono'] text-sm text-[#8e8e8e]",children:["Entity:"," ",r.find(c=>c.sha===e.entitySha)?.name||e.entitySha]})]}),p.jsxs("div",{className:"flex items-center gap-3",children:[p.jsx("button",{onClick:()=>a(!t),className:"px-3 py-1.5 bg-[#efefef] text-[#3e3e3e] rounded-lg font-['IBM_Plex_Sans'] text-sm font-semibold hover:bg-[#e1e1e1] transition-colors",title:t?"Show changes only":"Show full file",children:t?"Show Changes Only":"Show Full File"}),p.jsx("button",{onClick:i,className:"text-[#8e8e8e] hover:text-[#626262] transition-colors",children:p.jsx("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:p.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})]}),p.jsx("div",{className:"flex-1 overflow-auto",children:s?p.jsx("div",{className:"p-6 text-center",children:p.jsx("div",{className:"text-[#8e8e8e]",children:"Loading diff..."})}):n?p.jsx("div",{className:"diff-viewer-wrapper",children:d&&p.jsx(Qr,{oldValue:n.oldContent,newValue:n.newContent,splitView:!0,useDarkTheme:!1,showDiffOnly:!t,extraLinesSurroundingDiff:4,styles:{variables:{light:{diffViewerBackground:"#fff",diffViewerColor:"#212529",addedBackground:"#e6ffed",addedColor:"#24292e",removedBackground:"#ffeef0",removedColor:"#24292e",wordAddedBackground:"#acf2bd",wordRemovedBackground:"#fdb8c0",addedGutterBackground:"#cdffd8",removedGutterBackground:"#ffdce0",gutterBackground:"#f6f8fa",gutterBackgroundDark:"#f3f4f6",highlightBackground:"#fffbdd",highlightGutterBackground:"#fff5b1"}},contentText:{fontSize:"12px",lineHeight:"1.5"},line:{padding:"2px 10px",fontSize:"12px","&:hover":{background:"#f8f9fa"}},splitView:{display:"flex",width:"100%"},diffContainer:{width:"50%",overflowX:"auto"}}})}):p.jsx("div",{className:"p-6 text-center",children:p.jsx("div",{className:"text-[#8e8e8e]",children:"No diff available"})})}),p.jsx("div",{className:"p-6 border-t border-[#e1e1e1] flex justify-end gap-3",children:p.jsx("button",{onClick:i,className:"px-4 py-2 bg-[#efefef] text-[#3e3e3e] rounded-lg font-['IBM_Plex_Sans'] font-semibold hover:bg-[#e1e1e1] transition-colors",children:"Close"})})]})})}function ti({activeTab:e,onTabChange:n,uncommittedCount:s,branchCount:r}){return p.jsx("div",{children:p.jsxs("nav",{className:"flex gap-8 items-center",children:[p.jsxs("button",{onClick:()=>n("uncommitted"),className:`relative pb-3 px-2 text-sm font-medium transition-colors ${e==="uncommitted"?"text-[#005C75]":"text-gray-500 hover:text-gray-700"}`,children:[p.jsxs("span",{className:"flex items-center gap-2",children:["Uncommitted Changes",s>0&&p.jsx("span",{className:`inline-flex items-center justify-center px-2 py-0.5 text-xs font-semibold rounded-full ${e==="uncommitted"?"bg-[#e8f1f5] text-[#005C75]":"bg-gray-200 text-gray-700"}`,children:s})]}),e==="uncommitted"&&p.jsx("span",{className:"absolute bottom-[-1px] left-0 right-0 h-[2px] bg-[#005C75]"})]}),p.jsxs("button",{onClick:()=>n("branch"),className:`relative pb-3 px-2 text-sm font-medium transition-colors ${e==="branch"?"text-[#005C75]":"text-gray-500 hover:text-gray-700"}`,children:[p.jsxs("span",{className:"flex items-center gap-2",children:["Branch Changes",r>0&&p.jsx("span",{className:`inline-flex items-center justify-center px-2 py-0.5 text-xs font-semibold rounded-full ${e==="branch"?"bg-[#e8f1f5] text-[#005C75]":"bg-gray-200 text-gray-700"}`,children:r})]}),e==="branch"&&p.jsx("span",{className:"absolute bottom-[-1px] left-0 right-0 h-[2px] bg-[#005C75]"})]})]})})}function hn(e){switch(e){case"analyzing":return{text:"Analyzing...",bgColor:"#ffdbf6",textColor:"#ff2ab5",icon:p.jsxs("svg",{width:"8",height:"8",viewBox:"0 0 9 9",fill:"none",className:"animate-spin",children:[p.jsx("circle",{cx:"4.5",cy:"4.5",r:"3.5",stroke:"#FFF4FC",strokeWidth:"1",fill:"none"}),p.jsx("path",{d:"M4.5 1C2.57 1 1 2.57 1 4.5C1 5.6 1.5 6.58 2.28 7.23",stroke:"#FF2AB5",strokeWidth:"1",strokeLinecap:"round",fill:"none"})]})};case"up-to-date":return{text:"Up to date",bgColor:"#e8ffe6",textColor:"#00925d",icon:null};case"out-of-date":return{text:"Out of date",bgColor:"#fdf9c9",textColor:"#c69538",icon:null};case"not-analyzed":return{text:"Not analyzed",bgColor:"#f9f9f9",textColor:"#646464",icon:null}}}function ni(e){if(!e)return"Never";const n=new Date(e),s=new Date;if(n.getDate()===s.getDate()&&n.getMonth()===s.getMonth()&&n.getFullYear()===s.getFullYear()){const i=n.getHours(),t=n.getMinutes(),a=i>=12?"pm":"am",d=i%12||12,o=t.toString().padStart(2,"0");return`Today, ${d}:${o} ${a}`}return n.toLocaleString("en-US",{month:"numeric",day:"numeric",year:"2-digit",hour:"2-digit",minute:"2-digit",hour12:!0})}function at(e,n=[]){if(n.some(a=>a.entityShas?.includes(e.sha)))return"analyzing";if(!e.analyses||e.analyses.length===0)return"not-analyzed";const r=e.analyses[0],i=r.createdAt?new Date(r.createdAt).getTime():0,t=e.metadata?.editedAt?new Date(e.metadata.editedAt).getTime():0;return i>=t?"up-to-date":"out-of-date"}function pn({showActions:e=!1,sortOrder:n="desc",onSortChange:s}){return p.jsx("div",{className:"bg-[#efefef] rounded-lg mb-2 text-[11px] font-normal leading-[16px] text-[#3e3e3e] uppercase",children:p.jsxs("div",{className:"flex justify-between items-center px-3 py-2",children:[p.jsxs("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:[p.jsx("span",{className:"w-4"}),p.jsx("span",{children:"FILE"})]}),p.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[p.jsx("div",{className:"flex items-center justify-center h-[38px]",style:{width:"160px"},children:p.jsx("span",{children:"SIMULATIONS"})}),p.jsxs("div",{className:"flex gap-4 items-center",children:[p.jsx("span",{className:"text-center",style:{width:"70px"},children:"ENTITIES"}),p.jsx("div",{className:"flex items-center justify-center",style:{width:"127px"},children:p.jsx("span",{children:"STATE"})}),p.jsxs("div",{className:"flex items-center justify-center gap-1 cursor-pointer hover:text-[#232323] transition-colors",style:{width:"116px"},onClick:s,role:"button",tabIndex:0,onKeyDown:r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),s?.())},children:[p.jsx("span",{children:"MODIFIED"}),p.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{transform:n==="asc"?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.2s ease"},children:p.jsx("path",{d:"M3 5L6 8L9 5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]}),e&&p.jsx("span",{className:"text-center",style:{width:"96px"}})]})]})]})})}function ri({status:e,variant:n="compact"}){const s={modified:{label:"M",bgColor:"bg-[#f59e0c]"},added:{label:"A",bgColor:"bg-emerald-500"},deleted:{label:"D",bgColor:"bg-red-500",showWarning:!0},renamed:{label:"R",bgColor:"bg-indigo-500"},untracked:{label:"U",bgColor:"bg-purple-500"}},r={modified:{label:"MODIFIED",textColor:"#BB6BD9"},added:{label:"ADDED",textColor:"#F2994A"},deleted:{label:"DELETED",textColor:"#EF4444"},renamed:{label:"RENAMED",textColor:"#3B82F6"},untracked:{label:"UNTRACKED",textColor:"#6B7280"}};if(n==="full"){const t=r[e]||{label:"UNKNOWN",textColor:"#6B7280"};return p.jsx("div",{className:"bg-[#f9f9f9] inline-flex items-center justify-center px-[5px] py-0 rounded",style:{height:"22px"},children:p.jsx("span",{className:"text-[10px] font-['IBM_Plex_Sans'] font-medium leading-[22px]",style:{color:t.textColor},children:t.label})})}const i=s[e]||{label:"?",bgColor:"bg-gray-500"};return p.jsxs("div",{className:"inline-flex items-center gap-1",children:[p.jsx("span",{className:`inline-flex items-center justify-center w-5 h-5 text-[11px] font-bold text-white rounded ${i.bgColor}`,title:e,children:i.label}),i.showWarning&&p.jsx("span",{className:"inline-flex items-center justify-center w-3 h-3 text-[10px] text-amber-600",title:"Warning: File will be deleted",children:"⚠"})]})}function mn({filePath:e,isExpanded:n,onToggle:s,fileStatus:r,simulationPreviews:i,entityCount:t,state:a,lastModified:d,actionButton:o,uncommittedCount:c,children:l}){const f=hn(a);return p.jsxs("div",{className:"bg-white overflow-hidden",style:n?{border:"1px solid #e1e1e1",borderLeft:"4px solid #306AFF",borderRadius:"8px"}:{borderRadius:"8px"},children:[p.jsxs("div",{className:"flex justify-between items-center p-3 cursor-pointer select-none transition-colors hover:bg-gray-200",style:{outlineColor:"#005C75"},onClick:s,role:"button",tabIndex:0,onKeyDown:x=>{(x.key==="Enter"||x.key===" ")&&(x.preventDefault(),s())},children:[p.jsxs("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:[p.jsx("span",{className:"w-4 inline-flex items-center justify-center shrink-0",style:{transform:n?"rotate(90deg)":"none"},children:p.jsx("svg",{width:"10",height:"12",viewBox:"0 0 10 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p.jsx("path",{d:"M1.5 1.268L8.5 6L1.5 10.732V1.268Z",fill:n?"#3e3e3e":"#c7c7c7"})})}),p.jsx("img",{src:"/icons/file-icon.svg",alt:"file",className:"w-4 h-5 shrink-0"}),p.jsx("span",{className:"font-normal text-gray-900 text-[14px] whitespace-nowrap",children:e}),r&&p.jsx(ri,{status:typeof r=="string"?r:r.status,variant:"full"}),c!==void 0&&c>0&&p.jsxs("span",{className:"text-[10px] text-amber-500 font-medium shrink-0 whitespace-nowrap",children:[c," uncommitted"]})]}),p.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[p.jsx("div",{className:"flex gap-1.5 items-center justify-center h-[38px]",style:{width:"160px"},children:i}),p.jsxs("div",{className:"flex gap-4 items-center",children:[p.jsx("div",{className:"flex items-center justify-center",style:{width:"70px"},children:p.jsx("div",{className:"bg-[#f9f9f9] flex items-center justify-center px-2 rounded whitespace-nowrap",style:{height:"26px"},children:p.jsxs("span",{className:"text-[13px] text-[#3e3e3e]",children:[t," ",t===1?"entity":"entities"]})})}),p.jsx("div",{className:"flex items-center justify-center",style:{width:"127px"},children:p.jsxs("span",{className:"text-[13px] px-2 rounded inline-flex items-center gap-1.5 max-w-full whitespace-nowrap overflow-hidden text-ellipsis",style:{backgroundColor:f.bgColor,color:f.textColor,height:"26px"},children:[f.icon,f.text]})}),p.jsx("div",{className:"text-[12px] text-gray-600 text-center",style:{width:"116px"},children:ni(d)}),p.jsx("div",{style:{width:"96px"},className:"flex justify-center",children:o})]})]})]}),n&&l&&p.jsx("div",{className:"bg-gray-50 py-2 rounded-bl-[4px] rounded-br-[4px] flex flex-col gap-2",children:l})]})}const Qt={visual:{label:"VISUAL",bgColor:"#f9f9f9",textColor:"#9040f5"},library:{label:"LIBRARY",bgColor:"#f9f9f9",textColor:"#06b6d5"},type:{label:"TYPE",bgColor:"#ffe1e1",textColor:"#db2627"},other:{label:"OTHER",bgColor:"#f9f9f9",textColor:"#646464"}};function ii({type:e,className:n=""}){const s=Qt[e]||Qt.other;return p.jsx("div",{className:`inline-flex items-center justify-center px-[4px] rounded-[4px] ${n}`,style:{backgroundColor:s.bgColor,color:s.textColor,height:"15px"},children:p.jsx("span",{className:"text-[10px] font-['IBM_Plex_Sans'] font-semibold leading-[15px] uppercase",children:s.label})})}function gn({entity:e,isBeingAnalyzed:n,isQueued:s,onGenerateSimulation:r}){const i=n||s?[{entityShas:[e.sha]}]:[],t=at(e,i),a=hn(t),o=(e.entityType==="visual"||e.entityType==="library")&&(t==="not-analyzed"||t==="out-of-date")&&!n&&!s;return p.jsxs("div",{className:"bg-white rounded-lg flex items-center justify-between p-3 transition-colors hover:bg-gray-100",children:[p.jsxs("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:[p.jsx("span",{className:"w-4 shrink-0"}),e.entityType==="type"?p.jsx("div",{className:"bg-[#ffe1e1] inline-flex items-center justify-center px-[4px] rounded-[4px]",style:{height:"18px",width:"18px"},children:p.jsx("div",{className:"w-[10px] h-[10px] flex items-center justify-center",children:p.jsx(vt,{type:"type"})})}):p.jsx(vt,{type:e.entityType||"other"}),p.jsx("span",{className:"font-['IBM_Plex_Sans'] font-medium text-[14px] leading-[18px] text-black",children:e.name}),p.jsx(ii,{type:e.entityType||"other"})]}),p.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[p.jsx("div",{style:{width:"160px"}}),p.jsxs("div",{className:"flex gap-4 items-center",children:[p.jsx("div",{style:{width:"70px"}}),p.jsx("div",{className:"flex items-center justify-center",style:{width:"127px"},children:p.jsxs("span",{className:"text-[13px] px-2 rounded inline-flex items-center gap-1.5 max-w-full whitespace-nowrap overflow-hidden",style:{backgroundColor:a.bgColor,color:a.textColor,height:"26px"},children:[a.icon,a.text]})}),p.jsx("div",{style:{width:"116px"}}),p.jsx("div",{style:{width:"96px"},className:"flex justify-center items-center",children:o&&p.jsx("button",{onClick:c=>{c.stopPropagation(),r(e)},className:"bg-[#e0e9ec] text-[#005c75] rounded text-[12px] font-['IBM_Plex_Sans'] font-medium hover:bg-[#d0dfe5] transition-colors px-[15px] py-0 h-[28px]",children:"Analyze"})})]})]})]})}function xn({entities:e,maxPreviews:n=3}){const s=[];for(const r of e){if(s.length>=n)break;const i=r.analyses?.[0]?.scenarios||[];if(r.entityType==="library"){const t=i.find(a=>a.metadata?.executionResult||a.metadata?.error);t&&s.push({type:"library",scenario:t,entitySha:r.sha})}else if(r.entityType==="visual"){const t=i.find(a=>a.metadata?.screenshotPaths?.[0]);if(t){const a=t.metadata?.screenshotPaths?.[0],d=!!t.metadata?.error;a&&s.push({type:"screenshot",screenshot:a,hasError:d})}}}return s.length===0?null:p.jsx(p.Fragment,{children:s.map((r,i)=>{if(r.type==="screenshot"&&r.screenshot){const t=r.hasError?"border-red-400":"border-gray-200";return p.jsxs("div",{className:`relative w-[50px] h-[38px] border ${t} rounded overflow-hidden bg-gray-50 shrink-0 flex items-center justify-center`,children:[p.jsx(Tn,{screenshotPath:r.screenshot,alt:`Preview ${i+1}`,className:"max-w-full max-h-full object-contain object-center"}),r.hasError&&p.jsx("div",{className:"absolute top-0 right-0 w-4 h-4 bg-red-500 text-white flex items-center justify-center text-[10px] rounded-bl",title:"Error during capture",children:p.jsx(En,{size:12,color:"white"})})]},`screenshot-${i}`)}return r.type==="library"&&r.scenario&&r.entitySha?p.jsx(Pn,{scenario:r.scenario,entitySha:r.entitySha,size:"small",showBorder:!0},`library-${i}`):null})})}function si({files:e,entityImpactMap:n,expandedFiles:s,isEntityBeingAnalyzed:r,isEntityQueued:i,projectSlug:t,baseBranch:a,currentBranch:d,sortOrder:o,onToggleFile:c,onShowFileDiff:l,onGenerateSimulation:f,onSortChange:x}){const m=$.useMemo(()=>{const v=[];return e.forEach(([u,{editedEntities:g}])=>{const N=g.filter(L=>r(L.sha)||i(L.sha)).map(L=>L.sha);N.length>0&&v.push({entityShas:N})}),v},[e,r,i]),y=$.useMemo(()=>{const v=new Map;return e.forEach(([u,{editedEntities:g}])=>{const N=g.map(j=>at(j,m));let L;N.includes("analyzing")?L="analyzing":N.includes("out-of-date")?L="out-of-date":N.includes("not-analyzed")?L="not-analyzed":L="up-to-date";const T=g.reduce((j,D)=>{const P=D.metadata?.editedAt||D.updatedAt;return P&&(!j||new Date(P)>new Date(j))?P:j},null),_=g.filter(j=>j.entityType==="visual"||j.entityType==="library").length;v.set(u,{state:L,lastModified:T,analyzableCount:_})}),v},[e,m]),w=$.useMemo(()=>[...e].sort((v,u)=>{const g=y.get(v[0]),N=y.get(u[0]),L=g?.lastModified,T=N?.lastModified;if(!L&&!T)return 0;if(!L)return 1;if(!T)return-1;const _=new Date(L).getTime(),j=new Date(T).getTime();return o==="desc"?j-_:_-j}),[e,y,o]);return e.length===0?p.jsxs("div",{className:"bg-[#efefef] rounded-[10px] flex flex-col items-center justify-center text-center",style:{height:"190px"},children:[p.jsx("p",{className:"font-['IBM_Plex_Sans'] font-medium text-[16px] text-[#3e3e3e] leading-[24px] mb-2",children:"No Uncommitted Changes"}),p.jsx("p",{className:"font-['IBM_Plex_Sans'] font-normal text-[14px] text-[#3e3e3e] leading-[18px]",children:"If you edit a file in your project, it will show up here."})]}):p.jsxs("div",{children:[p.jsx(pn,{showActions:!0,sortOrder:o,onSortChange:x}),p.jsx("div",{className:"flex flex-col gap-3",children:w.map(([v,{status:u,editedEntities:g}])=>{const N=s.has(v),L=y.get(v),{state:T,lastModified:_,analyzableCount:j}=L,D=j>0&&(T==="not-analyzed"||T==="out-of-date");return p.jsx(mn,{filePath:v,isExpanded:N,onToggle:()=>c(v),fileStatus:u,simulationPreviews:p.jsx(xn,{entities:g,maxPreviews:3}),entityCount:g.length,state:T,lastModified:_,actionButton:D?p.jsx("button",{onClick:P=>{P.stopPropagation(),g.filter(k=>(k.entityType==="visual"||k.entityType==="library")&&!r(k.sha)&&!i(k.sha)).forEach(k=>f(k))},className:"bg-[#005c75] text-white rounded text-[12px] font-['IBM_Plex_Sans'] font-medium hover:bg-[#004a5e] transition-colors px-[15px] py-0 h-[28px]",children:"Analyze"}):void 0,children:g.map(P=>p.jsx(gn,{entity:P,isBeingAnalyzed:r(P.sha),isQueued:i(P.sha),onGenerateSimulation:f},P.sha))},v)})})]})}function ai({files:e,currentBranch:n,defaultBranch:s,baseBranch:r,allBranches:i,expandedFiles:t,isEntityBeingAnalyzed:a,isEntityQueued:d,sortOrder:o,onToggleFile:c,onBranchChange:l,onGenerateSimulation:f,onSortChange:x}){const m=e.flatMap(([v,{entities:u}])=>{const g=u.filter(N=>a(N.sha)||d(N.sha)).map(N=>N.sha);return g.length>0?[{entityShas:g}]:[]}),y=v=>{const u=v.map(g=>at(g,m));return u.includes("analyzing")?"analyzing":u.includes("out-of-date")?"out-of-date":u.includes("not-analyzed")?"not-analyzed":"up-to-date"},w=$.useMemo(()=>[...e].sort((v,u)=>{const g=v[1].entities.reduce((_,j)=>{const D=j.metadata?.editedAt||j.updatedAt;return D?_?new Date(D)>new Date(_)?D:_:D:_},null),N=u[1].entities.reduce((_,j)=>{const D=j.metadata?.editedAt||j.updatedAt;return D?_?new Date(D)>new Date(_)?D:_:D:_},null);if(!g&&!N)return 0;if(!g)return 1;if(!N)return-1;const L=new Date(g).getTime(),T=new Date(N).getTime();return o==="desc"?T-L:L-T}),[e,o]);return p.jsxs("div",{children:[p.jsx("div",{className:"mb-5",children:n===s?p.jsxs("p",{className:"text-[14px] font-['IBM_Plex_Sans'] font-normal text-[#626262] leading-[18px]",children:["Currently on the primary branch"," ",p.jsx("strong",{className:"text-gray-900 font-semibold",children:n})]}):p.jsxs("p",{className:"text-[14px] font-['IBM_Plex_Sans'] font-normal text-[#3e3e3e] leading-[18px]",children:["Changes in"," ",p.jsx("strong",{className:"font-['IBM_Plex_Sans'] font-semibold text-[#232323]",children:n})," ","compared to:"," ",p.jsx("select",{value:r,onChange:v=>l(v.target.value),className:"py-0.5 px-2.5 bg-white border border-[#efefef] rounded text-[12px] font-['IBM_Plex_Sans'] font-normal text-[#232323] cursor-pointer hover:border-gray-300 leading-[15px] h-[25px]",style:{paddingRight:"26px",backgroundPosition:"right 6px center",backgroundRepeat:"no-repeat",backgroundSize:"8px 4px",appearance:"none",backgroundImage:`url("data:image/svg+xml;charset=UTF-8,%3csvg width='8' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M1 0.5L4 3.5L7 0.5' stroke='%233e3e3e' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e")`},children:i.filter(v=>v!==n).map(v=>p.jsx("option",{value:v,children:v},v))})]})}),n===s?p.jsxs("div",{className:"bg-[#efefef] rounded-[10px] flex flex-col items-center justify-center text-center",style:{height:"190px"},children:[p.jsx("p",{className:"font-['IBM_Plex_Sans'] font-medium text-[16px] text-[#3e3e3e] leading-[24px] mb-2",children:"No Branch Changes"}),p.jsx("p",{className:"font-['IBM_Plex_Sans'] font-normal text-[14px] text-[#3e3e3e] leading-[18px]",children:"You're on the primary branch. Switch to a feature branch to see changes."})]}):e.length>0?p.jsxs("div",{children:[p.jsx(pn,{showActions:!0,sortOrder:o,onSortChange:x}),p.jsx("div",{className:"flex flex-col gap-3",children:w.map(([v,{status:u,entities:g}])=>{const N=t.has(v),L=y(g),T=g.reduce((D,P)=>{const k=P.metadata?.editedAt||P.updatedAt;return k?D?new Date(k)>new Date(D)?k:D:k:D},null),j=g.filter(D=>D.entityType==="visual"||D.entityType==="library").length>0&&(L==="not-analyzed"||L==="out-of-date");return p.jsx(mn,{filePath:v,isExpanded:N,onToggle:()=>c(v),fileStatus:u,simulationPreviews:p.jsx(xn,{entities:g,maxPreviews:3}),entityCount:g.length,state:L,lastModified:T,actionButton:j?p.jsx("button",{onClick:D=>{D.stopPropagation(),g.filter(P=>(P.entityType==="visual"||P.entityType==="library")&&!a(P.sha)&&!d(P.sha)).forEach(P=>f(P))},className:"bg-[#005c75] text-white rounded text-[12px] font-['IBM_Plex_Sans'] font-medium hover:bg-[#004a5e] transition-colors px-[15px] py-0 h-[28px]",children:"Analyze"}):void 0,children:g.map(D=>p.jsx(gn,{entity:D,isBeingAnalyzed:a(D.sha),isQueued:d(D.sha),onGenerateSimulation:f},D.sha))},v)})})]}):p.jsxs("div",{className:"bg-[#efefef] rounded-[10px] flex flex-col items-center justify-center text-center",style:{height:"190px"},children:[p.jsx("p",{className:"font-['IBM_Plex_Sans'] font-medium text-[16px] text-[#3e3e3e] leading-[24px] mb-2",children:"No Branch Changes"}),p.jsxs("p",{className:"font-['IBM_Plex_Sans'] font-normal text-[14px] text-[#3e3e3e] leading-[18px]",children:["This branch is up to date with ",r,"."]})]})]})}const vi=()=>[{title:"Git - CodeYam"},{name:"description",content:"Git status and impact analysis"}],bi=Sn(function(){const{entities:n,gitStatus:s,currentBranch:r,defaultBranch:i,allBranches:t,baseBranch:a,branchDiff:d,currentCommit:o,projectSlug:c,queueState:l}=Nn();_n({source:"git-page"});const[f,x]=Ln(),[m,y]=$.useState("uncommitted"),[w,v]=$.useState(null),[u,g]=$.useState("desc"),N=f.get("expanded")==="true",L=()=>{g(O=>O==="desc"?"asc":"desc")},T=et(),_=T.data;$.useEffect(()=>{m==="branch"&&r&&a&&r!==a&&T.state==="idle"&&!_&&T.load(`/api/branch-entity-diff?base=${encodeURIComponent(a)}&compare=${encodeURIComponent(r)}`)},[m,r,a,T,_]);const j=$.useMemo(()=>{const O=kn(s,n);return Array.from(O.entries()).sort((te,ne)=>te[0].localeCompare(ne[0]))},[s,n]),D=$.useMemo(()=>{const O=Bn(d,n,_);return Array.from(O.entries()).sort((te,ne)=>te[0].localeCompare(ne[0]))},[d,n,_]),P=$.useMemo(()=>On(s,n),[s,n]),k=$.useMemo(()=>j.map(([O])=>O),[j]),h=$.useMemo(()=>D.map(([O])=>O),[D]),{expandedUncommitted:b,expandedBranch:S,setExpandedUncommitted:C,setExpandedBranch:A,toggleFile:E,expandAllUncommitted:M,collapseAllUncommitted:F,expandAllBranch:B,collapseAllBranch:q}=Rn(N,k,h),{diffView:z,diffContent:U,isLoading:Y,handleShowFileDiff:Z,handleCloseDiff:re}=In(a,r,m),ot=o?.metadata?.currentRun,lt=new Set(ot?.currentEntityShas||[]),$e=new Set(l.jobs.flatMap(O=>O.entityShas||[])),Ge=new Set(l.currentlyExecuting?.entityShas||[]),{isAnalyzing:ct,handleGenerateSimulation:dt,handleGenerateAllSimulations:yn,isEntityBeingAnalyzed:ft}=qn(ot?.currentEntityShas),ut=O=>$e.has(O)||Ge.has(O),ht=O=>{O===i?f.delete("compare"):f.set("compare",O),x(f)},vn=()=>{const te=(m==="uncommitted"?j.flatMap(([ne,He])=>He.editedEntities):D.flatMap(([ne,He])=>He.entities)).filter(ne=>!lt.has(ne.sha)&&!$e.has(ne.sha)&&!Ge.has(ne.sha));yn(te)},pt=j.length,mt=D.length,bn=m==="uncommitted"?pt:mt,Le=(m==="uncommitted"?j.flatMap(([O,te])=>te.editedEntities):D.flatMap(([O,te])=>te.entities)).filter(O=>O.entityType==="visual"||O.entityType==="library"),Ve=Le.length>0&&Le.every(O=>lt.has(O.sha)),gt=Le.length>0&&!Ve&&Le.every(O=>$e.has(O.sha)||Ge.has(O.sha)),xt=ct||Ve||gt,yt=Ve?"Analyzing...":gt?"Queued...":ct?"Analyzing...":"Analyze All";return p.jsx("div",{className:"bg-[#f9f9f9] min-h-screen",children:p.jsxs("div",{className:"px-12 py-6",children:[p.jsxs("div",{className:"mb-8",children:[p.jsx("h1",{className:"text-3xl font-bold text-gray-900 m-0 mb-2",children:"Git Changes"}),p.jsx("div",{className:"flex items-center gap-4 text-sm text-gray-600",children:r&&p.jsxs(p.Fragment,{children:[p.jsx("span",{className:"text-xs",children:"Branch:"}),t.length>0?p.jsx("select",{value:r,onChange:O=>ht(O.target.value),className:"text-gray-900 font-medium px-2 py-1 border border-gray-300 rounded text-sm hover:border-gray-400 focus:outline-none focus:border-blue-500",style:{paddingRight:"26px",backgroundPosition:"right 6px center",backgroundRepeat:"no-repeat",backgroundSize:"16px",appearance:"none",backgroundImage:`url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e")`},children:t.map(O=>p.jsxs("option",{value:O,children:[O," ",O===i?"(default)":""]},O))}):p.jsx("span",{className:"text-gray-900 font-medium",children:r})]})})]}),p.jsxs("div",{className:"relative",children:[p.jsxs("div",{className:"flex items-center justify-between",children:[p.jsx(ti,{activeTab:m,onTabChange:y,uncommittedCount:pt,branchCount:mt}),bn>0&&p.jsxs("div",{className:"flex gap-3 self-center -translate-y-1.5",children:[p.jsx("button",{onClick:m==="uncommitted"?M:B,className:"px-3 py-1.5 text-xs font-['IBM_Plex_Sans'] font-medium text-[#005c75] hover:text-[#004a5e] hover:bg-gray-100 rounded transition-colors cursor-pointer",children:"Expand All"}),p.jsx("button",{onClick:m==="uncommitted"?F:q,className:"px-3 py-1.5 text-xs font-['IBM_Plex_Sans'] font-medium text-[#005c75] hover:text-[#004a5e] hover:bg-gray-100 rounded transition-colors cursor-pointer",children:"Collapse All"}),p.jsx("button",{onClick:vn,disabled:xt,className:"px-4 py-1.5 bg-[#005c75] text-white rounded text-xs font-['IBM_Plex_Sans'] font-medium hover:bg-[#004a5e] transition-colors cursor-pointer disabled:bg-gray-400 disabled:cursor-not-allowed",title:xt?yt:`Analyze all ${m} entities`,children:yt})]})]}),p.jsx("div",{className:"border-b border-gray-200 mb-6"})]}),p.jsxs("div",{className:"overflow-hidden",children:[m==="uncommitted"&&p.jsx(si,{files:j,entityImpactMap:P,expandedFiles:b,isEntityBeingAnalyzed:ft,isEntityQueued:ut,projectSlug:c,baseBranch:a,currentBranch:r,sortOrder:u,onToggleFile:O=>E(O,b,C),onShowFileDiff:Z,onGenerateSimulation:dt,onSortChange:L}),m==="branch"&&r&&p.jsx(ai,{files:D,currentBranch:r,defaultBranch:i,baseBranch:a,allBranches:t,expandedFiles:S,isEntityBeingAnalyzed:ft,isEntityQueued:ut,sortOrder:u,onToggleFile:O=>E(O,S,A),onBranchChange:ht,onGenerateSimulation:dt,onSortChange:L})]}),z&&p.jsx(ei,{diffView:z,diffContent:U,isLoading:Y,entities:n,onClose:re}),w&&c&&p.jsx(An,{projectSlug:c,onClose:()=>v(null)})]})})});export{bi as default,vi as meta};