@codeyam/codeyam-cli 0.1.0-staging.036391e → 0.1.0-staging.07d8f7b

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 (532) hide show
  1. package/analyzer-template/.build-info.json +7 -7
  2. package/analyzer-template/log.txt +3 -3
  3. package/analyzer-template/package.json +14 -14
  4. package/analyzer-template/packages/ai/index.ts +1 -0
  5. package/analyzer-template/packages/ai/package.json +1 -1
  6. package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +14 -0
  7. package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +34 -3
  8. package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +101 -0
  9. package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
  10. package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +6 -0
  11. package/analyzer-template/packages/ai/src/lib/completionCall.ts +114 -113
  12. package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +435 -13
  13. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.ts +62 -0
  14. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +70 -19
  15. package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.ts +35 -0
  16. package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +40 -13
  17. package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +110 -7
  18. package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +134 -2
  19. package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +359 -142
  20. package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
  21. package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
  22. package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +24 -4
  23. package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +6 -0
  24. package/analyzer-template/packages/analyze/src/lib/asts/nodes/getNodeType.ts +1 -0
  25. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +18 -0
  26. package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +9 -1
  27. package/analyzer-template/packages/analyze/src/lib/files/analyze/dependencyResolver.ts +0 -6
  28. package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +12 -0
  29. package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +65 -28
  30. package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +50 -25
  31. package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +83 -0
  32. package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +176 -80
  33. package/analyzer-template/packages/aws/package.json +10 -10
  34. package/analyzer-template/packages/database/index.ts +1 -0
  35. package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
  36. package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
  37. package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
  38. package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
  39. package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
  40. package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
  41. package/analyzer-template/packages/database/src/lib/kysely/db.ts +8 -0
  42. package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +1 -1
  43. package/analyzer-template/packages/database/src/lib/kysely/tables/editorScenariosTable.ts +62 -0
  44. package/analyzer-template/packages/database/src/lib/loadCommits.ts +31 -20
  45. package/analyzer-template/packages/database/src/lib/loadReadyToBeCapturedAnalyses.ts +0 -5
  46. package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
  47. package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
  48. package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
  49. package/analyzer-template/packages/database/src/lib/updateCommitMetadata.ts +151 -135
  50. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatus.ts +58 -42
  51. package/analyzer-template/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.ts +81 -65
  52. package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
  53. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.ts +29 -1
  54. package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +33 -5
  55. package/analyzer-template/packages/github/dist/database/index.d.ts +1 -0
  56. package/analyzer-template/packages/github/dist/database/index.d.ts.map +1 -1
  57. package/analyzer-template/packages/github/dist/database/index.js +1 -0
  58. package/analyzer-template/packages/github/dist/database/index.js.map +1 -1
  59. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
  60. package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
  61. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
  62. package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
  63. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
  64. package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
  65. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
  66. package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
  67. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
  68. package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
  69. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
  70. package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
  71. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +2 -0
  72. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
  73. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +5 -0
  74. package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
  75. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +1 -1
  76. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts +20 -0
  77. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.d.ts.map +1 -0
  78. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js +45 -0
  79. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  80. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +5 -0
  81. package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
  82. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.d.ts.map +1 -1
  83. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js +23 -13
  84. package/analyzer-template/packages/github/dist/database/src/lib/loadCommits.js.map +1 -1
  85. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.d.ts.map +1 -1
  86. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js +1 -4
  87. package/analyzer-template/packages/github/dist/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  88. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
  89. package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
  90. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
  91. package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
  92. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
  93. package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
  94. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.d.ts.map +1 -1
  95. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js +100 -89
  96. package/analyzer-template/packages/github/dist/database/src/lib/updateCommitMetadata.js.map +1 -1
  97. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.d.ts.map +1 -1
  98. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  99. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  100. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.d.ts.map +1 -1
  101. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  102. package/analyzer-template/packages/github/dist/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  103. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.d.ts.map +1 -1
  104. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
  105. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
  106. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
  107. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  108. package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  109. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +1 -0
  110. package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  111. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +10 -0
  112. package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
  113. package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +1 -0
  114. package/analyzer-template/packages/types/src/types/Scenario.ts +10 -0
  115. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +1 -0
  116. package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
  117. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +10 -0
  118. package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
  119. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.d.ts.map +1 -1
  120. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js +98 -3
  121. package/analyzer-template/packages/utils/dist/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  122. package/analyzer-template/packages/utils/src/lib/fs/rsyncCopy.ts +121 -3
  123. package/analyzer-template/playwright/captureFromUrl.ts +89 -82
  124. package/analyzer-template/project/constructMockCode.ts +170 -50
  125. package/analyzer-template/project/orchestrateCapture.ts +4 -1
  126. package/analyzer-template/project/reconcileMockDataKeys.ts +19 -14
  127. package/analyzer-template/project/start.ts +3 -0
  128. package/analyzer-template/project/startScenarioCapture.ts +9 -0
  129. package/analyzer-template/project/writeClientLogRoute.ts +125 -0
  130. package/analyzer-template/project/writeMockDataTsx.ts +17 -0
  131. package/analyzer-template/project/writeScenarioComponents.ts +110 -17
  132. package/analyzer-template/tsconfig.json +13 -1
  133. package/background/src/lib/local/createLocalAnalyzer.js +1 -1
  134. package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
  135. package/background/src/lib/virtualized/project/constructMockCode.js +145 -41
  136. package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
  137. package/background/src/lib/virtualized/project/orchestrateCapture.js +4 -1
  138. package/background/src/lib/virtualized/project/orchestrateCapture.js.map +1 -1
  139. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +17 -11
  140. package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
  141. package/background/src/lib/virtualized/project/start.js +2 -0
  142. package/background/src/lib/virtualized/project/start.js.map +1 -1
  143. package/background/src/lib/virtualized/project/startScenarioCapture.js +5 -0
  144. package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
  145. package/background/src/lib/virtualized/project/writeClientLogRoute.js +110 -0
  146. package/background/src/lib/virtualized/project/writeClientLogRoute.js.map +1 -0
  147. package/background/src/lib/virtualized/project/writeMockDataTsx.js +12 -0
  148. package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
  149. package/background/src/lib/virtualized/project/writeScenarioComponents.js +83 -12
  150. package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
  151. package/codeyam-cli/scripts/apply-setup.js +209 -12
  152. package/codeyam-cli/scripts/apply-setup.js.map +1 -1
  153. package/codeyam-cli/src/cli.js +33 -24
  154. package/codeyam-cli/src/cli.js.map +1 -1
  155. package/codeyam-cli/src/codeyam-cli.js +18 -2
  156. package/codeyam-cli/src/codeyam-cli.js.map +1 -1
  157. package/codeyam-cli/src/commands/analyze.js +21 -9
  158. package/codeyam-cli/src/commands/analyze.js.map +1 -1
  159. package/codeyam-cli/src/commands/baseline.js +2 -0
  160. package/codeyam-cli/src/commands/baseline.js.map +1 -1
  161. package/codeyam-cli/src/commands/debug.js +2 -0
  162. package/codeyam-cli/src/commands/debug.js.map +1 -1
  163. package/codeyam-cli/src/commands/default.js +87 -21
  164. package/codeyam-cli/src/commands/default.js.map +1 -1
  165. package/codeyam-cli/src/commands/editor.js +697 -0
  166. package/codeyam-cli/src/commands/editor.js.map +1 -0
  167. package/codeyam-cli/src/commands/init.js +75 -259
  168. package/codeyam-cli/src/commands/init.js.map +1 -1
  169. package/codeyam-cli/src/commands/memory.js +95 -81
  170. package/codeyam-cli/src/commands/memory.js.map +1 -1
  171. package/codeyam-cli/src/commands/recapture.js +2 -0
  172. package/codeyam-cli/src/commands/recapture.js.map +1 -1
  173. package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
  174. package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
  175. package/codeyam-cli/src/commands/setup-simulations.js +284 -0
  176. package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
  177. package/codeyam-cli/src/commands/test-startup.js +2 -0
  178. package/codeyam-cli/src/commands/test-startup.js.map +1 -1
  179. package/codeyam-cli/src/commands/verify.js +14 -2
  180. package/codeyam-cli/src/commands/verify.js.map +1 -1
  181. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js +185 -0
  182. package/codeyam-cli/src/utils/__tests__/npmVersionCheck.test.js.map +1 -0
  183. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js +9 -0
  184. package/codeyam-cli/src/utils/__tests__/pathIgnoring.test.js.map +1 -1
  185. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +154 -86
  186. package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
  187. package/codeyam-cli/src/utils/analyzer.js +7 -0
  188. package/codeyam-cli/src/utils/analyzer.js.map +1 -1
  189. package/codeyam-cli/src/utils/backgroundServer.js +109 -26
  190. package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
  191. package/codeyam-cli/src/utils/devModeEvents.js +40 -0
  192. package/codeyam-cli/src/utils/devModeEvents.js.map +1 -0
  193. package/codeyam-cli/src/utils/fileMetadata.js +5 -0
  194. package/codeyam-cli/src/utils/fileMetadata.js.map +1 -1
  195. package/codeyam-cli/src/utils/fileWatcher.js +25 -9
  196. package/codeyam-cli/src/utils/fileWatcher.js.map +1 -1
  197. package/codeyam-cli/src/utils/generateReport.js +2 -2
  198. package/codeyam-cli/src/utils/git.js +52 -0
  199. package/codeyam-cli/src/utils/git.js.map +1 -1
  200. package/codeyam-cli/src/utils/install-skills.js +74 -63
  201. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  202. package/codeyam-cli/src/utils/interactiveSyncWatcher.js +126 -0
  203. package/codeyam-cli/src/utils/interactiveSyncWatcher.js.map +1 -0
  204. package/codeyam-cli/src/utils/labsAutoCheck.js +0 -29
  205. package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -1
  206. package/codeyam-cli/src/utils/npmVersionCheck.js +76 -0
  207. package/codeyam-cli/src/utils/npmVersionCheck.js.map +1 -0
  208. package/codeyam-cli/src/utils/pathIgnoring.js +19 -7
  209. package/codeyam-cli/src/utils/pathIgnoring.js.map +1 -1
  210. package/codeyam-cli/src/utils/progress.js +7 -0
  211. package/codeyam-cli/src/utils/progress.js.map +1 -1
  212. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js +11 -11
  213. package/codeyam-cli/src/utils/queue/__tests__/heartbeat.test.js.map +1 -1
  214. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +22 -0
  215. package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
  216. package/codeyam-cli/src/utils/queue/heartbeat.js +13 -5
  217. package/codeyam-cli/src/utils/queue/heartbeat.js.map +1 -1
  218. package/codeyam-cli/src/utils/queue/job.js +70 -1
  219. package/codeyam-cli/src/utils/queue/job.js.map +1 -1
  220. package/codeyam-cli/src/utils/queue/manager.js +7 -6
  221. package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
  222. package/codeyam-cli/src/utils/requireSimulations.js +10 -0
  223. package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
  224. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +7 -8
  225. package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -1
  226. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +1 -1
  227. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -1
  228. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +0 -1
  229. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -1
  230. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +97 -6
  231. package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -1
  232. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +4 -6
  233. package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -1
  234. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +3 -3
  235. package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -1
  236. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js +83 -0
  237. package/codeyam-cli/src/utils/rules/__tests__/parser.test.js.map +1 -0
  238. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js +118 -0
  239. package/codeyam-cli/src/utils/rules/__tests__/pathMatcher.test.js.map +1 -0
  240. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js +72 -0
  241. package/codeyam-cli/src/utils/rules/__tests__/rulePlacement.test.js.map +1 -0
  242. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +23 -23
  243. package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -1
  244. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js +76 -0
  245. package/codeyam-cli/src/utils/rules/__tests__/sourceFiles.test.js.map +1 -0
  246. package/codeyam-cli/src/utils/rules/index.js +1 -0
  247. package/codeyam-cli/src/utils/rules/index.js.map +1 -1
  248. package/codeyam-cli/src/utils/rules/parser.js +19 -4
  249. package/codeyam-cli/src/utils/rules/parser.js.map +1 -1
  250. package/codeyam-cli/src/utils/rules/pathMatcher.js +34 -3
  251. package/codeyam-cli/src/utils/rules/pathMatcher.js.map +1 -1
  252. package/codeyam-cli/src/utils/rules/rulePlacement.js +65 -0
  253. package/codeyam-cli/src/utils/rules/rulePlacement.js.map +1 -0
  254. package/codeyam-cli/src/utils/rules/ruleState.js +10 -10
  255. package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -1
  256. package/codeyam-cli/src/utils/rules/sourceFiles.js +43 -0
  257. package/codeyam-cli/src/utils/rules/sourceFiles.js.map +1 -0
  258. package/codeyam-cli/src/utils/rules/staleness.js +6 -6
  259. package/codeyam-cli/src/utils/rules/staleness.js.map +1 -1
  260. package/codeyam-cli/src/utils/serverState.js +64 -12
  261. package/codeyam-cli/src/utils/serverState.js.map +1 -1
  262. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +61 -43
  263. package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
  264. package/codeyam-cli/src/utils/simulationGateMiddleware.js +159 -0
  265. package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -0
  266. package/codeyam-cli/src/utils/syncMocksMiddleware.js +5 -24
  267. package/codeyam-cli/src/utils/syncMocksMiddleware.js.map +1 -1
  268. package/codeyam-cli/src/utils/testRunner.js +158 -0
  269. package/codeyam-cli/src/utils/testRunner.js.map +1 -0
  270. package/codeyam-cli/src/utils/transcriptPruning.js +67 -0
  271. package/codeyam-cli/src/utils/transcriptPruning.js.map +1 -0
  272. package/codeyam-cli/src/utils/versionInfo.js +46 -0
  273. package/codeyam-cli/src/utils/versionInfo.js.map +1 -1
  274. package/codeyam-cli/src/utils/webappDetection.js +14 -2
  275. package/codeyam-cli/src/utils/webappDetection.js.map +1 -1
  276. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js +66 -0
  277. package/codeyam-cli/src/webserver/__tests__/dependency-smoke.test.js.map +1 -0
  278. package/codeyam-cli/src/webserver/app/lib/database.js +55 -30
  279. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  280. package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
  281. package/codeyam-cli/src/webserver/backgroundServer.js +144 -25
  282. package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
  283. package/codeyam-cli/src/webserver/bootstrap.js +11 -0
  284. package/codeyam-cli/src/webserver/bootstrap.js.map +1 -1
  285. package/codeyam-cli/src/webserver/build/client/assets/{CopyButton-CA3JxPb7.js → CopyButton-DmJveP3T.js} +1 -1
  286. package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-B86KKU7e.js → EntityItem-C76mRRiF.js} +1 -1
  287. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-B5ctlSYt.js → EntityTypeBadge-g3saevPb.js} +1 -1
  288. package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-BqY8gDAW.js → EntityTypeIcon-CobE682z.js} +1 -1
  289. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-Bu6c6aDe.js +1 -0
  290. package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-BDhPilK7.js → InteractivePreview-DYFW3lDD.js} +3 -3
  291. package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-VeqEBv9v.js → LibraryFunctionPreview-DLeucoVX.js} +1 -1
  292. package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-Bs7Nn1Jr.js → LoadingDots-BU_OAEMP.js} +1 -1
  293. package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-Bm3PmcCz.js → LogViewer-ceAyBX-H.js} +1 -1
  294. package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-C6PKeMYR.js → ReportIssueModal-djPLI-WV.js} +2 -2
  295. package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-Gq3Ocjo6.js → SafeScreenshot-BED4B6sP.js} +1 -1
  296. package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-BNLaXBHR.js → ScenarioViewer-B76aig_2.js} +2 -2
  297. package/codeyam-cli/src/webserver/build/client/assets/Spinner-Bb5uFQ5V.js +34 -0
  298. package/codeyam-cli/src/webserver/build/client/assets/Terminal-BaIiqg_w.js +41 -0
  299. package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-CiwXDxLh.js → TruncatedFilePath-C8OKAR5x.js} +1 -1
  300. package/codeyam-cli/src/webserver/build/client/assets/{_index-B3TDXxnk.js → _index-C96V0n15.js} +1 -1
  301. package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-BtBFH820.js → activity.(_tab)-BpKzcsJz.js} +1 -1
  302. package/codeyam-cli/src/webserver/build/client/assets/addon-fit-CUXOrorO.js +1 -0
  303. package/codeyam-cli/src/webserver/build/client/assets/addon-web-links-Duc5hnl7.js +1 -0
  304. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-D9hemwl6.js +22 -0
  305. package/codeyam-cli/src/webserver/build/client/assets/api.editor-capture-scenario-l0sNRNKZ.js +1 -0
  306. package/codeyam-cli/src/webserver/build/client/assets/api.editor-client-errors-l0sNRNKZ.js +1 -0
  307. package/codeyam-cli/src/webserver/build/client/assets/api.editor-commit-l0sNRNKZ.js +1 -0
  308. package/codeyam-cli/src/webserver/build/client/assets/api.editor-dev-server-l0sNRNKZ.js +1 -0
  309. package/codeyam-cli/src/webserver/build/client/assets/api.editor-entity-status-l0sNRNKZ.js +1 -0
  310. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-entry-l0sNRNKZ.js +1 -0
  311. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-image._-l0sNRNKZ.js +1 -0
  312. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-l0sNRNKZ.js +1 -0
  313. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-screenshot-l0sNRNKZ.js +1 -0
  314. package/codeyam-cli/src/webserver/build/client/assets/api.editor-journal-update-l0sNRNKZ.js +1 -0
  315. package/codeyam-cli/src/webserver/build/client/assets/api.editor-refresh-l0sNRNKZ.js +1 -0
  316. package/codeyam-cli/src/webserver/build/client/assets/api.editor-register-scenario-l0sNRNKZ.js +1 -0
  317. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-data-l0sNRNKZ.js +1 -0
  318. package/codeyam-cli/src/webserver/build/client/assets/api.editor-scenario-image._-l0sNRNKZ.js +1 -0
  319. package/codeyam-cli/src/webserver/build/client/assets/api.editor-switch-scenario-l0sNRNKZ.js +1 -0
  320. package/codeyam-cli/src/webserver/build/client/assets/api.editor-test-results-l0sNRNKZ.js +1 -0
  321. package/codeyam-cli/src/webserver/build/client/assets/api.rule-path-l0sNRNKZ.js +1 -0
  322. package/codeyam-cli/src/webserver/build/client/assets/{book-open-PttOB2SF.js → book-open-D_nMCFmP.js} +1 -1
  323. package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-TJp6ofnp.js → chevron-down-BH2h1Ea2.js} +1 -1
  324. package/codeyam-cli/src/webserver/build/client/assets/{chunk-JZWAC4HX-JE9ZIoBl.js → chunk-JZWAC4HX-C4pqxYJB.js} +9 -9
  325. package/codeyam-cli/src/webserver/build/client/assets/{circle-check-CXhHQYrI.js → circle-check-DyIKORY6.js} +1 -1
  326. package/codeyam-cli/src/webserver/build/client/assets/{copy-6y9ALfGT.js → copy-NDbZjXao.js} +1 -1
  327. package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-Ca9fAY46.js → createLucideIcon-CMT1jU2q.js} +1 -1
  328. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-BiM6z3Do.js +1 -0
  329. package/codeyam-cli/src/webserver/build/client/assets/editor-Ba0jejiv.js +7 -0
  330. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-n38keI1k.js → entity._sha._-CrjR3zZW.js} +10 -10
  331. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.dev-DloHYjtt.js +6 -0
  332. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-C28BiQzt.js +6 -0
  333. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-p9hhkjJM.js +6 -0
  334. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-38yPijoD.js → entity._sha_.edit._scenarioId-BMvVHNXU.js} +2 -2
  335. package/codeyam-cli/src/webserver/build/client/assets/{entry.client-BSHEfydn.js → entry.client-DTvKq3TY.js} +1 -1
  336. package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DCPhhSMo.js → fileTableUtils-cPo8LiG3.js} +1 -1
  337. package/codeyam-cli/src/webserver/build/client/assets/{files-0N0YJQv7.js → files-DO4CZ16O.js} +1 -1
  338. package/codeyam-cli/src/webserver/build/client/assets/{git-DXnyr8uP.js → git-CFCTYk9I.js} +1 -1
  339. package/codeyam-cli/src/webserver/build/client/assets/globals-BH6uYxPM.css +1 -0
  340. package/codeyam-cli/src/webserver/build/client/assets/{index-ChN9-fAY.js → index-10oVnAAH.js} +1 -1
  341. package/codeyam-cli/src/webserver/build/client/assets/{index-CcsFv748.js → index-BcvgDzbZ.js} +1 -1
  342. package/codeyam-cli/src/webserver/build/client/assets/labs-Zk7ryIM1.js +1 -0
  343. package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-CTqLEAGU.js → loader-circle-BAXYRVEO.js} +1 -1
  344. package/codeyam-cli/src/webserver/build/client/assets/manifest-dcea65f8.js +1 -0
  345. package/codeyam-cli/src/webserver/build/client/assets/memory-FweZHj5U.js +93 -0
  346. package/codeyam-cli/src/webserver/build/client/assets/{pause-D6vreykR.js → pause-DTAcYxBt.js} +1 -1
  347. package/codeyam-cli/src/webserver/build/client/assets/root-Dzn8nIkU.js +67 -0
  348. package/codeyam-cli/src/webserver/build/client/assets/{search-B8VUL8nl.js → search-fKo7v0Zo.js} +1 -1
  349. package/codeyam-cli/src/webserver/build/client/assets/settings-DfuTtcJP.js +1 -0
  350. package/codeyam-cli/src/webserver/build/client/assets/{simulations-CPoAg7Zo.js → simulations-B3aOzpCZ.js} +1 -1
  351. package/codeyam-cli/src/webserver/build/client/assets/{terminal-BrCP7uQo.js → terminal-BG4heKCG.js} +1 -1
  352. package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-BZz2NjYa.js → triangle-alert-DtSmdtM4.js} +1 -1
  353. package/codeyam-cli/src/webserver/build/client/assets/{useCustomSizes-DNwUduNu.js → useCustomSizes-ByhSyh0W.js} +1 -1
  354. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-C14nCb1q.js +2 -0
  355. package/codeyam-cli/src/webserver/build/client/assets/{useReportContext-CpZgwliL.js → useReportContext-O-jkvSPx.js} +1 -1
  356. package/codeyam-cli/src/webserver/build/client/assets/{useToast-Bv9JFvUO.js → useToast-9FIWuYfK.js} +1 -1
  357. package/codeyam-cli/src/webserver/build/client/assets/xterm-DMSzMhqy.js +9 -0
  358. package/codeyam-cli/src/webserver/build/server/assets/index-mE6GlU_8.js +1 -0
  359. package/codeyam-cli/src/webserver/build/server/assets/server-build-BApEk7IO.js +362 -0
  360. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  361. package/codeyam-cli/src/webserver/build-info.json +5 -5
  362. package/codeyam-cli/src/webserver/devServer.js +39 -5
  363. package/codeyam-cli/src/webserver/devServer.js.map +1 -1
  364. package/codeyam-cli/src/webserver/editorProxy.js +272 -0
  365. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -0
  366. package/codeyam-cli/src/webserver/scripts/journalCapture.ts +121 -0
  367. package/codeyam-cli/src/webserver/server.js +177 -1
  368. package/codeyam-cli/src/webserver/server.js.map +1 -1
  369. package/codeyam-cli/src/webserver/terminalServer.js +606 -0
  370. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -0
  371. package/codeyam-cli/templates/{codeyam:debug.md → codeyam-debug.md} +1 -1
  372. package/codeyam-cli/templates/codeyam-dev-mode.md +237 -0
  373. package/codeyam-cli/templates/codeyam-diagnose.md +481 -0
  374. package/codeyam-cli/templates/codeyam-editor-claude.md +68 -0
  375. package/codeyam-cli/templates/codeyam-editor.md +67 -0
  376. package/codeyam-cli/templates/codeyam-memory-hook.sh +14 -14
  377. package/codeyam-cli/templates/{codeyam:memory.md → codeyam-memory.md} +16 -24
  378. package/codeyam-cli/templates/{codeyam:new-rule.md → codeyam-new-rule.md} +1 -3
  379. package/codeyam-cli/templates/{codeyam:setup.md → codeyam-setup.md} +13 -1
  380. package/codeyam-cli/templates/{codeyam:sim.md → codeyam-sim.md} +1 -1
  381. package/codeyam-cli/templates/{codeyam:test.md → codeyam-test.md} +1 -1
  382. package/codeyam-cli/templates/{codeyam:verify.md → codeyam-verify.md} +1 -1
  383. package/codeyam-cli/templates/editor-step-hook.py +143 -0
  384. package/codeyam-cli/templates/hooks/staleness-check.sh +43 -0
  385. package/codeyam-cli/templates/isolation-route/next-app.tsx.template +80 -0
  386. package/codeyam-cli/templates/isolation-route/next-pages.tsx.template +79 -0
  387. package/codeyam-cli/templates/isolation-route/vite-react.tsx.template +78 -0
  388. package/codeyam-cli/templates/msw/browser-setup.ts.template +47 -0
  389. package/codeyam-cli/templates/msw/handler-router.ts.template +47 -0
  390. package/codeyam-cli/templates/msw/server-setup.ts.template +52 -0
  391. package/codeyam-cli/templates/nextjs-prisma-sqlite/PRISMA_SETUP.md +84 -0
  392. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/api/todos/route.ts +17 -0
  393. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/globals.css +26 -0
  394. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/layout.tsx +34 -0
  395. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/lib/prisma.ts +19 -0
  396. package/codeyam-cli/templates/nextjs-prisma-sqlite/app/page.tsx +10 -0
  397. package/codeyam-cli/templates/nextjs-prisma-sqlite/eslint.config.mjs +11 -0
  398. package/codeyam-cli/templates/nextjs-prisma-sqlite/next.config.ts +14 -0
  399. package/codeyam-cli/templates/nextjs-prisma-sqlite/package.json +35 -0
  400. package/codeyam-cli/templates/nextjs-prisma-sqlite/postcss.config.mjs +7 -0
  401. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/schema.prisma +27 -0
  402. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma/seed.ts +37 -0
  403. package/codeyam-cli/templates/nextjs-prisma-sqlite/prisma.config.ts +12 -0
  404. package/codeyam-cli/templates/nextjs-prisma-sqlite/tsconfig.json +34 -0
  405. package/codeyam-cli/templates/prompts/conversation-guidance.txt +44 -0
  406. package/codeyam-cli/templates/prompts/conversation-prompt.txt +28 -0
  407. package/codeyam-cli/templates/prompts/interruption-prompt.txt +31 -0
  408. package/codeyam-cli/templates/prompts/stale-rules-prompt.txt +24 -0
  409. package/codeyam-cli/templates/rule-notification-hook.py +44 -17
  410. package/codeyam-cli/templates/rule-reflection-hook.py +88 -31
  411. package/codeyam-cli/templates/rules-instructions.md +45 -90
  412. package/package.json +15 -13
  413. package/packages/ai/index.js +1 -1
  414. package/packages/ai/index.js.map +1 -1
  415. package/packages/ai/src/lib/analyzeScope.js +14 -0
  416. package/packages/ai/src/lib/analyzeScope.js.map +1 -1
  417. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +22 -4
  418. package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
  419. package/packages/ai/src/lib/astScopes/processExpression.js +78 -1
  420. package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
  421. package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
  422. package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
  423. package/packages/ai/src/lib/completionCall.js +10 -7
  424. package/packages/ai/src/lib/completionCall.js.map +1 -1
  425. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +362 -10
  426. package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
  427. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js +54 -0
  428. package/packages/ai/src/lib/dataStructure/helpers/coercePrimitivesToArraysBySchema.js.map +1 -0
  429. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +59 -17
  430. package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
  431. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js +34 -0
  432. package/packages/ai/src/lib/dataStructure/helpers/stripNullableMarkers.js.map +1 -0
  433. package/packages/ai/src/lib/dataStructureChunking.js +30 -11
  434. package/packages/ai/src/lib/dataStructureChunking.js.map +1 -1
  435. package/packages/ai/src/lib/generateEntityScenarioData.js +79 -5
  436. package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
  437. package/packages/ai/src/lib/generateExecutionFlows.js +97 -2
  438. package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -1
  439. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +242 -81
  440. package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -1
  441. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
  442. package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
  443. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
  444. package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
  445. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +17 -2
  446. package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
  447. package/packages/analyze/src/lib/ProjectAnalyzer.js +3 -0
  448. package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
  449. package/packages/analyze/src/lib/asts/nodes/getNodeType.js +1 -0
  450. package/packages/analyze/src/lib/asts/nodes/getNodeType.js.map +1 -1
  451. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +11 -1
  452. package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
  453. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +8 -1
  454. package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
  455. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js +0 -5
  456. package/packages/analyze/src/lib/files/analyze/dependencyResolver.js.map +1 -1
  457. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +9 -0
  458. package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
  459. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +54 -27
  460. package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -1
  461. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +42 -13
  462. package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
  463. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +65 -0
  464. package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
  465. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +141 -71
  466. package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
  467. package/packages/database/index.js +1 -0
  468. package/packages/database/index.js.map +1 -1
  469. package/packages/database/src/lib/analysisBranchToDb.js +1 -1
  470. package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
  471. package/packages/database/src/lib/analysisToDb.js +1 -1
  472. package/packages/database/src/lib/analysisToDb.js.map +1 -1
  473. package/packages/database/src/lib/branchToDb.js +1 -1
  474. package/packages/database/src/lib/branchToDb.js.map +1 -1
  475. package/packages/database/src/lib/commitBranchToDb.js +1 -1
  476. package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
  477. package/packages/database/src/lib/commitToDb.js +1 -1
  478. package/packages/database/src/lib/commitToDb.js.map +1 -1
  479. package/packages/database/src/lib/fileToDb.js +1 -1
  480. package/packages/database/src/lib/fileToDb.js.map +1 -1
  481. package/packages/database/src/lib/kysely/db.js +5 -0
  482. package/packages/database/src/lib/kysely/db.js.map +1 -1
  483. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js +45 -0
  484. package/packages/database/src/lib/kysely/tables/editorScenariosTable.js.map +1 -0
  485. package/packages/database/src/lib/loadCommits.js +23 -13
  486. package/packages/database/src/lib/loadCommits.js.map +1 -1
  487. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js +1 -4
  488. package/packages/database/src/lib/loadReadyToBeCapturedAnalyses.js.map +1 -1
  489. package/packages/database/src/lib/projectToDb.js +1 -1
  490. package/packages/database/src/lib/projectToDb.js.map +1 -1
  491. package/packages/database/src/lib/saveFiles.js +1 -1
  492. package/packages/database/src/lib/saveFiles.js.map +1 -1
  493. package/packages/database/src/lib/scenarioToDb.js +1 -1
  494. package/packages/database/src/lib/scenarioToDb.js.map +1 -1
  495. package/packages/database/src/lib/updateCommitMetadata.js +100 -89
  496. package/packages/database/src/lib/updateCommitMetadata.js.map +1 -1
  497. package/packages/database/src/lib/updateFreshAnalysisStatus.js +41 -30
  498. package/packages/database/src/lib/updateFreshAnalysisStatus.js.map +1 -1
  499. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js +68 -57
  500. package/packages/database/src/lib/updateFreshAnalysisStatusWithScenarios.js.map +1 -1
  501. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js +29 -1
  502. package/packages/generate/src/lib/componentScenarioPage/generateScenarioClientWrapper.js.map +1 -1
  503. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +33 -5
  504. package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
  505. package/packages/utils/src/lib/fs/rsyncCopy.js +98 -3
  506. package/packages/utils/src/lib/fs/rsyncCopy.js.map +1 -1
  507. package/scripts/finalize-analyzer.cjs +8 -76
  508. package/codeyam-cli/src/commands/detect-universal-mocks.js +0 -118
  509. package/codeyam-cli/src/commands/detect-universal-mocks.js.map +0 -1
  510. package/codeyam-cli/src/commands/list.js +0 -31
  511. package/codeyam-cli/src/commands/list.js.map +0 -1
  512. package/codeyam-cli/src/commands/webapp-info.js +0 -146
  513. package/codeyam-cli/src/commands/webapp-info.js.map +0 -1
  514. package/codeyam-cli/src/utils/universal-mocks.js +0 -152
  515. package/codeyam-cli/src/utils/universal-mocks.js.map +0 -1
  516. package/codeyam-cli/src/webserver/build/client/assets/InlineSpinner-ClaLpuOo.js +0 -34
  517. package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-DfKzxuoe.js +0 -11
  518. package/codeyam-cli/src/webserver/build/client/assets/dev.empty-C5lqplTC.js +0 -1
  519. package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-CBoafmVs.js +0 -6
  520. package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-DGgZjdFg.js +0 -6
  521. package/codeyam-cli/src/webserver/build/client/assets/globals-DoeDFXZN.css +0 -1
  522. package/codeyam-cli/src/webserver/build/client/assets/labs-CmBYA0PH.js +0 -1
  523. package/codeyam-cli/src/webserver/build/client/assets/manifest-76786b8e.js +0 -1
  524. package/codeyam-cli/src/webserver/build/client/assets/memory-CrNQfdMO.js +0 -76
  525. package/codeyam-cli/src/webserver/build/client/assets/root-QAY34PIo.js +0 -62
  526. package/codeyam-cli/src/webserver/build/client/assets/settings-eBI36Yv5.js +0 -1
  527. package/codeyam-cli/src/webserver/build/client/assets/useLastLogLine-COky1GVF.js +0 -2
  528. package/codeyam-cli/src/webserver/build/server/assets/index-DV1ykEI6.js +0 -1
  529. package/codeyam-cli/src/webserver/build/server/assets/server-build-BrcVrUEv.js +0 -260
  530. package/codeyam-cli/templates/codeyam-stop-hook.sh +0 -284
  531. package/codeyam-cli/templates/codeyam:diagnose.md +0 -805
  532. /package/codeyam-cli/src/webserver/build/client/assets/{api.labs-survey-l0sNRNKZ.js → api.dev-mode-events-l0sNRNKZ.js} +0 -0
@@ -1,152 +0,0 @@
1
- import { runClaudeCode } from "./claude-code.js";
2
- export async function detectUniversalMocks(existingMocks = [], progressCallback) {
3
- const claudeResult = await runClaudeCode({
4
- prompt: getPrompt(existingMocks),
5
- allowedTools: ['Bash(jq:*)'],
6
- progressCallback,
7
- });
8
- if (!claudeResult) {
9
- // Claude Code package failed to load, return empty mocks
10
- return {
11
- universalMocks: existingMocks,
12
- duration_ms: 0,
13
- total_cost_usd: 0,
14
- };
15
- }
16
- let resultString = claudeResult.result;
17
- // use regexp to extract ths ```json\n...\n``` block
18
- const jsonMatch = resultString.match(/```json\n([\s\S]*?)\n```/);
19
- if (jsonMatch && jsonMatch.length > 1) {
20
- resultString = jsonMatch[1].trim();
21
- }
22
- else {
23
- console.warn(`CodeYam Warning: Claude Code did not return markdown-wrapped JSON`);
24
- // fall back to the entire result if no JSON block is found
25
- }
26
- const result = JSON.parse(resultString);
27
- const universalMocks = result && result.universalMocks && Array.isArray(result.universalMocks)
28
- ? result.universalMocks
29
- .map((mock) => {
30
- if (mock.content &&
31
- typeof mock.content === 'string' &&
32
- mock.filePath &&
33
- typeof mock.filePath === 'string' &&
34
- mock.entityName &&
35
- typeof mock.entityName === 'string') {
36
- return {
37
- content: mock.content,
38
- filePath: mock.filePath,
39
- entityName: mock.entityName,
40
- };
41
- }
42
- console.warn(`CodeYam Warning: Invalid universal mock format`, mock);
43
- return null;
44
- })
45
- .filter((mock) => mock !== null)
46
- : [];
47
- return {
48
- universalMocks,
49
- duration_ms: claudeResult.duration_ms,
50
- total_cost_usd: claudeResult.total_cost_usd,
51
- };
52
- }
53
- function getPrompt(existingMocks) {
54
- const mocksString = JSON.stringify(existingMocks);
55
- return `
56
- Hi Claude! You should find in this directory a primarily TypeScript-based web application. If that doesn't seem to be the case, return an error object:
57
- \`\`\`
58
- {
59
- "error": "<reason for failure>"
60
- }
61
- \`\`\`
62
-
63
- Now, your job is to explore the codebase and read enough source modules to determine if any of them rely on environment variables or external services in a way which **prevents startup**. You will MODIFY NO FILES. You are only gathering data, and you will finish by outputting a JSON object of these 'universal mocks'.
64
-
65
- **CRITICAL: Mocks should be MINIMAL** - just enough to prevent startup crashes, not comprehensive implementations.
66
-
67
- We will illustrate with examples:
68
-
69
- **Example 1: Class that's initialized on load**
70
- File: \`lib/dbNotifier.ts\`
71
- \`\`\`
72
- export class DbNotifier extends EventEmitter {
73
- constructor() {
74
- super();
75
- this.db = connectToDatabase(process.env.DATABASE_URL!); // ❌ Crashes on load
76
- }
77
- async start() { /* ... */ }
78
- }
79
- \`\`\`
80
-
81
- **Minimal mock** (just enough to start):
82
- \`\`\`
83
- class DbNotifier extends EventEmitter { async start() {} }
84
- \`\`\`
85
-
86
- **Example 2: Client initialized on load**
87
- File: \`lib/supabase.ts\`
88
- \`\`\`
89
- import { createClient } from "@supabase/supabase-js"
90
- export const supabase = createClient(
91
- process.env.NEXT_PUBLIC_SUPABASE_URL!, // ❌ Crashes on load
92
- process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!
93
- )
94
- \`\`\`
95
-
96
- **Minimal mock**:
97
- \`\`\`
98
- export const supabase = {
99
- auth: {
100
- getSession: async () => ({ data: { session: null } }),
101
- onAuthStateChange: () => ({ data: { subscription: { unsubscribe: () => {} } } })
102
- }
103
- };
104
- \`\`\`
105
-
106
- **Example 3: NO MOCK NEEDED**
107
- File: \`lib/client.ts\`
108
- \`\`\`
109
- export function getClient() {
110
- return createClient(process.env.API_URL!); // ✅ OK - not called on load
111
- }
112
- \`\`\`
113
- No mock needed - lazy initialization won't crash on startup.
114
-
115
- **Key principles:**
116
- 1. Only mock things that are **executed during module load**
117
- 2. Mocks should be **minimal** - empty methods/properties are fine
118
- 3. We need the app to **compile and start**, not work correctly
119
- 4. Return types should match what TypeScript expects (but values can be empty/null) When you've determined that a file requires a universal mock, you will include it in your output, which might look something like this:
120
- \`\`\`json
121
- {
122
- "universalMocks": [
123
- {
124
- "entityName": "DbNotifier",
125
- "filePath": "lib/dbNotifier.ts",
126
- "content": "class DbNotifier extends EventEmitter { async start() {} }"
127
- },
128
- {
129
- "entityName": "supabase",
130
- "filePath": "lib/supabase.ts",
131
- "content": "export const supabase = { auth: { getSession: async () => ({ data: { session: null } }) } };"
132
- }
133
- ]
134
- }
135
- \`\`\`
136
-
137
- Note: You MUST wrap the result JSON in \`\`\`json\n...\n\`\`\` so that it can later be extracted programmatically.
138
-
139
- So a "universal mock" object contains of a file path (\`/example/lib/supabase.ts\` in our case), an entity name (\`supabase\`), and the full text of the TypeScript with which to replace that entity in the mocked-up module.
140
- - There can be multiple mocks in the same file, for different entities. An entity is e.g. a function, a type, a variable, a React component, etc.
141
- - Each universal mock should contain ONLY the replacement content for a single entity. If a file exports multiple entities that need mocking, create separate mock objects for each entity.
142
- - Remember that the JSON string must be escaped.
143
-
144
- The current \`universalMocks\` array, which you should merge into / append to, is as follows:
145
- \`\`\`
146
- ${mocksString}
147
- \`\`\`
148
-
149
- Now put on your best sleuthing cap and figure out how to scan this repository for likely signs of external dependencies that may need mocking, compile a list of universal mocks, and return it as JSON on the format shown above.
150
- `;
151
- }
152
- //# sourceMappingURL=universal-mocks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"universal-mocks.js","sourceRoot":"","sources":["../../../../src/utils/universal-mocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAI9C,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,gBAAmD,EAAE,EACrD,gBAAiD;IAMjD,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC;QACvC,MAAM,EAAE,SAAS,CAAC,aAAa,CAAC;QAChC,YAAY,EAAE,CAAC,YAAY,CAAC;QAC5B,gBAAgB;KACjB,CAAC,CAAC;IAEH,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,yDAAyD;QACzD,OAAO;YACL,cAAc,EAAE,aAAa;YAC7B,WAAW,EAAE,CAAC;YACd,cAAc,EAAE,CAAC;SAClB,CAAC;IACJ,CAAC;IAED,IAAI,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC;IAEvC,oDAAoD;IACpD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACjE,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CACV,mEAAmE,CACpE,CAAC;QACF,2DAA2D;IAC7D,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,cAAc,GAClB,MAAM,IAAI,MAAM,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;QACrE,CAAC,CAAC,MAAM,CAAC,cAAc;aAClB,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;YACjB,IACE,IAAI,CAAC,OAAO;gBACZ,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;gBAChC,IAAI,CAAC,QAAQ;gBACb,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;gBACjC,IAAI,CAAC,UAAU;gBACf,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EACnC,CAAC;gBACD,OAAO;oBACL,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;iBAC5B,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,IAAI,CACV,gDAAgD,EAChD,IAAI,CACL,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,IAAiB,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;QACjD,CAAC,CAAC,EAAE,CAAC;IAET,OAAO;QACL,cAAc;QACd,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,cAAc,EAAE,YAAY,CAAC,cAAc;KAC5C,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,aAAqB;IACtC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAElD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2FP,WAAW;;;;GAIV,CAAC;AACJ,CAAC"}
@@ -1,34 +0,0 @@
1
- import{c as _,r as e,j as h}from"./chunk-JZWAC4HX-JE9ZIoBl.js";import{u as K}from"./useLastLogLine-COky1GVF.js";function U(s){const r=s.replace(/[^a-zA-Z0-9_]+/g,"_");return r.slice(0,1).toUpperCase()+r.slice(1)}function V({analysisId:s,scenarioId:r,scenarioName:a,projectSlug:i,enabled:g=!0,refreshTrigger:f=0}){const k=_(),[S,w]=e.useState(null),[A,E]=e.useState(!1),[B,c]=e.useState(!1),[q,l]=e.useState(!1),d=e.useRef(!1),x=e.useRef(null),I=e.useRef(null),[M,m]=e.useState(0),[z,R]=e.useState(0),n=e.useRef(null),u=e.useRef(!1),{interactiveUrl:b,resetLogs:L}=K(i,g),y=e.useRef(r),F=e.useRef(f);e.useEffect(()=>{F.current!==f&&(F.current=f,S&&(console.log("[useInteractiveMode] Manual refresh triggered"),c(!0),l(!1),m(0),R(t=>t+1),u.current=!1,n.current&&(clearTimeout(n.current),n.current=null)))},[f,S]),e.useEffect(()=>{if(y.current!==r&&(y.current=r,x.current&&I.current&&a)){const t=U(I.current),o=U(a),p=x.current.replace(t,o);w(p),c(!0),l(!1),m(0),R(v=>v+1),u.current=!1,n.current&&(clearTimeout(n.current),n.current=null);return}},[r,a]),e.useEffect(()=>{if(b){const t=b+"?width=600px";x.current=t,a&&(I.current=a),w(t),E(!1),c(!0)}},[b]),e.useEffect(()=>{const t=o=>{o.data.type==="codeyam-resize"&&(u.current||(u.current=!0,n.current&&(clearTimeout(n.current),n.current=null),m(0),l(!0),requestAnimationFrame(()=>{requestAnimationFrame(()=>{c(!1)})})))};return window.addEventListener("message",t),()=>window.removeEventListener("message",t)},[]);const j=()=>{u.current=!1,n.current&&clearTimeout(n.current);const t=500*Math.pow(2,M);n.current=setTimeout(()=>{u.current||(M<2?(m(o=>o+1),R(o=>o+1),c(!0)):(console.error("[useInteractiveMode] Interactive mode failed to load after 3 attempts - showing iframe anyway"),l(!0),c(!1)))},t)};return e.useEffect(()=>{g&&!d.current&&r&&s&&(d.current=!0,E(!0),l(!1),w(null),(async()=>{if(i)try{await fetch(`/api/logs/${i}`,{method:"DELETE"})}catch(o){console.error("[useInteractiveMode] Failed to clear log file:",o)}L(),k.submit({action:"start",analysisId:s,scenarioId:r},{method:"post",action:"/api/interactive-mode"})})())},[g,r,s,L,i]),e.useEffect(()=>{const t=s,o=()=>{if(d.current&&t){const v=new URLSearchParams({action:"stop",analysisId:t});console.log("[useInteractiveMode] Sending stop request via sendBeacon");const T=navigator.sendBeacon("/api/interactive-mode",v);console.log("[useInteractiveMode] sendBeacon result:",T),T||(console.log("[useInteractiveMode] sendBeacon failed, using fetch fallback"),fetch("/api/interactive-mode",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:v,keepalive:!0}).catch(D=>console.error("Failed to stop interactive mode:",D)))}},p=()=>{o()};return window.addEventListener("beforeunload",p),()=>{window.removeEventListener("beforeunload",p),console.log("[useInteractiveMode] Cleanup running:",{hasStarted:d.current,analysisId:t}),o()}},[s]),{interactiveServerUrl:S,isStarting:A,isLoading:B,showIframe:q,iframeKey:z,onIframeLoad:j}}function Z(){return h.jsxs("div",{className:"spinner-container",children:[h.jsx("span",{className:"loader"}),h.jsx("style",{children:`
2
- .loader {
3
- width: 48px;
4
- height: 48px;
5
- border: 3px solid rgba(0, 92, 117, 0.2);
6
- border-radius: 50%;
7
- display: inline-block;
8
- position: relative;
9
- box-sizing: border-box;
10
- animation: rotation 1s linear infinite;
11
- }
12
- .loader::after {
13
- content: '';
14
- box-sizing: border-box;
15
- position: absolute;
16
- left: 50%;
17
- top: 50%;
18
- transform: translate(-50%, -50%);
19
- width: 56px;
20
- height: 56px;
21
- border-radius: 50%;
22
- border: 3px solid;
23
- border-color: #005c75 transparent;
24
- }
25
-
26
- @keyframes rotation {
27
- 0% {
28
- transform: rotate(0deg);
29
- }
30
- 100% {
31
- transform: rotate(360deg);
32
- }
33
- }
34
- `})]})}const C=["⣾","⣽","⣻","⢿","⡿","⣟","⣯","⣷"],N=80;function $(){const[s,r]=e.useState(0);return e.useEffect(()=>{const a=setInterval(()=>{r(i=>(i+1)%C.length)},N);return()=>clearInterval(a)},[]),h.jsx("span",{className:"inline-block mr-2",children:C[s]})}export{$ as I,Z as S,V as u};
@@ -1,11 +0,0 @@
1
- import{w as C,u as T,r as c,j as e,L as w}from"./chunk-JZWAC4HX-JE9ZIoBl.js";import{u as E}from"./useReportContext-CpZgwliL.js";import{c as S}from"./createLucideIcon-Ca9fAY46.js";import{T as v,C as y}from"./terminal-BrCP7uQo.js";import{S as A}from"./search-B8VUL8nl.js";import{C as j}from"./chevron-down-TJp6ofnp.js";import{B as $}from"./book-open-PttOB2SF.js";import{T as O}from"./triangle-alert-BZz2NjYa.js";/**
2
- * @license lucide-react v0.556.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const R=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],I=S("arrow-left",R);/**
7
- * @license lucide-react v0.556.0 - ISC
8
- *
9
- * This source code is licensed under the ISC license.
10
- * See the LICENSE file in the root directory of this source tree.
11
- */const L=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],F=S("save",L),Z=()=>[{title:"CodeYam - Agent Transcripts"},{name:"description",content:"View background agent transcripts and tool call history"}];function B(t){if(!t)return"";try{return new Date(t).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}catch{return t}}function D(t){if(!t)return"";try{return new Date(t).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",hour12:!1})}catch{return t}}function f({type:t,toolName:s}){const a={user_prompt:"bg-[#00b4d8] text-black",assistant_text:"bg-[#a8dadc] text-black",tool_call:"bg-[#f4a261] text-black",tool_result:"bg-[#2a9d8f] text-black",context:"bg-[#7c3aed] text-white"},r={user_prompt:"USER",assistant_text:"ASSISTANT",tool_call:s||"TOOL",tool_result:"RESULT",context:"CONTEXT"};return e.jsx("span",{className:`inline-block px-2 py-0.5 rounded text-[10px] font-bold uppercase tracking-wide ${a[t]||"bg-gray-300 text-black"}`,children:r[t]||t})}function M({input:t}){return e.jsx("div",{className:"text-xs font-mono space-y-1",children:Object.entries(t).map(([s,a])=>{let r=typeof a=="string"?a:JSON.stringify(a);return r.length>500&&(r=r.slice(0,500)+"..."),e.jsxs("div",{children:[e.jsxs("span",{className:"text-[#f4a261] font-bold",children:[s,":"]})," ",e.jsx("span",{className:"text-gray-700",children:r})]},s)})})}function V({content:t,truncated:s,fullLength:a}){const[r,l]=c.useState(!1);return e.jsxs("div",{children:[e.jsxs("pre",{className:"whitespace-pre-wrap break-words text-xs max-h-96 overflow-y-auto text-gray-700",children:[t,s&&!r&&"..."]}),s&&e.jsx("button",{onClick:()=>l(!r),className:"text-[11px] text-gray-500 hover:text-gray-700 mt-1 font-mono cursor-pointer",children:r?"Show less":`Show more (${(a||0)-t.length} more chars)`})]})}function P({entry:t,pairedResult:s}){const[a,r]=c.useState(!1),l=B(t.timestamp||"");return t.type==="user_prompt"?e.jsxs("div",{className:"my-2",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(f,{type:"user_prompt"}),e.jsx("span",{className:"text-[11px] text-gray-400 font-mono",children:l})]}),e.jsx("pre",{className:"bg-white border border-gray-200 rounded-md p-3 whitespace-pre-wrap break-words text-xs font-mono border-l-[3px] border-l-[#00b4d8] max-h-72 overflow-y-auto text-gray-800",children:t.text})]}):t.type==="assistant_text"?e.jsxs("div",{className:"my-2",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(f,{type:"assistant_text"}),e.jsx("span",{className:"text-[11px] text-gray-400 font-mono",children:l})]}),e.jsx("div",{className:"bg-white border border-gray-200 rounded-md p-3 whitespace-pre-wrap break-words text-sm border-l-[3px] border-l-[#a8dadc] text-gray-800",children:t.text})]}):t.type==="tool_call"?e.jsxs("div",{className:"my-2",children:[e.jsxs("button",{onClick:()=>r(!a),className:"flex items-center gap-2 w-full text-left bg-white border border-gray-200 rounded-md px-3 py-2 hover:bg-gray-50 cursor-pointer",children:[a?e.jsx(j,{className:"w-3 h-3 text-gray-400 flex-shrink-0"}):e.jsx(y,{className:"w-3 h-3 text-gray-400 flex-shrink-0"}),e.jsx(f,{type:"tool_call",toolName:t.name}),e.jsx("span",{className:"text-xs text-gray-500 font-mono truncate flex-1",children:t.summary||""}),e.jsx("span",{className:"text-[11px] text-gray-400 font-mono flex-shrink-0",children:l})]}),a&&e.jsxs("div",{className:"bg-white border border-t-0 border-gray-200 rounded-b-md px-3 py-2 border-l-[3px] border-l-[#f4a261]",children:[e.jsx(M,{input:t.input||{}}),s&&e.jsxs("div",{className:"mt-3 pt-3 border-t border-gray-200",children:[e.jsxs("div",{className:"text-[11px] font-bold uppercase tracking-wide text-[#2a9d8f] mb-1",children:["Result",s.is_error?" (Error)":"",":"]}),e.jsx(V,{content:s.content||"",truncated:s.truncated,fullLength:s.fullLength})]})]})]}):(t.type==="tool_result",null)}function U({change:t}){const[s,a]=c.useState(!1),r=t.action==="created"?!!t.content:t.action==="modified"?!!(t.oldString||t.newString):!1;return e.jsxs("li",{children:[e.jsx("button",{onClick:()=>r&&a(!s),className:`text-left w-full ${r?"hover:text-green-900 cursor-pointer":""}`,children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[r&&(s?e.jsx(j,{className:"w-3 h-3 inline flex-shrink-0"}):e.jsx(y,{className:"w-3 h-3 inline flex-shrink-0"})),t.action==="created"?"Created":"Modified"," ",t.filePath]})}),s&&t.action==="created"&&t.content&&e.jsx("pre",{className:"mt-1 mb-2 ml-4 p-2 bg-white border border-green-200 rounded text-[11px] text-gray-700 whitespace-pre-wrap break-words max-h-64 overflow-y-auto",children:t.content}),s&&t.action==="modified"&&e.jsxs("div",{className:"mt-1 mb-2 ml-4 space-y-1",children:[t.oldString&&e.jsxs("pre",{className:"p-2 bg-red-50 border border-red-200 rounded text-[11px] text-red-800 whitespace-pre-wrap break-words max-h-32 overflow-y-auto",children:["- ",t.oldString]}),t.newString&&e.jsxs("pre",{className:"p-2 bg-green-50 border border-green-300 rounded text-[11px] text-green-800 whitespace-pre-wrap break-words max-h-32 overflow-y-auto",children:["+ ",t.newString]})]})]})}function H({changes:t}){const s=t.filter(r=>r.action==="touched"),a=t.filter(r=>r.action!=="touched");return e.jsxs("div",{className:"my-2 bg-green-50 border border-green-200 rounded-md p-3",children:[e.jsx("div",{className:"text-xs font-bold text-green-800 mb-1",children:"Rule Changes:"}),e.jsxs("ul",{className:"text-xs text-green-700 space-y-0.5 font-mono",children:[a.map((r,l)=>e.jsx(U,{change:r},l)),s.length>0&&e.jsxs("li",{children:["Touched timestamps on ",s.length," rule",s.length!==1?"s":""]})]})]})}function z({agent:t,defaultOpen:s}){const[a,r]=c.useState(s),[l,u]=c.useState(!1),[d,x]=c.useState(null),m=c.useMemo(()=>{const o={};for(const n of t.entries)n.type==="tool_result"&&n.tool_use_id&&(o[n.tool_use_id]=n);return o},[t.entries]),g=c.useMemo(()=>{const o=new Set;for(const n of t.entries)n.type==="tool_call"&&n.tool_use_id&&m[n.tool_use_id]&&o.add(n.tool_use_id);return o},[t.entries,m]),b=o=>{o.stopPropagation(),u(!0),x(null),fetch("/api/save-fixture",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:t.id})}).then(n=>n.json()).then(n=>{n.success?x(`Saved to ${n.fixturePath}`):x(`Error: ${n.error}`)}).catch(n=>{x(`Error: ${n instanceof Error?n.message:String(n)}`)}).finally(()=>{u(!1)})},p=(t.ruleChanges||[]).filter(o=>o.action!=="touched"),i=(t.ruleChanges||[]).filter(o=>o.action==="touched"),h=p.length>0,N=i.length>0,_=h||N;return e.jsxs("div",{className:`bg-white border rounded-lg overflow-hidden mb-4 ${h?"border-green-300":"border-gray-200"}`,children:[e.jsxs("button",{onClick:()=>r(!a),className:"w-full flex items-center gap-3 px-4 py-3 text-left hover:bg-gray-50 cursor-pointer",children:[a?e.jsx(j,{className:"w-4 h-4 text-gray-400 flex-shrink-0"}):e.jsx(y,{className:"w-4 h-4 text-gray-400 flex-shrink-0"}),e.jsx("span",{className:"text-sm font-bold text-[#005C75] font-mono",children:t.id.slice(0,8)}),t.slug&&e.jsx("span",{className:"text-xs text-gray-500",children:t.slug}),h&&e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[10px] font-bold bg-green-100 text-green-800",children:[e.jsx($,{className:"w-3 h-3"}),p.length===1?"1 rule changed":`${p.length} rules changed`]}),!h&&N&&e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[10px] font-bold bg-gray-100 text-gray-500",children:[i.length," timestamp",i.length!==1?"s":""," ","touched"]}),t.hasConfusion&&e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[10px] font-bold bg-amber-100 text-amber-800",children:[e.jsx(O,{className:"w-3 h-3"}),"Confusion Detected"]}),e.jsxs("span",{className:"text-[11px] text-gray-400 font-mono",children:[t.stats.toolCalls," tool calls, ",t.stats.textBlocks," text blocks"]}),e.jsxs("span",{className:"text-[11px] text-gray-400 font-mono ml-auto flex items-center gap-2",children:[D(t.timestamp),h&&e.jsxs("button",{onClick:b,disabled:l,className:"inline-flex items-center gap-1 px-2 py-1 rounded text-[10px] font-bold bg-gray-100 text-gray-600 hover:bg-gray-200 disabled:opacity-50 cursor-pointer",title:"Save as test fixture",children:[e.jsx(F,{className:"w-3 h-3"}),l?"Saving...":"Save Fixture"]})]})]}),d&&e.jsx("div",{className:`px-4 py-2 text-xs font-mono ${d.startsWith("Error")?"bg-red-50 text-red-700":"bg-green-50 text-green-700"}`,children:d}),a&&e.jsxs("div",{className:"px-4 pb-4 border-t border-gray-100",children:[_&&e.jsx(H,{changes:t.ruleChanges}),t.context&&e.jsxs("div",{className:"my-2",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(f,{type:"context"}),e.jsx("span",{className:"text-xs text-gray-500",children:"Input context given to the agent"})]}),e.jsx("pre",{className:"bg-gray-50 border border-gray-200 rounded-md p-3 whitespace-pre-wrap break-words text-xs font-mono border-l-[3px] border-l-[#7c3aed] max-h-96 overflow-y-auto text-gray-700",children:t.context})]}),t.entries.map((o,n)=>{if(o.type==="tool_result"&&o.tool_use_id&&g.has(o.tool_use_id))return null;const k=o.type==="tool_call"&&o.tool_use_id?m[o.tool_use_id]:void 0;return e.jsx(P,{entry:o,pairedResult:k},`${t.id}-${n}`)})]})]})}const ee=C(function(){const{agents:s,error:a,search:r}=T(),[l,u]=c.useState(r),[d,x]=c.useState(!1),[m,g]=c.useState(0);E({source:"agent-transcripts-page"});const b=i=>{i.preventDefault(),window.location.href=`/agent-transcripts${l?`?search=${encodeURIComponent(l)}`:""}`},p=()=>{x(!d),g(i=>i+1)};return a?e.jsx("div",{className:"bg-[#F8F7F6] min-h-screen",children:e.jsxs("div",{className:"px-12 py-6 font-sans",children:[e.jsx("h1",{className:"text-[28px] font-semibold text-gray-900",children:"Error"}),e.jsx("p",{className:"text-base text-gray-500",children:a})]})}):e.jsx("div",{className:"bg-[#f9f9f9] min-h-screen",children:e.jsxs("div",{className:"px-20 py-12 font-sans",children:[e.jsxs("div",{className:"mb-8",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-1",children:[e.jsx(w,{to:"/memory",className:"text-gray-400 hover:text-gray-600 transition-colors",children:e.jsx(I,{className:"w-5 h-5"})}),e.jsx(v,{className:"w-6 h-6 text-[#232323]"}),e.jsx("h1",{className:"text-[24px] font-semibold mb-0",style:{fontFamily:"Sora",color:"#232323"},children:"Agent Transcripts"})]}),e.jsx("p",{className:"text-[15px] text-gray-500 ml-14",children:"View background agent transcripts and tool call history"})]}),e.jsxs("div",{className:"flex items-center gap-4 mb-6",children:[e.jsxs("form",{onSubmit:b,className:"relative flex-1 max-w-md",children:[e.jsx(A,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400"}),e.jsx("input",{type:"text",value:l,onChange:i=>u(i.target.value),placeholder:"Search transcripts...",className:"w-full pl-10 pr-4 py-2 border border-gray-200 rounded-md bg-white focus:outline-none focus:ring-2 focus:ring-[#005C75] focus:border-transparent text-sm"})]}),e.jsx("button",{onClick:p,className:"text-xs text-[#005C75] hover:underline cursor-pointer font-mono uppercase font-semibold",children:d?"Collapse All":"Expand All"})]}),e.jsxs("div",{className:"text-sm text-gray-500 mb-4",children:[s.length," agent",s.length!==1?"s":""," found",r&&e.jsxs("span",{children:[" ","matching “",r,"”",e.jsx(w,{to:"/agent-transcripts",className:"text-[#005C75] hover:underline ml-2",children:"Clear"})]})]}),s.length===0?e.jsxs("div",{className:"bg-white rounded-lg border border-gray-200 p-12 text-center",children:[e.jsx(v,{className:"w-12 h-12 text-gray-300 mx-auto mb-4"}),e.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"No Agent Transcripts Found"}),e.jsx("p",{className:"text-gray-500",children:"Background agent output files will appear here when available."})]}):e.jsx("div",{children:s.map(i=>e.jsx(z,{agent:i,defaultOpen:d},i.id))},m)]})})});export{ee as default,Z as meta};
@@ -1 +0,0 @@
1
- import{w as t,c as r,j as e}from"./chunk-JZWAC4HX-JE9ZIoBl.js";import{S as i}from"./ScenarioViewer-BNLaXBHR.js";import{W as n}from"./InteractivePreview-BDhPilK7.js";import"./useCustomSizes-DNwUduNu.js";import"./LogViewer-Bm3PmcCz.js";import"./SafeScreenshot-Gq3Ocjo6.js";import"./useLastLogLine-COky1GVF.js";import"./InlineSpinner-ClaLpuOo.js";import"./preload-helper-ckwbz45p.js";import"./ReportIssueModal-C6PKeMYR.js";import"./createLucideIcon-Ca9fAY46.js";import"./circle-check-CXhHQYrI.js";import"./triangle-alert-BZz2NjYa.js";import"./copy-6y9ALfGT.js";import"./scenarioStatus-B_8jpV3e.js";const y=()=>[{title:"Empty State - CodeYam"},{name:"description",content:"Simulations empty state development view"}],w=t(function(){r();const s={sha:"mock-sha",name:"Dashboard",filePath:"codeyam-cli/src/webserver/app/routes/_index.tsx",entityType:"visual"};return e.jsx(n,{children:e.jsxs("div",{className:"h-screen bg-[#F8F7F6] flex flex-col overflow-hidden",children:[e.jsx("header",{className:"bg-white border-b border-gray-200 shrink-0 relative h-[54px]",children:e.jsxs("div",{className:"flex items-center h-full px-6 gap-6",children:[e.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[e.jsx("svg",{width:"17",height:"17",viewBox:"0 0 17 17",fill:"none",className:"shrink-0",children:e.jsx("path",{d:"M13 8.5H4M4 8.5L8.5 4M4 8.5L8.5 13",stroke:"#005c75",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),e.jsx("h1",{className:"text-lg font-semibold text-black m-0 leading-[26px] shrink-0",children:"Dashboard"}),e.jsx("span",{className:"text-xs text-[#626262] font-mono whitespace-nowrap overflow-hidden text-ellipsis min-w-0",children:"codeyam-cli/src/webserver/app/routes/_index.tsx"})]}),e.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-2 px-[15px] py-0 h-[26px] bg-[#efefef] border border-[#e1e1e1] rounded",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-[#626262]"}),e.jsx("span",{className:"text-xs font-semibold text-[#626262]",children:"Not analyzed"})]}),e.jsx("button",{className:"px-[15px] py-0 h-[26px] bg-[#005c75] text-white rounded text-xs font-semibold border-none cursor-pointer hover:bg-[#004a5e] transition-colors",children:"Analyze"})]}),e.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-[#626262] ml-auto",children:[e.jsx("span",{className:"leading-[22px]",children:"Next Entity"}),e.jsx("svg",{width:"17",height:"17",viewBox:"0 0 17 17",fill:"none",className:"shrink-0",children:e.jsx("path",{d:"M4 8.5H13M13 8.5L8.5 4M13 8.5L8.5 13",stroke:"#005c75",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]})]})}),e.jsx("div",{className:"bg-[#efefef] border-b border-[#efefef] shrink-0",children:e.jsxs("div",{className:"flex items-center gap-3 h-11 px-[15px]",children:[e.jsxs("div",{className:"px-4 flex items-center justify-center gap-3 shrink-0 text-sm rounded bg-[#343434] text-[#efefef] font-semibold h-8",children:["Scenarios",e.jsx("span",{className:"px-2 py-0.5 rounded-[9px] text-xs font-semibold bg-[#cbf3fa] text-[#005c75] min-w-[25px] text-center",children:"0"})]}),e.jsxs("div",{className:"px-4 flex items-center justify-center gap-3 shrink-0 text-sm rounded-[9px] text-[#3e3e3e] font-normal",children:["Related Entities",e.jsx("span",{className:"px-2 py-0.5 rounded-[9px] text-xs font-semibold bg-[#e1e1e1] text-[#3e3e3e] min-w-[25px] text-center",children:"5"})]}),e.jsx("div",{className:"px-4 shrink-0 text-sm text-[#3e3e3e] font-normal",children:"Code"}),e.jsx("div",{className:"px-4 shrink-0 text-sm text-[#3e3e3e] font-normal",children:"Data Structure"}),e.jsx("div",{className:"px-4 shrink-0 text-sm text-[#3e3e3e] font-normal",children:"History"})]})}),e.jsxs("div",{className:"flex flex-1 gap-0 min-h-0",children:[e.jsx("div",{className:"w-[165px] bg-[#e1e1e1] border-r border-[#c7c7c7] flex items-center justify-center shrink-0",children:e.jsx("span",{className:"text-xs font-medium text-[#8e8e8e] leading-5",children:"No Scenarios"})}),e.jsx(i,{selectedScenario:null,analysis:void 0,entity:s,viewMode:"screenshot",cacheBuster:Date.now(),hasScenarios:!1,isAnalyzing:!1,projectSlug:null,hasAnApiKey:!0})]})]})})});export{w as default,y as meta};
@@ -1,6 +0,0 @@
1
- import{w as Y,u as q,a as G,b as J,r as l,j as e}from"./chunk-JZWAC4HX-JE9ZIoBl.js";import{u as O,S as P,I as $}from"./InlineSpinner-ClaLpuOo.js";import{u as Q}from"./useLastLogLine-COky1GVF.js";import{u as X,V as Z,S as ee}from"./useCustomSizes-DNwUduNu.js";import{c as te}from"./cy-logo-cli-DcX-ZS3p.js";const b=[{name:"Mobile",width:375,height:667},{name:"Tablet",width:768,height:1024},{name:"Laptop",width:1024,height:768},{name:"Desktop",width:1440,height:900}],de=Y(function(){const{entity:i,scenario:s,analysis:r,projectSlug:m}=q(),u=G();J();const[ne,w]=l.useState(null),[_,N]=l.useState(1440),[a,g]=l.useState({name:"Desktop",width:1440,height:900}),[z,p]=l.useState(!1),[f,B]=l.useState(null),{customSizes:S,addCustomSize:D}=X(m),x=l.useMemo(()=>[...b,...S],[S]),{interactiveServerUrl:y,isStarting:k,isLoading:C,showIframe:I,iframeKey:W,onIframeLoad:E}=O({analysisId:r==null?void 0:r.id,scenarioId:s==null?void 0:s.id,scenarioName:s==null?void 0:s.name,projectSlug:m,enabled:!0}),{lastLine:h}=Q(m,k||C),U=()=>{u(`/entity/${i.sha}`)},V=(t,n)=>{N(t);const o=x.find(M=>M.width===t&&M.height===n);w(o||null),g({name:(o==null?void 0:o.name)||"Custom",width:t,height:n})},L=t=>{w(t),N(t.width),g({name:t.name,width:t.width,height:t.height})},R=t=>{D(t,a.width,a.height??900),p(!1),g(n=>({...n,name:t}))},c=((r==null?void 0:r.scenarios)||[]).filter(t=>{var n;return!((n=t.metadata)!=null&&n.sameAsDefault)}),d=c.findIndex(t=>t.id===(s==null?void 0:s.id)),H=d+1,T=c.length,v=d>0,j=d<c.length-1,A=()=>{if(v){const t=c[d-1],n=encodeURIComponent(`/entity/${i.sha}/scenarios/${t.id}/fullscreen`);u(`/entity/${i.sha}/scenarios/${t.id}/fullscreen?from=${n}`)}},F=()=>{if(j){const t=c[d+1],n=encodeURIComponent(`/entity/${i.sha}/scenarios/${t.id}/fullscreen`);u(`/entity/${i.sha}/scenarios/${t.id}/fullscreen?from=${n}`)}},K=k||C||!I;return e.jsxs("div",{className:"fixed inset-0 bg-[#2d2d2d] flex flex-col",children:[e.jsxs("div",{className:"bg-[#3d3d3d] h-12 flex items-center px-4 gap-4 shrink-0 z-20",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-1 min-w-0",children:[e.jsx("img",{src:te,alt:"CodeYam",className:"h-6 brightness-0 invert"}),e.jsx("span",{className:"text-white font-medium text-sm whitespace-nowrap",children:i.name}),e.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[e.jsx("button",{onClick:A,disabled:!v,className:`${v?"text-white hover:text-gray-300":"text-gray-600 cursor-not-allowed"} transition-colors`,"aria-label":"Previous scenario",children:e.jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:e.jsx("path",{d:"M12.5 15L7.5 10L12.5 5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}),e.jsxs("span",{className:"text-gray-400 text-sm",children:[H,"/",T]}),e.jsx("button",{onClick:F,disabled:!j,className:`${j?"text-white hover:text-gray-300":"text-gray-600 cursor-not-allowed"} transition-colors`,"aria-label":"Next scenario",children:e.jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:e.jsx("path",{d:"M7.5 15L12.5 10L7.5 5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),e.jsxs("div",{className:"flex items-center gap-2 ml-2 min-w-0",children:[e.jsx("span",{className:"text-white font-semibold text-xs whitespace-nowrap shrink-0",children:s==null?void 0:s.name}),(s==null?void 0:s.description)&&e.jsxs("div",{className:"relative group min-w-0",children:[e.jsx("span",{className:"text-gray-400 text-xs truncate block",children:s.description}),e.jsx("div",{className:"absolute left-0 top-full mt-1 hidden group-hover:block z-50 bg-black text-white text-xs px-3 py-2 rounded shadow-lg max-w-md",children:s.description})]})]})]}),e.jsx("button",{onClick:U,className:"text-white hover:text-gray-300 transition-colors ml-4","aria-label":"Close fullscreen",children:e.jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:e.jsx("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})})]}),e.jsxs("div",{className:"bg-[#e5e7eb] border-b border-[rgba(0,0,0,0.1)] shrink-0 z-10 h-6 flex items-center justify-center relative",children:[e.jsx("div",{className:"absolute inset-0 flex justify-center",children:e.jsx("div",{style:{maxWidth:`${b[b.length-1].width}px`,width:"100%"},children:e.jsx(Z,{currentViewportWidth:_,currentPresetName:a.name,onDevicePresetClick:L,devicePresets:x,hideLabel:!0,onHoverChange:B,lightMode:!0})})}),e.jsxs("div",{className:"relative z-10 flex items-center gap-2",children:[e.jsxs("div",{className:"relative w-28 h-5",children:[e.jsxs("div",{className:"absolute inset-0 bg-white text-gray-900 text-xs px-2 rounded flex items-center justify-between pointer-events-none border border-gray-300",children:[e.jsx("span",{className:"leading-none",children:(f==null?void 0:f.name)||a.name}),e.jsx("svg",{width:"10",height:"10",viewBox:"0 0 12 12",fill:"none",className:"shrink-0",children:e.jsx("path",{d:"M3 4.5L6 7.5L9 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]}),e.jsxs("select",{value:a.name,onChange:t=>{const n=x.find(o=>o.name===t.target.value);n&&L(n)},className:"relative w-full h-full opacity-0 cursor-pointer",children:[x.map(t=>e.jsx("option",{value:t.name,children:t.name},t.name)),a.name==="Custom"&&e.jsx("option",{value:"Custom",children:"Custom"})]})]}),e.jsx("input",{type:"number",value:a.width,onChange:t=>{const n=parseInt(t.target.value,10);!isNaN(n)&&n>0&&V(n,a.height??900)},className:"bg-white text-gray-900 text-xs px-1 rounded border border-gray-300 outline-none w-16 text-center h-5 leading-none",min:"200",max:"3840"}),e.jsx("span",{className:"text-gray-400 text-xs h-5 flex items-center leading-none",children:"×"}),e.jsx("span",{className:"bg-gray-100 text-gray-600 text-xs px-1 rounded w-14 text-center h-5 flex items-center justify-center leading-none",children:a.height??900}),a.name==="Custom"&&e.jsx("button",{onClick:()=>p(!0),className:"bg-white text-gray-900 text-xs px-2 rounded h-5 flex items-center leading-none border border-gray-300 hover:bg-gray-50 transition-colors",children:"Save"})]})]}),e.jsx("div",{className:"flex-1 flex items-center justify-center overflow-auto p-8",style:{backgroundImage:`
2
- linear-gradient(45deg, #ebebeb 25%, transparent 25%),
3
- linear-gradient(-45deg, #ebebeb 25%, transparent 25%),
4
- linear-gradient(45deg, transparent 75%, #ebebeb 75%),
5
- linear-gradient(-45deg, transparent 75%, #ebebeb 75%)
6
- `,backgroundSize:"16px 16px",backgroundPosition:"0 0, 0 8px, 8px -8px, -8px 0px",backgroundColor:"#fafafa"},children:y?e.jsxs("div",{className:"relative bg-white w-full h-full",style:{maxWidth:`${a.width}px`,maxHeight:`${a.height}px`},children:[K&&e.jsx("div",{className:"absolute inset-0 flex items-center justify-center z-10",children:e.jsxs("div",{className:"flex flex-col items-center justify-center gap-6 bg-white rounded-lg p-8 shadow-sm w-[500px] h-[300px]",children:[e.jsx("div",{className:"mb-4",children:e.jsx(P,{})}),e.jsxs("div",{className:"flex flex-col gap-3 text-center",children:[e.jsx("h2",{className:"text-xl font-medium text-black leading-[28px] m-0 font-['IBM_Plex_Sans']",children:"Starting Interactive Mode"}),e.jsx("p",{className:"text-sm text-[#666] leading-5 m-0 font-['IBM_Plex_Sans']",children:"Setting up a sandboxed environment for your component"}),h&&e.jsxs("p",{className:"text-xs font-mono text-[#005c75] text-center leading-5 m-0 mt-3 font-['IBM_Plex_Mono'] uppercase",children:[e.jsx($,{}),h]})]})]})}),e.jsx("iframe",{src:y,className:"w-full h-full border-none",title:`Interactive preview: ${s==null?void 0:s.name}`,onLoad:E,style:{opacity:I?1:0}},W)]}):e.jsxs("div",{className:"flex flex-col items-center justify-center gap-6 w-[500px] h-[300px] bg-white rounded-lg p-8 shadow-sm",children:[e.jsx("div",{className:"mb-4",children:e.jsx(P,{})}),e.jsxs("div",{className:"flex flex-col gap-3 text-center",children:[e.jsx("h2",{className:"text-xl font-medium text-black leading-[28px] m-0 font-['IBM_Plex_Sans']",children:"Starting Interactive Mode"}),e.jsx("p",{className:"text-sm text-[#666] leading-5 m-0 font-['IBM_Plex_Sans']",children:"Setting up a sandboxed environment for your component"}),h&&e.jsxs("p",{className:"text-xs font-mono text-[#005c75] text-center leading-5 m-0 mt-3 font-['IBM_Plex_Mono'] uppercase",children:[e.jsx($,{}),h]})]})]})}),z&&e.jsx(ee,{width:a.width,height:a.height??900,onSave:R,onCancel:()=>p(!1)})]})});export{de as default};
@@ -1,6 +0,0 @@
1
- import{r as a,j as e,w as Z,u as ee,a as te,L as v}from"./chunk-JZWAC4HX-JE9ZIoBl.js";import{W as se,u as re,I as ae}from"./InteractivePreview-BDhPilK7.js";import{u as ne}from"./InlineSpinner-ClaLpuOo.js";import{c as oe}from"./executionFlowCoverage-BWhdfn70.js";import"./preload-helper-ckwbz45p.js";import"./useLastLogLine-COky1GVF.js";function ie({executionFlows:t,selections:r,onChange:n,disabled:i=!1}){const x=a.useCallback(s=>r.some(o=>o.flowId===s),[r]),p=a.useCallback(s=>{x(s.id)?n(r.filter(o=>o.flowId!==s.id)):n([...r,{flowId:s.id,flowName:s.name}])},[r,n,x]);return t.length===0?e.jsx("div",{className:"text-sm text-gray-500 py-2",children:"No execution flows found."}):e.jsx("div",{className:"space-y-3",children:t.map(s=>{const o=x(s.id),I=s.usedInScenarios.length>0;return e.jsxs("div",{className:"border-b border-gray-100 pb-3 last:border-0 last:pb-0",children:[e.jsxs("label",{className:"flex items-start gap-2 cursor-pointer",children:[e.jsx("input",{type:"checkbox",checked:o,onChange:()=>p(s),disabled:i,className:"mt-0.5 h-4 w-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"font-mono text-sm font-medium text-gray-900",children:s.name}),!I&&e.jsx("span",{className:"text-xs px-1.5 py-0.5 bg-amber-100 text-amber-700 rounded",children:"uncovered"}),s.blocksOtherFlows&&e.jsx("span",{className:"text-xs px-1.5 py-0.5 bg-purple-100 text-purple-700 rounded",children:"blocking"}),s.impact==="high"&&e.jsx("span",{className:"text-xs px-1.5 py-0.5 bg-red-100 text-red-700 rounded",children:"high impact"})]}),s.description&&e.jsx("p",{className:"text-xs text-gray-500 mt-0.5 m-0",children:s.description})]})]}),o&&s.requiredValues.length>0&&e.jsxs("div",{className:"ml-6 mt-2 p-2 bg-gray-50 rounded text-xs",children:[e.jsx("span",{className:"text-gray-700 font-medium",children:"Required values:"}),e.jsx("ul",{className:"m-0 mt-1 pl-4 space-y-0.5",children:s.requiredValues.map((h,E)=>e.jsxs("li",{className:"text-gray-600",children:[e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:h.attributePath})," ",e.jsx("span",{className:"text-gray-400",children:h.comparison})," ",e.jsx("code",{className:"bg-gray-100 px-1 rounded",children:h.value})]},E))})]})]},s.id)})})}const he=({data:t})=>[{title:t!=null&&t.entity?`Create Scenario - ${t.entity.name} - CodeYam`:"Create Scenario - CodeYam"},{name:"description",content:"Create a new scenario"}];function ce(){var W;const{analysis:t,defaultScenario:r,entity:n,entitySha:i,projectSlug:x}=ee(),p=te(),{iframeRef:s}=re(),[o,I]=a.useState(""),[h,E]=a.useState(400),[b,P]=a.useState(!1),[U,R]=a.useState(!1),[G,$]=a.useState(!1),[M,L]=a.useState(null),[F,l]=a.useState(null),[d,H]=a.useState([]),D=a.useMemo(()=>{var c;return!((c=t==null?void 0:t.metadata)!=null&&c.executionFlows)||!(t!=null&&t.scenarios)?[]:oe(t.metadata.executionFlows,t.scenarios).executionFlows},[t]),{interactiveServerUrl:y,isStarting:J,isLoading:_,showIframe:q,iframeKey:B,onIframeLoad:V}=ne({analysisId:t==null?void 0:t.id,scenarioId:r==null?void 0:r.id,scenarioName:r==null?void 0:r.name,projectSlug:x,enabled:!0}),Y=a.useCallback(async()=>{var m,c,T,z;if(!o.trim()&&d.length===0){L("Please describe how you want to change the scenario or select execution flows");return}R(!0),L(null),l("Generating scenario with AI...");try{const u=await fetch("/api/generate-scenario-data",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({description:o,existingScenarios:t.scenarios,scenariosDataStructure:(m=t.metadata)==null?void 0:m.scenariosDataStructure,flowSelections:d.length>0?d:void 0})}),N=await u.json();if(!u.ok||!N.success)throw new Error(N.error||"Failed to generate scenario data");console.log("[CreateScenario] AI generated scenario:",N.data);const g=N.data;if(!g.name||!g.data)throw new Error("AI response missing required fields (name or data)");l("Saving new scenario..."),$(!0);const X={name:g.name,description:g.description||o,metadata:{data:g.data,interactiveExamplePath:(c=r.metadata)==null?void 0:c.interactiveExamplePath}},Q=[...t.scenarios||[],X],O=await fetch("/api/save-scenarios",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({analysis:t,scenarios:Q})}),C=await O.json();if(!O.ok||!C.success)throw new Error(C.error||"Failed to save scenario");console.log("[CreateScenario] Scenario saved:",C);const f=(z=(T=C.analysis)==null?void 0:T.scenarios)==null?void 0:z.find(k=>k.name===g.name);if(!(f!=null&&f.id)){console.warn("[CreateScenario] Could not find saved scenario ID, navigating to entity page"),l("Scenario created! Redirecting..."),setTimeout(()=>void p(`/entity/${i}`),1e3);return}if(y){l("Capturing screenshot...");const k=await fetch("/api/capture-screenshot",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverUrl:y,scenarioId:f.id,projectId:t.projectId,viewportWidth:1440})}),A=await k.json();!k.ok||!A.success?(console.error("[CreateScenario] Capture failed:",A),l("Scenario created! (Screenshot capture failed)")):l("Scenario created and captured!")}else l("Scenario created!");setTimeout(()=>{p(`/entity/${i}/scenarios/${f.id}`)},1e3)}catch(u){console.error("[CreateScenario] Error:",u),L(u instanceof Error?u.message:String(u)),l(null)}finally{R(!1),$(!1)}},[o,d,t,r,i,y,p]),j=U||G,K=a.useCallback(()=>{P(!0)},[]),w=a.useCallback(m=>{if(!b)return;const c=m.clientX;c>=250&&c<=600&&E(c)},[b]),S=a.useCallback(()=>{P(!1)},[]);return a.useEffect(()=>(b?(document.addEventListener("mousemove",w),document.addEventListener("mouseup",S)):(document.removeEventListener("mousemove",w),document.removeEventListener("mouseup",S)),()=>{document.removeEventListener("mousemove",w),document.removeEventListener("mouseup",S)}),[b,w,S]),e.jsxs("div",{className:"h-screen bg-white flex flex-col overflow-hidden",children:[e.jsx("header",{className:"bg-white border-b border-gray-200 shrink-0 relative h-[54px]",children:e.jsxs("div",{className:"flex items-end h-full px-6 gap-6",children:[e.jsxs("div",{className:"flex items-center gap-3 min-w-0 flex-1 pb-[14px]",children:[e.jsx("button",{onClick:()=>void p(`/entity/${i}`),className:"no-underline shrink-0 bg-transparent border-none cursor-pointer p-0 flex items-center",title:"Back",children:e.jsx("svg",{width:"17",height:"17",viewBox:"0 0 17 17",fill:"none",children:e.jsx("path",{d:"M13 8.5H4M4 8.5L8.5 4M4 8.5L8.5 13",stroke:"#005c75",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),e.jsx("h1",{className:"text-base font-semibold text-black m-0 leading-[20px] shrink-0",children:n==null?void 0:n.name}),e.jsx("span",{className:"text-xs text-[#9e9e9e] font-mono font-normal whitespace-nowrap overflow-hidden text-ellipsis min-w-0",title:n==null?void 0:n.filePath,children:n==null?void 0:n.filePath})]}),e.jsxs("div",{className:"flex items-end gap-8 shrink-0",children:[e.jsx(v,{to:`/entity/${i}/scenarios`,className:"relative pb-[17px] px-2 text-sm transition-colors cursor-pointer no-underline font-medium border-b-2",style:{color:"#005C75",borderColor:"#005C75"},children:e.jsxs("span",{className:"flex items-center gap-2",children:["Scenarios",e.jsx("span",{className:"inline-flex items-center justify-center px-2 py-0.5 text-xs font-semibold rounded-full bg-[#cbf3fa] text-[#005c75]",children:((W=t==null?void 0:t.scenarios)==null?void 0:W.length)||0})]})}),e.jsx(v,{to:`/entity/${i}/related`,className:"relative pb-[17px] px-2 text-sm transition-colors cursor-pointer no-underline font-normal hover:text-gray-700",style:{color:"#9ca3af"},children:"Related Entities"}),e.jsx(v,{to:`/entity/${i}/code`,className:"relative pb-[17px] px-2 text-sm transition-colors cursor-pointer no-underline font-normal hover:text-gray-700",style:{color:"#9ca3af"},children:"Code"}),e.jsx(v,{to:`/entity/${i}/data`,className:"relative pb-[17px] px-2 text-sm transition-colors cursor-pointer no-underline font-normal hover:text-gray-700",style:{color:"#9ca3af"},children:"Data Structure"}),e.jsx(v,{to:`/entity/${i}/history`,className:"relative pb-[17px] px-2 text-sm transition-colors cursor-pointer no-underline font-normal hover:text-gray-700",style:{color:"#9ca3af"},children:"History"})]})]})}),e.jsxs("div",{className:"flex flex-1 gap-0 min-h-0 relative",children:[e.jsxs("aside",{className:"bg-white border-r border-gray-200 overflow-y-auto shrink-0 p-6 flex flex-col",style:{width:`${h}px`},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. Select execution flows and/or describe how you'd like to change it."})]}),D.length>0&&e.jsxs("details",{className:"mb-4 border border-gray-200 rounded-lg",children:[e.jsxs("summary",{className:"px-3 py-2 text-sm font-medium text-gray-700 cursor-pointer hover:bg-gray-50 rounded-lg",children:["Select Execution Flows"," ",d.length>0&&e.jsxs("span",{className:"text-blue-600",children:["(",d.length," selected)"]})]}),e.jsx("div",{className:"px-3 pb-3 pt-1 border-t border-gray-100",children:e.jsx(ie,{executionFlows:D,selections:d,onChange:H,disabled:j})})]}),e.jsxs("div",{className:"mb-4",children:[e.jsx("label",{htmlFor:"prompt",className:"block text-sm font-medium text-gray-700 mb-2",children:"Describe your scenario"}),e.jsx("textarea",{id:"prompt",value:o,onChange:m=>I(m.target.value),placeholder:"e.g., Show an empty state with no items...",className:"w-full h-32 px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-1 focus:ring-blue-500 focus:border-blue-500 text-sm resize-none",disabled:j})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("button",{onClick:()=>void Y(),disabled:j||!o.trim()&&d.length===0,className:"w-full px-4 py-2 bg-blue-600 text-white rounded-lg text-sm font-medium cursor-pointer transition-colors hover:bg-blue-700 disabled:bg-gray-400 disabled:cursor-not-allowed",children:j?"Creating...":"Create Scenario"}),F&&e.jsx("div",{className:"text-xs text-blue-600 bg-blue-50 px-2 py-1.5 rounded",children:F}),M&&e.jsx("div",{className:"text-xs text-red-600 bg-red-50 px-2 py-1.5 rounded",children:M})]})]}),e.jsxs("div",{onMouseDown:K,style:{width:"20px",position:"absolute",top:0,left:`${h-10}px`,bottom:0,cursor:"col-resize",touchAction:"none",userSelect:"none",zIndex:100,pointerEvents:"auto"},children:[e.jsx("div",{style:{position:"absolute",left:"10px",top:0,bottom:0,width:"1px",background:b?"#005c75":"rgba(0,0,0,0.1)",transition:"background 0.15s ease"}}),e.jsx("div",{style:{position:"absolute",top:"50%",left:"10px",transform:"translate(-50%, -50%)",width:"8px",height:"40px",background:"#fff",border:"1px solid rgba(0,0,0,0.15)",borderRadius:"4px",cursor:"col-resize"}})]}),e.jsx("main",{className:"flex-1 overflow-auto flex items-center justify-center min-w-0",style:{backgroundImage:`
2
- linear-gradient(45deg, #ebebeb 25%, transparent 25%),
3
- linear-gradient(-45deg, #ebebeb 25%, transparent 25%),
4
- linear-gradient(45deg, transparent 75%, #ebebeb 75%),
5
- linear-gradient(-45deg, transparent 75%, #ebebeb 75%)
6
- `,backgroundSize:"16px 16px",backgroundPosition:"0 0, 0 8px, 8px -8px, -8px 0px",backgroundColor:"#fafafa"},children:e.jsx(ae,{scenarioId:r.id||r.name,scenarioName:r.name,iframeUrl:y,isStarting:J,isLoading:_,showIframe:q,iframeKey:B,onIframeLoad:V,projectSlug:x,defaultWidth:1440,defaultHeight:900})})]})]})}const ge=Z(function(){return e.jsx(se,{children:e.jsx(ce,{})})});export{ge as default,he as meta};
@@ -1 +0,0 @@
1
- @import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&family=Sora:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap";/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:"IBM Plex Sans",sans-serif;--font-serif:"Playfair Display",Georgia,serif;--font-mono:"IBM Plex Mono",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-orange-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-700:oklch(55.3% .195 38.402);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-yellow-600:oklch(68.1% .162 75.834);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-900:oklch(37.8% .077 168.94);--color-teal-600:oklch(60% .118 184.704);--color-teal-700:oklch(51.1% .096 186.391);--color-cyan-100:oklch(95.6% .045 203.388);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-800:oklch(45% .085 224.283);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-pink-100:oklch(94.8% .028 342.258);--color-pink-700:oklch(52.5% .223 3.958);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-accent-100:#d7ff63;--color-cyblack-100:#232323;--color-cyblack-75:#3e3e3e;--color-cygray-50:#8e8e8e;--color-cygray-30:#e1e1e1;--color-cygray-20:#efefef;--color-cygray-10:#f8f7f6;--color-cywhite-100:#fff;--color-primary-200:#233b46;--color-primary-100:#005c75}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{box-sizing:border-box}body{margin:0;padding:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing)*0)}.-top-1{top:calc(var(--spacing)*-1)}.-top-2{top:calc(var(--spacing)*-2)}.top-0{top:calc(var(--spacing)*0)}.top-0\.5{top:calc(var(--spacing)*.5)}.top-1\.5{top:calc(var(--spacing)*1.5)}.top-1\/2{top:50%}.top-4{top:calc(var(--spacing)*4)}.top-10{top:calc(var(--spacing)*10)}.top-\[19px\]{top:19px}.top-\[42px\]{top:42px}.top-full{top:100%}.right-0{right:calc(var(--spacing)*0)}.right-0\.5{right:calc(var(--spacing)*.5)}.right-2{right:calc(var(--spacing)*2)}.right-2\.5{right:calc(var(--spacing)*2.5)}.right-4{right:calc(var(--spacing)*4)}.right-5{right:calc(var(--spacing)*5)}.-bottom-px{bottom:-1px}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-0\.5{bottom:calc(var(--spacing)*.5)}.bottom-4{bottom:calc(var(--spacing)*4)}.bottom-10{bottom:calc(var(--spacing)*10)}.left-0{left:calc(var(--spacing)*0)}.left-0\.5{left:calc(var(--spacing)*.5)}.left-2\.5{left:calc(var(--spacing)*2.5)}.left-3{left:calc(var(--spacing)*3)}.left-4{left:calc(var(--spacing)*4)}.left-5{left:calc(var(--spacing)*5)}.left-\[-35px\]{left:-35px}.left-\[17\.5px\]{left:17.5px}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-1000{z-index:1000}.z-9998{z-index:9998}.z-9999{z-index:9999}.z-10000{z-index:10000}.z-\[9999\]{z-index:9999}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.-m-0\.5{margin:calc(var(--spacing)*-.5)}.m-0{margin:calc(var(--spacing)*0)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-6{margin-inline:calc(var(--spacing)*6)}.mx-\[-15px\]{margin-inline:-15px}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.my-5{margin-block:calc(var(--spacing)*5)}.my-auto{margin-block:auto}.-mt-2{margin-top:calc(var(--spacing)*-2)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mt-12{margin-top:calc(var(--spacing)*12)}.mt-auto{margin-top:auto}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-8{margin-right:calc(var(--spacing)*8)}.-mb-px{margin-bottom:-1px}.mb-0{margin-bottom:calc(var(--spacing)*0)}.mb-0\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.mb-\[6px\]{margin-bottom:6px}.mb-\[15px\]{margin-bottom:15px}.ml-0\.5{margin-left:calc(var(--spacing)*.5)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-1\.5{margin-left:calc(var(--spacing)*1.5)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-5{margin-left:calc(var(--spacing)*5)}.ml-6{margin-left:calc(var(--spacing)*6)}.ml-10{margin-left:calc(var(--spacing)*10)}.ml-14{margin-left:calc(var(--spacing)*14)}.ml-\[-1px\]{margin-left:-1px}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-4\/3{aspect-ratio:4/3}.h-0\.5{height:calc(var(--spacing)*.5)}.h-1{height:calc(var(--spacing)*1)}.h-2{height:calc(var(--spacing)*2)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-3\.75{height:calc(var(--spacing)*3.75)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-5\.75{height:calc(var(--spacing)*5.75)}.h-6{height:calc(var(--spacing)*6)}.h-6\.5{height:calc(var(--spacing)*6.5)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-9\.75{height:calc(var(--spacing)*9.75)}.h-10{height:calc(var(--spacing)*10)}.h-11{height:calc(var(--spacing)*11)}.h-12{height:calc(var(--spacing)*12)}.h-15{height:calc(var(--spacing)*15)}.h-24{height:calc(var(--spacing)*24)}.h-32{height:calc(var(--spacing)*32)}.h-40{height:calc(var(--spacing)*40)}.h-\[10px\]{height:10px}.h-\[11\.5px\]{height:11.5px}.h-\[13\.26px\]{height:13.26px}.h-\[20\.464px\]{height:20.464px}.h-\[20px\]{height:20px}.h-\[22px\]{height:22px}.h-\[23px\]{height:23px}.h-\[25px\]{height:25px}.h-\[26px\]{height:26px}.h-\[28px\]{height:28px}.h-\[29px\]{height:29px}.h-\[38px\]{height:38px}.h-\[39px\]{height:39px}.h-\[54px\]{height:54px}.h-\[67px\]{height:67px}.h-\[90px\]{height:90px}.h-\[100px\]{height:100px}.h-\[110px\]{height:110px}.h-\[300px\]{height:300px}.h-\[339\.923px\]{height:339.923px}.h-full{height:100%}.h-screen{height:100vh}.max-h-32{max-height:calc(var(--spacing)*32)}.max-h-64{max-height:calc(var(--spacing)*64)}.max-h-72{max-height:calc(var(--spacing)*72)}.max-h-96{max-height:calc(var(--spacing)*96)}.max-h-\[90vh\]{max-height:90vh}.max-h-\[100px\]{max-height:100px}.max-h-\[120px\]{max-height:120px}.max-h-\[150px\]{max-height:150px}.max-h-\[200px\]{max-height:200px}.max-h-\[240px\]{max-height:240px}.max-h-\[300px\]{max-height:300px}.max-h-\[400px\]{max-height:400px}.max-h-\[500px\]{max-height:500px}.max-h-full{max-height:100%}.max-h-screen{max-height:100vh}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-50{min-height:calc(var(--spacing)*50)}.min-h-screen{min-height:100vh}.w-0\.5{width:calc(var(--spacing)*.5)}.w-1{width:calc(var(--spacing)*1)}.w-1\/2{width:50%}.w-2{width:calc(var(--spacing)*2)}.w-2\/3{width:66.6667%}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-14{width:calc(var(--spacing)*14)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-28{width:calc(var(--spacing)*28)}.w-32{width:calc(var(--spacing)*32)}.w-36{width:calc(var(--spacing)*36)}.w-40{width:calc(var(--spacing)*40)}.w-50{width:calc(var(--spacing)*50)}.w-64{width:calc(var(--spacing)*64)}.w-72{width:calc(var(--spacing)*72)}.w-80{width:calc(var(--spacing)*80)}.w-\[10px\]{width:10px}.w-\[11\.5px\]{width:11.5px}.w-\[13\.26px\]{width:13.26px}.w-\[50px\]{width:50px}.w-\[120px\]{width:120px}.w-\[125px\]{width:125px}.w-\[130px\]{width:130px}.w-\[148px\]{width:148px}.w-\[165px\]{width:165px}.w-\[175px\]{width:175px}.w-\[183px\]{width:183px}.w-\[187px\]{width:187px}.w-\[200px\]{width:200px}.w-\[220px\]{width:220px}.w-\[250px\]{width:250px}.w-\[400px\]{width:400px}.w-\[500px\]{width:500px}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[500px\]{max-width:500px}.max-w-\[600px\]{max-width:600px}.max-w-\[700px\]{max-width:700px}.max-w-\[1000px\]{max-width:1000px}.max-w-\[1200px\]{max-width:1200px}.max-w-\[1400px\]{max-width:1400px}.max-w-\[1800px\]{max-width:1800px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\[22px\]{min-width:22px}.min-w-\[25px\]{min-width:25px}.min-w-\[60px\]{min-width:60px}.min-w-\[320px\]{min-width:320px}.min-w-\[350px\]{min-width:350px}.min-w-\[380px\]{min-width:380px}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-6{--tw-translate-x:calc(var(--spacing)*6);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-\[slideIn_0\.3s_ease-out\]{animation:.3s ease-out slideIn}.animate-\[slideUp_0\.3s_ease-out\]{animation:.3s ease-out slideUp}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.cursor-wait{cursor:wait}.resize{resize:both}.resize-none{resize:none}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[1fr_80px_70px\]{grid-template-columns:1fr 80px 70px}.grid-cols-\[1fr_100px_120px\]{grid-template-columns:1fr 100px 120px}.grid-cols-\[340px_1fr\]{grid-template-columns:340px 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing)*0)}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-5{gap:calc(var(--spacing)*5)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}.gap-\[1px\]{gap:1px}.gap-\[3px\]{gap:3px}.gap-\[5px\]{gap:5px}.gap-\[10px\]{gap:10px}.gap-\[11\.6px\]{gap:11.6px}.gap-\[14px\]{gap:14px}.gap-\[15px\]{gap:15px}.gap-\[45px\]{gap:45px}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-100>:not(:last-child)){border-color:var(--color-gray-100)}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[4px\]{border-radius:4px}.rounded-\[5\.155px\]{border-radius:5.155px}.rounded-\[6px\]{border-radius:6px}.rounded-\[8px\]{border-radius:8px}.rounded-\[9\.095px\]{border-radius:9.095px}.rounded-\[9px\]{border-radius:9px}.rounded-\[10px\]{border-radius:10px}.rounded-\[20px\]{border-radius:20px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-2xl{border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl)}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-tl-\[8px\]{border-top-left-radius:8px}.rounded-tl-lg{border-top-left-radius:var(--radius-lg)}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-lg{border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.rounded-tr-lg{border-top-right-radius:var(--radius-lg)}.rounded-b-lg{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.rounded-b-md{border-bottom-right-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.rounded-br-\[4px\]{border-bottom-right-radius:4px}.rounded-br-lg{border-bottom-right-radius:var(--radius-lg)}.rounded-bl{border-bottom-left-radius:.25rem}.rounded-bl-\[4px\]{border-bottom-left-radius:4px}.rounded-bl-\[8px\]{border-bottom-left-radius:8px}.rounded-bl-lg{border-bottom-left-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-l-\[3px\]{border-left-style:var(--tw-border-style);border-left-width:3px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\[\#005C75\],.border-\[\#005c75\]{border-color:#005c75}.border-\[\#333\]{border-color:#333}.border-\[\#555\]{border-color:#555}.border-\[\#232323\]{border-color:#232323}.border-\[\#646464\]{border-color:#646464}.border-\[\#A5E8F0\]{border-color:#a5e8f0}.border-\[\#BBCCD3\]{border-color:#bbccd3}.border-\[\#BCCDD3\]{border-color:#bccdd3}.border-\[\#CBF3FA\]{border-color:#cbf3fa}.border-\[\#E0E9EC\]{border-color:#e0e9ec}.border-\[\#FEE585\]{border-color:#fee585}.border-\[\#bae6fd\]{border-color:#bae6fd}.border-\[\#c7c7c7\]{border-color:#c7c7c7}.border-\[\#c8f2e3\]{border-color:#c8f2e3}.border-\[\#c69538\]{border-color:#c69538}.border-\[\#e0e9ec\]{border-color:#e0e9ec}.border-\[\#e1e1e1\]{border-color:#e1e1e1}.border-\[\#efefef\]{border-color:#efefef}.border-\[\#fecaca\]{border-color:#fecaca}.border-\[rgba\(0\,0\,0\,0\.1\)\]{border-color:#0000001a}.border-\[rgba\(0\,0\,0\,0\.2\)\]{border-color:#0003}.border-\[rgba\(0\,92\,117\,0\.05\)\]{border-color:#005c750d}.border-\[rgba\(0\,92\,117\,0\.25\)\]{border-color:#005c7540}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-300{border-color:var(--color-amber-300)}.border-amber-500{border-color:var(--color-amber-500)}.border-amber-700{border-color:var(--color-amber-700)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-300{border-color:var(--color-blue-300)}.border-blue-400{border-color:var(--color-blue-400)}.border-blue-500{border-color:var(--color-blue-500)}.border-blue-600{border-color:var(--color-blue-600)}.border-blue-800{border-color:var(--color-blue-800)}.border-cyblack-100{border-color:var(--color-cyblack-100)}.border-cygray-30{border-color:var(--color-cygray-30)}.border-emerald-200{border-color:var(--color-emerald-200)}.border-gray-50{border-color:var(--color-gray-50)}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-700{border-color:var(--color-gray-700)}.border-green-200{border-color:var(--color-green-200)}.border-green-300{border-color:var(--color-green-300)}.border-orange-300{border-color:var(--color-orange-300)}.border-primary-100{border-color:var(--color-primary-100)}.border-primary-200{border-color:var(--color-primary-200)}.border-purple-200{border-color:var(--color-purple-200)}.border-purple-300{border-color:var(--color-purple-300)}.border-red-200{border-color:var(--color-red-200)}.border-red-300{border-color:var(--color-red-300)}.border-red-400{border-color:var(--color-red-400)}.border-transparent{border-color:#0000}.border-l-\[\#00b4d8\]{border-left-color:#00b4d8}.border-l-\[\#7c3aed\]{border-left-color:#7c3aed}.border-l-\[\#a8dadc\]{border-left-color:#a8dadc}.border-l-\[\#f4a261\]{border-left-color:#f4a261}.bg-\[\#00b4d8\]{background-color:#00b4d8}.bg-\[\#1e1e1e\]{background-color:#1e1e1e}.bg-\[\#2a9d8f\]{background-color:#2a9d8f}.bg-\[\#2d2d2d\]{background-color:#2d2d2d}.bg-\[\#3d3d3d\]{background-color:#3d3d3d}.bg-\[\#3e3e3e\]{background-color:#3e3e3e}.bg-\[\#005C75\],.bg-\[\#005c75\]{background-color:#005c75}.bg-\[\#7c3aed\]{background-color:#7c3aed}.bg-\[\#022A35\]{background-color:#022a35}.bg-\[\#051C22\]{background-color:#051c22}.bg-\[\#333\]{background-color:#333}.bg-\[\#00925d\]{background-color:#00925d}.bg-\[\#252525\]{background-color:#252525}.bg-\[\#343434\]{background-color:#343434}.bg-\[\#626262\]{background-color:#626262}.bg-\[\#CBF3FA\]{background-color:#cbf3fa}.bg-\[\#D1F3F9\]{background-color:#d1f3f9}.bg-\[\#DEE3E5\]{background-color:#dee3e5}.bg-\[\#E0E9EC\]{background-color:#e0e9ec}.bg-\[\#EDF1F3\]{background-color:#edf1f3}.bg-\[\#F6F9FC\]{background-color:#f6f9fc}.bg-\[\#F8F7F6\]{background-color:#f8f7f6}.bg-\[\#a8dadc\]{background-color:#a8dadc}.bg-\[\#c7c7c7\]{background-color:#c7c7c7}.bg-\[\#cbf3fa\]{background-color:#cbf3fa}.bg-\[\#deeafc\]{background-color:#deeafc}.bg-\[\#e0e9ec\]{background-color:#e0e9ec}.bg-\[\#e1e1e1\]{background-color:#e1e1e1}.bg-\[\#e5e7eb\]{background-color:#e5e7eb}.bg-\[\#e5eff1\]{background-color:#e5eff1}.bg-\[\#e6fbff\]{background-color:#e6fbff}.bg-\[\#e8ffe6\]{background-color:#e8ffe6}.bg-\[\#ebf0f2\]{background-color:#ebf0f2}.bg-\[\#efefef\]{background-color:#efefef}.bg-\[\#f0f9ff\]{background-color:#f0f9ff}.bg-\[\#f0fdf4\]{background-color:#f0fdf4}.bg-\[\#f2fcf9\]{background-color:#f2fcf9}.bg-\[\#f3eefe\]{background-color:#f3eefe}.bg-\[\#f4a261\]{background-color:#f4a261}.bg-\[\#f5f5f5\]{background-color:#f5f5f5}.bg-\[\#f6f9fc\]{background-color:#f6f9fc}.bg-\[\#f9f9f9\]{background-color:#f9f9f9}.bg-\[\#f59e0c\]{background-color:#f59e0c}.bg-\[\#fafafa\]{background-color:#fafafa}.bg-\[\#fce8c5\]{background-color:#fce8c5}.bg-\[\#fdf9c9\]{background-color:#fdf9c9}.bg-\[\#fef2f2\]{background-color:#fef2f2}.bg-\[\#ffdbf6\]{background-color:#ffdbf6}.bg-\[\#ffe1e1\]{background-color:#ffe1e1}.bg-\[rgba\(0\,0\,0\,0\.2\)\]{background-color:#0003}.bg-\[rgba\(255\,255\,255\,0\.3\)\]{background-color:#ffffff4d}.bg-accent-100{background-color:var(--color-accent-100)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-200{background-color:var(--color-amber-200)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-600{background-color:var(--color-amber-600)}.bg-black{background-color:var(--color-black)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.bg-black\/70{background-color:color-mix(in oklab,var(--color-black)70%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-cyan-100{background-color:var(--color-cyan-100)}.bg-cygray-10{background-color:var(--color-cygray-10)}.bg-cygray-20{background-color:var(--color-cygray-20)}.bg-cywhite-100{background-color:var(--color-cywhite-100)}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-50\/50{background-color:#f9fafb80}@supports (color:color-mix(in lab,red,red)){.bg-gray-50\/50{background-color:color-mix(in oklab,var(--color-gray-50)50%,transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-indigo-500{background-color:var(--color-indigo-500)}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-orange-50{background-color:var(--color-orange-50)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-pink-100{background-color:var(--color-pink-100)}.bg-primary-100{background-color:var(--color-primary-100)}.bg-primary-100\/15{background-color:#005c7526}@supports (color:color-mix(in lab,red,red)){.bg-primary-100\/15{background-color:color-mix(in oklab,var(--color-primary-100)15%,transparent)}}.bg-primary-200{background-color:var(--color-primary-200)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-500{background-color:var(--color-purple-500)}.bg-purple-600{background-color:var(--color-purple-600)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-600{background-color:var(--color-red-600)}.bg-red-900{background-color:var(--color-red-900)}.bg-teal-600{background-color:var(--color-teal-600)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.bg-white\/20{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.bg-white\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.bg-white\/90{background-color:color-mix(in oklab,var(--color-white)90%,transparent)}}.bg-linear-to-br{--tw-gradient-position:to bottom right}@supports (background-image:linear-gradient(in lab,red,red)){.bg-linear-to-br{--tw-gradient-position:to bottom right in oklab}}.bg-linear-to-br{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-linear-to-r{--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab,red,red)){.bg-linear-to-r{--tw-gradient-position:to right in oklab}}.bg-linear-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-blue-50{--tw-gradient-from:var(--color-blue-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-blue-500{--tw-gradient-from:var(--color-blue-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-emerald-500{--tw-gradient-from:var(--color-emerald-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-indigo-500{--tw-gradient-from:var(--color-indigo-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-blue-400{--tw-gradient-to:var(--color-blue-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-emerald-400{--tw-gradient-to:var(--color-emerald-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-indigo-50{--tw-gradient-to:var(--color-indigo-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-indigo-600{--tw-gradient-to:var(--color-indigo-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-purple-500{--tw-gradient-to:var(--color-purple-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-purple-600{--tw-gradient-to:var(--color-purple-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.object-top{-o-object-position:top;object-position:top}.p-0{padding:calc(var(--spacing)*0)}.p-0\.5{padding:calc(var(--spacing)*.5)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.p-10{padding:calc(var(--spacing)*10)}.p-12{padding:calc(var(--spacing)*12)}.p-\[5\.6px\]{padding:5.6px}.p-\[15px\]{padding:15px}.px-0{padding-inline:calc(var(--spacing)*0)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-3\.75{padding-inline:calc(var(--spacing)*3.75)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.px-12{padding-inline:calc(var(--spacing)*12)}.px-20{padding-inline:calc(var(--spacing)*20)}.px-\[4px\]{padding-inline:4px}.px-\[5px\]{padding-inline:5px}.px-\[7px\]{padding-inline:7px}.px-\[8px\]{padding-inline:8px}.px-\[10px\]{padding-inline:10px}.px-\[15px\]{padding-inline:15px}.py-0{padding-block:calc(var(--spacing)*0)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-5{padding-block:calc(var(--spacing)*5)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-12{padding-block:calc(var(--spacing)*12)}.py-16{padding-block:calc(var(--spacing)*16)}.py-20{padding-block:calc(var(--spacing)*20)}.py-\[5px\]{padding-block:5px}.py-\[6px\]{padding-block:6px}.py-\[15px\]{padding-block:15px}.pt-0{padding-top:calc(var(--spacing)*0)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-3\.5{padding-top:calc(var(--spacing)*3.5)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-5{padding-top:calc(var(--spacing)*5)}.pt-6{padding-top:calc(var(--spacing)*6)}.pt-8{padding-top:calc(var(--spacing)*8)}.pt-12{padding-top:calc(var(--spacing)*12)}.pt-16{padding-top:calc(var(--spacing)*16)}.pr-3{padding-right:calc(var(--spacing)*3)}.pr-4{padding-right:calc(var(--spacing)*4)}.pr-6{padding-right:calc(var(--spacing)*6)}.pr-8{padding-right:calc(var(--spacing)*8)}.pr-10{padding-right:calc(var(--spacing)*10)}.pr-20{padding-right:calc(var(--spacing)*20)}.pr-24{padding-right:calc(var(--spacing)*24)}.pr-\[10px\]{padding-right:10px}.pb-0{padding-bottom:calc(var(--spacing)*0)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-2\.5{padding-bottom:calc(var(--spacing)*2.5)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.pb-10{padding-bottom:calc(var(--spacing)*10)}.pb-12{padding-bottom:calc(var(--spacing)*12)}.pb-\[14px\]{padding-bottom:14px}.pb-\[17px\]{padding-bottom:17px}.pl-3{padding-left:calc(var(--spacing)*3)}.pl-4{padding-left:calc(var(--spacing)*4)}.pl-5{padding-left:calc(var(--spacing)*5)}.pl-8{padding-left:calc(var(--spacing)*8)}.pl-9{padding-left:calc(var(--spacing)*9)}.pl-10{padding-left:calc(var(--spacing)*10)}.pl-12{padding-left:calc(var(--spacing)*12)}.pl-\[10px\]{padding-left:10px}.pl-\[52px\]{padding-left:52px}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-\[\'IBM_Plex_Mono\'\]{font-family:IBM Plex Mono}.font-\[\'IBM_Plex_Sans\'\]{font-family:IBM Plex Sans}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10\.2px\]{font-size:10.2px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[22px\]{font-size:22px}.text-\[24px\]{font-size:24px}.text-\[28px\]{font-size:28px}.text-\[32px\]{font-size:32px}.text-\[40px\]{font-size:40px}.text-\[48px\]{font-size:48px}.leading-3\.75{--tw-leading:calc(var(--spacing)*3.75);line-height:calc(var(--spacing)*3.75)}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-6{--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6)}.leading-10{--tw-leading:calc(var(--spacing)*10);line-height:calc(var(--spacing)*10)}.leading-\[13px\]{--tw-leading:13px;line-height:13px}.leading-\[14px\]{--tw-leading:14px;line-height:14px}.leading-\[15px\]{--tw-leading:15px;line-height:15px}.leading-\[16px\]{--tw-leading:16px;line-height:16px}.leading-\[18px\]{--tw-leading:18px;line-height:18px}.leading-\[20px\]{--tw-leading:20px;line-height:20px}.leading-\[22px\]{--tw-leading:22px;line-height:22px}.leading-\[24px\]{--tw-leading:24px;line-height:24px}.leading-\[26px\]{--tw-leading:26px;line-height:26px}.leading-\[28px\]{--tw-leading:28px;line-height:28px}.leading-\[30px\]{--tw-leading:30px;line-height:30px}.leading-\[40px\]{--tw-leading:40px;line-height:40px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words,.wrap-break-word{overflow-wrap:break-word}.break-all{word-break:break-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#0c4a6e\]{color:#0c4a6e}.text-\[\#001f3f\]{color:#001f3f}.text-\[\#1A5276\]{color:#1a5276}.text-\[\#1B7A4A\]{color:#1b7a4a}.text-\[\#2a9d8f\]{color:#2a9d8f}.text-\[\#2f80ed\]{color:#2f80ed}.text-\[\#3e3e3e\]{color:#3e3e3e}.text-\[\#005C75\],.text-\[\#005c75\]{color:#005c75}.text-\[\#5B21B6\]{color:#5b21b6}.text-\[\#8a8a8a\]{color:#8a8a8a}.text-\[\#8e8e8e\]{color:#8e8e8e}.text-\[\#9b51e0\]{color:#9b51e0}.text-\[\#9e9e9e\]{color:#9e9e9e}.text-\[\#022A35\]{color:#022a35}.text-\[\#0284c7\]{color:#0284c7}.text-\[\#0369a1\]{color:#0369a1}.text-\[\#568B94\]{color:#568b94}.text-\[\#666\]{color:#666}.text-\[\#00925d\]{color:#00925d}.text-\[\#999\]{color:#999}.text-\[\#3098b4\]{color:#3098b4}.text-\[\#232323\]{color:#232323}.text-\[\#343434\]{color:#343434}.text-\[\#626262\]{color:#626262}.text-\[\#646464\]{color:#646464}.text-\[\#808080\]{color:gray}.text-\[\#CBF3FA\]{color:#cbf3fa}.text-\[\#c69538\]{color:#c69538}.text-\[\#ccc\]{color:#ccc}.text-\[\#d4d4d4\]{color:#d4d4d4}.text-\[\#dc2626\]{color:#dc2626}.text-\[\#ef4444\]{color:#ef4444}.text-\[\#efefef\]{color:#efefef}.text-\[\#f4a261\]{color:#f4a261}.text-\[\#ff2ab5\]{color:#ff2ab5}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-amber-900{color:var(--color-amber-900)}.text-black{color:var(--color-black)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-blue-900{color:var(--color-blue-900)}.text-cyan-400{color:var(--color-cyan-400)}.text-cyan-800{color:var(--color-cyan-800)}.text-cyblack-75{color:var(--color-cyblack-75)}.text-cyblack-100{color:var(--color-cyblack-100)}.text-cygray-50{color:var(--color-cygray-50)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-900{color:var(--color-emerald-900)}.text-gray-50{color:var(--color-gray-50)}.text-gray-100{color:var(--color-gray-100)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-indigo-600{color:var(--color-indigo-600)}.text-orange-600{color:var(--color-orange-600)}.text-orange-700{color:var(--color-orange-700)}.text-pink-700{color:var(--color-pink-700)}.text-primary-100{color:var(--color-primary-100)}.text-primary-200{color:var(--color-primary-200)}.text-purple-600{color:var(--color-purple-600)}.text-purple-700{color:var(--color-purple-700)}.text-purple-800{color:var(--color-purple-800)}.text-purple-900{color:var(--color-purple-900)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-red-900{color:var(--color-red-900)}.text-white{color:var(--color-white)}.text-yellow-600{color:var(--color-yellow-600)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_10px_25px_rgba\(0\,0\,0\,0\.1\)\]{--tw-shadow:0 10px 25px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_60px_rgba\(0\,0\,0\,0\.3\)\]{--tw-shadow:0 20px 60px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.brightness-0{--tw-brightness:brightness(0%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-1000{--tw-duration:1s;transition-duration:1s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-text{-webkit-user-select:text;-moz-user-select:text;user-select:text}@media(hover:hover){.group-hover\:block:is(:where(.group):hover *){display:block}.group-hover\:text-\[\#005C75\]:is(:where(.group):hover *),.group-hover\:text-\[\#005c75\]:is(:where(.group):hover *){color:#005c75}.group-hover\:text-white:is(:where(.group):hover *){color:var(--color-white)}}.placeholder\:text-gray-400::-moz-placeholder{color:var(--color-gray-400)}.placeholder\:text-gray-400::placeholder{color:var(--color-gray-400)}.first\:mt-0:first-child{margin-top:calc(var(--spacing)*0)}.last\:mb-0:last-child{margin-bottom:calc(var(--spacing)*0)}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:pb-0:last-child{padding-bottom:calc(var(--spacing)*0)}@media(hover:hover){.hover\:translate-x-1:hover{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:-translate-y-px:hover{--tw-translate-y:-1px;translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:border-\[\#005C75\]:hover,.hover\:border-\[\#005c75\]:hover{border-color:#005c75}.hover\:border-\[\#777\]:hover{border-color:#777}.hover\:border-\[\#a07a2d\]:hover{border-color:#a07a2d}.hover\:border-blue-600:hover{border-color:var(--color-blue-600)}.hover\:border-cyblack-100:hover{border-color:var(--color-cyblack-100)}.hover\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\:border-indigo-400:hover{border-color:var(--color-indigo-400)}.hover\:bg-\[\#3a3a3a\]:hover{background-color:#3a3a3a}.hover\:bg-\[\#004a5c\]:hover{background-color:#004a5c}.hover\:bg-\[\#004a5d\]:hover{background-color:#004a5d}.hover\:bg-\[\#004a5e\]:hover{background-color:#004a5e}.hover\:bg-\[\#011a21\]:hover{background-color:#011a21}.hover\:bg-\[\#333\]:hover{background-color:#333}.hover\:bg-\[\#232323\]:hover{background-color:#232323}.hover\:bg-\[\#E6F5F8\]:hover{background-color:#e6f5f8}.hover\:bg-\[\#EDF4F8\]:hover{background-color:#edf4f8}.hover\:bg-\[\#cbf3fa\]:hover{background-color:#cbf3fa}.hover\:bg-\[\#d0dde1\]:hover{background-color:#d0dde1}.hover\:bg-\[\#d0dfe4\]:hover{background-color:#d0dfe4}.hover\:bg-\[\#d0dfe5\]:hover{background-color:#d0dfe5}.hover\:bg-\[\#e0f2fe\]:hover{background-color:#e0f2fe}.hover\:bg-\[\#e1e1e1\]:hover{background-color:#e1e1e1}.hover\:bg-\[\#edf2f7\]:hover{background-color:#edf2f7}.hover\:bg-\[\#f0f9ff\]:hover{background-color:#f0f9ff}.hover\:bg-amber-100:hover{background-color:var(--color-amber-100)}.hover\:bg-amber-700:hover{background-color:var(--color-amber-700)}.hover\:bg-black\/10:hover{background-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/10:hover{background-color:color-mix(in oklab,var(--color-black)10%,transparent)}}.hover\:bg-blue-100:hover{background-color:var(--color-blue-100)}.hover\:bg-blue-500:hover{background-color:var(--color-blue-500)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-cyblack-100:hover{background-color:var(--color-cyblack-100)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-gray-300:hover{background-color:var(--color-gray-300)}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-indigo-700:hover{background-color:var(--color-indigo-700)}.hover\:bg-primary-100:hover{background-color:var(--color-primary-100)}.hover\:bg-primary-200:hover{background-color:var(--color-primary-200)}.hover\:bg-purple-700:hover{background-color:var(--color-purple-700)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\:bg-red-300:hover{background-color:var(--color-red-300)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-teal-700:hover{background-color:var(--color-teal-700)}.hover\:text-\[\#003d4f\]:hover{color:#003d4f}.hover\:text-\[\#3e3e3e\]:hover{color:#3e3e3e}.hover\:text-\[\#004a5e\]:hover{color:#004a5e}.hover\:text-\[\#005c75\]:hover{color:#005c75}.hover\:text-\[\#001530\]:hover{color:#001530}.hover\:text-\[\#232323\]:hover{color:#232323}.hover\:text-\[\#626262\]:hover{color:#626262}.hover\:text-\[\#CBF3FA\]:hover{color:#cbf3fa}.hover\:text-amber-900:hover{color:var(--color-amber-900)}.hover\:text-blue-600:hover{color:var(--color-blue-600)}.hover\:text-blue-700:hover{color:var(--color-blue-700)}.hover\:text-blue-800:hover{color:var(--color-blue-800)}.hover\:text-cyblack-100:hover{color:var(--color-cyblack-100)}.hover\:text-gray-300:hover{color:var(--color-gray-300)}.hover\:text-gray-500:hover{color:var(--color-gray-500)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-800:hover{color:var(--color-gray-800)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-green-900:hover{color:var(--color-green-900)}.hover\:text-indigo-700:hover{color:var(--color-indigo-700)}.hover\:text-primary-100:hover{color:var(--color-primary-100)}.hover\:text-red-800:hover{color:var(--color-red-800)}.hover\:text-red-900:hover{color:var(--color-red-900)}.hover\:text-white:hover{color:var(--color-white)}.hover\:no-underline:hover{text-decoration-line:none}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:border-2:focus{border-style:var(--tw-border-style);border-width:2px}.focus\:border-\[\#005C75\]:focus,.focus\:border-\[\#005c75\]:focus{border-color:#005c75}.focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.focus\:border-blue-600:focus{border-color:var(--color-blue-600)}.focus\:border-transparent:focus{border-color:#0000}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-\[\#005C75\]:focus{--tw-ring-color:#005c75}.focus\:ring-\[\#005C75\]\/10:focus{--tw-ring-color:oklab(44.137% -.0593993 -.0582973/.1)}.focus\:ring-\[\#005c75\]:focus{--tw-ring-color:#005c75}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-gray-300:focus{--tw-ring-color:var(--color-gray-300)}.focus\:ring-primary-100:focus{--tw-ring-color:var(--color-primary-100)}.focus\:ring-offset-1:focus{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:translate-y-0:disabled{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.disabled\:scale-100:disabled{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:cursor-wait:disabled{cursor:wait}.disabled\:bg-gray-300:disabled{background-color:var(--color-gray-300)}.disabled\:bg-gray-400:disabled{background-color:var(--color-gray-400)}.disabled\:bg-red-400:disabled{background-color:var(--color-red-400)}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-75:disabled{opacity:.75}@media(min-width:40rem){.sm\:hidden{display:none}}@media(min-width:48rem){.md\:flex{display:flex}.md\:hidden{display:none}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:justify-between{justify-content:space-between}}@media(min-width:64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.\[\&\:\:-webkit-resizer\]\:bg-gray-700::-webkit-resizer{background-color:var(--color-gray-700)}.\[\&\:\:-webkit-scrollbar\]\:w-2::-webkit-scrollbar{width:calc(var(--spacing)*2)}.\[\&\:\:-webkit-scrollbar-thumb\]\:rounded-full::-webkit-scrollbar-thumb{border-radius:3.40282e38px}.\[\&\:\:-webkit-scrollbar-thumb\]\:bg-gray-600::-webkit-scrollbar-thumb{background-color:var(--color-gray-600)}@media(hover:hover){.\[\&\:\:-webkit-scrollbar-thumb\]\:hover\:bg-gray-500::-webkit-scrollbar-thumb:hover{background-color:var(--color-gray-500)}}.\[\&\:\:-webkit-scrollbar-track\]\:bg-gray-800::-webkit-scrollbar-track{background-color:var(--color-gray-800)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
@@ -1 +0,0 @@
1
- import{w as T,u as L,c as u,r as g,j as e}from"./chunk-JZWAC4HX-JE9ZIoBl.js";import{u as I}from"./useReportContext-CpZgwliL.js";const q=()=>[{title:"Labs - CodeYam"},{name:"description",content:"Experimental features"}],R=[{id:"simulations",name:"Simulations",description:"Enable entity analysis, visual simulations, git impact analysis, file browsing, and activity monitoring. When disabled, only Memory, Labs, and Settings are accessible.",defaultEnabled:!0},{id:"enhancedClaudeTesting",name:"Enhanced Claude Testing",description:"Automatically generated mock data that covers the scenarios you actually care about: empty states, error states, auth flows, broken images, missing permissions.",defaultEnabled:!0},{id:"gitIntegration",name:"Git Integration Showing Impacted Files",description:"Lorem Ipsum Automatically generated mock data that covers the scenarios you actually care about: empty states, error states, auth flows, broken images, missing permissions.",defaultEnabled:!1}],Y=["1-10","11-50","51-200","201-1000","1000+"],U=["Small","Medium","Large"],O=[{title:"Isolate anything.",desc:"Pull out any function, page, or component and interact with it directly. Feed it different data. Put it in edge cases. See exactly how it behaves."},{title:"Simulate real conditions.",desc:"Automatically generated mock data that covers the scenarios you actually care about: empty states, error states, auth flows, broken images, missing permissions."},{title:"Trace the ripple effects.",desc:"See how levels of your codebase relate to each other. Understand what a change to one function does to the pages and flows that depend on it."}],M=[{title:"Enhanced Claude Testing",desc:"Pull out any function, page, or component and interact with it directly. Feed it different data. Put it in edge cases. See exactly how it behaves."},{title:"Git integration showing impacted files",desc:"Automatically generated mock data that covers the scenarios you actually care about: empty states, error states, auth flows, broken images, missing permissions."},{title:"Coming Soon...",desc:"We are continuously experimenting with new features to make developer easier and faster.",highlight:!0}];function P({onClose:o,defaultEmail:t,detectedTechStack:d,surveyFetcher:r}){var l,n;const i=(l=r.data)==null?void 0:l.error,c=(n=r.data)==null?void 0:n.success;return e.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center",onClick:s=>{s.target===s.currentTarget&&o()},children:[e.jsx("div",{className:"absolute inset-0 bg-black/50"}),e.jsxs("div",{className:"relative bg-white rounded-xl p-8 max-w-lg w-full mx-4 max-h-[90vh] overflow-y-auto",children:[e.jsx("button",{onClick:o,className:"absolute top-4 right-4 text-gray-400 hover:text-gray-600 text-2xl leading-none cursor-pointer bg-transparent border-none",children:"×"}),e.jsx("h3",{className:"font-serif italic text-2xl text-primary-200 mb-2",children:"Request Early Access"}),e.jsx("p",{className:"text-sm text-gray-500 mb-6",children:"Tell us a bit about yourself and your project. We'll review your request and grant access as soon as possible."}),e.jsxs(r.Form,{method:"post",action:"/api/labs-survey",className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsxs("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:["Name ",e.jsx("span",{className:"text-red-500",children:"*"})]}),e.jsx("input",{type:"text",name:"name",required:!0,className:"w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-primary-100 focus:border-transparent",placeholder:"Your name"})]}),e.jsxs("div",{children:[e.jsxs("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:["Email ",e.jsx("span",{className:"text-red-500",children:"*"})]}),e.jsx("input",{type:"email",name:"email",required:!0,defaultValue:t||"",className:"w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-primary-100 focus:border-transparent",placeholder:"you@company.com"})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Organization"}),e.jsx("input",{type:"text",name:"orgName",className:"w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-primary-100 focus:border-transparent",placeholder:"Company or team name"})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Organization Size"}),e.jsxs("select",{name:"orgSize",className:"w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-primary-100 focus:border-transparent bg-white",children:[e.jsx("option",{value:"",children:"Select..."}),Y.map(s=>e.jsx("option",{value:s,children:s},s))]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Project Size"}),e.jsxs("select",{name:"projectSize",className:"w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-primary-100 focus:border-transparent bg-white",children:[e.jsx("option",{value:"",children:"Select..."}),U.map(s=>e.jsx("option",{value:s,children:s},s))]})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:"Tech Stack"}),e.jsx("input",{type:"text",name:"techStack",defaultValue:d||"",className:"w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-primary-100 focus:border-transparent",placeholder:"React, TypeScript, Node.js..."})]}),e.jsx("button",{type:"submit",disabled:r.state==="submitting",className:"w-full py-3 text-white border-none rounded-lg text-sm font-mono font-semibold uppercase tracking-wider cursor-pointer transition-all bg-primary-200 hover:bg-primary-100 disabled:bg-gray-400 disabled:cursor-not-allowed",children:r.state==="submitting"?"Submitting...":"Apply for Early Access"}),i&&e.jsx("p",{className:"text-red-600 text-sm mt-2",children:i}),c&&e.jsx("p",{className:"text-emerald-600 text-sm mt-2",children:"Request submitted! You're now on the waitlist."})]})]})]})}function _({onClose:o,unlockCodeInput:t,setUnlockCodeInput:d,unlockFetcher:r}){var l,n;const i=(l=r.data)==null?void 0:l.error,c=(n=r.data)==null?void 0:n.success;return e.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center",onClick:s=>{s.target===s.currentTarget&&o()},children:[e.jsx("div",{className:"absolute inset-0 bg-black/50"}),e.jsxs("div",{className:"relative bg-white rounded-xl p-8 max-w-md w-full mx-4",children:[e.jsx("button",{onClick:o,className:"absolute top-4 right-4 text-gray-400 hover:text-gray-600 text-2xl leading-none cursor-pointer bg-transparent border-none",children:"×"}),e.jsx("h3",{className:"font-serif italic text-2xl text-primary-200 mb-2",children:"Have an unlock code?"}),e.jsx("p",{className:"text-sm text-cygray-50 mb-6",children:"If you've received an unlock code, paste it below to enable Simulations immediately."}),e.jsxs(r.Form,{method:"post",action:"/api/labs-unlock",className:"space-y-4",children:[e.jsx("input",{type:"text",name:"unlockCode",value:t,onChange:s=>d(s.target.value),placeholder:"CY-...",className:"w-full px-4 py-2.5 border border-gray-300 rounded-lg text-sm font-mono focus:outline-none focus:ring-2 focus:ring-primary-100 focus:border-transparent"}),e.jsx("button",{type:"submit",disabled:!t.trim()||r.state==="submitting",className:"w-full py-3 text-white border-none rounded-lg text-sm font-mono font-semibold uppercase tracking-wider cursor-pointer transition-all bg-primary-200 hover:bg-primary-100 disabled:bg-gray-400 disabled:cursor-not-allowed",children:r.state==="submitting"?"Validating...":"Unlock"}),i&&e.jsx("p",{className:"text-red-600 text-sm mt-2",children:i}),c&&e.jsx("p",{className:"text-emerald-600 text-sm mt-2",children:"Simulations enabled! Refresh the page to see all tabs."})]})]})]})}const z=T(function(){var j,N;const{labs:t,defaultEmail:d,detectedTechStack:r,unlockCode:i,error:c}=L(),l=u(),n=u(),s=u(),p=u(),[b,y]=g.useState(""),[w,m]=g.useState(!1),[k,h]=g.useState(!1);I({source:"labs-page"});const S=(t==null?void 0:t.accessGranted)===!0||(t==null?void 0:t.simulations)===!0,C=(t==null?void 0:t.waitlisted)===!0,f=(j=n.data)==null?void 0:j.error,E=(N=n.data)==null?void 0:N.success;return c?e.jsx("div",{className:"bg-cygray-10 min-h-screen",children:e.jsxs("div",{className:"px-20 pt-8 pb-12 font-sans",children:[e.jsx("h1",{className:"text-[28px] font-semibold text-gray-900 mb-2",children:"Labs"}),e.jsx("div",{className:"bg-red-50 border border-red-200 rounded-lg p-4 mt-4",children:e.jsx("p",{className:"text-red-700",children:c})})]})}):S?e.jsxs("div",{className:"bg-cygray-10 min-h-screen font-sans flex flex-col",children:[e.jsx("div",{className:"px-12 pt-8 pb-4",children:e.jsx("h1",{className:"font-mono text-lg font-semibold tracking-widest text-cyblack-100 m-0",children:"LABS"})}),e.jsxs("div",{className:"px-12 pt-8 pb-10",children:[e.jsx("h2",{className:"font-serif italic text-[48px] text-primary-100 mb-3 font-normal leading-tight",children:"Congrats!"}),e.jsx("p",{className:"font-serif text-[24px] text-cyblack-100 font-normal leading-snug max-w-2xl",children:"You were granted early access to software simulation and other experimental features."})]}),e.jsx("div",{className:"px-12 space-y-6 flex-1",children:R.map(a=>{var v;const x=(t==null?void 0:t[a.id])??a.defaultEnabled,A=s.state==="submitting"&&((v=s.formData)==null?void 0:v.get("feature"))===a.id;return e.jsx("div",{className:"border border-cygray-30 rounded-xl p-8 bg-white",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex-1 mr-8",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsx("h3",{className:"text-lg font-semibold text-cyblack-100 m-0",children:a.name}),e.jsx("span",{className:`inline-flex items-center px-2.5 py-0.5 rounded text-[10px] font-bold uppercase tracking-wider ${x?"bg-primary-100/15 text-primary-100":"bg-cygray-20 text-cygray-50"}`,children:x?"Enabled":"Disabled"})]}),e.jsx("p",{className:"text-sm text-cygray-50 leading-relaxed m-0",children:a.description})]}),e.jsxs(s.Form,{method:"post",children:[e.jsx("input",{type:"hidden",name:"feature",value:a.id}),e.jsx("input",{type:"hidden",name:"enabled",value:String(!x)}),e.jsx("button",{type:"submit",disabled:A,className:`relative inline-flex h-8 w-14 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none disabled:opacity-60 disabled:cursor-not-allowed ${x?"bg-primary-100":"bg-gray-300"}`,children:e.jsx("span",{className:`pointer-events-none inline-block h-7 w-7 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out ${x?"translate-x-6":"translate-x-0"}`})})]})]})},a.id)})}),i&&e.jsx("div",{className:"px-12 pt-12",children:e.jsxs("div",{className:"border border-cygray-30 rounded-xl p-8 bg-white",children:[e.jsx("h3",{className:"text-base font-semibold text-cyblack-100 mb-1",children:"Unlock Code"}),e.jsx("p",{className:"text-sm text-cygray-50 mb-3",children:"This code was used to enable Labs access. Clear it to revoke access and return to the landing page."}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("code",{className:"flex-1 px-4 py-2.5 bg-cygray-10 border border-cygray-30 rounded-lg text-sm font-mono text-cyblack-100",children:i}),e.jsxs(p.Form,{method:"post",children:[e.jsx("input",{type:"hidden",name:"feature",value:"clearAccess"}),e.jsx("input",{type:"hidden",name:"enabled",value:"false"}),e.jsx("button",{type:"submit",disabled:p.state==="submitting",className:"px-4 py-2.5 bg-red-50 border border-red-200 rounded-lg text-sm font-medium text-red-700 cursor-pointer transition-colors hover:bg-red-100 disabled:opacity-60 disabled:cursor-not-allowed",children:p.state==="submitting"?"Clearing...":"Clear"})]})]})]})}),e.jsx("div",{className:"px-12 pb-8 mt-auto pt-16",children:e.jsxs("div",{className:"border-t border-cygray-30 pt-6 flex justify-between items-center",children:[e.jsx("span",{className:"font-mono text-sm font-semibold tracking-widest text-cyblack-100",children:"LABS"}),e.jsxs("span",{className:"text-sm text-cygray-50",children:["Experimental features by"," ",e.jsx("span",{className:"font-semibold text-cyblack-100",children:"<Y Codeyam"})]})]})})]}):C?e.jsx("div",{className:"bg-cygray-10 min-h-screen",children:e.jsxs("div",{className:"px-20 pt-8 pb-12 font-sans",children:[e.jsx("div",{className:"mb-8",children:e.jsx("h1",{className:"text-[28px] font-semibold text-gray-900 mb-2",children:"Labs"})}),e.jsxs("div",{className:"max-w-2xl",children:[e.jsxs("div",{className:"bg-white border border-gray-200 rounded-xl p-8 mb-6",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[e.jsx("div",{className:"w-10 h-10 rounded-full bg-amber-100 flex items-center justify-center text-xl",children:e.jsx("span",{role:"img","aria-label":"hourglass",children:"⏳"})}),e.jsx("h2",{className:"text-xl font-semibold text-gray-900 m-0",children:"You're on the waitlist!"})]}),e.jsxs("p",{className:"text-gray-600 text-sm mb-2",children:["We received your request",t!=null&&t.surveyEmail?e.jsxs(e.Fragment,{children:[" ","for ",e.jsx("strong",{children:t.surveyEmail})]}):null,". We'll review your submission and notify you when access is granted."]}),e.jsx("p",{className:"text-gray-500 text-xs",children:"Approvals are typically processed within a few business days. Your CLI will automatically check for approval on startup."})]}),e.jsxs("div",{className:"bg-white border border-gray-200 rounded-xl p-8",children:[e.jsx("h3",{className:"text-base font-semibold text-gray-900 mb-2",children:"Have an unlock code?"}),e.jsx("p",{className:"text-sm text-gray-500 mb-4",children:"If you've received an unlock code, paste it below to enable Simulations immediately."}),e.jsxs(n.Form,{method:"post",action:"/api/labs-unlock",className:"flex gap-3",children:[e.jsx("input",{type:"text",name:"unlockCode",value:b,onChange:a=>y(a.target.value),placeholder:"CY-...",className:"flex-1 px-4 py-2.5 border border-gray-300 rounded-lg text-sm font-mono focus:outline-none focus:ring-2 focus:ring-primary-100 focus:border-transparent"}),e.jsx("button",{type:"submit",disabled:!b.trim()||n.state==="submitting",className:"px-6 py-2.5 text-white border-none rounded-lg text-sm font-semibold cursor-pointer transition-all bg-primary-100 hover:bg-primary-200 disabled:bg-gray-400 disabled:cursor-not-allowed",children:n.state==="submitting"?"Validating...":"Unlock"})]}),f&&e.jsx("p",{className:"text-red-600 text-sm mt-2",children:f}),E&&e.jsx("p",{className:"text-emerald-600 text-sm mt-2",children:"Simulations enabled! Refresh the page to see all tabs."})]})]})]})}):e.jsxs("div",{className:"bg-cygray-10 min-h-screen font-sans",children:[w&&e.jsx(P,{onClose:()=>m(!1),defaultEmail:d||"",detectedTechStack:r||"",surveyFetcher:l}),k&&e.jsx(_,{onClose:()=>h(!1),unlockCodeInput:b,setUnlockCodeInput:y,unlockFetcher:n}),e.jsxs("div",{className:"flex justify-between items-center px-12 pt-8 pb-4",children:[e.jsx("h1",{className:"font-mono text-lg font-semibold tracking-widest text-cyblack-100 m-0",children:"LABS"}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("button",{onClick:()=>h(!0),className:"font-mono text-xs font-semibold uppercase tracking-widest px-5 py-2.5 rounded border border-cygray-30 bg-transparent text-cygray-50 cursor-pointer transition-colors hover:border-cyblack-100 hover:text-cyblack-100",children:"Have a Code?"}),e.jsx("button",{onClick:()=>m(!0),className:"font-mono text-xs font-semibold uppercase tracking-widest px-5 py-2.5 rounded border border-cyblack-100 bg-transparent text-cyblack-100 cursor-pointer transition-colors hover:bg-cyblack-100 hover:text-white",children:"Apply for Early Access"})]})]}),e.jsxs("div",{className:"px-12 pt-12 pb-8",children:[e.jsx("h2",{className:"font-serif text-[28px] leading-snug text-cyblack-100 max-w-xl mb-6 font-normal",children:"We're opening early access to software simulation and other experimental features to a small group of developers and teams."}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("button",{onClick:()=>m(!0),className:"font-mono text-xs font-semibold uppercase tracking-widest px-6 py-3 rounded bg-primary-200 text-white border-none cursor-pointer transition-colors hover:bg-primary-100",children:"Apply for Early Access"}),e.jsx("button",{onClick:()=>h(!0),className:"font-mono text-xs font-semibold uppercase tracking-widest px-6 py-3 rounded border border-cygray-30 bg-transparent text-cygray-50 cursor-pointer transition-colors hover:border-cyblack-100 hover:text-cyblack-100",children:"Have a Code?"})]})]}),e.jsxs("div",{className:"px-12 pt-16 pb-4",children:[e.jsx("h3",{className:"font-serif italic text-[22px] text-primary-200 mb-8 font-normal",children:"See what every code change actually does."}),e.jsx("div",{className:"grid grid-cols-3 gap-5",children:O.map(a=>e.jsxs("div",{className:"border border-cygray-30 bg-white p-6 shadow-md",children:[e.jsx("h4",{className:"text-base font-semibold text-cyblack-100 mb-3",children:a.title}),e.jsx("p",{className:"text-sm text-cygray-50 leading-relaxed m-0",children:a.desc})]},a.title))}),e.jsx("a",{href:"https://codeyam.com",target:"_blank",rel:"noopener noreferrer",className:"inline-block mt-8 font-mono text-xs uppercase tracking-widest text-cyblack-100 underline underline-offset-4 hover:text-primary-100",children:"Learn More About Simulations"})]}),e.jsx("div",{className:"px-12 py-16",children:e.jsxs("div",{className:"border-2 border-primary-200 rounded-lg p-10 bg-cygray-10",children:[e.jsx("h3",{className:"font-serif italic text-[28px] text-primary-200 mb-3 font-normal",children:"Request Early Access"}),e.jsx("p",{className:"text-sm text-cygray-50 leading-relaxed max-w-lg mb-6",children:"We're onboarding a limited number of developers and teams. Tell us about how you build and we'll let you know when you can try simulations and other Labs features."}),e.jsx("button",{onClick:()=>m(!0),className:"font-mono text-xs font-semibold uppercase tracking-widest px-5 py-2.5 rounded border border-cyblack-100 bg-transparent text-cyblack-100 cursor-pointer transition-colors hover:bg-cyblack-100 hover:text-white mb-4",children:"Apply for Early Access"}),e.jsx("p",{className:"text-xs text-cygray-50 m-0",children:"Takes about 2 minutes. Your answers help us determine eligibility and prioritize access."})]})}),e.jsxs("div",{className:"px-12 pt-8 pb-4",children:[e.jsx("h3",{className:"font-serif italic text-[22px] text-primary-200 mb-8 font-normal",children:"Also in the lab..."}),e.jsx("div",{className:"grid grid-cols-3 gap-5",children:M.map(a=>e.jsxs("div",{className:`border border-cygray-30 p-6 shadow-md ${a.highlight?"bg-accent-100":"bg-white"}`,children:[e.jsx("h4",{className:`text-base font-semibold mb-3 ${a.highlight?"text-primary-200":"text-cyblack-100"}`,children:a.title}),e.jsx("p",{className:"text-sm text-cygray-50 leading-relaxed m-0",children:a.desc})]},a.title))})]}),e.jsxs("div",{className:"text-center py-20 px-12",children:[e.jsx("h3",{className:"font-serif italic text-[32px] text-primary-200 mb-3 font-normal",children:"Apply for Early Access"}),e.jsx("p",{className:"text-sm text-cygray-50 mb-6",children:"Takes about 2 minutes. Your answers help us determine eligibility and prioritize access."}),e.jsx("button",{onClick:()=>m(!0),className:"font-mono text-xs font-semibold uppercase tracking-widest px-8 py-3 rounded bg-primary-200 text-white border-none cursor-pointer transition-colors hover:bg-primary-100",children:"Join Waitlist"})]}),e.jsx("div",{className:"px-12 pb-8",children:e.jsxs("div",{className:"border-t border-cygray-30 pt-6 flex justify-between items-center",children:[e.jsx("span",{className:"font-mono text-sm font-semibold tracking-widest text-cyblack-100",children:"LABS"}),e.jsxs("span",{className:"text-sm text-cygray-50",children:["Experimental features by"," ",e.jsx("span",{className:"font-semibold text-cyblack-100",children:"<Y Codeyam"})]})]})})]})});export{z as default,q as meta};