test-lah 1.0.8 → 1.0.10

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 (782) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +71 -47
  3. package/.next/standalone/.next/app-path-routes-manifest.json +7 -4
  4. package/.next/standalone/.next/build-manifest.json +5 -5
  5. package/.next/standalone/.next/prerender-manifest.json +27 -27
  6. package/.next/standalone/.next/server/app/(dashboard)/integrations/page.js +2 -2
  7. package/.next/standalone/.next/server/app/(dashboard)/integrations/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/page.js +17 -70
  9. package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/page.js.nft.json +1 -1
  10. package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/summary/page.js +2 -22
  12. package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/summary/page.js.nft.json +1 -1
  13. package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/summary/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +34 -2
  15. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  16. package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  19. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  20. package/.next/standalone/.next/server/app/api/e2e/route.js +19 -8
  21. package/.next/standalone/.next/server/app/api/e2e/route_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/api/generate/route.js +1 -18
  23. package/.next/standalone/.next/server/app/api/generate/route.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/api/generate/route_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/api/llm/encrypt/route_client-reference-manifest.js +1 -1
  26. package/.next/standalone/.next/server/app/api/llm/test/route.js +1 -18
  27. package/.next/standalone/.next/server/app/api/llm/test/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/llm/test/route_client-reference-manifest.js +1 -1
  29. package/.next/standalone/.next/server/app/api/mcp/route.js +50 -0
  30. package/.next/standalone/.next/server/app/api/mcp/route.js.nft.json +1 -0
  31. package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -0
  32. package/.next/standalone/.next/server/app/api/refine-notes/route.js +29 -0
  33. package/.next/standalone/.next/server/app/api/refine-notes/route.js.nft.json +1 -0
  34. package/.next/standalone/.next/server/app/api/refine-notes/route_client-reference-manifest.js +1 -0
  35. package/.next/standalone/.next/server/app/api/state/route.js +1 -0
  36. package/.next/standalone/.next/server/app/api/state/route.js.nft.json +1 -0
  37. package/.next/standalone/.next/server/app/api/state/route_client-reference-manifest.js +1 -0
  38. package/.next/standalone/.next/server/app/api/weather/route_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/index.html +1 -1
  40. package/.next/standalone/.next/server/app/index.rsc +3 -3
  41. package/.next/standalone/.next/server/app/integrations.html +1 -1
  42. package/.next/standalone/.next/server/app/integrations.rsc +4 -4
  43. package/.next/standalone/.next/server/app/login/page.js +2 -2
  44. package/.next/standalone/.next/server/app/login/page.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/login.html +1 -1
  47. package/.next/standalone/.next/server/app/login.rsc +3 -3
  48. package/.next/standalone/.next/server/app/page.js +2 -2
  49. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/projects.html +1 -1
  51. package/.next/standalone/.next/server/app/projects.rsc +4 -4
  52. package/.next/standalone/.next/server/app-paths-manifest.json +7 -4
  53. package/.next/standalone/.next/server/chunks/423.js +62 -0
  54. package/.next/standalone/.next/server/chunks/496.js +33 -0
  55. package/.next/standalone/.next/server/chunks/611.js +3 -3
  56. package/.next/standalone/.next/server/chunks/615.js +2 -2
  57. package/.next/standalone/.next/server/chunks/779.js +1 -0
  58. package/.next/standalone/.next/server/chunks/845.js +23 -20
  59. package/.next/standalone/.next/server/chunks/898.js +21 -0
  60. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  61. package/.next/standalone/.next/server/pages/404.html +1 -1
  62. package/.next/standalone/.next/server/pages/500.html +1 -1
  63. package/.next/standalone/.next/server/pages-manifest.json +1 -1
  64. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  66. package/.next/standalone/.next/static/BI7koHWCC15MOwsCfxo2O/_buildManifest.js +1 -0
  67. package/.next/standalone/.next/static/chunks/172-84d6b7afea495880.js +1 -0
  68. package/.next/standalone/.next/static/chunks/253-d1beae5e3cf2d88e.js +1 -0
  69. package/.next/standalone/.next/static/chunks/{255-4f84124391a7dac4.js → 255-98a0bdaa30757bda.js} +1 -1
  70. package/.next/standalone/.next/static/chunks/642-75adb59cbb062e44.js +1 -0
  71. package/.next/standalone/.next/static/chunks/661-a763fedcbf90af81.js +1 -0
  72. package/.next/standalone/.next/static/chunks/793-7306e111aea85b00.js +1 -0
  73. package/.next/standalone/.next/static/chunks/798-8424899efd598f73.js +1 -0
  74. package/.next/standalone/.next/static/chunks/968-a7dcf12036013254.js +62 -0
  75. package/.next/standalone/.next/static/chunks/app/(dashboard)/integrations/page-25d6f67123a8a2ef.js +1 -0
  76. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-a63b3fef68015cb5.js +1 -0
  77. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[projectId]/page-cfab61233220bde3.js +1 -0
  78. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[projectId]/summary/page-1650386b60d0337f.js +1 -0
  79. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/page-420d60cc1ac676f3.js +1 -0
  80. package/.next/standalone/.next/static/chunks/app/api/e2e/route-4f053c4f9dcca3c0.js +1 -0
  81. package/.next/standalone/.next/static/chunks/app/api/generate/route-4f053c4f9dcca3c0.js +1 -0
  82. package/.next/standalone/.next/static/chunks/app/api/llm/encrypt/route-4f053c4f9dcca3c0.js +1 -0
  83. package/.next/standalone/.next/static/chunks/app/api/llm/test/route-4f053c4f9dcca3c0.js +1 -0
  84. package/.next/standalone/.next/static/chunks/app/api/mcp/route-4f053c4f9dcca3c0.js +1 -0
  85. package/.next/standalone/.next/static/chunks/app/api/refine-notes/route-4f053c4f9dcca3c0.js +1 -0
  86. package/.next/standalone/.next/static/chunks/app/api/state/route-4f053c4f9dcca3c0.js +1 -0
  87. package/.next/standalone/.next/static/chunks/app/api/weather/route-4f053c4f9dcca3c0.js +1 -0
  88. package/.next/{static/chunks/app/login/page-a655de2a3e8514f8.js → standalone/.next/static/chunks/app/login/page-35c717d39c71dcbf.js} +1 -1
  89. package/.next/standalone/.next/static/chunks/app/page-3e00e649355cd3ac.js +1 -0
  90. package/.next/standalone/.next/static/chunks/{main-646068343426c12d.js → main-2af68c75fbdc984e.js} +1 -1
  91. package/.next/standalone/.next/static/css/d95cfd16ee2f56f9.css +3 -0
  92. package/.next/standalone/node_modules/@next/env/package.json +1 -1
  93. package/.next/standalone/node_modules/caniuse-lite/data/agents.js +1 -1
  94. package/.next/standalone/node_modules/caniuse-lite/data/browserVersions.js +1 -1
  95. package/.next/standalone/node_modules/caniuse-lite/data/features/aac.js +1 -1
  96. package/.next/standalone/node_modules/caniuse-lite/data/features/abortcontroller.js +1 -1
  97. package/.next/standalone/node_modules/caniuse-lite/data/features/ac3-ec3.js +1 -1
  98. package/.next/standalone/node_modules/caniuse-lite/data/features/accelerometer.js +1 -1
  99. package/.next/standalone/node_modules/caniuse-lite/data/features/addeventlistener.js +1 -1
  100. package/.next/standalone/node_modules/caniuse-lite/data/features/alternate-stylesheet.js +1 -1
  101. package/.next/standalone/node_modules/caniuse-lite/data/features/ambient-light.js +1 -1
  102. package/.next/standalone/node_modules/caniuse-lite/data/features/apng.js +1 -1
  103. package/.next/standalone/node_modules/caniuse-lite/data/features/array-find-index.js +1 -1
  104. package/.next/standalone/node_modules/caniuse-lite/data/features/array-find.js +1 -1
  105. package/.next/standalone/node_modules/caniuse-lite/data/features/array-flat.js +1 -1
  106. package/.next/standalone/node_modules/caniuse-lite/data/features/array-includes.js +1 -1
  107. package/.next/standalone/node_modules/caniuse-lite/data/features/arrow-functions.js +1 -1
  108. package/.next/standalone/node_modules/caniuse-lite/data/features/asmjs.js +1 -1
  109. package/.next/standalone/node_modules/caniuse-lite/data/features/async-clipboard.js +1 -1
  110. package/.next/standalone/node_modules/caniuse-lite/data/features/async-functions.js +1 -1
  111. package/.next/standalone/node_modules/caniuse-lite/data/features/atob-btoa.js +1 -1
  112. package/.next/standalone/node_modules/caniuse-lite/data/features/audio-api.js +1 -1
  113. package/.next/standalone/node_modules/caniuse-lite/data/features/audio.js +1 -1
  114. package/.next/standalone/node_modules/caniuse-lite/data/features/audiotracks.js +1 -1
  115. package/.next/standalone/node_modules/caniuse-lite/data/features/autofocus.js +1 -1
  116. package/.next/standalone/node_modules/caniuse-lite/data/features/auxclick.js +1 -1
  117. package/.next/standalone/node_modules/caniuse-lite/data/features/av1.js +1 -1
  118. package/.next/standalone/node_modules/caniuse-lite/data/features/avif.js +1 -1
  119. package/.next/standalone/node_modules/caniuse-lite/data/features/background-attachment.js +1 -1
  120. package/.next/standalone/node_modules/caniuse-lite/data/features/background-clip-text.js +1 -1
  121. package/.next/standalone/node_modules/caniuse-lite/data/features/background-img-opts.js +1 -1
  122. package/.next/standalone/node_modules/caniuse-lite/data/features/background-position-x-y.js +1 -1
  123. package/.next/standalone/node_modules/caniuse-lite/data/features/background-repeat-round-space.js +1 -1
  124. package/.next/standalone/node_modules/caniuse-lite/data/features/background-sync.js +1 -1
  125. package/.next/standalone/node_modules/caniuse-lite/data/features/battery-status.js +1 -1
  126. package/.next/standalone/node_modules/caniuse-lite/data/features/beacon.js +1 -1
  127. package/.next/standalone/node_modules/caniuse-lite/data/features/beforeafterprint.js +1 -1
  128. package/.next/standalone/node_modules/caniuse-lite/data/features/bigint.js +1 -1
  129. package/.next/standalone/node_modules/caniuse-lite/data/features/blobbuilder.js +1 -1
  130. package/.next/standalone/node_modules/caniuse-lite/data/features/bloburls.js +1 -1
  131. package/.next/standalone/node_modules/caniuse-lite/data/features/border-image.js +1 -1
  132. package/.next/standalone/node_modules/caniuse-lite/data/features/border-radius.js +1 -1
  133. package/.next/standalone/node_modules/caniuse-lite/data/features/broadcastchannel.js +1 -1
  134. package/.next/standalone/node_modules/caniuse-lite/data/features/brotli.js +1 -1
  135. package/.next/standalone/node_modules/caniuse-lite/data/features/calc.js +1 -1
  136. package/.next/standalone/node_modules/caniuse-lite/data/features/canvas-blending.js +1 -1
  137. package/.next/standalone/node_modules/caniuse-lite/data/features/canvas-text.js +1 -1
  138. package/.next/standalone/node_modules/caniuse-lite/data/features/canvas.js +1 -1
  139. package/.next/standalone/node_modules/caniuse-lite/data/features/ch-unit.js +1 -1
  140. package/.next/standalone/node_modules/caniuse-lite/data/features/chacha20-poly1305.js +1 -1
  141. package/.next/standalone/node_modules/caniuse-lite/data/features/channel-messaging.js +1 -1
  142. package/.next/standalone/node_modules/caniuse-lite/data/features/childnode-remove.js +1 -1
  143. package/.next/standalone/node_modules/caniuse-lite/data/features/classlist.js +1 -1
  144. package/.next/standalone/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js +1 -1
  145. package/.next/standalone/node_modules/caniuse-lite/data/features/clipboard.js +1 -1
  146. package/.next/standalone/node_modules/caniuse-lite/data/features/colr-v1.js +1 -1
  147. package/.next/standalone/node_modules/caniuse-lite/data/features/colr.js +1 -1
  148. package/.next/standalone/node_modules/caniuse-lite/data/features/comparedocumentposition.js +1 -1
  149. package/.next/standalone/node_modules/caniuse-lite/data/features/console-basic.js +1 -1
  150. package/.next/standalone/node_modules/caniuse-lite/data/features/console-time.js +1 -1
  151. package/.next/standalone/node_modules/caniuse-lite/data/features/const.js +1 -1
  152. package/.next/standalone/node_modules/caniuse-lite/data/features/constraint-validation.js +1 -1
  153. package/.next/standalone/node_modules/caniuse-lite/data/features/contenteditable.js +1 -1
  154. package/.next/standalone/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js +1 -1
  155. package/.next/standalone/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js +1 -1
  156. package/.next/standalone/node_modules/caniuse-lite/data/features/cookie-store-api.js +1 -1
  157. package/.next/standalone/node_modules/caniuse-lite/data/features/cors.js +1 -1
  158. package/.next/standalone/node_modules/caniuse-lite/data/features/createimagebitmap.js +1 -1
  159. package/.next/standalone/node_modules/caniuse-lite/data/features/credential-management.js +1 -1
  160. package/.next/standalone/node_modules/caniuse-lite/data/features/cross-document-view-transitions.js +1 -1
  161. package/.next/standalone/node_modules/caniuse-lite/data/features/cryptography.js +1 -1
  162. package/.next/standalone/node_modules/caniuse-lite/data/features/css-all.js +1 -1
  163. package/.next/standalone/node_modules/caniuse-lite/data/features/css-anchor-positioning.js +1 -1
  164. package/.next/standalone/node_modules/caniuse-lite/data/features/css-animation.js +1 -1
  165. package/.next/standalone/node_modules/caniuse-lite/data/features/css-any-link.js +1 -1
  166. package/.next/standalone/node_modules/caniuse-lite/data/features/css-appearance.js +1 -1
  167. package/.next/standalone/node_modules/caniuse-lite/data/features/css-at-counter-style.js +1 -1
  168. package/.next/standalone/node_modules/caniuse-lite/data/features/css-autofill.js +1 -1
  169. package/.next/standalone/node_modules/caniuse-lite/data/features/css-backdrop-filter.js +1 -1
  170. package/.next/standalone/node_modules/caniuse-lite/data/features/css-background-offsets.js +1 -1
  171. package/.next/standalone/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js +1 -1
  172. package/.next/standalone/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js +1 -1
  173. package/.next/standalone/node_modules/caniuse-lite/data/features/css-boxshadow.js +1 -1
  174. package/.next/standalone/node_modules/caniuse-lite/data/features/css-canvas.js +1 -1
  175. package/.next/standalone/node_modules/caniuse-lite/data/features/css-caret-color.js +1 -1
  176. package/.next/standalone/node_modules/caniuse-lite/data/features/css-cascade-layers.js +1 -1
  177. package/.next/standalone/node_modules/caniuse-lite/data/features/css-cascade-scope.js +1 -1
  178. package/.next/standalone/node_modules/caniuse-lite/data/features/css-case-insensitive.js +1 -1
  179. package/.next/standalone/node_modules/caniuse-lite/data/features/css-clip-path.js +1 -1
  180. package/.next/standalone/node_modules/caniuse-lite/data/features/css-color-adjust.js +1 -1
  181. package/.next/standalone/node_modules/caniuse-lite/data/features/css-color-function.js +1 -1
  182. package/.next/standalone/node_modules/caniuse-lite/data/features/css-conic-gradients.js +1 -1
  183. package/.next/standalone/node_modules/caniuse-lite/data/features/css-container-queries-style.js +1 -1
  184. package/.next/standalone/node_modules/caniuse-lite/data/features/css-container-queries.js +1 -1
  185. package/.next/standalone/node_modules/caniuse-lite/data/features/css-container-query-units.js +1 -1
  186. package/.next/standalone/node_modules/caniuse-lite/data/features/css-containment.js +1 -1
  187. package/.next/standalone/node_modules/caniuse-lite/data/features/css-content-visibility.js +1 -1
  188. package/.next/standalone/node_modules/caniuse-lite/data/features/css-counters.js +1 -1
  189. package/.next/standalone/node_modules/caniuse-lite/data/features/css-crisp-edges.js +1 -1
  190. package/.next/standalone/node_modules/caniuse-lite/data/features/css-cross-fade.js +1 -1
  191. package/.next/standalone/node_modules/caniuse-lite/data/features/css-default-pseudo.js +1 -1
  192. package/.next/standalone/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js +1 -1
  193. package/.next/standalone/node_modules/caniuse-lite/data/features/css-deviceadaptation.js +1 -1
  194. package/.next/standalone/node_modules/caniuse-lite/data/features/css-dir-pseudo.js +1 -1
  195. package/.next/standalone/node_modules/caniuse-lite/data/features/css-display-contents.js +1 -1
  196. package/.next/standalone/node_modules/caniuse-lite/data/features/css-element-function.js +1 -1
  197. package/.next/standalone/node_modules/caniuse-lite/data/features/css-env-function.js +1 -1
  198. package/.next/standalone/node_modules/caniuse-lite/data/features/css-exclusions.js +1 -1
  199. package/.next/standalone/node_modules/caniuse-lite/data/features/css-featurequeries.js +1 -1
  200. package/.next/standalone/node_modules/caniuse-lite/data/features/css-file-selector-button.js +1 -1
  201. package/.next/standalone/node_modules/caniuse-lite/data/features/css-filter-function.js +1 -1
  202. package/.next/standalone/node_modules/caniuse-lite/data/features/css-filters.js +1 -1
  203. package/.next/standalone/node_modules/caniuse-lite/data/features/css-first-letter.js +1 -1
  204. package/.next/standalone/node_modules/caniuse-lite/data/features/css-first-line.js +1 -1
  205. package/.next/standalone/node_modules/caniuse-lite/data/features/css-fixed.js +1 -1
  206. package/.next/standalone/node_modules/caniuse-lite/data/features/css-focus-visible.js +1 -1
  207. package/.next/standalone/node_modules/caniuse-lite/data/features/css-focus-within.js +1 -1
  208. package/.next/standalone/node_modules/caniuse-lite/data/features/css-font-palette.js +1 -1
  209. package/.next/standalone/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js +1 -1
  210. package/.next/standalone/node_modules/caniuse-lite/data/features/css-font-stretch.js +1 -1
  211. package/.next/standalone/node_modules/caniuse-lite/data/features/css-gencontent.js +1 -1
  212. package/.next/standalone/node_modules/caniuse-lite/data/features/css-gradients.js +1 -1
  213. package/.next/standalone/node_modules/caniuse-lite/data/features/css-grid-animation.js +1 -1
  214. package/.next/standalone/node_modules/caniuse-lite/data/features/css-grid-lanes.js +1 -1
  215. package/.next/standalone/node_modules/caniuse-lite/data/features/css-grid.js +1 -1
  216. package/.next/standalone/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js +1 -1
  217. package/.next/standalone/node_modules/caniuse-lite/data/features/css-has.js +1 -1
  218. package/.next/standalone/node_modules/caniuse-lite/data/features/css-hyphens.js +1 -1
  219. package/.next/standalone/node_modules/caniuse-lite/data/features/css-if.js +1 -1
  220. package/.next/standalone/node_modules/caniuse-lite/data/features/css-image-orientation.js +1 -1
  221. package/.next/standalone/node_modules/caniuse-lite/data/features/css-image-set.js +1 -1
  222. package/.next/standalone/node_modules/caniuse-lite/data/features/css-in-out-of-range.js +1 -1
  223. package/.next/standalone/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js +1 -1
  224. package/.next/standalone/node_modules/caniuse-lite/data/features/css-initial-letter.js +1 -1
  225. package/.next/standalone/node_modules/caniuse-lite/data/features/css-initial-value.js +1 -1
  226. package/.next/standalone/node_modules/caniuse-lite/data/features/css-lch-lab.js +1 -1
  227. package/.next/standalone/node_modules/caniuse-lite/data/features/css-letter-spacing.js +1 -1
  228. package/.next/standalone/node_modules/caniuse-lite/data/features/css-line-clamp.js +1 -1
  229. package/.next/standalone/node_modules/caniuse-lite/data/features/css-logical-props.js +1 -1
  230. package/.next/standalone/node_modules/caniuse-lite/data/features/css-marker-pseudo.js +1 -1
  231. package/.next/standalone/node_modules/caniuse-lite/data/features/css-masks.js +1 -1
  232. package/.next/standalone/node_modules/caniuse-lite/data/features/css-matches-pseudo.js +1 -1
  233. package/.next/standalone/node_modules/caniuse-lite/data/features/css-math-functions.js +1 -1
  234. package/.next/standalone/node_modules/caniuse-lite/data/features/css-media-interaction.js +1 -1
  235. package/.next/standalone/node_modules/caniuse-lite/data/features/css-media-range-syntax.js +1 -1
  236. package/.next/standalone/node_modules/caniuse-lite/data/features/css-media-resolution.js +1 -1
  237. package/.next/standalone/node_modules/caniuse-lite/data/features/css-media-scripting.js +1 -1
  238. package/.next/standalone/node_modules/caniuse-lite/data/features/css-mediaqueries.js +1 -1
  239. package/.next/standalone/node_modules/caniuse-lite/data/features/css-mixblendmode.js +1 -1
  240. package/.next/standalone/node_modules/caniuse-lite/data/features/css-module-scripts.js +1 -1
  241. package/.next/standalone/node_modules/caniuse-lite/data/features/css-motion-paths.js +1 -1
  242. package/.next/standalone/node_modules/caniuse-lite/data/features/css-namespaces.js +1 -1
  243. package/.next/standalone/node_modules/caniuse-lite/data/features/css-nesting.js +1 -1
  244. package/.next/standalone/node_modules/caniuse-lite/data/features/css-not-sel-list.js +1 -1
  245. package/.next/standalone/node_modules/caniuse-lite/data/features/css-nth-child-of.js +1 -1
  246. package/.next/standalone/node_modules/caniuse-lite/data/features/css-opacity.js +1 -1
  247. package/.next/standalone/node_modules/caniuse-lite/data/features/css-optional-pseudo.js +1 -1
  248. package/.next/standalone/node_modules/caniuse-lite/data/features/css-overflow-anchor.js +1 -1
  249. package/.next/standalone/node_modules/caniuse-lite/data/features/css-overflow-overlay.js +1 -1
  250. package/.next/standalone/node_modules/caniuse-lite/data/features/css-overflow.js +1 -1
  251. package/.next/standalone/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js +1 -1
  252. package/.next/standalone/node_modules/caniuse-lite/data/features/css-page-break.js +1 -1
  253. package/.next/standalone/node_modules/caniuse-lite/data/features/css-paged-media.js +1 -1
  254. package/.next/standalone/node_modules/caniuse-lite/data/features/css-paint-api.js +1 -1
  255. package/.next/standalone/node_modules/caniuse-lite/data/features/css-placeholder-shown.js +1 -1
  256. package/.next/standalone/node_modules/caniuse-lite/data/features/css-placeholder.js +1 -1
  257. package/.next/standalone/node_modules/caniuse-lite/data/features/css-print-color-adjust.js +1 -1
  258. package/.next/standalone/node_modules/caniuse-lite/data/features/css-read-only-write.js +1 -1
  259. package/.next/standalone/node_modules/caniuse-lite/data/features/css-rebeccapurple.js +1 -1
  260. package/.next/standalone/node_modules/caniuse-lite/data/features/css-reflections.js +1 -1
  261. package/.next/standalone/node_modules/caniuse-lite/data/features/css-regions.js +1 -1
  262. package/.next/standalone/node_modules/caniuse-lite/data/features/css-relative-colors.js +1 -1
  263. package/.next/standalone/node_modules/caniuse-lite/data/features/css-repeating-gradients.js +1 -1
  264. package/.next/standalone/node_modules/caniuse-lite/data/features/css-resize.js +1 -1
  265. package/.next/standalone/node_modules/caniuse-lite/data/features/css-revert-value.js +1 -1
  266. package/.next/standalone/node_modules/caniuse-lite/data/features/css-rrggbbaa.js +1 -1
  267. package/.next/standalone/node_modules/caniuse-lite/data/features/css-scroll-behavior.js +1 -1
  268. package/.next/standalone/node_modules/caniuse-lite/data/features/css-scrollbar.js +1 -1
  269. package/.next/standalone/node_modules/caniuse-lite/data/features/css-sel2.js +1 -1
  270. package/.next/standalone/node_modules/caniuse-lite/data/features/css-sel3.js +1 -1
  271. package/.next/standalone/node_modules/caniuse-lite/data/features/css-selection.js +1 -1
  272. package/.next/standalone/node_modules/caniuse-lite/data/features/css-shapes.js +1 -1
  273. package/.next/standalone/node_modules/caniuse-lite/data/features/css-snappoints.js +1 -1
  274. package/.next/standalone/node_modules/caniuse-lite/data/features/css-sticky.js +1 -1
  275. package/.next/standalone/node_modules/caniuse-lite/data/features/css-subgrid.js +1 -1
  276. package/.next/standalone/node_modules/caniuse-lite/data/features/css-supports-api.js +1 -1
  277. package/.next/standalone/node_modules/caniuse-lite/data/features/css-table.js +1 -1
  278. package/.next/standalone/node_modules/caniuse-lite/data/features/css-text-align-last.js +1 -1
  279. package/.next/standalone/node_modules/caniuse-lite/data/features/css-text-box-trim.js +1 -1
  280. package/.next/standalone/node_modules/caniuse-lite/data/features/css-text-indent.js +1 -1
  281. package/.next/standalone/node_modules/caniuse-lite/data/features/css-text-justify.js +1 -1
  282. package/.next/standalone/node_modules/caniuse-lite/data/features/css-text-orientation.js +1 -1
  283. package/.next/standalone/node_modules/caniuse-lite/data/features/css-text-spacing.js +1 -1
  284. package/.next/standalone/node_modules/caniuse-lite/data/features/css-text-wrap-balance.js +1 -1
  285. package/.next/standalone/node_modules/caniuse-lite/data/features/css-textshadow.js +1 -1
  286. package/.next/standalone/node_modules/caniuse-lite/data/features/css-touch-action.js +1 -1
  287. package/.next/standalone/node_modules/caniuse-lite/data/features/css-transitions.js +1 -1
  288. package/.next/standalone/node_modules/caniuse-lite/data/features/css-unicode-bidi.js +1 -1
  289. package/.next/standalone/node_modules/caniuse-lite/data/features/css-unset-value.js +1 -1
  290. package/.next/standalone/node_modules/caniuse-lite/data/features/css-variables.js +1 -1
  291. package/.next/standalone/node_modules/caniuse-lite/data/features/css-when-else.js +1 -1
  292. package/.next/standalone/node_modules/caniuse-lite/data/features/css-widows-orphans.js +1 -1
  293. package/.next/standalone/node_modules/caniuse-lite/data/features/css-width-stretch.js +1 -1
  294. package/.next/standalone/node_modules/caniuse-lite/data/features/css-writing-mode.js +1 -1
  295. package/.next/standalone/node_modules/caniuse-lite/data/features/css-zoom.js +1 -1
  296. package/.next/standalone/node_modules/caniuse-lite/data/features/css3-attr.js +1 -1
  297. package/.next/standalone/node_modules/caniuse-lite/data/features/css3-boxsizing.js +1 -1
  298. package/.next/standalone/node_modules/caniuse-lite/data/features/css3-colors.js +1 -1
  299. package/.next/standalone/node_modules/caniuse-lite/data/features/css3-cursors-grab.js +1 -1
  300. package/.next/standalone/node_modules/caniuse-lite/data/features/css3-cursors-newer.js +1 -1
  301. package/.next/standalone/node_modules/caniuse-lite/data/features/css3-cursors.js +1 -1
  302. package/.next/standalone/node_modules/caniuse-lite/data/features/css3-tabsize.js +1 -1
  303. package/.next/standalone/node_modules/caniuse-lite/data/features/currentcolor.js +1 -1
  304. package/.next/standalone/node_modules/caniuse-lite/data/features/custom-elements.js +1 -1
  305. package/.next/standalone/node_modules/caniuse-lite/data/features/custom-elementsv1.js +1 -1
  306. package/.next/standalone/node_modules/caniuse-lite/data/features/customevent.js +1 -1
  307. package/.next/standalone/node_modules/caniuse-lite/data/features/customizable-select.js +1 -1
  308. package/.next/standalone/node_modules/caniuse-lite/data/features/datalist.js +1 -1
  309. package/.next/standalone/node_modules/caniuse-lite/data/features/dataset.js +1 -1
  310. package/.next/standalone/node_modules/caniuse-lite/data/features/datauri.js +1 -1
  311. package/.next/standalone/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js +1 -1
  312. package/.next/standalone/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js +1 -1
  313. package/.next/standalone/node_modules/caniuse-lite/data/features/decorators.js +1 -1
  314. package/.next/standalone/node_modules/caniuse-lite/data/features/details.js +1 -1
  315. package/.next/standalone/node_modules/caniuse-lite/data/features/deviceorientation.js +1 -1
  316. package/.next/standalone/node_modules/caniuse-lite/data/features/devicepixelratio.js +1 -1
  317. package/.next/standalone/node_modules/caniuse-lite/data/features/dialog.js +1 -1
  318. package/.next/standalone/node_modules/caniuse-lite/data/features/dispatchevent.js +1 -1
  319. package/.next/standalone/node_modules/caniuse-lite/data/features/dnssec.js +1 -1
  320. package/.next/standalone/node_modules/caniuse-lite/data/features/do-not-track.js +1 -1
  321. package/.next/standalone/node_modules/caniuse-lite/data/features/document-currentscript.js +1 -1
  322. package/.next/standalone/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js +1 -1
  323. package/.next/standalone/node_modules/caniuse-lite/data/features/document-execcommand.js +1 -1
  324. package/.next/standalone/node_modules/caniuse-lite/data/features/document-policy.js +1 -1
  325. package/.next/standalone/node_modules/caniuse-lite/data/features/document-scrollingelement.js +1 -1
  326. package/.next/standalone/node_modules/caniuse-lite/data/features/documenthead.js +1 -1
  327. package/.next/standalone/node_modules/caniuse-lite/data/features/dom-manip-convenience.js +1 -1
  328. package/.next/standalone/node_modules/caniuse-lite/data/features/dom-range.js +1 -1
  329. package/.next/standalone/node_modules/caniuse-lite/data/features/domcontentloaded.js +1 -1
  330. package/.next/standalone/node_modules/caniuse-lite/data/features/dommatrix.js +1 -1
  331. package/.next/standalone/node_modules/caniuse-lite/data/features/download.js +1 -1
  332. package/.next/standalone/node_modules/caniuse-lite/data/features/dragndrop.js +1 -1
  333. package/.next/standalone/node_modules/caniuse-lite/data/features/element-closest.js +1 -1
  334. package/.next/standalone/node_modules/caniuse-lite/data/features/element-from-point.js +1 -1
  335. package/.next/standalone/node_modules/caniuse-lite/data/features/element-scroll-methods.js +1 -1
  336. package/.next/standalone/node_modules/caniuse-lite/data/features/eme.js +1 -1
  337. package/.next/standalone/node_modules/caniuse-lite/data/features/eot.js +1 -1
  338. package/.next/standalone/node_modules/caniuse-lite/data/features/es5.js +1 -1
  339. package/.next/standalone/node_modules/caniuse-lite/data/features/es6-class.js +1 -1
  340. package/.next/standalone/node_modules/caniuse-lite/data/features/es6-generators.js +1 -1
  341. package/.next/standalone/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js +1 -1
  342. package/.next/standalone/node_modules/caniuse-lite/data/features/es6-module.js +1 -1
  343. package/.next/standalone/node_modules/caniuse-lite/data/features/es6-number.js +1 -1
  344. package/.next/standalone/node_modules/caniuse-lite/data/features/es6-string-includes.js +1 -1
  345. package/.next/standalone/node_modules/caniuse-lite/data/features/es6.js +1 -1
  346. package/.next/standalone/node_modules/caniuse-lite/data/features/eventsource.js +1 -1
  347. package/.next/standalone/node_modules/caniuse-lite/data/features/extended-system-fonts.js +1 -1
  348. package/.next/standalone/node_modules/caniuse-lite/data/features/feature-policy.js +1 -1
  349. package/.next/standalone/node_modules/caniuse-lite/data/features/fetch.js +1 -1
  350. package/.next/standalone/node_modules/caniuse-lite/data/features/fieldset-disabled.js +1 -1
  351. package/.next/standalone/node_modules/caniuse-lite/data/features/fileapi.js +1 -1
  352. package/.next/standalone/node_modules/caniuse-lite/data/features/filereader.js +1 -1
  353. package/.next/standalone/node_modules/caniuse-lite/data/features/filereadersync.js +1 -1
  354. package/.next/standalone/node_modules/caniuse-lite/data/features/filesystem.js +1 -1
  355. package/.next/standalone/node_modules/caniuse-lite/data/features/flac.js +1 -1
  356. package/.next/standalone/node_modules/caniuse-lite/data/features/flexbox-gap.js +1 -1
  357. package/.next/standalone/node_modules/caniuse-lite/data/features/flexbox.js +1 -1
  358. package/.next/standalone/node_modules/caniuse-lite/data/features/flow-root.js +1 -1
  359. package/.next/standalone/node_modules/caniuse-lite/data/features/focusin-focusout-events.js +1 -1
  360. package/.next/standalone/node_modules/caniuse-lite/data/features/font-family-system-ui.js +1 -1
  361. package/.next/standalone/node_modules/caniuse-lite/data/features/font-feature.js +1 -1
  362. package/.next/standalone/node_modules/caniuse-lite/data/features/font-kerning.js +1 -1
  363. package/.next/standalone/node_modules/caniuse-lite/data/features/font-loading.js +1 -1
  364. package/.next/standalone/node_modules/caniuse-lite/data/features/font-size-adjust.js +1 -1
  365. package/.next/standalone/node_modules/caniuse-lite/data/features/font-smooth.js +1 -1
  366. package/.next/standalone/node_modules/caniuse-lite/data/features/font-unicode-range.js +1 -1
  367. package/.next/standalone/node_modules/caniuse-lite/data/features/font-variant-alternates.js +1 -1
  368. package/.next/standalone/node_modules/caniuse-lite/data/features/font-variant-numeric.js +1 -1
  369. package/.next/standalone/node_modules/caniuse-lite/data/features/fontface.js +1 -1
  370. package/.next/standalone/node_modules/caniuse-lite/data/features/form-attribute.js +1 -1
  371. package/.next/standalone/node_modules/caniuse-lite/data/features/form-submit-attributes.js +1 -1
  372. package/.next/standalone/node_modules/caniuse-lite/data/features/form-validation.js +1 -1
  373. package/.next/standalone/node_modules/caniuse-lite/data/features/forms.js +1 -1
  374. package/.next/standalone/node_modules/caniuse-lite/data/features/fullscreen.js +1 -1
  375. package/.next/standalone/node_modules/caniuse-lite/data/features/gamepad.js +1 -1
  376. package/.next/standalone/node_modules/caniuse-lite/data/features/geolocation.js +1 -1
  377. package/.next/standalone/node_modules/caniuse-lite/data/features/getboundingclientrect.js +1 -1
  378. package/.next/standalone/node_modules/caniuse-lite/data/features/getcomputedstyle.js +1 -1
  379. package/.next/standalone/node_modules/caniuse-lite/data/features/getelementsbyclassname.js +1 -1
  380. package/.next/standalone/node_modules/caniuse-lite/data/features/getrandomvalues.js +1 -1
  381. package/.next/standalone/node_modules/caniuse-lite/data/features/gyroscope.js +1 -1
  382. package/.next/standalone/node_modules/caniuse-lite/data/features/hardwareconcurrency.js +1 -1
  383. package/.next/standalone/node_modules/caniuse-lite/data/features/hashchange.js +1 -1
  384. package/.next/standalone/node_modules/caniuse-lite/data/features/heif.js +1 -1
  385. package/.next/standalone/node_modules/caniuse-lite/data/features/hevc.js +1 -1
  386. package/.next/standalone/node_modules/caniuse-lite/data/features/hidden.js +1 -1
  387. package/.next/standalone/node_modules/caniuse-lite/data/features/high-resolution-time.js +1 -1
  388. package/.next/standalone/node_modules/caniuse-lite/data/features/history.js +1 -1
  389. package/.next/standalone/node_modules/caniuse-lite/data/features/html-media-capture.js +1 -1
  390. package/.next/standalone/node_modules/caniuse-lite/data/features/html5semantic.js +1 -1
  391. package/.next/standalone/node_modules/caniuse-lite/data/features/http-live-streaming.js +1 -1
  392. package/.next/standalone/node_modules/caniuse-lite/data/features/http2.js +1 -1
  393. package/.next/standalone/node_modules/caniuse-lite/data/features/http3.js +1 -1
  394. package/.next/standalone/node_modules/caniuse-lite/data/features/iframe-sandbox.js +1 -1
  395. package/.next/standalone/node_modules/caniuse-lite/data/features/iframe-seamless.js +1 -1
  396. package/.next/standalone/node_modules/caniuse-lite/data/features/iframe-srcdoc.js +1 -1
  397. package/.next/standalone/node_modules/caniuse-lite/data/features/imagecapture.js +1 -1
  398. package/.next/standalone/node_modules/caniuse-lite/data/features/ime.js +1 -1
  399. package/.next/standalone/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js +1 -1
  400. package/.next/standalone/node_modules/caniuse-lite/data/features/import-maps.js +1 -1
  401. package/.next/standalone/node_modules/caniuse-lite/data/features/imports.js +1 -1
  402. package/.next/standalone/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js +1 -1
  403. package/.next/standalone/node_modules/caniuse-lite/data/features/indexeddb.js +1 -1
  404. package/.next/standalone/node_modules/caniuse-lite/data/features/indexeddb2.js +1 -1
  405. package/.next/standalone/node_modules/caniuse-lite/data/features/inline-block.js +1 -1
  406. package/.next/standalone/node_modules/caniuse-lite/data/features/innertext.js +1 -1
  407. package/.next/standalone/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js +1 -1
  408. package/.next/standalone/node_modules/caniuse-lite/data/features/input-color.js +1 -1
  409. package/.next/standalone/node_modules/caniuse-lite/data/features/input-datetime.js +1 -1
  410. package/.next/standalone/node_modules/caniuse-lite/data/features/input-email-tel-url.js +1 -1
  411. package/.next/standalone/node_modules/caniuse-lite/data/features/input-event.js +1 -1
  412. package/.next/standalone/node_modules/caniuse-lite/data/features/input-file-accept.js +1 -1
  413. package/.next/standalone/node_modules/caniuse-lite/data/features/input-file-directory.js +1 -1
  414. package/.next/standalone/node_modules/caniuse-lite/data/features/input-file-multiple.js +1 -1
  415. package/.next/standalone/node_modules/caniuse-lite/data/features/input-inputmode.js +1 -1
  416. package/.next/standalone/node_modules/caniuse-lite/data/features/input-minlength.js +1 -1
  417. package/.next/standalone/node_modules/caniuse-lite/data/features/input-number.js +1 -1
  418. package/.next/standalone/node_modules/caniuse-lite/data/features/input-pattern.js +1 -1
  419. package/.next/standalone/node_modules/caniuse-lite/data/features/input-placeholder.js +1 -1
  420. package/.next/standalone/node_modules/caniuse-lite/data/features/input-range.js +1 -1
  421. package/.next/standalone/node_modules/caniuse-lite/data/features/input-search.js +1 -1
  422. package/.next/standalone/node_modules/caniuse-lite/data/features/input-selection.js +1 -1
  423. package/.next/standalone/node_modules/caniuse-lite/data/features/insert-adjacent.js +1 -1
  424. package/.next/standalone/node_modules/caniuse-lite/data/features/insertadjacenthtml.js +1 -1
  425. package/.next/standalone/node_modules/caniuse-lite/data/features/internationalization.js +1 -1
  426. package/.next/standalone/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js +1 -1
  427. package/.next/standalone/node_modules/caniuse-lite/data/features/intersectionobserver.js +1 -1
  428. package/.next/standalone/node_modules/caniuse-lite/data/features/intl-pluralrules.js +1 -1
  429. package/.next/standalone/node_modules/caniuse-lite/data/features/intrinsic-width.js +1 -1
  430. package/.next/standalone/node_modules/caniuse-lite/data/features/jpeg2000.js +1 -1
  431. package/.next/standalone/node_modules/caniuse-lite/data/features/jpegxl.js +1 -1
  432. package/.next/standalone/node_modules/caniuse-lite/data/features/jpegxr.js +1 -1
  433. package/.next/standalone/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js +1 -1
  434. package/.next/standalone/node_modules/caniuse-lite/data/features/json.js +1 -1
  435. package/.next/standalone/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js +1 -1
  436. package/.next/standalone/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js +1 -1
  437. package/.next/standalone/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js +1 -1
  438. package/.next/standalone/node_modules/caniuse-lite/data/features/keyboardevent-code.js +1 -1
  439. package/.next/standalone/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js +1 -1
  440. package/.next/standalone/node_modules/caniuse-lite/data/features/keyboardevent-key.js +1 -1
  441. package/.next/standalone/node_modules/caniuse-lite/data/features/keyboardevent-location.js +1 -1
  442. package/.next/standalone/node_modules/caniuse-lite/data/features/keyboardevent-which.js +1 -1
  443. package/.next/standalone/node_modules/caniuse-lite/data/features/lazyload.js +1 -1
  444. package/.next/standalone/node_modules/caniuse-lite/data/features/let.js +1 -1
  445. package/.next/standalone/node_modules/caniuse-lite/data/features/link-icon-png.js +1 -1
  446. package/.next/standalone/node_modules/caniuse-lite/data/features/link-icon-svg.js +1 -1
  447. package/.next/standalone/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js +1 -1
  448. package/.next/standalone/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js +1 -1
  449. package/.next/standalone/node_modules/caniuse-lite/data/features/link-rel-preconnect.js +1 -1
  450. package/.next/standalone/node_modules/caniuse-lite/data/features/link-rel-prefetch.js +1 -1
  451. package/.next/standalone/node_modules/caniuse-lite/data/features/link-rel-preload.js +1 -1
  452. package/.next/standalone/node_modules/caniuse-lite/data/features/link-rel-prerender.js +1 -1
  453. package/.next/standalone/node_modules/caniuse-lite/data/features/loading-lazy-attr.js +1 -1
  454. package/.next/standalone/node_modules/caniuse-lite/data/features/loading-lazy-media.js +1 -1
  455. package/.next/standalone/node_modules/caniuse-lite/data/features/localecompare.js +1 -1
  456. package/.next/standalone/node_modules/caniuse-lite/data/features/magnetometer.js +1 -1
  457. package/.next/standalone/node_modules/caniuse-lite/data/features/matchesselector.js +1 -1
  458. package/.next/standalone/node_modules/caniuse-lite/data/features/matchmedia.js +1 -1
  459. package/.next/standalone/node_modules/caniuse-lite/data/features/mathml.js +1 -1
  460. package/.next/standalone/node_modules/caniuse-lite/data/features/maxlength.js +1 -1
  461. package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js +1 -1
  462. package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js +1 -1
  463. package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js +1 -1
  464. package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js +1 -1
  465. package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js +1 -1
  466. package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js +1 -1
  467. package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js +1 -1
  468. package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js +1 -1
  469. package/.next/standalone/node_modules/caniuse-lite/data/features/media-fragments.js +1 -1
  470. package/.next/standalone/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js +1 -1
  471. package/.next/standalone/node_modules/caniuse-lite/data/features/mediarecorder.js +1 -1
  472. package/.next/standalone/node_modules/caniuse-lite/data/features/mediasource.js +1 -1
  473. package/.next/standalone/node_modules/caniuse-lite/data/features/menu.js +1 -1
  474. package/.next/standalone/node_modules/caniuse-lite/data/features/meta-theme-color.js +1 -1
  475. package/.next/standalone/node_modules/caniuse-lite/data/features/meter.js +1 -1
  476. package/.next/standalone/node_modules/caniuse-lite/data/features/midi.js +1 -1
  477. package/.next/standalone/node_modules/caniuse-lite/data/features/minmaxwh.js +1 -1
  478. package/.next/standalone/node_modules/caniuse-lite/data/features/mp3.js +1 -1
  479. package/.next/standalone/node_modules/caniuse-lite/data/features/mpeg-dash.js +1 -1
  480. package/.next/standalone/node_modules/caniuse-lite/data/features/mpeg4.js +1 -1
  481. package/.next/standalone/node_modules/caniuse-lite/data/features/multibackgrounds.js +1 -1
  482. package/.next/standalone/node_modules/caniuse-lite/data/features/multicolumn.js +1 -1
  483. package/.next/standalone/node_modules/caniuse-lite/data/features/mutation-events.js +1 -1
  484. package/.next/standalone/node_modules/caniuse-lite/data/features/mutationobserver.js +1 -1
  485. package/.next/standalone/node_modules/caniuse-lite/data/features/namevalue-storage.js +1 -1
  486. package/.next/standalone/node_modules/caniuse-lite/data/features/native-filesystem-api.js +1 -1
  487. package/.next/standalone/node_modules/caniuse-lite/data/features/nav-timing.js +1 -1
  488. package/.next/standalone/node_modules/caniuse-lite/data/features/netinfo.js +1 -1
  489. package/.next/standalone/node_modules/caniuse-lite/data/features/notifications.js +1 -1
  490. package/.next/standalone/node_modules/caniuse-lite/data/features/object-entries.js +1 -1
  491. package/.next/standalone/node_modules/caniuse-lite/data/features/object-fit.js +1 -1
  492. package/.next/standalone/node_modules/caniuse-lite/data/features/object-observe.js +1 -1
  493. package/.next/standalone/node_modules/caniuse-lite/data/features/object-values.js +1 -1
  494. package/.next/standalone/node_modules/caniuse-lite/data/features/objectrtc.js +1 -1
  495. package/.next/standalone/node_modules/caniuse-lite/data/features/offline-apps.js +1 -1
  496. package/.next/standalone/node_modules/caniuse-lite/data/features/offscreencanvas.js +1 -1
  497. package/.next/standalone/node_modules/caniuse-lite/data/features/ogg-vorbis.js +1 -1
  498. package/.next/standalone/node_modules/caniuse-lite/data/features/ogv.js +1 -1
  499. package/.next/standalone/node_modules/caniuse-lite/data/features/ol-reversed.js +1 -1
  500. package/.next/standalone/node_modules/caniuse-lite/data/features/once-event-listener.js +1 -1
  501. package/.next/standalone/node_modules/caniuse-lite/data/features/online-status.js +1 -1
  502. package/.next/standalone/node_modules/caniuse-lite/data/features/opus.js +1 -1
  503. package/.next/standalone/node_modules/caniuse-lite/data/features/orientation-sensor.js +1 -1
  504. package/.next/standalone/node_modules/caniuse-lite/data/features/outline.js +1 -1
  505. package/.next/standalone/node_modules/caniuse-lite/data/features/pad-start-end.js +1 -1
  506. package/.next/standalone/node_modules/caniuse-lite/data/features/page-transition-events.js +1 -1
  507. package/.next/standalone/node_modules/caniuse-lite/data/features/pagevisibility.js +1 -1
  508. package/.next/standalone/node_modules/caniuse-lite/data/features/passive-event-listener.js +1 -1
  509. package/.next/standalone/node_modules/caniuse-lite/data/features/passkeys.js +1 -1
  510. package/.next/standalone/node_modules/caniuse-lite/data/features/passwordrules.js +1 -1
  511. package/.next/standalone/node_modules/caniuse-lite/data/features/path2d.js +1 -1
  512. package/.next/standalone/node_modules/caniuse-lite/data/features/payment-request.js +1 -1
  513. package/.next/standalone/node_modules/caniuse-lite/data/features/pdf-viewer.js +1 -1
  514. package/.next/standalone/node_modules/caniuse-lite/data/features/permissions-api.js +1 -1
  515. package/.next/standalone/node_modules/caniuse-lite/data/features/permissions-policy.js +1 -1
  516. package/.next/standalone/node_modules/caniuse-lite/data/features/picture-in-picture.js +1 -1
  517. package/.next/standalone/node_modules/caniuse-lite/data/features/picture.js +1 -1
  518. package/.next/standalone/node_modules/caniuse-lite/data/features/ping.js +1 -1
  519. package/.next/standalone/node_modules/caniuse-lite/data/features/png-alpha.js +1 -1
  520. package/.next/standalone/node_modules/caniuse-lite/data/features/pointer-events.js +1 -1
  521. package/.next/standalone/node_modules/caniuse-lite/data/features/pointer.js +1 -1
  522. package/.next/standalone/node_modules/caniuse-lite/data/features/pointerlock.js +1 -1
  523. package/.next/standalone/node_modules/caniuse-lite/data/features/portals.js +1 -1
  524. package/.next/standalone/node_modules/caniuse-lite/data/features/prefers-color-scheme.js +1 -1
  525. package/.next/standalone/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js +1 -1
  526. package/.next/standalone/node_modules/caniuse-lite/data/features/progress.js +1 -1
  527. package/.next/standalone/node_modules/caniuse-lite/data/features/promise-finally.js +1 -1
  528. package/.next/standalone/node_modules/caniuse-lite/data/features/promises.js +1 -1
  529. package/.next/standalone/node_modules/caniuse-lite/data/features/proximity.js +1 -1
  530. package/.next/standalone/node_modules/caniuse-lite/data/features/proxy.js +1 -1
  531. package/.next/standalone/node_modules/caniuse-lite/data/features/publickeypinning.js +1 -1
  532. package/.next/standalone/node_modules/caniuse-lite/data/features/push-api.js +1 -1
  533. package/.next/standalone/node_modules/caniuse-lite/data/features/queryselector.js +1 -1
  534. package/.next/standalone/node_modules/caniuse-lite/data/features/readonly-attr.js +1 -1
  535. package/.next/standalone/node_modules/caniuse-lite/data/features/referrer-policy.js +1 -1
  536. package/.next/standalone/node_modules/caniuse-lite/data/features/registerprotocolhandler.js +1 -1
  537. package/.next/standalone/node_modules/caniuse-lite/data/features/rel-noopener.js +1 -1
  538. package/.next/standalone/node_modules/caniuse-lite/data/features/rel-noreferrer.js +1 -1
  539. package/.next/standalone/node_modules/caniuse-lite/data/features/rellist.js +1 -1
  540. package/.next/standalone/node_modules/caniuse-lite/data/features/rem.js +1 -1
  541. package/.next/standalone/node_modules/caniuse-lite/data/features/requestanimationframe.js +1 -1
  542. package/.next/standalone/node_modules/caniuse-lite/data/features/requestidlecallback.js +1 -1
  543. package/.next/standalone/node_modules/caniuse-lite/data/features/resizeobserver.js +1 -1
  544. package/.next/standalone/node_modules/caniuse-lite/data/features/resource-timing.js +1 -1
  545. package/.next/standalone/node_modules/caniuse-lite/data/features/rest-parameters.js +1 -1
  546. package/.next/standalone/node_modules/caniuse-lite/data/features/rtcpeerconnection.js +1 -1
  547. package/.next/standalone/node_modules/caniuse-lite/data/features/ruby.js +1 -1
  548. package/.next/standalone/node_modules/caniuse-lite/data/features/run-in.js +1 -1
  549. package/.next/standalone/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js +1 -1
  550. package/.next/standalone/node_modules/caniuse-lite/data/features/screen-orientation.js +1 -1
  551. package/.next/standalone/node_modules/caniuse-lite/data/features/script-async.js +1 -1
  552. package/.next/standalone/node_modules/caniuse-lite/data/features/script-defer.js +1 -1
  553. package/.next/standalone/node_modules/caniuse-lite/data/features/scrollintoview.js +1 -1
  554. package/.next/standalone/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js +1 -1
  555. package/.next/standalone/node_modules/caniuse-lite/data/features/sdch.js +1 -1
  556. package/.next/standalone/node_modules/caniuse-lite/data/features/selection-api.js +1 -1
  557. package/.next/standalone/node_modules/caniuse-lite/data/features/server-timing.js +1 -1
  558. package/.next/standalone/node_modules/caniuse-lite/data/features/serviceworkers.js +1 -1
  559. package/.next/standalone/node_modules/caniuse-lite/data/features/setimmediate.js +1 -1
  560. package/.next/standalone/node_modules/caniuse-lite/data/features/shadowdom.js +1 -1
  561. package/.next/standalone/node_modules/caniuse-lite/data/features/shadowdomv1.js +1 -1
  562. package/.next/standalone/node_modules/caniuse-lite/data/features/sharedarraybuffer.js +1 -1
  563. package/.next/standalone/node_modules/caniuse-lite/data/features/sharedworkers.js +1 -1
  564. package/.next/standalone/node_modules/caniuse-lite/data/features/sni.js +1 -1
  565. package/.next/standalone/node_modules/caniuse-lite/data/features/spdy.js +1 -1
  566. package/.next/standalone/node_modules/caniuse-lite/data/features/speech-recognition.js +1 -1
  567. package/.next/standalone/node_modules/caniuse-lite/data/features/speech-synthesis.js +1 -1
  568. package/.next/standalone/node_modules/caniuse-lite/data/features/spellcheck-attribute.js +1 -1
  569. package/.next/standalone/node_modules/caniuse-lite/data/features/sql-storage.js +1 -1
  570. package/.next/standalone/node_modules/caniuse-lite/data/features/srcset.js +1 -1
  571. package/.next/standalone/node_modules/caniuse-lite/data/features/stream.js +1 -1
  572. package/.next/standalone/node_modules/caniuse-lite/data/features/streams.js +1 -1
  573. package/.next/standalone/node_modules/caniuse-lite/data/features/stricttransportsecurity.js +1 -1
  574. package/.next/standalone/node_modules/caniuse-lite/data/features/style-scoped.js +1 -1
  575. package/.next/standalone/node_modules/caniuse-lite/data/features/subresource-bundling.js +1 -1
  576. package/.next/standalone/node_modules/caniuse-lite/data/features/subresource-integrity.js +1 -1
  577. package/.next/standalone/node_modules/caniuse-lite/data/features/svg-css.js +1 -1
  578. package/.next/standalone/node_modules/caniuse-lite/data/features/svg-filters.js +1 -1
  579. package/.next/standalone/node_modules/caniuse-lite/data/features/svg-fonts.js +1 -1
  580. package/.next/standalone/node_modules/caniuse-lite/data/features/svg-fragment.js +1 -1
  581. package/.next/standalone/node_modules/caniuse-lite/data/features/svg-html.js +1 -1
  582. package/.next/standalone/node_modules/caniuse-lite/data/features/svg-html5.js +1 -1
  583. package/.next/standalone/node_modules/caniuse-lite/data/features/svg-img.js +1 -1
  584. package/.next/standalone/node_modules/caniuse-lite/data/features/svg-smil.js +1 -1
  585. package/.next/standalone/node_modules/caniuse-lite/data/features/svg.js +1 -1
  586. package/.next/standalone/node_modules/caniuse-lite/data/features/sxg.js +1 -1
  587. package/.next/standalone/node_modules/caniuse-lite/data/features/tabindex-attr.js +1 -1
  588. package/.next/standalone/node_modules/caniuse-lite/data/features/template-literals.js +1 -1
  589. package/.next/standalone/node_modules/caniuse-lite/data/features/template.js +1 -1
  590. package/.next/standalone/node_modules/caniuse-lite/data/features/temporal.js +1 -1
  591. package/.next/standalone/node_modules/caniuse-lite/data/features/testfeat.js +1 -1
  592. package/.next/standalone/node_modules/caniuse-lite/data/features/text-decoration.js +1 -1
  593. package/.next/standalone/node_modules/caniuse-lite/data/features/text-emphasis.js +1 -1
  594. package/.next/standalone/node_modules/caniuse-lite/data/features/text-overflow.js +1 -1
  595. package/.next/standalone/node_modules/caniuse-lite/data/features/text-size-adjust.js +1 -1
  596. package/.next/standalone/node_modules/caniuse-lite/data/features/text-stroke.js +1 -1
  597. package/.next/standalone/node_modules/caniuse-lite/data/features/textcontent.js +1 -1
  598. package/.next/standalone/node_modules/caniuse-lite/data/features/textencoder.js +1 -1
  599. package/.next/standalone/node_modules/caniuse-lite/data/features/tls1-1.js +1 -1
  600. package/.next/standalone/node_modules/caniuse-lite/data/features/tls1-2.js +1 -1
  601. package/.next/standalone/node_modules/caniuse-lite/data/features/tls1-3.js +1 -1
  602. package/.next/standalone/node_modules/caniuse-lite/data/features/touch.js +1 -1
  603. package/.next/standalone/node_modules/caniuse-lite/data/features/transforms2d.js +1 -1
  604. package/.next/standalone/node_modules/caniuse-lite/data/features/transforms3d.js +1 -1
  605. package/.next/standalone/node_modules/caniuse-lite/data/features/trusted-types.js +1 -1
  606. package/.next/standalone/node_modules/caniuse-lite/data/features/ttf.js +1 -1
  607. package/.next/standalone/node_modules/caniuse-lite/data/features/typedarrays.js +1 -1
  608. package/.next/standalone/node_modules/caniuse-lite/data/features/u2f.js +1 -1
  609. package/.next/standalone/node_modules/caniuse-lite/data/features/unhandledrejection.js +1 -1
  610. package/.next/standalone/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js +1 -1
  611. package/.next/standalone/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js +1 -1
  612. package/.next/standalone/node_modules/caniuse-lite/data/features/url.js +1 -1
  613. package/.next/standalone/node_modules/caniuse-lite/data/features/urlsearchparams.js +1 -1
  614. package/.next/standalone/node_modules/caniuse-lite/data/features/use-strict.js +1 -1
  615. package/.next/standalone/node_modules/caniuse-lite/data/features/user-select-none.js +1 -1
  616. package/.next/standalone/node_modules/caniuse-lite/data/features/user-timing.js +1 -1
  617. package/.next/standalone/node_modules/caniuse-lite/data/features/variable-fonts.js +1 -1
  618. package/.next/standalone/node_modules/caniuse-lite/data/features/vector-effect.js +1 -1
  619. package/.next/standalone/node_modules/caniuse-lite/data/features/vibration.js +1 -1
  620. package/.next/standalone/node_modules/caniuse-lite/data/features/video.js +1 -1
  621. package/.next/standalone/node_modules/caniuse-lite/data/features/videotracks.js +1 -1
  622. package/.next/standalone/node_modules/caniuse-lite/data/features/view-transitions.js +1 -1
  623. package/.next/standalone/node_modules/caniuse-lite/data/features/viewport-unit-variants.js +1 -1
  624. package/.next/standalone/node_modules/caniuse-lite/data/features/viewport-units.js +1 -1
  625. package/.next/standalone/node_modules/caniuse-lite/data/features/wai-aria.js +1 -1
  626. package/.next/standalone/node_modules/caniuse-lite/data/features/wake-lock.js +1 -1
  627. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-bigint.js +1 -1
  628. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-bulk-memory.js +1 -1
  629. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-extended-const.js +1 -1
  630. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-gc.js +1 -1
  631. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-multi-memory.js +1 -1
  632. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-multi-value.js +1 -1
  633. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-mutable-globals.js +1 -1
  634. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-nontrapping-fptoint.js +1 -1
  635. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-reference-types.js +1 -1
  636. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-relaxed-simd.js +1 -1
  637. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-signext.js +1 -1
  638. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-simd.js +1 -1
  639. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-tail-calls.js +1 -1
  640. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-threads.js +1 -1
  641. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm.js +1 -1
  642. package/.next/standalone/node_modules/caniuse-lite/data/features/wav.js +1 -1
  643. package/.next/standalone/node_modules/caniuse-lite/data/features/wbr-element.js +1 -1
  644. package/.next/standalone/node_modules/caniuse-lite/data/features/web-animation.js +1 -1
  645. package/.next/standalone/node_modules/caniuse-lite/data/features/web-app-manifest.js +1 -1
  646. package/.next/standalone/node_modules/caniuse-lite/data/features/web-bluetooth.js +1 -1
  647. package/.next/standalone/node_modules/caniuse-lite/data/features/web-serial.js +1 -1
  648. package/.next/standalone/node_modules/caniuse-lite/data/features/web-share.js +1 -1
  649. package/.next/standalone/node_modules/caniuse-lite/data/features/webauthn.js +1 -1
  650. package/.next/standalone/node_modules/caniuse-lite/data/features/webcodecs.js +1 -1
  651. package/.next/standalone/node_modules/caniuse-lite/data/features/webgl.js +1 -1
  652. package/.next/standalone/node_modules/caniuse-lite/data/features/webgl2.js +1 -1
  653. package/.next/standalone/node_modules/caniuse-lite/data/features/webgpu.js +1 -1
  654. package/.next/standalone/node_modules/caniuse-lite/data/features/webhid.js +1 -1
  655. package/.next/standalone/node_modules/caniuse-lite/data/features/webkit-user-drag.js +1 -1
  656. package/.next/standalone/node_modules/caniuse-lite/data/features/webm.js +1 -1
  657. package/.next/standalone/node_modules/caniuse-lite/data/features/webnfc.js +1 -1
  658. package/.next/standalone/node_modules/caniuse-lite/data/features/webp.js +1 -1
  659. package/.next/standalone/node_modules/caniuse-lite/data/features/websockets.js +1 -1
  660. package/.next/standalone/node_modules/caniuse-lite/data/features/webtransport.js +1 -1
  661. package/.next/standalone/node_modules/caniuse-lite/data/features/webusb.js +1 -1
  662. package/.next/standalone/node_modules/caniuse-lite/data/features/webvr.js +1 -1
  663. package/.next/standalone/node_modules/caniuse-lite/data/features/webvtt.js +1 -1
  664. package/.next/standalone/node_modules/caniuse-lite/data/features/webworkers.js +1 -1
  665. package/.next/standalone/node_modules/caniuse-lite/data/features/webxr.js +1 -1
  666. package/.next/standalone/node_modules/caniuse-lite/data/features/will-change.js +1 -1
  667. package/.next/standalone/node_modules/caniuse-lite/data/features/woff.js +1 -1
  668. package/.next/standalone/node_modules/caniuse-lite/data/features/woff2.js +1 -1
  669. package/.next/standalone/node_modules/caniuse-lite/data/features/word-break.js +1 -1
  670. package/.next/standalone/node_modules/caniuse-lite/data/features/wordwrap.js +1 -1
  671. package/.next/standalone/node_modules/caniuse-lite/data/features/x-doc-messaging.js +1 -1
  672. package/.next/standalone/node_modules/caniuse-lite/data/features/x-frame-options.js +1 -1
  673. package/.next/standalone/node_modules/caniuse-lite/data/features/xhr2.js +1 -1
  674. package/.next/standalone/node_modules/caniuse-lite/data/features/xhtml.js +1 -1
  675. package/.next/standalone/node_modules/caniuse-lite/data/features/xhtmlsmil.js +1 -1
  676. package/.next/standalone/node_modules/caniuse-lite/data/features/xml-serializer.js +1 -1
  677. package/.next/standalone/node_modules/caniuse-lite/data/features/zstd.js +1 -1
  678. package/.next/standalone/node_modules/caniuse-lite/package.json +1 -1
  679. package/.next/standalone/node_modules/next/dist/build/swc/index.js +1 -1
  680. package/.next/standalone/node_modules/next/dist/build/webpack-config.js +2 -2
  681. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js +1 -1
  682. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +1 -1
  683. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +13 -13
  684. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js +12 -12
  685. package/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +1 -1
  686. package/.next/standalone/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js +1 -1
  687. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +1 -1
  688. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  689. package/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  690. package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +3 -1
  691. package/.next/standalone/node_modules/next/dist/shared/lib/canary-only.js +1 -1
  692. package/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  693. package/.next/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
  694. package/.next/standalone/node_modules/next/package.json +15 -15
  695. package/.next/standalone/node_modules/semver/classes/range.js +9 -0
  696. package/.next/standalone/node_modules/semver/package.json +1 -1
  697. package/.next/standalone/package.json +3 -2
  698. package/.next/static/BI7koHWCC15MOwsCfxo2O/_buildManifest.js +1 -0
  699. package/.next/static/chunks/172-84d6b7afea495880.js +1 -0
  700. package/.next/static/chunks/253-d1beae5e3cf2d88e.js +1 -0
  701. package/.next/static/chunks/{255-4f84124391a7dac4.js → 255-98a0bdaa30757bda.js} +1 -1
  702. package/.next/static/chunks/642-75adb59cbb062e44.js +1 -0
  703. package/.next/static/chunks/661-a763fedcbf90af81.js +1 -0
  704. package/.next/static/chunks/793-7306e111aea85b00.js +1 -0
  705. package/.next/static/chunks/798-8424899efd598f73.js +1 -0
  706. package/.next/static/chunks/968-a7dcf12036013254.js +62 -0
  707. package/.next/static/chunks/app/(dashboard)/integrations/page-25d6f67123a8a2ef.js +1 -0
  708. package/.next/static/chunks/app/(dashboard)/layout-a63b3fef68015cb5.js +1 -0
  709. package/.next/static/chunks/app/(dashboard)/projects/[projectId]/page-cfab61233220bde3.js +1 -0
  710. package/.next/static/chunks/app/(dashboard)/projects/[projectId]/summary/page-1650386b60d0337f.js +1 -0
  711. package/.next/static/chunks/app/(dashboard)/projects/page-420d60cc1ac676f3.js +1 -0
  712. package/.next/static/chunks/app/api/e2e/route-4f053c4f9dcca3c0.js +1 -0
  713. package/.next/static/chunks/app/api/generate/route-4f053c4f9dcca3c0.js +1 -0
  714. package/.next/static/chunks/app/api/llm/encrypt/route-4f053c4f9dcca3c0.js +1 -0
  715. package/.next/static/chunks/app/api/llm/test/route-4f053c4f9dcca3c0.js +1 -0
  716. package/.next/static/chunks/app/api/mcp/route-4f053c4f9dcca3c0.js +1 -0
  717. package/.next/static/chunks/app/api/refine-notes/route-4f053c4f9dcca3c0.js +1 -0
  718. package/.next/static/chunks/app/api/state/route-4f053c4f9dcca3c0.js +1 -0
  719. package/.next/static/chunks/app/api/weather/route-4f053c4f9dcca3c0.js +1 -0
  720. package/.next/{standalone/.next/static/chunks/app/login/page-a655de2a3e8514f8.js → static/chunks/app/login/page-35c717d39c71dcbf.js} +1 -1
  721. package/.next/static/chunks/app/page-3e00e649355cd3ac.js +1 -0
  722. package/.next/static/chunks/{main-646068343426c12d.js → main-2af68c75fbdc984e.js} +1 -1
  723. package/.next/static/css/d95cfd16ee2f56f9.css +3 -0
  724. package/README.md +52 -16
  725. package/package.json +3 -2
  726. package/.next/standalone/.next/server/chunks/350.js +0 -21
  727. package/.next/standalone/.next/server/chunks/403.js +0 -1
  728. package/.next/standalone/.next/server/chunks/583.js +0 -1
  729. package/.next/standalone/.next/static/5bU_Xo0_CNnVnb2HQeysr/_buildManifest.js +0 -1
  730. package/.next/standalone/.next/static/chunks/246-1673b37cc8edb269.js +0 -1
  731. package/.next/standalone/.next/static/chunks/485-23e4a6e33ee79f14.js +0 -1
  732. package/.next/standalone/.next/static/chunks/532-95cb537bb36c2e68.js +0 -62
  733. package/.next/standalone/.next/static/chunks/637-dcbc811f7143935f.js +0 -1
  734. package/.next/standalone/.next/static/chunks/708-1fc7a6d1d5b4aee7.js +0 -1
  735. package/.next/standalone/.next/static/chunks/app/(dashboard)/integrations/page-f5e71fcfbeffdfb1.js +0 -1
  736. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-a5bf2535f1470c77.js +0 -1
  737. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[projectId]/page-7205f74080ad5010.js +0 -1
  738. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[projectId]/summary/page-b69fc155f1796e19.js +0 -1
  739. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/page-11a49918142004f5.js +0 -1
  740. package/.next/standalone/.next/static/chunks/app/api/e2e/route-ccff81cd0a5704f2.js +0 -1
  741. package/.next/standalone/.next/static/chunks/app/api/generate/route-ccff81cd0a5704f2.js +0 -1
  742. package/.next/standalone/.next/static/chunks/app/api/llm/encrypt/route-ccff81cd0a5704f2.js +0 -1
  743. package/.next/standalone/.next/static/chunks/app/api/llm/test/route-ccff81cd0a5704f2.js +0 -1
  744. package/.next/standalone/.next/static/chunks/app/api/weather/route-ccff81cd0a5704f2.js +0 -1
  745. package/.next/standalone/.next/static/chunks/app/page-a90eeaea3538ebf2.js +0 -1
  746. package/.next/standalone/.next/static/css/f78c165472d53f48.css +0 -3
  747. package/.next/standalone/node_modules/buffer-from/index.js +0 -72
  748. package/.next/standalone/node_modules/buffer-from/package.json +0 -19
  749. package/.next/standalone/node_modules/source-map/lib/array-set.js +0 -121
  750. package/.next/standalone/node_modules/source-map/lib/base64-vlq.js +0 -140
  751. package/.next/standalone/node_modules/source-map/lib/base64.js +0 -67
  752. package/.next/standalone/node_modules/source-map/lib/binary-search.js +0 -111
  753. package/.next/standalone/node_modules/source-map/lib/mapping-list.js +0 -79
  754. package/.next/standalone/node_modules/source-map/lib/quick-sort.js +0 -114
  755. package/.next/standalone/node_modules/source-map/lib/source-map-consumer.js +0 -1145
  756. package/.next/standalone/node_modules/source-map/lib/source-map-generator.js +0 -425
  757. package/.next/standalone/node_modules/source-map/lib/source-node.js +0 -413
  758. package/.next/standalone/node_modules/source-map/lib/util.js +0 -488
  759. package/.next/standalone/node_modules/source-map/package.json +0 -73
  760. package/.next/standalone/node_modules/source-map/source-map.js +0 -8
  761. package/.next/standalone/node_modules/source-map-support/package.json +0 -31
  762. package/.next/standalone/node_modules/source-map-support/source-map-support.js +0 -625
  763. package/.next/static/5bU_Xo0_CNnVnb2HQeysr/_buildManifest.js +0 -1
  764. package/.next/static/chunks/246-1673b37cc8edb269.js +0 -1
  765. package/.next/static/chunks/485-23e4a6e33ee79f14.js +0 -1
  766. package/.next/static/chunks/532-95cb537bb36c2e68.js +0 -62
  767. package/.next/static/chunks/637-dcbc811f7143935f.js +0 -1
  768. package/.next/static/chunks/708-1fc7a6d1d5b4aee7.js +0 -1
  769. package/.next/static/chunks/app/(dashboard)/integrations/page-f5e71fcfbeffdfb1.js +0 -1
  770. package/.next/static/chunks/app/(dashboard)/layout-a5bf2535f1470c77.js +0 -1
  771. package/.next/static/chunks/app/(dashboard)/projects/[projectId]/page-7205f74080ad5010.js +0 -1
  772. package/.next/static/chunks/app/(dashboard)/projects/[projectId]/summary/page-b69fc155f1796e19.js +0 -1
  773. package/.next/static/chunks/app/(dashboard)/projects/page-11a49918142004f5.js +0 -1
  774. package/.next/static/chunks/app/api/e2e/route-ccff81cd0a5704f2.js +0 -1
  775. package/.next/static/chunks/app/api/generate/route-ccff81cd0a5704f2.js +0 -1
  776. package/.next/static/chunks/app/api/llm/encrypt/route-ccff81cd0a5704f2.js +0 -1
  777. package/.next/static/chunks/app/api/llm/test/route-ccff81cd0a5704f2.js +0 -1
  778. package/.next/static/chunks/app/api/weather/route-ccff81cd0a5704f2.js +0 -1
  779. package/.next/static/chunks/app/page-a90eeaea3538ebf2.js +0 -1
  780. package/.next/static/css/f78c165472d53f48.css +0 -3
  781. /package/.next/standalone/.next/static/{5bU_Xo0_CNnVnb2HQeysr → BI7koHWCC15MOwsCfxo2O}/_ssgManifest.js +0 -0
  782. /package/.next/static/{5bU_Xo0_CNnVnb2HQeysr → BI7koHWCC15MOwsCfxo2O}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[948],{1868:(e,t,r)=>{Promise.resolve().then(r.bind(r,4065))},4065:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>$});var s=r(5155),a=r(8661),o=r.n(a),l=r(2115),n=r(63),i=r(4417);let c=(0,l.memo)(function(e){let{node:t,position:r,isSelected:a,testCases:o,isDragged:n,edgeDragActive:i,isEdgeDropTarget:c,deleteMode:d,isDeleteChecked:x,onSelect:u,onAddChild:p,onDelete:m,onUnlinkNode:h,onRename:b,onUpdateNode:v,onDragStart:y,onEdgeStart:f,onToggleDeleteCheck:g,depth:j,showCounter:k,svgRef:C}=e,[w,N]=(0,l.useState)(!1),[S,D]=(0,l.useState)(t.label),[E,L]=(0,l.useState)(!1),[M,R]=(0,l.useState)(!1),[A,T]=(0,l.useState)("horizontal"),[z,I]=(0,l.useState)(""),W=(0,l.useRef)(null),F=(0,l.useRef)(null),B=(0,l.useRef)(null),P=(0,l.useRef)({startX:0,startY:0,moved:!1}),{w:U,h:O}=0===j?{w:160,h:56}:1===j?{w:144,h:48}:{w:132,h:42},X=o.some(e=>"fail"===e.status),K=o.some(e=>"skip"===e.status),H=o.some(e=>"untested"===e.status),G=o.some(e=>"blocked"===e.status),Y=X||K||H||G,V=o.length>0&&o.every(e=>"pass"===e.status);(0,l.useEffect)(()=>{let e=e=>{let r=e.detail;(null==r?void 0:r.parentId)===t.id&&(R(!0),I(""))};return window.addEventListener("mindmap:add-child",e),()=>window.removeEventListener("mindmap:add-child",e)},[t.id]),(0,l.useEffect)(()=>{if(!M)return;let e=e=>{B.current&&!B.current.contains(e.target)&&(z.trim()?q():(R(!1),I("")))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[M,z]),(0,l.useEffect)(()=>{M&&F.current&&F.current.focus()},[M]);let _=(0,l.useCallback)(()=>{D(t.label),N(!0),setTimeout(()=>{var e;return null==(e=W.current)?void 0:e.focus()},0)},[t.label]),J=(0,l.useCallback)(()=>{S.trim()&&b(t.id,S.trim()),N(!1)},[S,t.id,b]),q=(0,l.useCallback)(()=>{if(z.trim()){let e="vertical"===A?{x:r.x,y:r.y+O+60}:{x:r.x+U+120,y:r.y};p(t.id,z.trim(),e,A)}R(!1),I("")},[z,t.id,p,r.x,r.y,O,U,A]),Z=(0,l.useCallback)(e=>t=>{t.stopPropagation(),T(e),R(!0),I("")},[]),$=(0,l.useCallback)(e=>{if(2===e.button||d)return;if(e.stopPropagation(),!e.target.closest('[data-drag-handle="true"]'))return void u(t.id);e.preventDefault(),P.current={startX:e.clientX,startY:e.clientY,moved:!1};let s=e=>e.preventDefault();document.addEventListener("contextmenu",s);let a=e=>{let s=e.clientX-P.current.startX,a=e.clientY-P.current.startY;!P.current.moved&&(Math.abs(s)>6||Math.abs(a)>6)&&(P.current.moved=!0,y(t.id,P.current.startX,P.current.startY,r.x,r.y))},o=()=>{window.removeEventListener("mousemove",a),window.removeEventListener("mouseup",o),setTimeout(()=>document.removeEventListener("contextmenu",s),100)};window.addEventListener("mousemove",a),window.addEventListener("mouseup",o)},[t.id,u,y,d,r]),Q=t.id.replace(/[^a-zA-Z0-9]/g,"").slice(0,8),ee=a&&!d;return(0,s.jsxs)("g",{transform:"translate(".concat(r.x,", ").concat(r.y,")"),onMouseDown:$,onDoubleClick:e=>{e.stopPropagation(),d||_()},onMouseEnter:()=>L(!0),onMouseLeave:()=>L(!1),style:{cursor:d?"pointer":"default",transition:n?"none":"transform 150ms ease-out"},onClick:()=>{d&&g(t.id)},children:[(0,s.jsxs)("defs",{children:[(0,s.jsxs)("linearGradient",{id:"fill-".concat(Q),x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,s.jsx)("stop",{offset:"0%",stopColor:"#FFFFFF"}),(0,s.jsx)("stop",{offset:"100%",stopColor:"#FAF9F7"})]}),(0,s.jsxs)("filter",{id:"shadow-".concat(Q),x:"-10%",y:"-10%",width:"120%",height:"130%",children:[(0,s.jsx)("feDropShadow",{dx:"0",dy:"1",stdDeviation:"2",floodOpacity:"0.08"}),(0,s.jsx)("feDropShadow",{dx:"0",dy:"3",stdDeviation:"6",floodOpacity:"0.05"})]}),(0,s.jsxs)("filter",{id:"shadow-hover-".concat(Q),x:"-10%",y:"-10%",width:"120%",height:"140%",children:[(0,s.jsx)("feDropShadow",{dx:"0",dy:"2",stdDeviation:"4",floodOpacity:"0.12"}),(0,s.jsx)("feDropShadow",{dx:"0",dy:"6",stdDeviation:"12",floodOpacity:"0.08"})]}),(0,s.jsxs)("filter",{id:"shadow-drag-".concat(Q),x:"-20%",y:"-20%",width:"140%",height:"160%",children:[(0,s.jsx)("feDropShadow",{dx:"0",dy:"4",stdDeviation:"8",floodOpacity:"0.2"}),(0,s.jsx)("feDropShadow",{dx:"0",dy:"8",stdDeviation:"16",floodOpacity:"0.1"})]}),(0,s.jsxs)("filter",{id:"glow-".concat(Q),x:"-50%",y:"-50%",width:"200%",height:"200%",children:[(0,s.jsx)("feGaussianBlur",{in:"SourceGraphic",stdDeviation:"3",result:"blur"}),(0,s.jsx)("feColorMatrix",{in:"blur",type:"matrix",values:"0 0 0 0 0.4 0 0 0 0 0.8 0 0 0 0 0.4 0 0 0 0.6 0"})]})]}),!d&&(0,s.jsxs)("g",{"data-drag-handle":"true",transform:"translate(0, ".concat(-O/2-10,")"),style:{cursor:n?"grabbing":"grab"},children:[(0,s.jsx)("rect",{x:-20,y:-7,width:40,height:14,rx:4,fill:"var(--bg-card)",stroke:"var(--border)",strokeWidth:1,opacity:E||a?.9:.5,style:{transition:"opacity 150ms ease-out"}}),(0,s.jsx)("circle",{cx:-8,cy:-1.5,r:1.2,fill:"var(--text-tertiary)",opacity:.6}),(0,s.jsx)("circle",{cx:-8,cy:1.5,r:1.2,fill:"var(--text-tertiary)",opacity:.6}),(0,s.jsx)("circle",{cx:-4,cy:-1.5,r:1.2,fill:"var(--text-tertiary)",opacity:.6}),(0,s.jsx)("circle",{cx:-4,cy:1.5,r:1.2,fill:"var(--text-tertiary)",opacity:.6}),(0,s.jsx)("circle",{cx:0,cy:-1.5,r:1.2,fill:"var(--text-tertiary)",opacity:.6}),(0,s.jsx)("circle",{cx:0,cy:1.5,r:1.2,fill:"var(--text-tertiary)",opacity:.6}),(0,s.jsx)("circle",{cx:4,cy:-1.5,r:1.2,fill:"var(--text-tertiary)",opacity:.6}),(0,s.jsx)("circle",{cx:4,cy:1.5,r:1.2,fill:"var(--text-tertiary)",opacity:.6}),(0,s.jsx)("circle",{cx:8,cy:-1.5,r:1.2,fill:"var(--text-tertiary)",opacity:.6}),(0,s.jsx)("circle",{cx:8,cy:1.5,r:1.2,fill:"var(--text-tertiary)",opacity:.6})]}),(()=>{let e=X?"var(--status-fail-bg)":Y?"var(--status-skip-bg)":V?"var(--status-pass-bg)":null;return(0,s.jsxs)(s.Fragment,{children:[e&&(0,s.jsx)("rect",{x:-U/2,y:-O/2,width:U,height:O,rx:4,fill:e,opacity:X?.2:.15}),(0,s.jsx)("rect",{x:-U/2,y:-O/2,width:U,height:O,rx:4,fill:"url(#fill-".concat(Q,")"),stroke:d&&x?"var(--status-fail-text)":"var(--border)",strokeWidth:d&&x?2:.5,filter:n?"url(#shadow-drag-".concat(Q,")"):E?"url(#shadow-hover-".concat(Q,")"):"url(#shadow-".concat(Q,")"),style:{transition:"filter 200ms ease-out, stroke 150ms ease-out"}}),(0,s.jsx)("path",{d:"M ".concat(U/2-10," ").concat(-O/2," L ").concat(U/2," ").concat(-O/2," L ").concat(U/2," ").concat(-O/2+10," Z"),fill:"var(--bg-secondary)",opacity:.5}),(0,s.jsx)("path",{d:"M ".concat(U/2-10," ").concat(-O/2," L ").concat(U/2-10," ").concat(-O/2+10," L ").concat(U/2," ").concat(-O/2+10),fill:"none",stroke:"var(--border)",strokeWidth:.5,opacity:.4})]})})(),o.length>0&&!d&&k&&(0,s.jsxs)("text",{x:U/2-6,y:-O/2+10,textAnchor:"end",style:{fill:X?"var(--status-fail-text)":Y?"var(--status-skip-text)":"var(--status-pass-text)",fontSize:9,fontWeight:700,fontFamily:"monospace",opacity:E||a?1:.7,transition:"opacity 150ms ease-out",pointerEvents:"none"},children:[X?o.filter(e=>"fail"===e.status).length:Y?o.filter(e=>"pass"!==e.status).length:o.length,"/",o.length]}),d&&(0,s.jsxs)("g",{transform:"translate(".concat(-U/2+8,", 0)"),children:[(0,s.jsx)("rect",{x:-7,y:-7,width:14,height:14,rx:3,fill:x?"var(--status-fail-text)":"transparent",stroke:x?"var(--status-fail-text)":"var(--border)",strokeWidth:1.5}),x&&(0,s.jsx)("path",{d:"M -4 0 L -1 3 L 4 -2",fill:"none",stroke:"white",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"})]}),t.code&&!d&&(0,s.jsxs)("g",{transform:"translate(".concat(-U/2+4,", ").concat(-O/2+4,")"),style:{opacity:E||a?1:0,transition:"opacity 150ms ease-out"},children:[(0,s.jsx)("rect",{x:0,y:0,width:Math.max(6.5*t.code.length+10,28),height:14,rx:2,fill:"var(--accent)",opacity:.08}),(0,s.jsx)("text",{x:5,y:10,style:{fill:"var(--text-tertiary)",fontSize:8,fontWeight:500,fontFamily:"monospace",letterSpacing:"0.05em"},children:t.code})]}),w?(0,s.jsx)("foreignObject",{x:-U/2+8,y:-O/2+4,width:U-16,height:O-8,children:(0,s.jsx)("input",{ref:W,value:S,onChange:e=>D(e.target.value),onBlur:J,onKeyDown:e=>{"Enter"===e.key&&J(),"Escape"===e.key&&N(!1)},className:"w-full h-full bg-transparent outline-none text-center text-xs",style:{color:"var(--text-primary)",fontFamily:"inherit"}})}):(0,s.jsx)("text",{textAnchor:"middle",dominantBaseline:"central",className:"select-none",onClick:e=>{e.stopPropagation(),d||_()},style:{fill:"var(--text-primary)",fontSize:0===j?13:11.5,fontWeight:0===j?600:450,fontFamily:"inherit",letterSpacing:"-0.01em",cursor:E&&!d?"text":"default",pointerEvents:"auto"},children:t.label.length>22?t.label.slice(0,22)+"…":t.label}),ee&&!w&&!i&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("g",{transform:"translate(".concat(U/2+3,", ").concat(-11,")"),children:[(0,s.jsxs)("g",{onClick:Z("horizontal"),onMouseDown:e=>e.stopPropagation(),style:{cursor:"pointer",transition:"opacity 150ms ease-out"},onMouseEnter:e=>{e.currentTarget.style.opacity="1"},onMouseLeave:e=>{e.currentTarget.style.opacity="0.85"},children:[(0,s.jsx)("rect",{x:0,y:0,width:22,height:22,rx:3,fill:"var(--bg-card)",stroke:"var(--border)",strokeWidth:.75,opacity:.9}),(0,s.jsx)("line",{x1:11,y1:5,x2:11,y2:17,stroke:"var(--text-tertiary)",strokeWidth:1.5,strokeLinecap:"round"}),(0,s.jsx)("line",{x1:5,y1:11,x2:17,y2:11,stroke:"var(--text-tertiary)",strokeWidth:1.5,strokeLinecap:"round"})]}),(0,s.jsx)("g",{transform:"translate(".concat(24,", ").concat(7,")"),onMouseDown:e=>{e.stopPropagation(),e.preventDefault(),f(t.id,"pass",r.x+U/2+3+22+2+4,r.y-11+11,"horizontal")},onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),f(t.id,"fail",r.x+U/2+3+22+2+4,r.y-11+11,"horizontal")},style:{cursor:"crosshair",transition:"opacity 150ms ease-out"},onMouseEnter:e=>{e.currentTarget.style.opacity="1"},onMouseLeave:e=>{e.currentTarget.style.opacity="0.7"},children:(0,s.jsx)("circle",{cx:4,cy:4,r:4,fill:"var(--status-pass-text)",opacity:.8,children:(0,s.jsx)("animate",{attributeName:"opacity",values:"0.6;1;0.6",dur:"2s",repeatCount:"indefinite"})})})]}),(0,s.jsxs)("g",{transform:"translate(".concat(-11,", ").concat(O/2+3,")"),children:[(0,s.jsxs)("g",{onClick:Z("vertical"),onMouseDown:e=>e.stopPropagation(),style:{cursor:"pointer",transition:"opacity 150ms ease-out"},onMouseEnter:e=>{e.currentTarget.style.opacity="1"},onMouseLeave:e=>{e.currentTarget.style.opacity="0.85"},children:[(0,s.jsx)("rect",{x:0,y:0,width:22,height:22,rx:3,fill:"var(--bg-card)",stroke:"var(--border)",strokeWidth:.75,opacity:.9}),(0,s.jsx)("line",{x1:11,y1:5,x2:11,y2:17,stroke:"var(--text-tertiary)",strokeWidth:1.5,strokeLinecap:"round"}),(0,s.jsx)("line",{x1:5,y1:11,x2:17,y2:11,stroke:"var(--text-tertiary)",strokeWidth:1.5,strokeLinecap:"round"})]}),(0,s.jsx)("g",{transform:"translate(".concat(24,", ").concat(7,")"),onMouseDown:e=>{e.stopPropagation(),e.preventDefault(),f(t.id,"pass",r.x-11+11,r.y+O/2+3+22+2+4,"vertical")},onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),f(t.id,"fail",r.x-11+11,r.y+O/2+3+22+2+4,"vertical")},style:{cursor:"crosshair",transition:"opacity 150ms ease-out"},onMouseEnter:e=>{e.currentTarget.style.opacity="1"},onMouseLeave:e=>{e.currentTarget.style.opacity="0.7"},children:(0,s.jsx)("circle",{cx:4,cy:4,r:4,fill:"var(--accent)",opacity:.8,children:(0,s.jsx)("animate",{attributeName:"opacity",values:"0.6;1;0.6",dur:"2s",repeatCount:"indefinite"})})})]})]}),i&&!c&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("g",{transform:"translate(".concat(-U/2-10,", 0)"),children:(0,s.jsx)("circle",{r:6,fill:"var(--bg-card)",stroke:"var(--border)",strokeWidth:1.5,opacity:.6,strokeDasharray:"3 2"})}),(0,s.jsx)("g",{transform:"translate(0, ".concat(-O/2-10,")"),children:(0,s.jsx)("circle",{r:6,fill:"var(--bg-card)",stroke:"var(--border)",strokeWidth:1.5,opacity:.6,strokeDasharray:"3 2"})})]}),M&&(0,s.jsxs)("g",{children:["vertical"===A?(0,s.jsx)("line",{x1:0,y1:O/2,x2:0,y2:O/2+50,stroke:"var(--border-hover)",strokeWidth:1.5}):(0,s.jsx)("line",{x1:U/2,y1:0,x2:U/2+50,y2:0,stroke:"var(--border-hover)",strokeWidth:1.5}),(0,s.jsx)("rect",{x:"vertical"===A?-U/2:U/2+50,y:"vertical"===A?O/2+50:-O/2,width:U,height:O,rx:4,fill:"var(--bg-card)",stroke:"var(--accent)",strokeWidth:1,strokeDasharray:"4 3"}),(0,s.jsx)("foreignObject",{x:"vertical"===A?-U/2+4:U/2+50+4,y:"vertical"===A?O/2+50+4:-O/2+4,width:U-8,height:O-8,children:(0,s.jsx)("div",{ref:B,children:(0,s.jsx)("input",{ref:F,value:z,onChange:e=>I(e.target.value),onBlur:()=>{z.trim()?q():(R(!1),I(""))},onKeyDown:e=>{"Enter"===e.key&&q(),"Escape"===e.key&&(R(!1),I("")),e.stopPropagation()},onMouseDown:e=>e.stopPropagation(),placeholder:"Name node...",className:"w-full h-full bg-transparent outline-none text-center text-xs",style:{color:"var(--text-primary)",fontFamily:"inherit"}})})})]})]})});var d=r(7069),x=r(4269);function u(e){let{width:t=16,height:r=16,x:a=0,y:o=0,cx:n=1,cy:i=1,cr:c=1,className:u,glow:p=!1,...m}=e,h=(0,l.useId)(),b=(0,l.useRef)(null),[v,y]=(0,l.useState)({width:0,height:0});(0,l.useEffect)(()=>{let e=()=>{if(b.current){let{width:e,height:t}=b.current.getBoundingClientRect();y({width:e,height:t})}};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]);let f=Array.from({length:Math.ceil(v.width/t)*Math.ceil(v.height/r)},(e,s)=>{let l=s%Math.ceil(v.width/t),c=Math.floor(s/Math.ceil(v.width/t));return{x:l*t+n+a,y:c*r+i+o,delay:5*Math.random(),duration:3*Math.random()+2}});return(0,s.jsxs)("svg",{ref:b,"aria-hidden":"true",className:(0,x.cn)("pointer-events-none absolute inset-0 h-full w-full text-neutral-400/80",u),...m,children:[(0,s.jsx)("defs",{children:(0,s.jsxs)("radialGradient",{id:"".concat(h,"-gradient"),children:[(0,s.jsx)("stop",{offset:"0%",stopColor:"currentColor",stopOpacity:"1"}),(0,s.jsx)("stop",{offset:"100%",stopColor:"currentColor",stopOpacity:"0"})]})}),f.map(e=>(0,s.jsx)(d.P.circle,{cx:e.x,cy:e.y,r:c,fill:p?"url(#".concat(h,"-gradient)"):"currentColor",initial:p?{opacity:.4,scale:1}:{},animate:p?{opacity:[.4,1,.4],scale:[1,1.5,1]}:{},transition:p?{duration:e.duration,repeat:1/0,repeatType:"reverse",delay:e.delay,ease:"easeInOut"}:{}},"".concat(e.x,"-").concat(e.y)))]})}let p=l.forwardRef((e,t)=>{let{className:r,children:a,rippleColor:o="#ffffff",duration:n="600ms",onClick:i,...c}=e,[d,u]=(0,l.useState)([]);return(0,l.useEffect)(()=>{let e=null;if(d.length>0){let t=d[d.length-1];e=setTimeout(()=>{u(e=>e.filter(e=>e.key!==t.key))},parseInt(n))}return()=>{null!==e&&clearTimeout(e)}},[d,n]),(0,s.jsxs)("button",{className:(0,x.cn)("bg-background text-primary relative flex cursor-pointer items-center justify-center overflow-hidden rounded-lg border-2 px-4 py-2 text-center",r),onClick:e=>{(e=>{let t=e.currentTarget.getBoundingClientRect(),r=Math.max(t.width,t.height),s={x:e.clientX-t.left-r/2,y:e.clientY-t.top-r/2,size:r,key:Date.now()};u(e=>[...e,s])})(e),null==i||i(e)},ref:t,...c,children:[(0,s.jsx)("div",{className:"relative z-10",children:a}),(0,s.jsx)("span",{className:"pointer-events-none absolute inset-0",children:d.map(e=>(0,s.jsx)("span",{className:"animate-rippling bg-background absolute rounded-full opacity-30",style:{width:"".concat(e.size,"px"),height:"".concat(e.size,"px"),top:"".concat(e.y,"px"),left:"".concat(e.x,"px"),backgroundColor:o,transform:"scale(0)","--duration":n}},e.key))})]})});function m(e){let{nodes:t,edges:r,testCases:a,selectedNodeId:o,onSelect:n,onAddNode:i,onDeleteNode:d,onDeleteNodes:x,onUnlinkNode:m,onRenameNode:v,onUpdateNode:y,onAddEdge:f,onDeleteEdge:g,onUpdateEdge:j,canUndo:k,canRedo:C,onUndo:w,onRedo:N}=e,S=(0,l.useMemo)(()=>(function(e){let t=new Map;if(0===e.length)return t;let r=new Map;for(let t of e)r.set(t.id,t);let s=new Set;for(let t of e)t.position&&s.add(t.id);let a=e.filter(e=>null===e.parentId);if(0===a.length)return t;let o=0;for(let e of a)o=function e(a,o,l,n,i){var c,d,x,u;let p=r.get(a);if(!p)return l;let m="vertical"===p.direction,h=m?null!=(d=null==(c=p.position)?void 0:c.x)?d:n:60+180*o,b=l;for(let t of p.children)b=m?e(t,o,b,n,i):e(t,o+1,b,n,i);let v=p.children.map(e=>t.get(e)).filter(Boolean),y=v.length>0?(Math.min(...v.map(e=>e.y))+Math.max(...v.map(e=>e.y)))/2:l;if(s.has(a)&&p.position){let r=v.length>0?y:l,s=p.position.x-(m?p.position.x:h),n=p.position.y-r;t.set(a,p.position);let i=l;for(let t of p.children)i=m?e(t,o,i,s,n):e(t,o+1,i,s,n);return i}return m?t.set(a,{x:(null!=(u=null==(x=p.position)?void 0:x.x)?u:0)+n,y:y+i}):t.set(a,{x:h+n,y:y+i}),b}(e.id,0,o,0,0);let l=Array.from(t.entries());if(l.length>0){let e=l.filter(e=>{let[t]=e;return!s.has(t)}).map(e=>{let[,t]=e;return t.y});if(e.length>0){let r=(Math.min(...e)+Math.max(...e))/2;for(let[e,a]of l)s.has(e)||t.set(e,{x:a.x,y:a.y-r+300})}}return t})(t),[t]),[D,E]=(0,l.useState)({x:0,y:0}),[L,M]=(0,l.useState)(1),[R,A]=(0,l.useState)(!1),[T,z]=(0,l.useState)({x:0,y:0}),[I,W]=(0,l.useState)(null),[F,B]=(0,l.useState)(!1),[P,U]=(0,l.useState)(null),[O,X]=(0,l.useState)(null),[K,H]=(0,l.useState)(null),[G,Y]=(0,l.useState)(null),[V,_]=(0,l.useState)(!1),[J,q]=(0,l.useState)(new Set),[Z,$]=(0,l.useState)(!1),[Q,ee]=(0,l.useState)(null),[et,er]=(0,l.useState)(!1),[es,ea]=(0,l.useState)(!1),eo=(0,l.useRef)(null),el=(0,l.useRef)(null),en=(0,l.useRef)(null);(0,l.useEffect)(()=>{let e=eo.current;if(!e)return;let t=e=>{e.preventDefault();let t=e.deltaY>0?.9:1.1;M(e=>Math.max(.2,Math.min(3,e*t)))};return e.addEventListener("wheel",t,{passive:!1}),()=>e.removeEventListener("wheel",t)},[]);let ei=(0,l.useCallback)(()=>{let e=Array.from(S.values());if(0===e.length){M(1),E({x:0,y:0});return}if(!eo.current)return;let t=eo.current.getBoundingClientRect(),r=Math.min(...e.map(e=>e.x))-80,s=Math.max(...e.map(e=>e.x))+80,a=Math.min(...e.map(e=>e.y))-80,o=Math.max(...e.map(e=>e.y))+80,l=Math.min(t.width/(s-r),t.height/(o-a),1.5);M(l),E({x:t.width/2/l-(r+s)/2,y:t.height/2/l-(a+o)/2})},[S]);(0,l.useEffect)(()=>{let e=e=>{var r;let s=null==(r=e.target)?void 0:r.tagName;if("INPUT"!==s&&"TEXTAREA"!==s){if((e.ctrlKey||e.metaKey)&&(("="===e.key||"+"===e.key)&&(e.preventDefault(),M(e=>Math.min(3,1.15*e))),"-"===e.key&&(e.preventDefault(),M(e=>Math.max(.2,.85*e))),"0"===e.key&&(e.preventDefault(),ei())),"Tab"===e.key&&o&&!e.ctrlKey&&!e.metaKey){e.preventDefault();let r=t.find(e=>e.id===o);if(r){let e=new CustomEvent("mindmap:add-child",{detail:{parentId:r.id}});window.dispatchEvent(e)}}if("Enter"===e.key&&o&&!e.ctrlKey&&!e.metaKey){e.preventDefault();let r=t.find(e=>e.id===o);if(r)if(r.parentId){let e=new CustomEvent("mindmap:add-child",{detail:{parentId:r.parentId}});window.dispatchEvent(e)}else{let e=S.get(r.id);e&&i(null,"",{x:e.x,y:e.y+70})}}"Delete"!==e.key&&"Backspace"!==e.key||!o||e.ctrlKey||e.metaKey||(e.preventDefault(),ee(o),$(!0))}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[o,t,S,i,d,ei]);let ec=(0,l.useCallback)((e,t)=>{if(!eo.current)return{x:0,y:0};let r=eo.current.getBoundingClientRect();return{x:(e-r.left)/L-D.x,y:(t-r.top)/L-D.y}},[L,D]),ed=(0,l.useCallback)(e=>{e.target===eo.current&&(A(!0),z({x:e.clientX-D.x*L,y:e.clientY-D.y*L}))},[D,L]),ex=(0,l.useCallback)(e=>{if(R&&E({x:(e.clientX-T.x)/L,y:(e.clientY-T.y)/L}),I){let t=ec(I.startClientX,I.startClientY),r=ec(e.clientX,e.clientY),s=r.x-t.x,a=r.y-t.y,o=I.startNodeX+s,l=I.startNodeY+a;en.current={id:I.id,x:o,y:l},el.current||(el.current=requestAnimationFrame(()=>{en.current&&(y(en.current.id,{position:{x:en.current.x,y:en.current.y}}),en.current=null),el.current=null}))}if(O){let r=ec(e.clientX,e.clientY);X(e=>e?{...e,curX:r.x,curY:r.y}:null);let s=null;for(let e of t){if(e.id===O.fromId)continue;let t=S.get(e.id);if(!t)continue;let a=r.x-t.x,o=r.y-t.y;if(80>Math.abs(a)&&40>Math.abs(o)){s=e.id;break}}Y(s)}},[R,T,L,I,O,ec,y,t,S]),eu=(0,l.useCallback)(()=>{if(O){let e={x:O.curX,y:O.curY};for(let r of t){let t=S.get(r.id);if(!t)continue;let s=e.x-t.x,a=e.y-t.y;if(80>Math.abs(s)&&40>Math.abs(a)&&r.id!==O.fromId){f(O.fromId,r.id,O.type);break}}X(null),Y(null)}A(!1),W(null),el.current&&(cancelAnimationFrame(el.current),el.current=null)},[O,t,S,f]),ep=(0,l.useCallback)(e=>{e.target===eo.current&&(n(null),B(!1))},[n]),em=(0,l.useCallback)(e=>{e.target===eo.current&&(U(ec(e.clientX,e.clientY)),B(!0))},[ec]),eh=(0,l.useCallback)(e=>{e.trim()&&i(null,e.trim(),null!=P?P:void 0),B(!1),U(null)},[i,P]),eb=(0,l.useCallback)((e,t,r,s,a)=>{W({id:e,startNodeX:s,startNodeY:a,startClientX:t,startClientY:r})},[]),ev=(0,l.useCallback)((e,t,r,s,a)=>{X({fromId:e,type:t,startX:r,startY:s,curX:r,curY:s,direction:a})},[]),ey=(0,l.useCallback)(()=>{_(e=>!e),q(new Set),er(!1)},[]),ef=(0,l.useCallback)(()=>{er(e=>!e),_(!1),q(new Set)},[]),eg=(0,l.useCallback)(e=>{q(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},[]),ej=(0,l.useCallback)(()=>{Q?(d(Q),ee(null)):J.size>0&&(x(Array.from(J)),q(new Set),_(!1)),$(!1)},[Q,J,d,x]),ek=Array.from(S.values());return ek.length>0&&(ek.map(e=>e.x),ek.map(e=>e.x)),ek.length>0&&(ek.map(e=>e.y),ek.map(e=>e.y)),(0,s.jsxs)("div",{className:"relative w-full h-full overflow-hidden",style:{backgroundColor:"var(--bg-primary)"},children:[(0,s.jsx)(u,{width:24,height:24,cr:1,className:"text-neutral-300/60 dark:text-neutral-600/40"}),(0,s.jsxs)("div",{className:"absolute top-3 right-3 z-10 flex flex-col gap-1",children:[(0,s.jsx)("button",{onClick:()=>M(e=>Math.min(3,1.2*e)),className:"w-7 h-7 flex items-center justify-center text-xs rounded border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)",backgroundColor:"var(--bg-card)"},children:"+"}),(0,s.jsx)("button",{onClick:()=>M(e=>Math.max(.2,.8*e)),className:"w-7 h-7 flex items-center justify-center text-xs rounded border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)",backgroundColor:"var(--bg-card)"},children:"−"}),(0,s.jsx)("button",{onClick:ei,className:"w-7 h-7 flex items-center justify-center text-[10px] rounded border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)",backgroundColor:"var(--bg-card)"},children:"Fit"}),(0,s.jsxs)("div",{className:"text-[10px] text-center mt-0.5",style:{color:"var(--text-tertiary)"},children:[Math.round(100*L),"%"]}),(0,s.jsxs)("div",{className:"mt-1 border-t pt-1",style:{borderColor:"var(--border)"},children:[(0,s.jsx)("button",{onClick:ey,className:"w-7 h-7 flex items-center justify-center text-[10px] rounded border transition-colors",style:{borderColor:V?"var(--status-fail-text)":"var(--border)",color:V?"var(--status-fail-text)":"var(--text-secondary)",backgroundColor:V?"var(--status-fail-bg)":"var(--bg-card)"},title:V?"Exit delete mode":"Delete nodes",children:(0,s.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,s.jsx)("polyline",{points:"3 6 5 6 21 6"}),(0,s.jsx)("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})]})}),(0,s.jsx)("button",{onClick:ef,className:"w-7 h-7 mt-1 flex items-center justify-center text-[10px] rounded border transition-colors",style:{borderColor:et?"var(--status-skip-text)":"var(--border)",color:et?"var(--status-skip-text)":"var(--text-secondary)",backgroundColor:et?"var(--status-skip-bg)":"var(--bg-card)"},title:et?"Exit unlink mode":"Unlink lines",children:(0,s.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,s.jsx)("path",{d:"M15 7h3a5 5 0 0 1 0 10h-3m-6 0H6a5 5 0 0 1 0-10h3"}),(0,s.jsx)("line",{x1:"8",y1:"12",x2:"16",y2:"12",strokeDasharray:"3 3"})]})}),(0,s.jsx)("button",{onClick:()=>ea(e=>!e),className:"w-7 h-7 mt-1 flex items-center justify-center text-[10px] rounded border transition-colors",style:{borderColor:es?"var(--accent)":"var(--border)",color:es?"#fff":"var(--text-secondary)",backgroundColor:es?"var(--accent)":"var(--bg-card)"},title:es?"Hide counter":"Show counter",children:(0,s.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,s.jsx)("path",{d:"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z"}),(0,s.jsx)("line",{x1:"4",y1:"22",x2:"4",y2:"15"})]})})]})]}),(0,s.jsxs)("div",{className:"absolute top-3 left-3 z-10 flex flex-col gap-1",children:[(0,s.jsx)("button",{onClick:w,disabled:!k,className:"w-7 h-7 flex items-center justify-center text-xs rounded border transition-colors hover:bg-[var(--bg-secondary)] disabled:opacity-25",style:{borderColor:"var(--border)",color:"var(--text-secondary)",backgroundColor:"var(--bg-card)"},title:"Undo (Ctrl+Z)",children:(0,s.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:[(0,s.jsx)("path",{d:"M3 5h5a3 3 0 0 1 0 6H6",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"}),(0,s.jsx)("path",{d:"M5.5 2.5L3 5l2.5 2.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})]})}),(0,s.jsx)("button",{onClick:N,disabled:!C,className:"w-7 h-7 flex items-center justify-center text-xs rounded border transition-colors hover:bg-[var(--bg-secondary)] disabled:opacity-25",style:{borderColor:"var(--border)",color:"var(--text-secondary)",backgroundColor:"var(--bg-card)"},title:"Redo (Ctrl+Shift+Z)",children:(0,s.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:[(0,s.jsx)("path",{d:"M11 5H6a3 3 0 0 0 0 6h2",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"}),(0,s.jsx)("path",{d:"M8.5 2.5L11 5 8.5 7.5",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"})]})})]}),V&&(0,s.jsxs)("div",{className:"absolute top-3 left-1/2 -translate-x-1/2 z-20 flex items-center gap-3 px-4 py-2 rounded-lg border",style:{backgroundColor:"var(--bg-card)",borderColor:"var(--status-fail-text)",boxShadow:"var(--shadow-lg)",animation:"fadeInDown 200ms ease-out"},children:[(0,s.jsx)("span",{className:"text-xs font-medium",style:{color:"var(--text-primary)"},children:"Select nodes to delete"}),(0,s.jsxs)("span",{className:"text-[10px] px-1.5 py-0.5 rounded",style:{backgroundColor:"var(--status-fail-bg)",color:"var(--status-fail-text)"},children:[J.size," selected"]}),(0,s.jsx)("button",{onClick:()=>{J.size>0&&$(!0)},disabled:0===J.size,className:"px-3 py-1 text-[11px] font-medium rounded transition-colors disabled:opacity-40",style:{backgroundColor:"var(--status-fail-text)",color:"white"},children:"Delete"}),(0,s.jsx)("button",{onClick:ey,className:"px-3 py-1 text-[11px] rounded border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:"Cancel"})]}),et&&(0,s.jsxs)("div",{className:"absolute top-3 left-1/2 -translate-x-1/2 z-20 flex items-center gap-3 px-4 py-2 rounded-lg border",style:{backgroundColor:"var(--bg-card)",borderColor:"var(--status-skip-text)",boxShadow:"var(--shadow-lg)",animation:"fadeInDown 200ms ease-out"},children:[(0,s.jsx)("span",{className:"text-xs font-medium",style:{color:"var(--text-primary)"},children:"Click the icon on a line to unlink it"}),(0,s.jsx)("button",{onClick:ef,className:"px-3 py-1 text-[11px] rounded border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:"Done"})]}),Z&&(0,s.jsx)("div",{className:"fixed inset-0 z-[400] flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.3)",animation:"fadeIn 150ms ease-out"},onClick:()=>$(!1),children:(0,s.jsxs)("div",{className:"w-full max-w-sm mx-4 p-5 rounded-xl border",style:{backgroundColor:"var(--bg-card)",borderColor:"var(--border)",boxShadow:"var(--shadow-lg)"},onClick:e=>e.stopPropagation(),children:[(0,s.jsxs)("h3",{className:"text-sm font-semibold mb-2",style:{color:"var(--text-primary)"},children:["Delete ",Q?"node":"".concat(J.size," node").concat(J.size>1?"s":""),"?"]}),(0,s.jsxs)("p",{className:"text-xs mb-4",style:{color:"var(--text-tertiary)"},children:["This will permanently remove the ",Q?"node":"selected node".concat(J.size>1?"s":"")," and all their test cases. This action cannot be undone."]}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)("button",{onClick:()=>$(!1),className:"flex-1 px-3 py-2 text-xs font-medium rounded-lg border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:"Cancel"}),(0,s.jsx)("button",{onClick:ej,className:"flex-1 px-3 py-2 text-xs font-medium rounded-lg transition-colors",style:{backgroundColor:"var(--status-fail-text)",color:"white"},children:"Delete"})]})]})}),o&&(0,s.jsxs)("div",{className:"absolute bottom-3 left-3 z-10 flex gap-2 text-[10px]",style:{color:"var(--text-tertiary)"},children:[(0,s.jsx)("span",{className:"px-1.5 py-0.5 rounded border",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-card)"},children:"Tab = add child"}),(0,s.jsx)("span",{className:"px-1.5 py-0.5 rounded border",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-card)"},children:"Enter = add sibling"}),(0,s.jsx)("span",{className:"px-1.5 py-0.5 rounded border",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-card)"},children:"Del = delete"})]}),(0,s.jsxs)("svg",{ref:eo,width:"100%",height:"100%",onMouseDown:ed,onMouseMove:ex,onMouseUp:eu,onClick:ep,onDoubleClick:em,style:{cursor:R||I?"grabbing":O?"crosshair":"default"},children:[(0,s.jsxs)("defs",{children:[(0,s.jsx)("marker",{id:"arrow-pass",markerWidth:"8",markerHeight:"8",refX:"8",refY:"4",orient:"auto",children:(0,s.jsx)("path",{d:"M0,0 L8,4 L0,8",fill:"var(--status-pass-text)"})}),(0,s.jsx)("marker",{id:"arrow-fail",markerWidth:"8",markerHeight:"8",refX:"8",refY:"4",orient:"auto",children:(0,s.jsx)("path",{d:"M0,0 L8,4 L0,8",fill:"var(--status-fail-text)"})})]}),(0,s.jsxs)("g",{transform:"scale(".concat(L,") translate(").concat(D.x,", ").concat(D.y,")"),children:[t.map(e=>{let a;if(!e.parentId)return null;let o=S.get(e.parentId),l=S.get(e.id);if(!o||!l||r.some(t=>t.fromId===e.parentId&&t.toId===e.id||t.fromId===e.id&&t.toId===e.parentId))return null;let n=t.find(t=>t.id===e.parentId),i=(null==n?void 0:n.direction)==="vertical";if(e.id,i){let e=o.y+40,t=l.y-40;a="M ".concat(o.x," ").concat(o.y+28," C ").concat(o.x," ").concat(e,", ").concat(l.x," ").concat(t,", ").concat(l.x," ").concat(l.y-21)}else{let e=o.x+60,t=l.x-60;a="M ".concat(o.x+70," ").concat(o.y," C ").concat(e," ").concat(o.y,", ").concat(t," ").concat(l.y,", ").concat(l.x-60," ").concat(l.y)}let c=(o.x+l.x)/2,d=(o.y+l.y)/2;return(0,s.jsxs)("g",{children:[(0,s.jsx)("path",{d:a,fill:"none",stroke:"transparent",strokeWidth:12,style:{cursor:"pointer"},onClick:()=>{et?m(e.id):f(e.parentId,e.id,"plain")},onDoubleClick:t=>{t.stopPropagation(),et||m(e.id)}}),(0,s.jsx)("path",{d:a,fill:"none",stroke:et?"var(--status-skip-text)":"var(--border-hover)",strokeWidth:et?2:1.5,strokeDasharray:et?"6 4":"none",style:{pointerEvents:"none",transition:"stroke 150ms, stroke-width 150ms"}}),et&&(0,s.jsxs)("g",{transform:"translate(".concat(c,", ").concat(d,")"),style:{cursor:"pointer"},onClick:t=>{t.stopPropagation(),m(e.id)},children:[(0,s.jsx)("rect",{x:-10,y:-10,width:20,height:20,rx:4,fill:"var(--bg-card)",stroke:"var(--status-skip-text)",strokeWidth:1.5}),(0,s.jsxs)("g",{transform:"translate(-5, -5)",children:[(0,s.jsx)("line",{x1:"0",y1:"0",x2:"10",y2:"10",stroke:"var(--status-skip-text)",strokeWidth:"2",strokeLinecap:"round"}),(0,s.jsx)("line",{x1:"10",y1:"0",x2:"0",y2:"10",stroke:"var(--status-skip-text)",strokeWidth:"2",strokeLinecap:"round"})]})]})]},"tree-edge-".concat(e.id))}),r.map(e=>{let r,a=S.get(e.fromId),o=S.get(e.toId);if(!a||!o)return null;let l="pass"===e.type,n="fail"===e.type,i=l?"var(--status-pass-text)":n?"var(--status-fail-text)":"var(--text-tertiary)",c=(a.x+o.x)/2,d=(a.y+o.y)/2-12,x=t.find(t=>t.id===e.fromId);return r=(null==x?void 0:x.direction)==="vertical"?"M ".concat(a.x," ").concat(a.y," C ").concat(a.x," ").concat(a.y+80,", ").concat(o.x," ").concat(o.y-80,", ").concat(o.x," ").concat(o.y):"M ".concat(a.x," ").concat(a.y," C ").concat(a.x+80," ").concat(a.y,", ").concat(o.x-80," ").concat(o.y,", ").concat(o.x," ").concat(o.y),(0,s.jsxs)("g",{children:[(0,s.jsx)("path",{d:r,fill:"none",stroke:"transparent",strokeWidth:16,style:{cursor:"pointer"},onClick:()=>{et?g(e.id):l?j(e.id,{type:"fail"}):n?j(e.id,{type:"plain"}):j(e.id,{type:"pass"})},onMouseEnter:()=>H(e.id),onMouseLeave:()=>H(null)}),(0,s.jsx)("path",{d:r,fill:"none",stroke:et?"var(--status-skip-text)":i,strokeWidth:et?2:K===e.id?2.5:1.8,strokeDasharray:et?"6 4":l?"none":n?"6 4":"none",markerEnd:et?void 0:l?"url(#arrow-pass)":n?"url(#arrow-fail)":void 0,style:{transition:"stroke-width 150ms ease-out, stroke 150ms ease-out",pointerEvents:"none"}}),et&&(0,s.jsxs)("g",{transform:"translate(".concat(c,", ").concat(d,")"),style:{cursor:"pointer"},onClick:t=>{t.stopPropagation(),g(e.id)},children:[(0,s.jsx)("rect",{x:-10,y:-10,width:20,height:20,rx:4,fill:"var(--bg-card)",stroke:"var(--status-skip-text)",strokeWidth:1.5}),(0,s.jsxs)("g",{transform:"translate(-5, -5)",children:[(0,s.jsx)("line",{x1:"0",y1:"0",x2:"10",y2:"10",stroke:"var(--status-skip-text)",strokeWidth:"2",strokeLinecap:"round"}),(0,s.jsx)("line",{x1:"10",y1:"0",x2:"0",y2:"10",stroke:"var(--status-skip-text)",strokeWidth:"2",strokeLinecap:"round"})]})]}),!et&&K===e.id&&!(!l&&!n)&&(0,s.jsxs)("g",{transform:"translate(".concat(c,", ").concat(d-12,")"),style:{pointerEvents:"none"},children:[(0,s.jsx)("rect",{x:-22,y:-7,width:44,height:14,rx:7,fill:l?"var(--status-pass-bg)":"var(--status-fail-bg)",stroke:l?"var(--status-pass-text)":"var(--status-fail-text)",strokeWidth:.5}),(0,s.jsx)("text",{textAnchor:"middle",dominantBaseline:"central",style:{fill:i,fontSize:9,fontWeight:500},children:l?"Pass":"Fail"})]})]},e.id)}),O&&(0,s.jsx)("line",{x1:O.startX,y1:O.startY,x2:O.curX,y2:O.curY,stroke:"pass"===O.type?"var(--status-pass-text)":"var(--status-fail-text)",strokeWidth:2,strokeDasharray:"6 4",opacity:.6}),t.map(e=>{var r;let l=S.get(e.id);if(!l)return null;let x=function(e,t){let r=0,s=e;for(;s.parentId;){r++;let e=t.find(e=>e.id===s.parentId);if(!e)break;s=e}return r}(e,t);return(0,s.jsx)(c,{node:e,position:l,isSelected:e.id===o,testCases:null!=(r=a[e.id])?r:[],isDragged:(null==I?void 0:I.id)===e.id,edgeDragActive:null!==O,isEdgeDropTarget:G===e.id&&null!==O&&e.id!==O.fromId,deleteMode:V,isDeleteChecked:J.has(e.id),onSelect:n,onAddChild:(e,t,r,s)=>{i(e,t,r,s)},onDelete:d,onUnlinkNode:m,onRename:v,onUpdateNode:y,onDragStart:eb,onEdgeStart:ev,onToggleDeleteCheck:eg,depth:x,showCounter:es,svgRef:eo},e.id)})]})]}),F&&P&&(0,s.jsx)(b,{position:P,scale:L,pan:D,svgRef:eo,onSubmit:eh,onCancel:()=>B(!1)}),0===t.length&&!F&&(0,s.jsx)("div",{className:"absolute inset-0 flex items-center justify-center",children:(0,s.jsx)(p,{onClick:()=>{if(!eo.current){U({x:0,y:0}),B(!0);return}let e=eo.current.getBoundingClientRect();U({x:e.width/2/L-D.x,y:e.height/2/L-D.y}),B(!0)},rippleColor:"rgba(0,0,0,0.08)",className:"text-sm px-6 py-2.5",style:{color:"var(--text-tertiary)",borderColor:"var(--border)",borderRadius:"var(--radius-pill)",backgroundColor:"transparent"},children:(0,s.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,s.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:(0,s.jsx)("path",{d:"M8 3v10M3 8h10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),"Create your first flow node"]})})}),t.length>0&&(0,s.jsx)(h,{nodes:t,positions:S,pan:D,scale:L})]})}function h(e){let{nodes:t,positions:r,pan:a,scale:o}=e,l=Array.from(r.values());if(0===l.length)return null;let n=Math.min(...l.map(e=>e.x)),i=Math.max(...l.map(e=>e.x)),c=Math.min(...l.map(e=>e.y)),d=Math.max(...l.map(e=>e.y)),x=i-n+80,u=d-c+80,p=Math.max(60,u/x*120),m=120/x,h=p/u;return(0,s.jsx)("div",{className:"absolute bottom-3 right-3 border z-10",style:{width:120,height:p,backgroundColor:"var(--bg-card)",borderColor:"var(--border)",borderRadius:"var(--radius-sm)",opacity:.85},children:(0,s.jsx)("svg",{width:120,height:p,children:t.map(e=>{let t=r.get(e.id);if(!t)return null;let a=(t.x-n+40)*m,o=(t.y-c+40)*h;return(0,s.jsx)("circle",{cx:a,cy:o,r:2.5,fill:"var(--accent)",opacity:.6},e.id)})})})}function b(e){let{position:t,scale:r,pan:a,svgRef:o,onSubmit:n,onCancel:i}=e,[c,d]=(0,l.useState)(""),x=(0,l.useRef)(null),u=(0,l.useRef)(null),p=(0,l.useCallback)(()=>{if(!o.current)return{left:"50%",top:"50%"};let e=o.current.getBoundingClientRect();return{left:(t.x+a.x)*r+e.left,top:(t.y+a.y)*r+e.top}},[t,r,a,o])(),m=144*r,h=48*r;return(0,l.useEffect)(()=>{let e=e=>{u.current&&!u.current.contains(e.target)&&(c.trim()?n(c):i())};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[c,n,i]),(0,s.jsxs)("div",{ref:u,className:"fixed z-50",style:{left:"".concat(p.left,"px"),top:"".concat(p.top,"px"),transform:"translate(-50%, 0)"},children:[(0,s.jsx)("div",{style:{width:2,height:20*r,margin:"0 auto",backgroundColor:"var(--border-hover)"}}),(0,s.jsx)("div",{style:{width:"".concat(m,"px"),height:"".concat(h,"px"),border:"1.5px dashed var(--accent)",borderRadius:4*r,backgroundColor:"var(--bg-card)",display:"flex",alignItems:"center",justifyContent:"center",padding:"".concat(4*r,"px")},children:(0,s.jsx)("input",{ref:x,autoFocus:!0,value:c,onChange:e=>d(e.target.value),onKeyDown:e=>{"Enter"===e.key&&c.trim()&&n(c),"Escape"===e.key&&i(),e.stopPropagation()},onBlur:()=>{c.trim()?n(c):i()},placeholder:"Name node...",className:"w-full h-full bg-transparent outline-none text-center text-xs",style:{color:"var(--text-primary)",fontFamily:"inherit"}})})]})}function v(e){return(0,s.jsxs)("div",{className:"flex flex-col h-full",children:[(0,s.jsxs)("div",{className:"px-4 py-2 border-b flex items-center gap-2",style:{borderColor:"var(--border)"},children:[(0,s.jsx)("span",{className:"text-xs font-medium uppercase tracking-wider",style:{color:"var(--text-tertiary)"},children:"Flow Map"}),(0,s.jsxs)("span",{className:"text-xs",style:{color:"var(--text-tertiary)"},children:[e.nodes.length," node",1!==e.nodes.length?"s":""]}),(0,s.jsx)("div",{className:"flex-1"}),(0,s.jsx)("button",{onClick:e.onResetLayout,className:"px-2 py-1 text-[10px] rounded border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)",borderRadius:"var(--radius-sm)"},children:"Reset layout"})]}),(0,s.jsx)("div",{className:"flex-1 min-h-0",children:(0,s.jsx)(m,{nodes:e.nodes,edges:e.edges,testCases:e.testCases,selectedNodeId:e.selectedNodeId,onSelect:e.onSelect,onAddNode:e.onAddNode,onDeleteNode:e.onDeleteNode,onDeleteNodes:e.onDeleteNodes,onUnlinkNode:e.onUnlinkNode,onRenameNode:e.onRenameNode,onUpdateNode:e.onUpdateNode,onAddEdge:e.onAddEdge,onDeleteEdge:e.onDeleteEdge,onUpdateEdge:e.onUpdateEdge,canUndo:e.canUndo,canRedo:e.canRedo,onUndo:e.onUndo,onRedo:e.onRedo})})]})}p.displayName="RippleButton";var y=r(6497),f=r(8566),g=r(5815);function j(e){let{value:t,className:r=""}=e,a=Math.max(0,Math.min(100,t));return(0,s.jsx)("div",{className:"h-2 w-full overflow-hidden ".concat(r),style:{backgroundColor:"var(--bg-secondary)",borderRadius:"var(--radius-pill)"},children:(0,s.jsx)("div",{className:"h-full transition-all duration-150 ease-out",style:{width:"".concat(a,"%"),backgroundColor:a>=80?"var(--status-pass-text)":a>=50?"var(--status-skip-text)":"var(--status-fail-text)",borderRadius:"var(--radius-pill)"}})})}function k(e){let{onAdd:t,nodeLabel:r}=e,[a,o]=(0,l.useState)(""),n=(0,l.useRef)(null);(0,l.useEffect)(()=>{var e;null==(e=n.current)||e.focus()},[r]);let i=()=>{a.trim()&&(t(a.trim()),o(""))};return(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)("input",{ref:n,value:a,onChange:e=>o(e.target.value),onKeyDown:e=>{"Enter"===e.key&&i()},placeholder:'Add test case for "'.concat(r,'"...'),className:"flex-1 px-3 py-2 text-sm bg-transparent outline-none border transition-colors focus:border-[var(--border-hover)]",style:{borderColor:"var(--border)",borderRadius:"var(--radius-sm)",color:"var(--text-primary)"}}),(0,s.jsx)("button",{onClick:i,disabled:!a.trim(),className:"px-4 py-2 text-sm font-medium rounded-md transition-opacity hover:opacity-80 disabled:opacity-30",style:{backgroundColor:"var(--accent)",color:"var(--bg-primary)",borderRadius:"var(--radius-sm)"},children:"+ Add"})]})}let C={untested:{bg:"var(--status-untested-bg)",text:"var(--status-untested-text)",label:"Untested"},pass:{bg:"var(--status-pass-bg)",text:"var(--status-pass-text)",label:"Pass"},fail:{bg:"var(--status-fail-bg)",text:"var(--status-fail-text)",label:"Fail"},skip:{bg:"var(--status-skip-bg)",text:"var(--status-skip-text)",label:"Skip"},blocked:{bg:"var(--status-blocked-bg)",text:"var(--status-blocked-text)",label:"Blocked"}},w=["untested","pass","fail","skip","blocked"];function N(e){let{status:t,onChange:r}=e,a=C[t];return(0,s.jsx)("select",{value:t,onChange:e=>r(e.target.value),className:"text-[11px] font-medium px-2 py-0.5 rounded-full border-0 outline-none cursor-pointer appearance-none",style:{backgroundColor:a.bg,color:a.text,borderRadius:"var(--radius-pill)",minWidth:72},children:w.map(e=>(0,s.jsx)("option",{value:e,children:C[e].label},e))})}function S(e){let{tc:t,visibleCols:r,expandAll:a,selectMode:o,selected:n,onToggleSelect:i,onUpdate:c,onDelete:d,onDragStart:x,onDragOver:u,onDrop:p}=e,[m,h]=(0,l.useState)(null),[b,v]=(0,l.useState)(""),[y,f]=(0,l.useState)(!1),[g,j]=(0,l.useState)(null),[k,C]=(0,l.useState)(!1),w=(0,l.useRef)(null);(0,l.useEffect)(()=>{m&&w.current&&w.current.focus()},[m]);let S=e=>{var r;v(null!=(r=t[e])?r:""),h(e)},D=()=>{m&&(c({[m]:b}),h(null))},L=e=>{c({status:e})},M=e=>{if("Enter"===e.key&&"steps"!==m&&D(),"Escape"===e.key&&(h(null),v("")),"Tab"===e.key){e.preventDefault(),D();let t=r.filter(e=>"status"!==e.key&&"code"!==e.key).map(e=>e.key),s=t.indexOf(m),a=e.shiftKey?t[s-1]:t[s+1];a&&S(a)}},R=e=>{let r=t[e];return r&&r.length>40};return(0,s.jsx)(s.Fragment,{children:(0,s.jsxs)("tr",{className:"group transition-colors",style:{backgroundColor:n?"rgba(111,78,55,0.06)":y?"var(--bg-secondary)":"transparent"},onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),draggable:!0,onDragStart:x,onDragOver:u,onDrop:p,children:[o&&(0,s.jsx)("td",{className:"px-2 py-1.5 border-b",style:{borderColor:"var(--border)",width:28},children:(0,s.jsx)("input",{type:"checkbox",checked:n,onChange:i,className:"cursor-pointer accent-[var(--accent)]",style:{width:14,height:14}})}),r.map(e=>(0,s.jsx)("td",{className:"px-2 py-1.5 text-xs border-b",style:{borderColor:"var(--border)",color:"var(--text-primary)",maxWidth:"steps"===e.key||"expected"===e.key?300:void 0,minWidth:"code"===e.key?60:void 0},children:"status"===e.key?(0,s.jsx)(N,{status:t.status,onChange:L}):"code"===e.key?(0,s.jsx)("span",{className:"font-mono text-[10px] cursor-pointer hover:underline transition-colors",style:{color:k?"var(--accent)":"var(--text-tertiary)"},onClick:e=>{e.stopPropagation(),t.code&&navigator.clipboard.writeText(t.code).then(()=>{C(!0),setTimeout(()=>C(!1),1500)})},title:"Click to copy",children:k?"Copied!":t.code||"—"}):"case_type"===e.key?(0,s.jsx)(E,{value:t.case_type||"General",onChange:e=>c({case_type:e})}):m===e.key?"steps"===e.key||"expected"===e.key||"notes"===e.key||"links"===e.key?(0,s.jsx)("textarea",{ref:w,value:b,onChange:e=>v(e.target.value),onBlur:D,onKeyDown:M,className:"w-full bg-transparent outline-none border rounded p-1 text-xs resize-none",style:{borderColor:"var(--accent)",color:"var(--text-primary)",minHeight:60},rows:3}):(0,s.jsx)("input",{ref:w,value:b,onChange:e=>v(e.target.value),onBlur:D,onKeyDown:M,className:"w-full bg-transparent outline-none border-b text-xs",style:{borderColor:"var(--accent)",color:"var(--text-primary)"}}):"links"===e.key?(0,s.jsxs)("div",{className:"flex flex-col gap-0.5",children:[t.links?t.links.split(",").map((e,r)=>{let a=e.trim();return a?(0,s.jsxs)("div",{className:"flex items-center gap-1",children:[(0,s.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"text-[11px] underline hover:opacity-80 transition-opacity",style:{color:"var(--accent)"},onClick:e=>e.stopPropagation(),children:a.length>30?a.slice(0,30)+"...":a}),(0,s.jsx)("button",{onClick:e=>{e.stopPropagation(),c({links:t.links.split(",").map(e=>e.trim()).filter(e=>e!==a).join(", ")})},className:"text-[10px] opacity-0 group-hover:opacity-100 hover:opacity-100 transition-opacity px-0.5",style:{color:"var(--status-fail-text)"},title:"Remove link",children:"\xd7"})]},r):null}):null,(0,s.jsx)("span",{className:"cursor-text text-[11px] opacity-0 group-hover:opacity-100 transition-opacity",onClick:()=>S(e.key),style:{color:"var(--text-tertiary)"},children:t.links?"+ Add link":"Add link..."})]}):(0,s.jsx)("span",{className:"cursor-text block",onClick:()=>{R(e.key)&&(g===e.key?j(null):j(e.key))},onDoubleClick:()=>S(e.key),title:R(e.key)?g===e.key||a?"Click to collapse \xb7 Double-click to edit":"Click to expand \xb7 Double-click to edit":"Double-click to edit",style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:g===e.key||a&&R(e.key)?"pre-wrap":"nowrap",display:"block",maxHeight:g===e.key||a&&R(e.key)?"none":"1.2em",lineHeight:"1.2em"},children:t[e.key]||(0,s.jsx)("span",{style:{color:"var(--text-tertiary)"},children:"—"})})},e.key)),(0,s.jsx)("td",{className:"px-1 py-1.5 border-b",style:{borderColor:"var(--border)"},children:y&&(0,s.jsx)("button",{onClick:d,className:"text-[10px] opacity-50 hover:opacity-100 transition-opacity px-0.5",style:{color:"var(--status-fail-text)"},children:"\xd7"})})]})})}let D={Positive:{bg:"var(--status-pass-bg)",text:"var(--status-pass-text)"},Negative:{bg:"var(--status-fail-bg)",text:"var(--status-fail-text)"},General:{bg:"var(--bg-secondary)",text:"var(--text-tertiary)"}};function E(e){let{value:t,onChange:r}=e,a=D[t]||D.General;return(0,s.jsx)("select",{value:t,onChange:e=>r(e.target.value),className:"text-[10px] font-medium px-2 py-0.5 rounded-full border-0 outline-none cursor-pointer",style:{backgroundColor:a.bg,color:a.text},children:f.D_.map(e=>(0,s.jsx)("option",{value:e,children:e},e))})}function L(e){let{testCases:t,columns:r,expandAll:a,selectMode:o,selectedIds:n,onToggleSelect:i,onToggleSelectAll:c,sortKey:d,sortDirection:x,onSortChange:u,onUpdate:p,onDelete:m,onReorder:h,onAddColumn:b,onOpenColumns:v}=e,[y,f]=(0,l.useState)(!1),[g,j]=(0,l.useState)(""),k=(0,l.useRef)(null);(0,l.useEffect)(()=>{y&&k.current&&k.current.focus()},[y]);let C=()=>{g.trim()&&b&&b(g.trim()),j(""),f(!1)},w=r.filter(e=>e.visible),N=t.length>0&&t.every(e=>n.has(e.id)),D=t.some(e=>n.has(e.id)),E=e=>{e.preventDefault(),e.dataTransfer.dropEffect="move"};return 0===t.length?null:(0,s.jsx)("div",{className:"overflow-x-auto",style:{minWidth:0},children:(0,s.jsxs)("table",{className:"text-xs",style:{minWidth:"900px",width:"100%"},children:[(0,s.jsx)("thead",{className:"sticky top-0 z-10",style:{backgroundColor:"var(--bg-primary)"},children:(0,s.jsxs)("tr",{children:[o&&(0,s.jsx)("th",{className:"px-2 py-1.5 border-b",style:{borderColor:"var(--border)",width:28},children:(0,s.jsx)("input",{type:"checkbox",checked:N,ref:e=>{e&&(e.indeterminate=D&&!N)},onChange:c,className:"cursor-pointer accent-[var(--accent)]",style:{width:14,height:14}})}),w.map(e=>(0,s.jsx)("th",{className:"px-2 py-1.5 text-left text-[10px] font-medium uppercase tracking-wider border-b cursor-pointer select-none hover:bg-[var(--bg-secondary)] transition-colors",style:{color:"var(--text-tertiary)",borderColor:"var(--border)",whiteSpace:"nowrap",minWidth:"code"===e.key?60:void 0},onClick:()=>u(e.key),children:(0,s.jsxs)("div",{className:"flex items-center gap-1",children:[(0,s.jsx)("span",{children:e.label}),d===e.key&&(0,s.jsx)("span",{className:"text-[8px]",children:"asc"===x?"↑":"↓"})]})},e.key)),(0,s.jsx)("th",{className:"w-8 border-b",style:{borderColor:"var(--border)"},children:y?(0,s.jsx)("input",{ref:k,value:g,onChange:e=>j(e.target.value),onKeyDown:e=>{"Enter"===e.key&&C(),"Escape"===e.key&&(f(!1),j(""))},onBlur:C,placeholder:"Name...",className:"w-16 px-1 py-0.5 text-[10px] rounded border outline-none",style:{borderColor:"var(--accent)",backgroundColor:"var(--bg-card)",color:"var(--text-primary)"}}):(0,s.jsx)("button",{onClick:()=>f(!0),className:"w-5 h-5 flex items-center justify-center rounded text-[10px] transition-colors hover:bg-[var(--bg-secondary)]",style:{color:"var(--text-tertiary)"},title:"Add column",children:"+"})})]})}),(0,s.jsx)("tbody",{children:t.map(e=>(0,s.jsx)(S,{tc:e,visibleCols:w,expandAll:a,selectMode:o,selected:n.has(e.id),onToggleSelect:()=>i(e.id),onUpdate:t=>p(e.id,t),onDelete:()=>m(e.id),onDragStart:t=>{var r;return r=e.id,void(t.dataTransfer.setData("text/plain",r),t.dataTransfer.effectAllowed="move")},onDragOver:E,onDrop:r=>((e,r)=>{e.preventDefault();let s=e.dataTransfer.getData("text/plain");if(s===r)return;let a=t.map(e=>e.id),o=a.indexOf(s),l=a.indexOf(r);if(-1===o||-1===l)return;let n=[...a];n.splice(o,1),n.splice(l,0,s),h(n)})(r,e.id)},e.id))})]})})}function M(e){var t;let{stats:r,fullscreen:a,nodes:o,allTestCases:n,selectedNodeId:i,onSelectNode:c}=e,[d,x]=(0,l.useState)(!1),u=(0,l.useRef)(null);return(0,l.useEffect)(()=>{if(!d)return;let e=e=>{u.current&&!u.current.contains(e.target)&&x(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[d]),(0,s.jsxs)("div",{className:"flex items-center gap-4 px-4 py-2 text-xs border-t flex-wrap relative",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:[(0,s.jsxs)("span",{children:["Total: ",(0,s.jsx)("strong",{style:{color:"var(--text-primary)"},children:r.total})]}),(0,s.jsxs)("span",{children:["Pass: ",(0,s.jsx)("strong",{style:{color:"var(--status-pass-text)"},children:r.pass}),r.total>0&&" (".concat(r.passRate,"%)")]}),(0,s.jsxs)("span",{children:["Fail: ",(0,s.jsx)("strong",{style:{color:"var(--status-fail-text)"},children:r.fail})]}),(0,s.jsxs)("span",{children:["Skip: ",(0,s.jsx)("strong",{style:{color:"var(--status-skip-text)"},children:r.skip})]}),(0,s.jsxs)("span",{children:["Untested: ",(0,s.jsx)("strong",{style:{color:"var(--status-untested-text)"},children:r.untested})]}),(0,s.jsxs)("span",{children:["Blocked: ",(0,s.jsx)("strong",{style:{color:"var(--status-blocked-text)"},children:r.blocked})]}),a&&o&&o.length>0&&(0,s.jsxs)("div",{className:"ml-auto relative",ref:u,children:[(0,s.jsxs)("button",{onClick:()=>x(e=>!e),className:"flex items-center gap-1.5 px-2 py-1 text-[10px] font-medium rounded-md border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:[(0,s.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,s.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,s.jsx)("polyline",{points:"8 12 12 16 16 12"}),(0,s.jsx)("line",{x1:"12",y1:"8",x2:"12",y2:"16"})]}),(null==(t=o.find(e=>e.id===i))?void 0:t.label)||"Jump to node",(0,s.jsx)("svg",{width:"8",height:"8",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{transform:d?"rotate(180deg)":"none",transition:"transform 150ms"},children:(0,s.jsx)("polyline",{points:"6 9 12 15 18 9"})})]}),d&&(0,s.jsx)("div",{className:"absolute z-50 bottom-full right-0 mb-1 w-56 max-h-[240px] overflow-y-auto rounded-lg border",style:{backgroundColor:"var(--bg-card)",borderColor:"var(--border)",boxShadow:"var(--shadow-lg)",animation:"fadeInUp 150ms ease-out"},children:o.map(e=>{var t;let r=null!=(t=null==n?void 0:n[e.id])?t:[],a=e.id===i,o=r.filter(e=>"pass"===e.status).length,l=r.filter(e=>"fail"===e.status).length;return(0,s.jsxs)("button",{onClick:()=>{null==c||c(e.id),x(!1)},className:"w-full flex items-center justify-between px-3 py-2 text-[11px] text-left transition-colors hover:bg-[var(--bg-secondary)]",style:{backgroundColor:a?"var(--bg-secondary)":"transparent",borderLeft:a?"2px solid var(--accent)":"2px solid transparent"},children:[(0,s.jsx)("span",{className:"truncate font-medium",style:{color:a?"var(--accent)":"var(--text-primary)"},children:e.label}),(0,s.jsx)("span",{className:"flex items-center gap-1.5 flex-shrink-0 ml-2",children:r.length>0&&(0,s.jsxs)(s.Fragment,{children:[l>0&&(0,s.jsxs)("span",{style:{color:"var(--status-fail-text)",fontSize:9},children:[l,"f"]}),o>0&&(0,s.jsxs)("span",{style:{color:"var(--status-pass-text)",fontSize:9},children:[o,"p"]}),(0,s.jsx)("span",{className:"font-mono",style:{color:"var(--text-tertiary)",fontSize:9},children:r.length})]})})]},e.id)})})]})]})}var R=r(158);function A(e){let{open:t,onClose:r,node:a,testCases:o,columns:l}=e,n=l&&l.length>0?l:f._X;return t?(0,s.jsx)("div",{className:"fixed inset-0 z-[300] flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.3)",animation:"fadeIn 150ms ease-out"},onClick:r,children:(0,s.jsxs)("div",{className:"w-full max-w-sm mx-4 rounded-xl p-5",style:{backgroundColor:"var(--bg-card)",boxShadow:"var(--shadow-lg)",borderRadius:"var(--radius-lg)"},onClick:e=>e.stopPropagation(),children:[(0,s.jsx)("h3",{className:"text-sm font-semibold mb-1",style:{color:"var(--text-primary)"},children:"Export Test Cases"}),(0,s.jsxs)("p",{className:"text-xs mb-4",style:{color:"var(--text-tertiary)"},children:["Export “",a.label,"” (",o.length," case",1!==o.length?"s":"",")"]}),(0,s.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,s.jsxs)("button",{onClick:()=>{(0,R.k5)(a,o,n),r()},className:"w-full text-left px-4 py-3 text-sm rounded-lg border transition-colors hover:border-[var(--border-hover)]",style:{borderColor:"var(--border)",borderRadius:"var(--radius-sm)"},children:[(0,s.jsx)("span",{className:"font-medium",style:{color:"var(--text-primary)"},children:"Markdown (.md)"}),(0,s.jsx)("br",{}),(0,s.jsx)("span",{className:"text-xs",style:{color:"var(--text-tertiary)"},children:"Formatted table for documentation"})]}),(0,s.jsxs)("button",{onClick:()=>{(0,R.hX)(a,o),r()},className:"w-full text-left px-4 py-3 text-sm rounded-lg border transition-colors hover:border-[var(--border-hover)]",style:{borderColor:"var(--border)",borderRadius:"var(--radius-sm)"},children:[(0,s.jsx)("span",{className:"font-medium",style:{color:"var(--text-primary)"},children:"JSON (.json)"}),(0,s.jsx)("br",{}),(0,s.jsx)("span",{className:"text-xs",style:{color:"var(--text-tertiary)"},children:"Structured data backup"})]}),(0,s.jsxs)("button",{onClick:()=>{(0,R.Rz)(a,o,n),r()},className:"w-full text-left px-4 py-3 text-sm rounded-lg border transition-colors hover:border-[var(--border-hover)]",style:{borderColor:"var(--border)",borderRadius:"var(--radius-sm)"},children:[(0,s.jsx)("span",{className:"font-medium",style:{color:"var(--text-primary)"},children:"CSV (.csv)"}),(0,s.jsx)("br",{}),(0,s.jsx)("span",{className:"text-xs",style:{color:"var(--text-tertiary)"},children:"Spreadsheet-compatible format"})]}),(0,s.jsxs)("button",{onClick:async()=>{await (0,R.G$)(a,o,n),r()},className:"w-full text-left px-4 py-3 text-sm rounded-lg border transition-colors hover:border-[var(--border-hover)]",style:{borderColor:"var(--border)",borderRadius:"var(--radius-sm)"},children:[(0,s.jsx)("span",{className:"font-medium",style:{color:"var(--text-primary)"},children:"Excel (.xlsx)"}),(0,s.jsx)("br",{}),(0,s.jsx)("span",{className:"text-xs",style:{color:"var(--text-tertiary)"},children:"Styled spreadsheet for reporting"})]})]}),(0,s.jsx)("button",{onClick:r,className:"w-full mt-3 px-3 py-2 text-xs font-medium rounded-lg border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:"Cancel"})]})}):null}var T=r(7711),z=r(7669);async function I(e){var t;let r=URL.createObjectURL(e),s=document.createElement("video");s.muted=!0,s.preload="auto",s.crossOrigin="anonymous",await new Promise((e,t)=>{s.onloadedmetadata=()=>e(),s.onerror=()=>t(Error("Failed to load video")),s.src=r}),await s.play().catch(()=>{}),s.pause();let a=s.duration;if(!isFinite(a)||a<=0)throw URL.revokeObjectURL(r),Error("Could not determine video duration");let o=Math.min(a<=10?4:8,Math.ceil(a)),l=[];for(let e=0;e<o;e++){let t=.1+e/o*(a-.2);l.push(Math.min(t,a-.05))}let n=document.createElement("canvas"),i=n.getContext("2d"),c=[];for(let e of l){await function(e,t){return new Promise(r=>{let s=()=>{e.removeEventListener("seeked",s),requestAnimationFrame(()=>r())};e.addEventListener("seeked",s),e.currentTime=t})}(s,e);let t=function(e,t,r){let{videoWidth:s,videoHeight:a}=e,o=s>1280?1280/s:1;return t.width=Math.round(s*o),t.height=Math.round(a*o),r.drawImage(e,0,0,t.width,t.height),t.toDataURL("image/jpeg",.82)}(s,n,i);c.push(t)}return URL.revokeObjectURL(r),{frames:c,duration:a,thumbnail:null!=(t=c[0])?t:""}}let W=["User can log in with valid credentials","Invalid input shows validation error","Form submits successfully and redirects","Edge case: empty required fields"],F=["While you wait... have this cute cat!","Hang tight! Here's a furry friend.","Generating... enjoy this kitty!","Almost there! Cat says hi.","Test cases incoming... meow!"];function B(e){let{open:t,onClose:r,node:a,project:o,onGenerate:n}=e,{isConnected:i,activeProvider:c,activeProviderId:d}=(0,z.P)(),[x,u]=(0,l.useState)(""),[p,m]=(0,l.useState)(""),[h,b]=(0,l.useState)("en"),[v,y]=(0,l.useState)(!1),[f,g]=(0,l.useState)(!1),[j,k]=(0,l.useState)(null),[C,w]=(0,l.useState)([]),[N,S]=(0,l.useState)(""),[D,E]=(0,l.useState)(F[0]),[L,M]=(0,l.useState)(0),R=(0,l.useRef)(null),A=(0,l.useRef)(null),B=(0,l.useRef)(null),[P,U]=(0,l.useState)(!1),[O,X]=(0,l.useState)(!1),[K,H]=(0,l.useState)(null),[G,Y]=(0,l.useState)([]),[V,_]=(0,l.useState)(new Set),[J,q]=(0,l.useState)(!1),[Z,$]=(0,l.useState)(null),Q=(0,l.useCallback)(async()=>{try{var e;let t=await fetch("https://api.thecatapi.com/v1/images/search?size=med"),r=await t.json();(null==r||null==(e=r[0])?void 0:e.url)&&S(r[0].url)}catch(e){S("")}E(F[Math.floor(Math.random()*F.length)])},[]);(0,l.useEffect)(()=>{t&&(u(a.label),m(""),k(null),g(!1),w([]),Y([]),_(new Set),q(!1),S(""),M(0))},[t,a.label]),(0,l.useEffect)(()=>{if(!f)return;Q();let e=setInterval(()=>{M(e=>e+1),Q()},2e3);return()=>clearInterval(e)},[f,Q]);let ee=e=>new Promise((t,r)=>{if(!e.type.startsWith("image/"))return void r(Error("Not an image file"));if(e.size>5242880)return void r(Error("Image too large (max ".concat(5,"MB)")));let s=new FileReader;s.onload=()=>t(s.result),s.onerror=()=>r(Error("Failed to read file")),s.readAsDataURL(e)}),et=(0,l.useCallback)(async e=>{if(!e.type.startsWith("video/"))return void k("Not a video file");if(e.size>0x3200000)return void k("Video too large (max ".concat(50,"MB)"));X(!0),H("Loading video...");try{let t=await I(e);if(t.duration>120){k("Video too long (".concat(Math.round(t.duration),"s). Max ").concat(120,"s.")),X(!1),H(null);return}H("Extracted ".concat(t.frames.length," frames. Select which to include...")),Y(t.frames),_(new Set(t.frames.map((e,t)=>t))),q(!0),k(null)}catch(e){k(e instanceof Error?e.message:"Failed to process video")}finally{X(!1),H(null)}},[]),er=(0,l.useCallback)(()=>{let e=5-C.length,t=G.filter((e,t)=>V.has(t)).slice(0,e);t.length>0&&w(e=>[...e,...t]),Y([]),_(new Set),q(!1)},[G,V,C.length]),es=(0,l.useCallback)(()=>{Y([]),_(new Set),q(!1)},[]),ea=(0,l.useCallback)(e=>{_(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.size<5&&r.add(e),r})},[]),eo=(0,l.useCallback)(()=>{_(new Set(Array.from({length:Math.min(G.length,5)},(e,t)=>t)))},[G]),el=(0,l.useCallback)(()=>{_(new Set)},[]),en=(0,l.useCallback)(async e=>{let t=5-C.length;if(t<=0)return void k("Maximum ".concat(5," images/frames allowed"));let r=Array.from(e),s=r.filter(e=>e.type.startsWith("image/")),a=r.filter(e=>e.type.startsWith("video/")),o=s.slice(0,t),l=[];for(let e of o)try{let t=await ee(e);l.push(t)}catch(e){k(e instanceof Error?e.message:"Failed to load image")}l.length>0&&(w(e=>[...e,...l]),k(null)),a.length>0&&await et(a[0])},[C.length,et]),ei=(0,l.useCallback)(e=>{w(t=>t.filter((t,r)=>r!==e))},[]);(0,l.useEffect)(()=>{if(!t)return;let e=e=>{var t;let r=null==(t=e.clipboardData)?void 0:t.items;if(!r)return;let s=[];for(let e of Array.from(r))if(e.type.startsWith("image/")){let t=e.getAsFile();t&&s.push(t)}s.length>0&&(e.preventDefault(),en(s))};return document.addEventListener("paste",e),()=>document.removeEventListener("paste",e)},[t,en]);let ec=(0,l.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),U(!0)},[]),ed=(0,l.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),U(!1)},[]),ex=(0,l.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),U(!1),e.dataTransfer.files.length>0&&en(e.dataTransfer.files)},[en]);(0,l.useCallback)(async e=>{await et(e)},[et]);let eu=(0,l.useCallback)(e=>{e.target.files&&e.target.files.length>0&&(en(e.target.files),e.target.value="")},[en]),ep=async()=>{if(!i)return void k("Please configure an AI provider in Integrations first.");if(!p.trim()&&0===C.length)return void k("Please describe the feature, paste a ticket, or attach an image.");g(!0),k(null);try{let e=await (0,T.Z7)({title:x,prompt:p,apiKey:c.apiKey,provider:null!=d?d:void 0,model:c.defaultModel,language:h,baseURL:c.baseURL||void 0,images:C.length>0?C:void 0,projectName:null==o?void 0:o.name,projectType:null==o?void 0:o.type,projectNotes:null==o?void 0:o.notes,nodeNotes:a.notes});n(e),r()}catch(e){k(e instanceof Error?e.message:"Generation failed")}finally{g(!1)}};return t?(0,s.jsxs)("div",{className:"fixed inset-0 z-[300] flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.3)",animation:"fadeIn 150ms ease-out"},onClick:r,children:[(0,s.jsxs)("div",{className:"flex rounded-xl overflow-hidden",style:{maxWidth:f?"720px":"512px",width:"100%",margin:"0 16px",backgroundColor:"var(--bg-card)",boxShadow:"var(--shadow-lg)",transition:"max-width 400ms cubic-bezier(0.4, 0, 0.2, 1)"},onClick:e=>e.stopPropagation(),children:[(0,s.jsxs)("div",{className:"flex-1 min-w-0",style:{maxWidth:"512px"},children:[(0,s.jsxs)("div",{className:"px-5 pt-5 pb-4 border-b",style:{borderColor:"var(--border)"},children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,s.jsx)("div",{className:"w-6 h-6 rounded-md flex items-center justify-center",style:{background:"linear-gradient(135deg, #8D6E63, #A1887F)"},children:(0,s.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,s.jsx)("polygon",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2"})})}),(0,s.jsx)("h3",{className:"text-sm font-semibold",style:{color:"var(--text-primary)"},children:"Generate Test Cases"})]}),(0,s.jsxs)("p",{className:"text-xs",style:{color:"var(--text-tertiary)"},children:["Describe the feature and let AI generate test cases for “",a.label,"”"]})]}),(0,s.jsxs)("div",{className:"px-5 py-4 space-y-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"text-xs font-medium block mb-1.5",style:{color:"var(--text-secondary)"},children:"Test Case Title"}),(0,s.jsx)("input",{value:x,onChange:e=>u(e.target.value),className:"w-full px-3 py-2 text-sm rounded-lg outline-none border transition-colors focus:border-[var(--accent)]",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-card)",color:"var(--text-primary)"},placeholder:"Feature name..."})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"text-xs font-medium block mb-1.5",style:{color:"var(--text-secondary)"},children:"Description / DoD / Ticket"}),(0,s.jsx)("textarea",{value:p,onChange:e=>m(e.target.value),rows:4,className:"w-full px-3 py-2 text-sm rounded-lg outline-none border resize-none transition-colors focus:border-[var(--accent)]",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-card)",color:"var(--text-primary)"},placeholder:"id"===h?"Jelaskan fitur, kriteria penerimaan, atau tempel tiket...":"Describe the feature, acceptance criteria, or paste a ticket..."}),(0,s.jsx)("div",{className:"flex flex-wrap gap-1.5 mt-2",children:W.map(e=>(0,s.jsxs)("button",{onClick:()=>m(t=>t?"".concat(t,"\n").concat(e):e),className:"px-2 py-0.5 text-[10px] rounded-full border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-tertiary)"},children:["+ ",e]},e))})]}),(0,s.jsxs)("div",{children:[(0,s.jsxs)("label",{className:"text-xs font-medium block mb-1.5",style:{color:"var(--text-secondary)"},children:["Screenshots & Videos ",(0,s.jsx)("span",{className:"font-normal",style:{color:"var(--text-tertiary)"},children:"(optional)"})]}),C.length>0&&(0,s.jsx)("div",{className:"flex flex-wrap gap-2 mb-2",children:C.map((e,t)=>(0,s.jsxs)("div",{className:"relative group rounded-lg overflow-hidden border",style:{borderColor:"var(--border)",width:72,height:72},children:[(0,s.jsx)("img",{src:e,alt:"Screenshot ".concat(t+1),className:"w-full h-full object-cover"}),(0,s.jsx)("button",{onClick:()=>ei(t),className:"absolute top-0.5 right-0.5 w-5 h-5 rounded-full flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity",style:{backgroundColor:"rgba(0,0,0,0.7)",color:"#fff"},title:"Remove",children:(0,s.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,s.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,s.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]},t))}),(0,s.jsx)("div",{ref:B,onDragOver:ec,onDragLeave:ed,onDrop:ex,onClick:()=>{var e;return null==(e=R.current)?void 0:e.click()},className:"rounded-lg border-2 border-dashed cursor-pointer transition-colors",style:{borderColor:P?"var(--accent)":"var(--border)",backgroundColor:P?"var(--accent)08":"transparent",padding:C.length>0?"8px":"16px"},children:(0,s.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,s.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,s.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),(0,s.jsx)("circle",{cx:"8.5",cy:"8.5",r:"1.5"}),(0,s.jsx)("polyline",{points:"21 15 16 10 5 21"})]}),(0,s.jsx)("span",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:C.length>0?"Add more (".concat(C.length,"/").concat(5,") \xb7 paste, drop, or click"):"Paste from clipboard, drop, or click to upload"})]})}),!J&&C.length<5&&(0,s.jsx)("div",{className:"mt-2",children:O?(0,s.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg",style:{backgroundColor:"var(--bg-secondary)"},children:[(0,s.jsx)("svg",{className:"animate-spin",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"var(--accent)",strokeWidth:"2",children:(0,s.jsx)("circle",{cx:"12",cy:"12",r:"10",strokeDasharray:"30 70"})}),(0,s.jsx)("span",{className:"text-[11px]",style:{color:"var(--text-secondary)"},children:K})]}):(0,s.jsxs)("button",{type:"button",onClick:e=>{var t;e.stopPropagation(),null==(t=A.current)||t.click()},className:"flex items-center gap-2 px-3 py-1.5 text-[11px] rounded-lg border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-tertiary)"},children:[(0,s.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,s.jsx)("polygon",{points:"23 7 16 12 23 17 23 7"}),(0,s.jsx)("rect",{x:"1",y:"5",width:"15",height:"14",rx:"2",ry:"2"})]}),"Upload video (extract key frames)"]})}),J&&G.length>0&&(0,s.jsxs)("div",{className:"mt-2 p-3 rounded-lg border",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)"},children:[(0,s.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,s.jsxs)("span",{className:"text-[11px] font-medium",style:{color:"var(--text-secondary)"},children:["Select frames ",(0,s.jsxs)("span",{style:{color:"var(--text-tertiary)"},children:["(",V.size,"/",5," max)"]})]}),(0,s.jsxs)("div",{className:"flex gap-1",children:[(0,s.jsx)("button",{type:"button",onClick:eo,className:"text-[10px] px-1.5 py-0.5 rounded hover:bg-[var(--bg-card)]",style:{color:"var(--text-tertiary)"},children:"All"}),(0,s.jsx)("button",{type:"button",onClick:el,className:"text-[10px] px-1.5 py-0.5 rounded hover:bg-[var(--bg-card)]",style:{color:"var(--text-tertiary)"},children:"None"})]})]}),(0,s.jsx)("div",{className:"flex flex-wrap gap-2 mb-3",children:G.map((e,t)=>(0,s.jsxs)("div",{className:"relative group rounded-md overflow-hidden border-2 transition-all cursor-pointer",style:{width:80,height:80,borderColor:V.has(t)?"var(--accent)":"var(--border)",opacity:V.has(t)?1:.5},children:[(0,s.jsx)("button",{type:"button",onClick:()=>ea(t),className:"w-full h-full",children:(0,s.jsx)("img",{src:e,alt:"Frame ".concat(t+1),className:"w-full h-full object-cover"})}),(0,s.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),$(e)},className:"absolute top-0.5 left-0.5 w-6 h-6 rounded flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity",style:{backgroundColor:"rgba(0,0,0,0.7)",color:"#fff"},title:"Zoom",children:(0,s.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,s.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,s.jsx)("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"}),(0,s.jsx)("line",{x1:"11",y1:"8",x2:"11",y2:"14"}),(0,s.jsx)("line",{x1:"8",y1:"11",x2:"14",y2:"11"})]})}),V.has(t)&&(0,s.jsx)("div",{className:"absolute top-0.5 right-0.5 w-5 h-5 rounded-full flex items-center justify-center",style:{backgroundColor:"var(--accent)",color:"#fff"},children:(0,s.jsx)("svg",{width:"11",height:"11",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:(0,s.jsx)("polyline",{points:"20 6 9 17 4 12"})})}),(0,s.jsx)("span",{className:"absolute bottom-0 left-0 right-0 text-center text-[9px] py-0.5",style:{backgroundColor:"rgba(0,0,0,0.6)",color:"#fff"},children:t+1})]},t))}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)("button",{type:"button",onClick:es,className:"flex-1 px-3 py-1.5 text-[11px] rounded-md border transition-colors hover:bg-[var(--bg-card)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:"Cancel"}),(0,s.jsxs)("button",{type:"button",onClick:er,disabled:0===V.size,className:"flex-1 px-3 py-1.5 text-[11px] rounded-md transition-colors hover:opacity-90 disabled:opacity-40 disabled:cursor-not-allowed",style:{backgroundColor:"var(--accent)",color:"#fff"},children:["Add ",V.size," frame",1!==V.size?"s":""]})]})]}),(0,s.jsx)("input",{ref:R,type:"file",accept:"image/*",multiple:!0,className:"hidden",onChange:eu}),(0,s.jsx)("input",{ref:A,type:"file",accept:"video/*",className:"hidden",onChange:async e=>{var t;let r=null==(t=e.target.files)?void 0:t[0];r&&(await et(r),e.target.value="")}})]}),j&&(0,s.jsx)("div",{className:"text-xs px-3 py-2 rounded-lg",style:{backgroundColor:"var(--status-fail-bg)",color:"var(--status-fail-text)"},children:j}),!i&&(0,s.jsx)("div",{className:"text-xs px-3 py-2 rounded-lg",style:{backgroundColor:"var(--status-skip-bg)",color:"var(--status-skip-text)"},children:"No AI provider configured. Go to Integrations to set up."}),(0,s.jsxs)("div",{className:"rounded-lg border overflow-hidden",style:{borderColor:"var(--border)"},children:[(0,s.jsxs)("button",{onClick:()=>y(e=>!e),className:"w-full flex items-center justify-between px-3 py-2 transition-colors hover:bg-[var(--bg-secondary)]",children:[(0,s.jsx)("span",{className:"text-xs font-medium",style:{color:"var(--text-secondary)"},children:"Language"}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"text-[10px] font-mono font-semibold px-1.5 py-0.5 rounded",style:{backgroundColor:"var(--bg-secondary)",color:"var(--text-tertiary)"},children:"en"===h?"EN":"ID"}),(0,s.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{transform:v?"rotate(180deg)":"rotate(0deg)",transition:"transform 200ms ease-out"},children:(0,s.jsx)("polyline",{points:"6 9 12 15 18 9"})})]})]}),(0,s.jsx)("div",{style:{maxHeight:v?"80px":"0px",overflow:"hidden",transition:"max-height 200ms ease-out"},children:(0,s.jsx)("div",{className:"px-3 pb-2 pt-1",children:(0,s.jsxs)("select",{value:h,onChange:e=>{b(e.target.value),y(!1)},className:"w-full px-2.5 py-1.5 text-xs rounded-md border outline-none transition-colors cursor-pointer",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-card)",color:"var(--text-primary)"},children:[(0,s.jsx)("option",{value:"en",children:"English"}),(0,s.jsx)("option",{value:"id",children:"Bahasa Indonesia"})]})})})]})]}),(0,s.jsxs)("div",{className:"px-5 py-4 border-t flex gap-2",style:{borderColor:"var(--border)"},children:[(0,s.jsx)("button",{onClick:r,className:"flex-1 px-3 py-2.5 text-xs font-medium rounded-lg border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:"Cancel"}),(0,s.jsx)("button",{onClick:ep,disabled:f||!i,className:"flex-1 px-3 py-2.5 text-xs font-medium rounded-lg transition-all hover:opacity-90 active:scale-[0.98] disabled:opacity-50 disabled:cursor-not-allowed",style:{background:"linear-gradient(135deg, #8D6E63, #A1887F)",color:"#fff",boxShadow:"0 2px 8px rgba(141,110,99,0.3)"},children:f?(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:[(0,s.jsx)("svg",{className:"animate-spin",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,s.jsx)("circle",{cx:"12",cy:"12",r:"10",strokeDasharray:"30 70"})}),"Generating..."]}):"Generate Test Cases"})]})]}),(0,s.jsx)("div",{className:"flex-shrink-0 overflow-hidden",style:{width:f?"280px":"0px",transition:"width 400ms cubic-bezier(0.4, 0, 0.2, 1)"},children:(0,s.jsxs)("div",{className:"w-[280px] h-full flex flex-col items-center justify-center p-5 border-l",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)",opacity:+!!f,transition:"opacity 300ms ease-out 100ms"},children:[(0,s.jsx)("div",{className:"w-full rounded-xl overflow-hidden mb-4 border",style:{borderColor:"var(--border)",height:180,backgroundColor:"var(--bg-card)"},children:N&&(0,s.jsx)("img",{src:N,alt:"Cute cat",width:280,height:180,className:"w-full h-full object-cover",style:{animation:"fadeIn 800ms ease-out"},onError:e=>{e.target.style.display="none"}},L)}),(0,s.jsx)("p",{className:"text-xs text-center mb-3",style:{color:"var(--text-secondary)",animation:"fadeIn 800ms ease-out"},children:D}),(0,s.jsx)("button",{onClick:Q,className:"px-3 py-1.5 text-[10px] rounded-full border transition-colors hover:bg-[var(--bg-card)]",style:{borderColor:"var(--border)",color:"var(--text-tertiary)"},children:"New cat"})]})})]}),Z&&(0,s.jsx)("div",{className:"fixed inset-0 z-[400] flex items-center justify-center p-8",style:{backgroundColor:"rgba(0,0,0,0.85)",animation:"fadeIn 150ms ease-out"},onClick:e=>{e.stopPropagation(),$(null)},children:(0,s.jsxs)("div",{className:"relative max-w-4xl max-h-full",onClick:e=>e.stopPropagation(),children:[(0,s.jsx)("img",{src:Z,alt:"Frame preview",className:"max-w-full max-h-[80vh] object-contain rounded-lg",style:{boxShadow:"0 8px 32px rgba(0,0,0,0.5)"}}),(0,s.jsx)("button",{onClick:()=>$(null),className:"absolute -top-2 -right-2 w-8 h-8 rounded-full flex items-center justify-center transition-colors hover:opacity-80",style:{backgroundColor:"var(--bg-card)",color:"var(--text-primary)",boxShadow:"var(--shadow-lg)"},children:(0,s.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,s.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,s.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})})]}):null}let P={pass:{bg:"var(--status-pass-bg)",text:"var(--status-pass-text)"},fail:{bg:"var(--status-fail-bg)",text:"var(--status-fail-text)"},skip:{bg:"var(--status-skip-bg)",text:"var(--status-skip-text)"},untested:{bg:"var(--status-untested-bg)",text:"var(--status-untested-text)"},blocked:{bg:"var(--status-blocked-bg)",text:"var(--status-blocked-text)"}};function U(e){let{open:t,onClose:r,node:a,testCases:l,stats:n}=e;return t?(0,s.jsxs)("div",{style:{backgroundColor:"rgba(0,0,0,0.3)",animation:"fadeIn 150ms ease-out"},onClick:r,className:"jsx-540c0278eef48442 fixed inset-0 z-[300] flex items-center justify-center",children:[(0,s.jsxs)("div",{style:{backgroundColor:"var(--bg-card)",boxShadow:"var(--shadow-lg)",borderRadius:"var(--radius-lg)",animation:"fadeInUp 200ms ease-out"},onClick:e=>e.stopPropagation(),className:"jsx-540c0278eef48442 w-full max-w-lg mx-4 rounded-xl overflow-hidden",children:[(0,s.jsxs)("div",{style:{borderColor:"var(--border)"},className:"jsx-540c0278eef48442 px-5 pt-5 pb-4 border-b",children:[(0,s.jsxs)("div",{className:"jsx-540c0278eef48442 flex items-center justify-between mb-2",children:[(0,s.jsxs)("div",{className:"jsx-540c0278eef48442 flex items-center gap-2",children:[a.code&&(0,s.jsx)("span",{style:{backgroundColor:"var(--bg-secondary)",color:"var(--text-tertiary)"},className:"jsx-540c0278eef48442 text-[10px] font-mono px-1.5 py-0.5 rounded",children:a.code}),(0,s.jsx)("h3",{style:{color:"var(--text-primary)"},className:"jsx-540c0278eef48442 text-sm font-semibold",children:a.label})]}),(0,s.jsx)("button",{onClick:r,style:{color:"var(--text-tertiary)"},className:"jsx-540c0278eef48442 text-[10px] opacity-50 hover:opacity-100",children:"\xd7"})]}),a.notes&&(0,s.jsx)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-540c0278eef48442 text-xs",children:a.notes})]}),(0,s.jsxs)("div",{className:"jsx-540c0278eef48442 grid grid-cols-4 gap-3 p-5",children:[(0,s.jsx)(O,{label:"Total",value:n.total}),(0,s.jsx)(O,{label:"Pass",value:n.pass,color:"var(--status-pass-text)"}),(0,s.jsx)(O,{label:"Fail",value:n.fail,color:"var(--status-fail-text)"}),(0,s.jsx)(O,{label:"Blocked",value:n.blocked,color:"var(--status-blocked-text)"}),(0,s.jsx)(O,{label:"Untested",value:n.untested,color:"var(--status-untested-text)"})]}),(0,s.jsxs)("div",{className:"jsx-540c0278eef48442 px-5 pb-4",children:[(0,s.jsxs)("div",{style:{color:"var(--text-tertiary)"},className:"jsx-540c0278eef48442 flex items-center justify-between text-[10px] mb-1.5",children:[(0,s.jsx)("span",{className:"jsx-540c0278eef48442",children:"Pass Rate"}),(0,s.jsxs)("span",{style:{color:n.passRate>=80?"var(--status-pass-text)":n.passRate>=50?"var(--status-skip-text)":"var(--status-fail-text)",fontWeight:600},className:"jsx-540c0278eef48442",children:[n.passRate,"%"]})]}),(0,s.jsx)("div",{style:{backgroundColor:"var(--bg-secondary)"},className:"jsx-540c0278eef48442 h-2 w-full rounded-full overflow-hidden",children:(0,s.jsx)("div",{style:{width:"".concat(n.passRate,"%"),backgroundColor:n.passRate>=80?"var(--status-pass-text)":n.passRate>=50?"var(--status-skip-text)":"var(--status-fail-text)"},className:"jsx-540c0278eef48442 h-full rounded-full transition-all duration-500"})})]}),l.length>0&&(0,s.jsxs)("div",{className:"jsx-540c0278eef48442 px-5 pb-4",children:[(0,s.jsx)("h4",{style:{color:"var(--text-tertiary)"},className:"jsx-540c0278eef48442 text-[10px] font-semibold uppercase tracking-wider mb-2",children:"Test Cases"}),(0,s.jsx)("div",{className:"jsx-540c0278eef48442 space-y-1.5 max-h-48 overflow-y-auto",children:l.map(e=>{let t=P[e.status]||P.untested;return(0,s.jsxs)("div",{style:{borderColor:"var(--border)"},className:"jsx-540c0278eef48442 flex items-center gap-2 px-3 py-2 rounded-lg border",children:[(0,s.jsx)("span",{style:{backgroundColor:t.bg,color:t.text},className:"jsx-540c0278eef48442 text-[9px] font-mono px-1.5 py-0.5 rounded-full flex-shrink-0",children:e.status}),(0,s.jsx)("span",{style:{color:"var(--text-primary)"},className:"jsx-540c0278eef48442 text-[11px] flex-1 truncate",children:e.title}),e.code&&(0,s.jsx)("span",{style:{color:"var(--text-tertiary)"},className:"jsx-540c0278eef48442 text-[9px] font-mono flex-shrink-0",children:e.code})]},e.id)})})]}),0===l.length&&(0,s.jsx)("div",{className:"jsx-540c0278eef48442 px-5 pb-5 text-center",children:(0,s.jsx)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-540c0278eef48442 text-xs",children:"No test cases for this node yet."})}),(0,s.jsx)("div",{style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)"},className:"jsx-540c0278eef48442 px-5 py-3 border-t",children:(0,s.jsx)("button",{onClick:r,style:{borderColor:"var(--border)",color:"var(--text-secondary)"},className:"jsx-540c0278eef48442 w-full px-3 py-2 text-xs font-medium rounded-lg border transition-colors hover:bg-[var(--bg-card)]",children:"Close"})})]}),(0,s.jsx)(o(),{id:"540c0278eef48442",children:"@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeInUp{from{opacity:0;transform:translatey(12px)}to{opacity:1;transform:translatey(0)}}"})]}):null}function O(e){let{label:t,value:r,color:a}=e;return(0,s.jsxs)("div",{className:"text-center p-2 rounded-lg border",style:{borderColor:"var(--border)"},children:[(0,s.jsx)("div",{className:"text-[10px] mb-0.5",style:{color:"var(--text-tertiary)"},children:t}),(0,s.jsx)("div",{className:"text-lg font-semibold",style:{color:null!=a?a:"var(--text-primary)"},children:r})]})}function X(e){let t=[],r="",s=!1;for(let a=0;a<e.length;a++){let o=e[a];s?'"'===o?a+1<e.length&&'"'===e[a+1]?(r+='"',a++):s=!1:r+=o:'"'===o?s=!0:","===o?(t.push(r),r=""):r+=o}return t.push(r),t}function K(e){let{open:t,onClose:r,onImport:a,nodeLabel:o}=e,[n,i]=(0,l.useState)("csv"),[c,d]=(0,l.useState)(null),[x,u]=(0,l.useState)(null),[p,m]=(0,l.useState)(!1),h=(0,l.useRef)(null),b=()=>{d(null),u(null),m(!1)},v=(0,l.useCallback)(e=>{d(null),u(null);let t=new FileReader;t.onload=()=>{try{let r=t.result,s=e.name.endsWith(".json")||"application/json"===e.type?function(e){let t=JSON.parse(e),r=Array.isArray(t)?t:t.testCases||t.test_cases||t.cases;if(!Array.isArray(r))throw Error('JSON must be an array of test cases, or an object with a "testCases" array');let s=[];for(let e of r){if("string"==typeof e){e.trim()&&s.push({title:e.trim(),steps:"",expected:""});continue}if("object"!=typeof e||!e)continue;let t=e.title||e.name||e.testCase||e["test case"]||"";t&&"string"==typeof t&&s.push({title:t.trim(),steps:String(e.steps||e.instructions||"").trim(),expected:String(e.expected||e["expected result"]||e.result||"").trim()})}if(0===s.length)throw Error("No valid test cases found in JSON");return s}(r):function(e){let t=e.split("\n").map(e=>e.trim()).filter(e=>e.length>0);if(t.length<2)throw Error("CSV must have a header row and at least one data row");let r=X(t[0]).map(e=>e.toLowerCase().trim()),s=r.findIndex(e=>"title"===e||"test case"===e||"testcase"===e||"name"===e||"test case title"===e),a=r.findIndex(e=>"steps"===e||"test steps"===e||"step"===e||"instructions"===e),o=r.findIndex(e=>"expected"===e||"expected result"===e||"expected results"===e||"result"===e);if(-1===s)throw Error('Could not find a "title" or "test case" column in the CSV header');let l=[];for(let e=1;e<t.length;e++){let r=X(t[e]),n=(r[s]||"").trim();n&&l.push({title:n,steps:a>=0?(r[a]||"").trim():"",expected:o>=0?(r[o]||"").trim():""})}if(0===l.length)throw Error("No valid test cases found in CSV");return l}(r);u(s)}catch(e){d(e instanceof Error?e.message:"Failed to parse file")}},t.onerror=()=>d("Failed to read file"),t.readAsText(e)},[]);return t?(0,s.jsx)("div",{className:"fixed inset-0 z-[300] flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.3)",animation:"fadeIn 150ms ease-out"},onClick:()=>{b(),r()},children:(0,s.jsxs)("div",{className:"w-full max-w-lg mx-4 rounded-xl overflow-hidden",style:{backgroundColor:"var(--bg-card)",boxShadow:"var(--shadow-lg)"},onClick:e=>e.stopPropagation(),children:[(0,s.jsxs)("div",{className:"px-5 pt-5 pb-4 border-b",style:{borderColor:"var(--border)"},children:[(0,s.jsx)("h3",{className:"text-sm font-semibold mb-1",style:{color:"var(--text-primary)"},children:"Import Test Cases"}),(0,s.jsxs)("p",{className:"text-xs",style:{color:"var(--text-tertiary)"},children:["Import test cases into “",o,"” from CSV or JSON"]})]}),(0,s.jsxs)("div",{className:"px-5 py-4 space-y-4",children:[(0,s.jsxs)("div",{className:"text-[11px] rounded-lg px-3 py-2",style:{backgroundColor:"var(--bg-secondary)",color:"var(--text-tertiary)"},children:[(0,s.jsx)("p",{className:"font-medium mb-1",style:{color:"var(--text-secondary)"},children:"Supported formats:"}),(0,s.jsxs)("ul",{className:"space-y-0.5 ml-3",children:[(0,s.jsxs)("li",{children:[(0,s.jsx)("strong",{children:"CSV:"})," Header row with columns: title, steps, expected (or similar names)"]}),(0,s.jsxs)("li",{children:[(0,s.jsx)("strong",{children:"JSON:"}),' Array of objects with "title", "steps", "expected" fields']})]})]}),(0,s.jsx)("div",{onDragOver:e=>{e.preventDefault(),m(!0)},onDragLeave:()=>m(!1),onDrop:e=>{e.preventDefault(),m(!1);let t=e.dataTransfer.files[0];t&&v(t)},onClick:()=>{var e;return null==(e=h.current)?void 0:e.click()},className:"border-2 border-dashed rounded-lg cursor-pointer transition-colors py-8",style:{borderColor:p?"var(--accent)":"var(--border)",backgroundColor:p?"var(--accent)08":"transparent"},children:(0,s.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,s.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,s.jsx)("path",{d:"M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4"}),(0,s.jsx)("polyline",{points:"17 8 12 3 7 8"}),(0,s.jsx)("line",{x1:"12",y1:"3",x2:"12",y2:"15"})]}),(0,s.jsx)("span",{className:"text-xs",style:{color:"var(--text-tertiary)"},children:"Drop a .csv or .json file here, or click to browse"})]})}),(0,s.jsx)("input",{ref:h,type:"file",accept:".csv,.json",className:"hidden",onChange:e=>{var t;let r=null==(t=e.target.files)?void 0:t[0];r&&v(r),e.target.value=""}}),c&&(0,s.jsx)("div",{className:"text-xs px-3 py-2 rounded-lg",style:{backgroundColor:"var(--status-fail-bg)",color:"var(--status-fail-text)"},children:c}),x&&x.length>0&&(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,s.jsxs)("span",{className:"text-xs font-medium",style:{color:"var(--text-secondary)"},children:["Preview (",x.length," test case",1!==x.length?"s":"",")"]}),(0,s.jsx)("button",{onClick:()=>u(null),className:"text-[10px] px-1.5 py-0.5 rounded border hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-tertiary)"},children:"Clear"})]}),(0,s.jsxs)("div",{className:"max-h-[200px] overflow-auto rounded-lg border",style:{borderColor:"var(--border)"},children:[(0,s.jsxs)("table",{className:"text-[11px] w-full",children:[(0,s.jsx)("thead",{children:(0,s.jsxs)("tr",{style:{backgroundColor:"var(--bg-secondary)"},children:[(0,s.jsx)("th",{className:"px-2 py-1.5 text-left font-medium",style:{color:"var(--text-tertiary)"},children:"#"}),(0,s.jsx)("th",{className:"px-2 py-1.5 text-left font-medium",style:{color:"var(--text-tertiary)"},children:"Title"}),(0,s.jsx)("th",{className:"px-2 py-1.5 text-left font-medium",style:{color:"var(--text-tertiary)"},children:"Steps"}),(0,s.jsx)("th",{className:"px-2 py-1.5 text-left font-medium",style:{color:"var(--text-tertiary)"},children:"Expected"})]})}),(0,s.jsx)("tbody",{children:x.slice(0,20).map((e,t)=>(0,s.jsxs)("tr",{className:"border-t",style:{borderColor:"var(--border)"},children:[(0,s.jsx)("td",{className:"px-2 py-1",style:{color:"var(--text-tertiary)"},children:t+1}),(0,s.jsx)("td",{className:"px-2 py-1",style:{color:"var(--text-primary)"},children:e.title}),(0,s.jsx)("td",{className:"px-2 py-1 max-w-[120px] truncate",style:{color:"var(--text-secondary)"},children:e.steps||"—"}),(0,s.jsx)("td",{className:"px-2 py-1 max-w-[120px] truncate",style:{color:"var(--text-secondary)"},children:e.expected||"—"})]},t))})]}),x.length>20&&(0,s.jsxs)("div",{className:"px-2 py-1 text-[10px] border-t",style:{borderColor:"var(--border)",color:"var(--text-tertiary)"},children:["...and ",x.length-20," more"]})]})]})]}),(0,s.jsxs)("div",{className:"px-5 py-4 border-t flex gap-2",style:{borderColor:"var(--border)"},children:[(0,s.jsx)("button",{onClick:()=>{b(),r()},className:"flex-1 px-3 py-2.5 text-xs font-medium rounded-lg border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:"Cancel"}),(0,s.jsxs)("button",{onClick:()=>{x&&0!==x.length&&(a(x),b(),r())},disabled:!x||0===x.length,className:"flex-1 px-3 py-2.5 text-xs font-medium rounded-lg transition-all hover:opacity-90 active:scale-[0.98] disabled:opacity-50 disabled:cursor-not-allowed",style:{background:"linear-gradient(135deg, #8D6E63, #A1887F)",color:"#fff"},children:["Import ",x?"(".concat(x.length,")"):""]})]})]})}):null}function H(e){var t;let{testCases:r,projectId:a,onClose:o}=e,{e2e:n,testCases:c}=(0,i.M)(),[d,x]=(0,l.useState)(n.config.baseUrl),[u,p]=(0,l.useState)(n.config.browser),[m,h]=(0,l.useState)(n.config.headless),[b,v]=(0,l.useState)(n.config.timeout),[y,f]=(0,l.useState)("runner"),[g,j]=(0,l.useState)(!1),[k,C]=(0,l.useState)(!1),[w,N]=(0,l.useState)([]),[S,D]=(0,l.useState)(null),[E,L]=(0,l.useState)([]),[M,R]=(0,l.useState)([]),[A,T]=(0,l.useState)(null),[z,I]=(0,l.useState)(!0),[W,F]=(0,l.useState)(22),[B,P]=(0,l.useState)(!0),U=(0,l.useRef)(!1),O=(0,l.useRef)(null),[X,K]=(0,l.useState)(""),[H,G]=(0,l.useState)(!1),[Y,V]=(0,l.useState)({}),[_,J]=(0,l.useState)(null),[q,Z]=(0,l.useState)(""),[$,Q]=(0,l.useState)(null),[ee,et]=(0,l.useState)(null),er=(0,l.useRef)(null),es=(0,l.useRef)(null),[ea,eo]=(0,l.useState)(new Set(r.map(e=>e.id))),[el,en]=(0,l.useState)(!1);(0,l.useEffect)(()=>{let e=()=>{let e=window.innerWidth>=768;en(e),e?(P(!0),I(!0)):(P(!1),I(!1))};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]);let ei=(0,l.useCallback)(e=>{e.preventDefault(),U.current=!0,document.body.style.cursor="col-resize",document.body.style.userSelect="none";let t=e=>{if(!U.current||!O.current)return;let t=O.current.getBoundingClientRect(),r=e.clientX;F(Math.min(Math.max((t.right-r)/t.width*100,15),50))},r=()=>{U.current=!1,document.body.style.cursor="",document.body.style.userSelect="",document.removeEventListener("mousemove",t),document.removeEventListener("mouseup",r)};document.addEventListener("mousemove",t),document.addEventListener("mouseup",r)},[]);(0,l.useEffect)(()=>{let e={};for(let t of r){let r=n.getScript(t.id);r&&(e[t.id]=r.script)}V(e)},[r,n]),(0,l.useEffect)(()=>{let e=window.setTimeout(()=>{n.saveConfig({baseUrl:d,browser:u,headless:m,timeout:b})},500);return()=>window.clearTimeout(e)},[d,u,m,b,n]);let ec=(0,l.useCallback)((e,t)=>{L(r=>[...r,{time:new Date,type:e,message:t}]),window.setTimeout(()=>{var e;null==(e=es.current)||e.scrollIntoView({behavior:"smooth"})},50)},[]),ed=(0,l.useCallback)(e=>{eo(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},[]),ex=(0,l.useCallback)(()=>{ea.size===r.length?eo(new Set):eo(new Set(r.map(e=>e.id)))},[r,ea]),eu=(0,l.useCallback)(()=>{var e;let t=localStorage.getItem("qa-llm-config");if(!t)return null;let r=JSON.parse(t),s=r.activeProvider;if(!s||!(null==(e=r.providers)?void 0:e[s]))return null;let a=r.providers[s];return a.apiKey&&a.connected?{provider:s,model:a.defaultModel,apiKey:a.apiKey,baseURL:a.baseURL}:null},[]),ep=(0,l.useCallback)(async()=>{let e=eu();if(!e)return void ec("error","Please configure LLM in Integrations page first");C(!0),ec("info","Generating test scripts...");try{let t=await fetch("/api/e2e",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({testCases:r.filter(e=>ea.has(e.id)),baseUrl:d,llmConfig:e,generateOnly:!0})});if(!t.ok)return void ec("error","Failed to generate scripts");let s=await t.json();for(let[e,t]of(V(e=>({...e,...s.scripts})),Object.entries(s.scripts))){let s=r.find(t=>t.id===e);s&&n.saveScript(e,s.title,s.code,t)}ec("success","Generated ".concat(Object.keys(s.scripts).length," test script(s)")),f("scripts")}catch(e){ec("error","Error: ".concat(e instanceof Error?e.message:String(e)))}finally{C(!1)}},[r,ea,d,eu,ec,n]),em=(0,l.useCallback)(async()=>{let e=r.filter(e=>ea.has(e.id));if(0===e.length)return;let t=eu();if(!t)return void ec("error","Please configure LLM in Integrations page first");j(!0),N([]),L([]),R([]),T(null),K(""),G(!1);let s=new AbortController;er.current=s,ec("info","Starting E2E test run with ".concat(e.length," test(s)...")),ec("info","Target: ".concat(d)),ec("info","Browser: ".concat(u," | Headless: ").concat(m));try{var o,l;let r=await fetch("/api/e2e",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({testCases:e,baseUrl:d,browser:u,headless:m,timeout:b,llmConfig:t}),signal:s.signal});if(!r.ok){let e=await r.json();ec("error",e.error||"Failed to run tests"),j(!1);return}let i=null==(o=r.body)?void 0:o.getReader(),c=new TextDecoder,x="",p=[];if(i)for(;;){let{done:e,value:t}=await i.read();if(e)break;let r=(x+=c.decode(t,{stream:!0})).split("\n");for(let e of(x=r.pop()||"",r))if(e.startsWith("data: "))try{let t=JSON.parse(e.slice(6));switch(t.type){case"status":ec("info",t.message);break;case"testStart":D({index:t.index,title:t.title}),ec("info","\n━━━ Test ".concat(t.index,"/").concat(t.total,": ").concat(t.code," - ").concat(t.title," ━━━")),t.script&&V(e=>({...e,[t.testCaseId]:t.script}));break;case"step":ec("info"," → ".concat(t.message));break;case"aiThinking":ec("ai"," \uD83E\uDD16 ".concat(t.message));break;case"aiAction":ec("ai"," \uD83C\uDFAF ".concat(t.message));break;case"screenshot":T(t.image),R(e=>[...e,{image:t.image,label:t.label,timestamp:new Date}]);break;case"stepResult":ec("pass"===t.status?"success":"error"," ".concat("pass"===t.status?"✓":"✗"," ").concat(t.message));break;case"healing":ec("healing"," \uD83D\uDD27 ".concat(t.message));break;case"healingAction":ec("healing"," \uD83D\uDC8A ".concat(t.message));break;case"healed":ec("success"," ✨ ".concat(t.message));break;case"aiAnalysis":ec("ai"," \uD83D\uDCCA AI Analysis:\n".concat(t.message));break;case"error":ec("error"," ⚠ ".concat(t.message));break;case"healingReport":K(t.report),t.report&&!t.report.includes("All tests passed")&&G(!0);break;case"testComplete":ec("pass"===t.status?"success":"error","\n ".concat("pass"===t.status?"✓":"✗"," Test ").concat(t.index," completed: ").concat(t.status.toUpperCase()," (").concat(t.duration,"ms)")),t.script&&(V(e=>({...e,[t.testCaseId]:t.script})),n.saveScript(t.testCaseId,(null==(l=t.result)?void 0:l.testCaseTitle)||"","",t.script)),p.push(t.result),N([...p]);break;case"complete":ec("success","\n═══════════════════════════════════════");let r=t.results.filter(e=>"pass"===e.status).length,s=t.results.filter(e=>"fail"===e.status||"error"===e.status).length;ec("success","Test run complete: ".concat(r," passed, ").concat(s," failed")),n.saveRun({projectId:a,config:{baseUrl:d,browser:u,headless:m,timeout:b},results:t.results,totalPassed:r,totalFailed:s,totalDuration:t.results.reduce((e,t)=>e+t.duration,0),healingReport:X||void 0});break;case"aborted":ec("warning","\n━━━ Test run stopped by user ━━━")}}catch(e){}}}catch(e){e instanceof Error&&"AbortError"===e.name?ec("warning","\n━━━ Test run stopped by user ━━━"):ec("error","Error: ".concat(e instanceof Error?e.message:String(e)))}j(!1),D(null),er.current=null},[r,ea,d,u,m,b,ec,eu,a,n,X]),eh=(0,l.useCallback)(()=>{er.current&&(ec("warning","Stopping test run..."),er.current.abort())},[ec]),eb=(0,l.useCallback)(()=>{if(!_||!q)return;let e=r.find(e=>e.id===_);e&&(n.saveScript(e.id,e.title,e.code,q),V(t=>({...t,[e.id]:q})),ec("success","Script saved for ".concat(e.code))),J(null),Z("")},[_,q,r,n,ec]);return(0,s.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-2 md:p-4",style:{backgroundColor:"rgba(0,0,0,0.5)"},children:[(0,s.jsxs)("div",{className:"w-full max-w-6xl max-h-[95vh] md:max-h-[92vh] rounded-lg shadow-xl flex flex-col",style:{backgroundColor:"var(--bg-primary)",border:"1px solid var(--border)"},children:[(0,s.jsxs)("div",{className:"flex items-center justify-between p-3 md:p-4 border-b shrink-0",style:{borderColor:"var(--border)"},children:[(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsx)("h2",{className:"text-base md:text-lg font-semibold truncate",style:{color:"var(--text-primary)"},children:"E2E Agentic Test Runner"}),(0,s.jsx)("p",{className:"text-xs mt-0.5 hidden sm:block",style:{color:"var(--text-tertiary)"},children:"AI-powered testing with script generation & live preview"})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2 ml-2",children:["runner"===y&&(0,s.jsx)("button",{onClick:()=>P(!B),className:"md:hidden p-1.5 rounded",style:{backgroundColor:B?"var(--accent)":"var(--bg-secondary)",color:B?"white":"var(--text-secondary)"},title:"Toggle config panel",children:"☰"}),(0,s.jsx)("button",{onClick:o,className:"p-1 rounded hover:opacity-80",style:{color:"var(--text-tertiary)"},children:"✕"})]})]}),(0,s.jsx)("div",{className:"flex border-b overflow-x-auto shrink-0",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)"},children:[{id:"runner",label:"Runner",icon:"▶"},{id:"scripts",label:"Scripts",icon:"{ }"},{id:"history",label:"History",icon:"\uD83D\uDCCB"}].map(e=>(0,s.jsxs)("button",{onClick:()=>f(e.id),className:"px-3 md:px-4 py-2 text-xs flex items-center gap-1.5 transition-colors whitespace-nowrap",style:{backgroundColor:y===e.id?"var(--bg-secondary)":"transparent",color:y===e.id?"var(--accent)":"var(--text-tertiary)",borderBottom:y===e.id?"2px solid var(--accent)":"2px solid transparent"},children:[(0,s.jsx)("span",{children:e.icon}),e.label]},e.id))}),"runner"===y&&(0,s.jsxs)("div",{className:"flex-1 overflow-hidden flex flex-col md:flex-row",children:[(0,s.jsx)("div",{className:"".concat(B?"max-h-[35vh] md:max-h-none":"max-h-0 md:max-h-none"," md:flex-[0_0_28%] border-b md:border-b-0 md:border-r overflow-auto transition-all duration-200 shrink-0"),style:{borderColor:"var(--border)"},children:(0,s.jsxs)("div",{className:"p-3 md:p-4 space-y-3 md:space-y-4",children:[(0,s.jsxs)("div",{className:"p-3 rounded-lg space-y-3",style:{backgroundColor:"var(--bg-secondary)",border:"1px solid var(--border)"},children:[(0,s.jsx)("h3",{className:"text-sm font-medium",style:{color:"var(--text-primary)"},children:"Configuration"}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"text-xs block mb-1",style:{color:"var(--text-tertiary)"},children:"Target URL"}),(0,s.jsx)("input",{type:"url",value:d,onChange:e=>x(e.target.value),disabled:g,className:"w-full text-sm px-2 py-1.5 rounded disabled:opacity-50",style:{backgroundColor:"var(--bg-primary)",border:"1px solid var(--border)",color:"var(--text-primary)"},placeholder:"http://localhost:3000"})]}),(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"text-xs block mb-1",style:{color:"var(--text-tertiary)"},children:"Browser"}),(0,s.jsxs)("select",{value:u,onChange:e=>p(e.target.value),disabled:g,className:"w-full text-sm px-2 py-1.5 rounded disabled:opacity-50",style:{backgroundColor:"var(--bg-primary)",border:"1px solid var(--border)",color:"var(--text-primary)"},children:[(0,s.jsx)("option",{value:"chromium",children:"Chromium"}),(0,s.jsx)("option",{value:"firefox",children:"Firefox"}),(0,s.jsx)("option",{value:"webkit",children:"WebKit"}),(0,s.jsx)("option",{value:"edge",children:"Edge"})]})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{className:"text-xs block mb-1",style:{color:"var(--text-tertiary)"},children:"Timeout (ms)"}),(0,s.jsx)("input",{type:"number",value:b,onChange:e=>v(Number(e.target.value)),disabled:g,className:"w-full text-sm px-2 py-1.5 rounded disabled:opacity-50",style:{backgroundColor:"var(--bg-primary)",border:"1px solid var(--border)",color:"var(--text-primary)"}})]})]}),(0,s.jsxs)("label",{className:"flex items-center gap-2 text-xs cursor-pointer",children:[(0,s.jsx)("input",{type:"checkbox",checked:m,onChange:e=>h(e.target.checked),disabled:g,className:"accent-[var(--accent)]"}),(0,s.jsx)("span",{style:{color:"var(--text-secondary)"},children:"Run headless"})]})]}),(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,s.jsxs)("h3",{className:"text-sm font-medium",style:{color:"var(--text-primary)"},children:["Test Cases (",ea.size,"/",r.length,")"]}),(0,s.jsx)("button",{onClick:ex,disabled:g,className:"text-xs underline disabled:opacity-50",style:{color:"var(--accent)"},children:ea.size===r.length?"Deselect All":"Select All"})]}),(0,s.jsx)("div",{className:"max-h-[150px] md:max-h-[200px] overflow-auto rounded-lg",style:{border:"1px solid var(--border)"},children:r.map(e=>{let t=w.find(t=>t.testCaseId===e.id);return(0,s.jsxs)("label",{className:"flex items-center gap-2 px-3 py-2 text-xs border-b last:border-b-0 hover:opacity-80 cursor-pointer",style:{borderColor:"var(--border)",backgroundColor:ea.has(e.id)?"var(--bg-secondary)":"transparent"},children:[(0,s.jsx)("input",{type:"checkbox",checked:ea.has(e.id),onChange:()=>ed(e.id),disabled:g,className:"accent-[var(--accent)]"}),(0,s.jsx)("span",{className:"flex-1 truncate",style:{color:"var(--text-primary)"},children:e.code}),t&&(0,s.jsx)("span",{style:{color:"pass"===t.status?"var(--status-pass-text)":"var(--status-fail-text)"},children:"pass"===t.status?"✓":"✗"})]},e.id)})})]}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)("button",{onClick:ep,disabled:g||k||0===ea.size,className:"w-full px-3 py-2 text-xs rounded flex items-center justify-center gap-2 disabled:opacity-50",style:{border:"1px solid var(--border)",color:"var(--text-secondary)"},children:k?"⏳ Generating...":"{ } Generate Scripts"}),X&&(0,s.jsx)("button",{onClick:()=>G(!0),className:"w-full px-3 py-2 text-xs rounded flex items-center justify-center gap-2",style:{backgroundColor:"var(--status-skip-bg)",border:"1px solid var(--status-skip-border)",color:"var(--status-skip-text)"},children:"\uD83D\uDD27 View Healing Report"})]})]})}),(0,s.jsxs)("div",{ref:O,className:"flex-1 flex flex-col overflow-hidden min-h-0",children:[(0,s.jsxs)("div",{className:"flex-1 flex flex-col md:flex-row overflow-hidden min-h-0",children:[(0,s.jsxs)("div",{className:"flex-1 flex flex-col min-h-0 max-h-[45vh] md:max-h-none",children:[(0,s.jsx)("div",{className:"p-3 border-b",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)"},children:(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("h3",{className:"text-sm font-medium",style:{color:"var(--text-primary)"},children:"Execution Log"}),g&&(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("div",{className:"w-2 h-2 rounded-full bg-green-500 animate-pulse"}),(0,s.jsx)("span",{className:"text-xs truncate max-w-[150px]",style:{color:"var(--text-tertiary)"},children:S?S.title:"Processing..."})]})]})}),(0,s.jsxs)("div",{className:"flex-1 overflow-auto p-3 font-mono text-xs",style:{backgroundColor:"var(--bg-primary)"},children:[0===E.length?(0,s.jsx)("div",{className:"text-center py-8",style:{color:"var(--text-tertiary)"},children:'Click "Run Tests" to start'}):E.map((e,t)=>(0,s.jsx)("div",{className:"py-0.5",style:{color:(e=>{switch(e){case"error":return"var(--status-fail-text)";case"success":return"var(--status-pass-text)";case"ai":return"#8b5cf6";case"healing":return"#f59e0b";case"warning":return"var(--status-skip-text)";default:return"var(--text-secondary)"}})(e.type)},children:e.message.split("\n").map((e,t)=>(0,s.jsx)("div",{children:e||"\xa0"},t))},t)),(0,s.jsx)("div",{ref:es})]})]}),(0,s.jsx)("div",{className:"w-1 md:w-1.5 cursor-col-resize hover:bg-[var(--accent)] transition-colors shrink-0",style:{backgroundColor:"var(--border)"},onMouseDown:ei}),(0,s.jsxs)("div",{className:"border-t md:border-t-0 md:border-l flex flex-col transition-all duration-200",style:{borderColor:"var(--border)",maxHeight:z?"300px":"36px",minHeight:z?"200px":"36px",width:"auto",flex:z?"0 0 ".concat(W,"%"):"0 0 36px",...el?{maxHeight:"none",minHeight:"auto",flex:z?"0 0 ".concat(W,"%"):"0 0 36px"}:{}},children:[(0,s.jsxs)("div",{className:"p-2 md:p-3 border-b cursor-pointer flex items-center gap-2 shrink-0",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)"},onClick:()=>I(!z),children:[(0,s.jsx)("span",{className:"text-sm",children:"\uD83D\uDDA5️"}),z&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("h3",{className:"text-sm font-medium flex-1",style:{color:"var(--text-primary)"},children:"Browser Preview"}),(0,s.jsx)("span",{className:"text-xs",style:{color:"var(--text-tertiary)"},children:M.length>0?"".concat(M.length," screenshots"):""})]})]}),z&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"flex-1 overflow-auto p-2",style:{backgroundColor:"var(--bg-secondary)"},children:A?(0,s.jsx)("img",{src:"data:image/jpeg;base64,".concat(A),alt:"Browser preview",className:"w-full rounded"}):(0,s.jsx)("div",{className:"flex items-center justify-center h-full min-h-[100px] text-xs",style:{color:"#666"},children:g?"Waiting...":"Preview during execution"})}),M.length>0&&(0,s.jsx)("div",{className:"p-2 border-t overflow-x-auto flex gap-1 shrink-0",style:{borderColor:"var(--border)"},children:M.slice(-6).map((e,t)=>(0,s.jsx)("button",{onClick:()=>T(e.image),className:"flex-shrink-0 w-10 h-7 md:w-12 md:h-8 rounded overflow-hidden border",style:{border:A===e.image?"2px solid var(--accent)":"1px solid var(--border)"},title:e.label,children:(0,s.jsx)("img",{src:"data:image/jpeg;base64,".concat(e.image),alt:e.label,className:"w-full h-full object-cover"})},t))})]})]})]}),w.length>0&&(0,s.jsx)("div",{className:"p-2 md:p-3 border-t shrink-0",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)"},children:(0,s.jsxs)("div",{className:"flex flex-wrap gap-3 md:gap-4 text-xs md:text-sm",children:[(0,s.jsxs)("span",{style:{color:"var(--status-pass-text)"},children:["✓ ",w.filter(e=>"pass"===e.status).length]}),(0,s.jsxs)("span",{style:{color:"var(--status-fail-text)"},children:["✗ ",w.filter(e=>"fail"===e.status).length]}),(0,s.jsxs)("span",{style:{color:"var(--status-fail-text)"},children:["⚠ ",w.filter(e=>"error"===e.status).length]}),(0,s.jsxs)("span",{className:"ml-auto",style:{color:"var(--text-tertiary)"},children:[Math.round(w.reduce((e,t)=>e+t.duration,0)/1e3),"s"]})]})})]})]}),"scripts"===y&&(0,s.jsxs)("div",{className:"flex-1 overflow-hidden flex flex-col md:flex-row",children:[(0,s.jsx)("div",{className:"w-full md:w-64 border-b md:border-b-0 md:border-r overflow-auto max-h-[30vh] md:max-h-none",style:{borderColor:"var(--border)"},children:(0,s.jsxs)("div",{className:"p-3",children:[(0,s.jsx)("h3",{className:"text-sm font-medium mb-3",style:{color:"var(--text-primary)"},children:"Test Scripts"}),(0,s.jsx)("div",{className:"space-y-1",children:r.map(e=>{let t=!!Y[e.id],r=$===e.id;return(0,s.jsxs)("button",{onClick:()=>{Q(e.id),J(null)},className:"w-full text-left px-3 py-2 text-xs rounded flex items-center gap-2",style:{backgroundColor:r?"var(--bg-secondary)":"transparent",color:"var(--text-primary)",border:r?"1px solid var(--border)":"1px solid transparent"},children:[(0,s.jsx)("span",{className:t?"text-green-500":"text-gray-400",children:t?"✓":"○"}),(0,s.jsxs)("span",{className:"truncate",children:[e.code," - ",e.title]})]},e.id)})})]})}),(0,s.jsx)("div",{className:"flex-1 flex flex-col min-h-0 max-h-[45vh] md:max-h-none",children:$?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"p-3 border-b flex items-center justify-between shrink-0",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)"},children:[(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsxs)("h3",{className:"text-sm font-medium truncate",style:{color:"var(--text-primary)"},children:[null==(t=r.find(e=>e.id===$))?void 0:t.code," - Script"]}),(0,s.jsx)("p",{className:"text-xs mt-0.5",style:{color:"var(--text-tertiary)"},children:_?"Editing":"Click Edit to modify"})]}),(0,s.jsx)("div",{className:"flex gap-2 ml-2",children:_?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("button",{onClick:()=>{J(null),Z("")},className:"px-3 py-1.5 text-xs rounded",style:{border:"1px solid var(--border)",color:"var(--text-secondary)"},children:"Cancel"}),(0,s.jsx)("button",{onClick:eb,className:"px-3 py-1.5 text-xs rounded",style:{backgroundColor:"var(--accent)",color:"white"},children:"Save"})]}):(0,s.jsx)("button",{onClick:()=>{J($),Z(Y[$]||"")},className:"px-3 py-1.5 text-xs rounded",style:{border:"1px solid var(--border)",color:"var(--text-secondary)"},children:"✏️ Edit"})})]}),(0,s.jsx)("div",{className:"flex-1 overflow-auto p-4",style:{backgroundColor:"#1e1e2e"},children:_?(0,s.jsx)("textarea",{value:q,onChange:e=>Z(e.target.value),className:"w-full h-full min-h-[300px] font-mono text-sm p-4 rounded resize-none",style:{backgroundColor:"#1e1e2e",color:"#cdd6f4",border:"none",outline:"none"},spellCheck:!1}):Y[$]?(0,s.jsx)("pre",{className:"font-mono text-sm whitespace-pre-wrap",style:{color:"#cdd6f4"},children:Y[$]}):(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-4",children:[(0,s.jsx)("p",{className:"text-sm",style:{color:"#666"},children:"No script generated yet"}),(0,s.jsx)("button",{onClick:ep,disabled:k,className:"px-4 py-2 text-sm rounded disabled:opacity-50",style:{backgroundColor:"var(--accent)",color:"white"},children:k?"Generating...":"Generate Script"})]})})]}):(0,s.jsx)("div",{className:"flex-1 flex items-center justify-center p-4",children:(0,s.jsxs)("div",{className:"text-center",style:{color:"var(--text-tertiary)"},children:[(0,s.jsx)("p",{className:"text-3xl md:text-4xl mb-3"}),(0,s.jsx)("p",{className:"text-sm",children:"Select a test case to view its script"})]})})})]}),"history"===y&&(0,s.jsxs)("div",{className:"flex-1 overflow-hidden flex flex-col md:flex-row",children:[(0,s.jsx)("div",{className:"w-full md:w-80 border-b md:border-b-0 md:border-r overflow-auto max-h-[40vh] md:max-h-none",style:{borderColor:"var(--border)"},children:(0,s.jsxs)("div",{className:"p-3",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,s.jsxs)("h3",{className:"text-sm font-medium",style:{color:"var(--text-primary)"},children:["Run History (",n.runs.length,")"]}),n.runs.length>0&&(0,s.jsx)("button",{onClick:n.clearRuns,className:"text-xs underline",style:{color:"var(--status-fail-text)"},children:"Clear All"})]}),0===n.runs.length?(0,s.jsx)("div",{className:"text-center py-8 text-xs",style:{color:"var(--text-tertiary)"},children:"No test runs yet"}):(0,s.jsx)("div",{className:"space-y-2",children:n.runs.map(e=>(0,s.jsxs)("div",{className:"p-3 rounded-lg group relative",style:{backgroundColor:(null==ee?void 0:ee.id)===e.id?"var(--bg-secondary)":"transparent",border:(null==ee?void 0:ee.id)===e.id?"1px solid var(--border)":"1px solid transparent"},children:[(0,s.jsxs)("button",{onClick:()=>et(e),className:"w-full text-left",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("span",{className:"text-xs font-medium",style:{color:"var(--text-primary)"},children:new Date(e.timestamp).toLocaleString()}),(0,s.jsxs)("span",{className:"text-xs",style:{color:e.totalFailed>0?"var(--status-fail-text)":"var(--status-pass-text)"},children:[e.totalPassed,"✓ ",e.totalFailed,"✗"]})]}),(0,s.jsxs)("div",{className:"text-xs mt-1 truncate",style:{color:"var(--text-tertiary)"},children:[e.config.baseUrl," • ",e.config.browser]})]}),(0,s.jsx)("button",{onClick:()=>{n.deleteRun(e.id),(null==ee?void 0:ee.id)===e.id&&et(null)},className:"absolute top-2 right-2 p-1 rounded opacity-0 group-hover:opacity-100 transition-opacity",style:{color:"var(--status-fail-text)"},title:"Delete run",children:"✕"})]},e.id))})]})}),(0,s.jsx)("div",{className:"flex-1 overflow-auto",children:ee?(0,s.jsxs)("div",{className:"p-4 space-y-4",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-sm font-medium",style:{color:"var(--text-primary)"},children:"Run Details"}),(0,s.jsx)("p",{className:"text-xs",style:{color:"var(--text-tertiary)"},children:new Date(ee.timestamp).toLocaleString()})]}),(0,s.jsxs)("div",{className:"flex gap-3 text-sm",children:[(0,s.jsxs)("span",{style:{color:"var(--status-pass-text)"},children:["✓ ",ee.totalPassed]}),(0,s.jsxs)("span",{style:{color:"var(--status-fail-text)"},children:["✗ ",ee.totalFailed]})]})]}),(0,s.jsx)("div",{className:"space-y-2",children:ee.results.map((e,t)=>(0,s.jsxs)("div",{className:"p-3 rounded-lg",style:{backgroundColor:"var(--bg-secondary)",border:"1px solid ".concat("pass"===e.status?"var(--status-pass-border)":"var(--status-fail-border)")},children:[(0,s.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-2",children:[(0,s.jsxs)("span",{className:"text-sm font-medium truncate",style:{color:"var(--text-primary)"},children:[e.testCaseCode||"Test ".concat(t+1)," - ",e.testCaseTitle]}),(0,s.jsx)("span",{className:"text-xs px-2 py-0.5 rounded shrink-0",style:{backgroundColor:"pass"===e.status?"var(--status-pass-bg)":"var(--status-fail-bg)",color:"pass"===e.status?"var(--status-pass-text)":"var(--status-fail-text)"},children:e.status.toUpperCase()})]}),e.error&&(0,s.jsx)("p",{className:"text-xs mt-2 p-2 rounded break-words",style:{backgroundColor:"var(--status-fail-bg)",color:"var(--status-fail-text)"},children:e.error}),(0,s.jsx)("div",{className:"mt-2 space-y-1",children:e.steps.map((e,t)=>(0,s.jsxs)("div",{className:"flex items-start gap-2 text-xs",children:[(0,s.jsx)("span",{className:"shrink-0",style:{color:"pass"===e.status?"var(--status-pass-text)":"var(--status-fail-text)"},children:"pass"===e.status?"✓":"✗"}),(0,s.jsx)("span",{style:{color:"var(--text-secondary)"},children:e.step})]},t))}),e.aiAnalysis&&(0,s.jsxs)("div",{className:"mt-2 p-2 rounded text-xs break-words",style:{backgroundColor:"var(--bg-primary)",color:"var(--text-secondary)"},children:[(0,s.jsx)("strong",{children:"AI:"})," ",e.aiAnalysis]})]},e.testCaseId))})]}):(0,s.jsx)("div",{className:"flex items-center justify-center h-full p-4",children:(0,s.jsxs)("div",{className:"text-center",style:{color:"var(--text-tertiary)"},children:[(0,s.jsx)("p",{className:"text-3xl md:text-4xl mb-3",children:"\uD83D\uDCCB"}),(0,s.jsx)("p",{className:"text-sm",children:"Select a run to view details"})]})})})]}),(0,s.jsxs)("div",{className:"p-3 md:p-4 border-t flex items-center justify-between shrink-0",style:{borderColor:"var(--border)"},children:[(0,s.jsxs)("div",{className:"text-xs truncate max-w-[200px] md:max-w-none",style:{color:"var(--text-tertiary)"},children:[g&&S&&(0,s.jsxs)("span",{children:["Running: ",S.title]}),!g&&w.length>0&&(0,s.jsxs)("span",{children:[w.length," tests completed"]}),!g&&0===w.length&&"runner"===y&&(0,s.jsx)("span",{className:"hidden sm:inline",children:"Config saved per project"})]}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)("button",{onClick:o,disabled:g,className:"px-3 md:px-4 py-2 text-sm rounded disabled:opacity-50",style:{border:"1px solid var(--border)",color:"var(--text-secondary)"},children:"Close"}),"runner"===y&&(g?(0,s.jsx)("button",{onClick:eh,className:"px-3 md:px-4 py-2 text-sm rounded flex items-center gap-2",style:{backgroundColor:"#ef4444",color:"white"},children:"■ Stop"}):(0,s.jsx)("button",{onClick:em,disabled:0===ea.size,className:"px-3 md:px-4 py-2 text-sm rounded disabled:opacity-50",style:{backgroundColor:"var(--accent)",color:"white"},children:"▶ Run"}))]})]})]}),H&&(0,s.jsx)("div",{className:"fixed inset-0 z-60 flex items-center justify-center p-4",style:{backgroundColor:"rgba(0,0,0,0.6)"},children:(0,s.jsxs)("div",{className:"w-full max-w-2xl max-h-[80vh] rounded-lg shadow-xl flex flex-col",style:{backgroundColor:"var(--bg-primary)",border:"1px solid var(--border)"},children:[(0,s.jsxs)("div",{className:"flex items-center justify-between p-4 border-b",style:{borderColor:"var(--border)"},children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{className:"text-lg font-semibold",style:{color:"var(--text-primary)"},children:"\uD83D\uDD27 Healing Report"}),(0,s.jsx)("p",{className:"text-xs mt-1",style:{color:"var(--text-tertiary)"},children:"AI recommendations"})]}),(0,s.jsx)("button",{onClick:()=>G(!1),className:"p-1 rounded hover:opacity-80",style:{color:"var(--text-tertiary)"},children:"✕"})]}),(0,s.jsx)("div",{className:"flex-1 overflow-auto p-4",children:(0,s.jsx)("pre",{className:"whitespace-pre-wrap text-xs font-mono break-words",style:{color:"var(--text-secondary)"},children:X})}),(0,s.jsx)("div",{className:"p-4 border-t flex justify-end",style:{borderColor:"var(--border)"},children:(0,s.jsx)("button",{onClick:()=>G(!1),className:"px-4 py-2 text-sm rounded",style:{backgroundColor:"var(--accent)",color:"white"},children:"Close"})})]})})]})}let G=(0,r(3101).F)("mx-auto flex h-[54px] w-max items-center justify-center gap-1.5 rounded-xl border p-2"),Y=l.forwardRef((e,t)=>{let{className:r,children:a,iconSize:o=36,direction:l="middle",...n}=e;return(0,s.jsx)("div",{ref:t,...n,className:(0,x.cn)(G({className:r}),{"items-start":"top"===l,"items-center":"middle"===l,"items-end":"bottom"===l}),children:a})});Y.displayName="Dock";let V=e=>{let{size:t=36,label:r,className:a,children:o,...n}=e,[i,c]=(0,l.useState)(!1);return(0,s.jsxs)("div",{className:(0,x.cn)("relative flex items-center cursor-pointer rounded-lg transition-all duration-200",a),style:{height:t},onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),...n,children:[(0,s.jsxs)("div",{className:"flex items-center justify-center flex-shrink-0 transition-all duration-200",style:{width:t,height:t},children:[o,i&&(0,s.jsx)("div",{className:"absolute inset-0 rounded-lg overflow-hidden pointer-events-none",style:{opacity:.15},children:(0,s.jsx)("div",{style:{position:"absolute",inset:0,background:"linear-gradient(105deg, transparent 40%, rgba(255,255,255,0.4) 45%, rgba(255,255,255,0.6) 50%, rgba(255,255,255,0.4) 55%, transparent 60%)",backgroundSize:"200% 100%",animation:"dockShimmer 1.5s ease-in-out"}})})]}),(0,s.jsx)(y.N,{children:i&&r&&(0,s.jsx)(d.P.span,{initial:{width:0,opacity:0},animate:{width:"auto",opacity:1},exit:{width:0,opacity:0},transition:{duration:.35,ease:[.25,.1,.25,1]},className:"text-[10px] font-medium whitespace-nowrap overflow-hidden flex-shrink-0 pr-2",style:{color:"var(--text-secondary)"},children:r})})]})};function _(e){var t;let{selectedNode:r,testCases:a,stats:i,columns:c,projectId:d,project:x,fullscreen:u,allNodes:p,allTestCases:m,onSelectNode:h,onAddTestCase:b,onUpdateTestCase:v,onDeleteTestCase:y,onBulkDelete:C,onBulkUpdate:w,onReorderTestCases:N,onReorderColumn:S,onToggleColumn:D,onRenameColumn:E,onUpdateNode:R,onAddColumn:T,onDeleteColumn:z,confirmDialog:I}=e;(0,n.useRouter)();let[W,F]=(0,l.useState)(!1),[P,O]=(0,l.useState)(!1),[X,G]=(0,l.useState)(!1),[_,Z]=(0,l.useState)(!1),[$,Q]=(0,l.useState)(!1),[ee,et]=(0,l.useState)(!1),[er,es]=(0,l.useState)(!1),[ea,eo]=(0,l.useState)(!1),[el,en]=(0,l.useState)(!1),[ei,ec]=(0,l.useState)(new Set),[ed,ex]=(0,l.useState)(new Set),[eu,ep]=(0,l.useState)(!1),[em,eh]=(0,l.useState)(new Set),[eb,ev]=(0,l.useState)(null),[ey,ef]=(0,l.useState)("asc"),[eg,ej]=(0,l.useState)(!1),[ek,eC]=(0,l.useState)(""),ew=(0,l.useRef)(null),eN=(0,l.useRef)(null),eS=u?c:c.filter(e=>"code"!==e.key),eD=f._X.map(e=>e.key);(0,l.useEffect)(()=>{eh(new Set)},[null==r?void 0:r.id]);let eE=(0,l.useCallback)(e=>{eh(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},[]),eL=(0,l.useCallback)(e=>{ec(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},[]),eM=(0,l.useCallback)(()=>ec(new Set),[]),eR=(0,l.useCallback)(e=>{ex(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},[]),eA=(0,l.useCallback)(()=>ex(new Set),[]),eT=ei.size+ed.size,ez=a.filter(e=>{let t=0===ei.size||ei.has(e.status),r=0===ed.size||ed.has(e.case_type);return t&&r}),eI=(0,l.useCallback)(()=>{em.size===ez.length?eh(new Set):eh(new Set(ez.map(e=>e.id)))},[em.size,ez]),eW=(0,l.useCallback)(()=>eh(new Set),[]),eF=(0,l.useCallback)(async()=>{r&&0!==em.size&&(!I||await I("Delete Test Cases","Delete ".concat(em.size," selected test case(s)?")))&&(C(r.id,Array.from(em)),eh(new Set))},[r,em,C,I]),eB=(0,l.useCallback)(e=>{r&&0!==em.size&&(w(r.id,Array.from(em),{status:e}),eh(new Set))},[r,em,w]),eP=eb?[...ez].sort((e,t)=>{let r=e[eb]||"",s=t[eb]||"",a=r.localeCompare(s);return"asc"===ey?a:-a}):ez;(0,l.useEffect)(()=>{if(!eu||0===em.size)return;let e=e=>{var t;let r=null==(t=e.target)?void 0:t.tagName;"INPUT"!==r&&"TEXTAREA"!==r&&(("p"===e.key||"P"===e.key)&&(e.preventDefault(),eB("pass")),("f"===e.key||"F"===e.key)&&(e.preventDefault(),eB("fail")),("k"===e.key||"K"===e.key)&&(e.preventDefault(),eB("skip")),("u"===e.key||"U"===e.key)&&(e.preventDefault(),eB("untested")),("b"===e.key||"B"===e.key)&&(e.preventDefault(),eB("blocked")),("d"===e.key||"D"===e.key)&&(e.preventDefault(),eF()),"Escape"===e.key&&(e.preventDefault(),eW()))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[eu,em.size,eB,eF,eW]),(0,l.useEffect)(()=>{eg&&ew.current&&ew.current.focus()},[eg]),(0,l.useEffect)(()=>{if(!er)return;let e=e=>{eN.current&&!eN.current.contains(e.target)&&es(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[er]);let eU=(0,l.useCallback)(e=>{if(r)for(let t of e)b(r.id,t.title,t.steps,t.expected)},[r,b]),eO=(0,l.useCallback)(e=>{if(r)for(let t of e)b(r.id,t.title,t.steps,t.expected)},[r,b]);return r?(0,s.jsxs)("div",{className:"jsx-bc071752c54fb059 flex flex-col h-full relative",children:[(0,s.jsxs)("div",{style:{borderColor:"var(--border)"},className:"jsx-bc071752c54fb059 px-4 py-3 border-b",children:[(0,s.jsx)("h2",{style:{color:"var(--text-primary)"},className:"jsx-bc071752c54fb059 text-base font-medium mb-2",children:r.label}),(0,s.jsx)(j,{value:i.passRate}),(0,s.jsxs)("div",{className:"jsx-bc071752c54fb059 flex items-center gap-1.5 mt-2 flex-wrap",children:[(0,s.jsx)("button",{onClick:()=>{ep(e=>!e),eu&&eh(new Set)},style:{backgroundColor:eu?"var(--accent)":"transparent",color:eu?"#fff":"var(--text-tertiary)",borderColor:eu?"transparent":"var(--border)"},className:"jsx-bc071752c54fb059 px-3 py-0.5 text-[10px] font-medium rounded-sm border transition-colors",children:"Select"}),eu&&em.size>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("span",{style:{backgroundColor:"var(--accent)",color:"#fff"},className:"jsx-bc071752c54fb059 px-2 py-0.5 text-[10px] font-medium rounded-sm",children:[em.size," selected"]}),(0,s.jsx)("button",{onClick:eW,style:{borderColor:"var(--border)",color:"var(--text-secondary)"},className:"jsx-bc071752c54fb059 px-2 py-0.5 text-[10px] font-medium rounded-sm border transition-colors hover:bg-[var(--bg-secondary)]",children:"Unselect All"})]}),(0,s.jsxs)("div",{className:"jsx-bc071752c54fb059 relative flex items-center gap-1",children:[(0,s.jsx)("button",{onClick:()=>en(e=>!e),style:{color:eT>0||el?"var(--accent)":"var(--text-tertiary)"},title:"Filters",className:"jsx-bc071752c54fb059 relative p-1 rounded-sm transition-colors hover:bg-[var(--bg-secondary)]",children:(0,s.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:eT>0?"2.5":"2",strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-bc071752c54fb059",children:(0,s.jsx)("polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",className:"jsx-bc071752c54fb059"})})}),eT>0&&!el&&(0,s.jsxs)("span",{style:{color:"var(--text-tertiary)"},className:"jsx-bc071752c54fb059 text-[10px] font-medium",children:[eT," filter",eT>1?"s":""," active"]})]}),(0,s.jsx)("div",{className:"jsx-bc071752c54fb059 flex-1"}),(0,s.jsx)("button",{onClick:()=>F(e=>!e),style:{color:W?"var(--accent)":"var(--text-tertiary)"},title:"Notes",className:"jsx-bc071752c54fb059 p-1 rounded transition-colors hover:bg-[var(--bg-secondary)]",children:(0,s.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-bc071752c54fb059",children:[(0,s.jsx)("path",{d:"M11 4H4a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2v-7",className:"jsx-bc071752c54fb059"}),(0,s.jsx)("path",{d:"M18.5 2.5a2.121 2.121 0 013 3L12 15l-4 1 1-4 9.5-9.5z",className:"jsx-bc071752c54fb059"})]})}),(0,s.jsx)("button",{onClick:()=>eo(e=>!e),style:{color:ea?"var(--accent)":"var(--text-tertiary)"},title:ea?"Collapse All":"Expand All",className:"jsx-bc071752c54fb059 p-1 rounded transition-colors hover:bg-[var(--bg-secondary)]",children:(0,s.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-bc071752c54fb059",children:ea?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("line",{x1:"3",y1:"6",x2:"21",y2:"6",className:"jsx-bc071752c54fb059"}),(0,s.jsx)("line",{x1:"3",y1:"12",x2:"21",y2:"12",className:"jsx-bc071752c54fb059"}),(0,s.jsx)("line",{x1:"3",y1:"18",x2:"21",y2:"18",className:"jsx-bc071752c54fb059"}),(0,s.jsx)("polyline",{points:"7 3 3 6 7 9",className:"jsx-bc071752c54fb059"}),(0,s.jsx)("polyline",{points:"17 15 21 18 17 21",className:"jsx-bc071752c54fb059"})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("line",{x1:"3",y1:"6",x2:"21",y2:"6",className:"jsx-bc071752c54fb059"}),(0,s.jsx)("line",{x1:"3",y1:"12",x2:"21",y2:"12",className:"jsx-bc071752c54fb059"}),(0,s.jsx)("line",{x1:"3",y1:"18",x2:"21",y2:"18",className:"jsx-bc071752c54fb059"}),(0,s.jsx)("polyline",{points:"17 3 21 6 17 9",className:"jsx-bc071752c54fb059"}),(0,s.jsx)("polyline",{points:"7 15 3 18 7 21",className:"jsx-bc071752c54fb059"})]})})})]}),el&&(0,s.jsxs)("div",{className:"jsx-bc071752c54fb059 flex items-center gap-1.5 flex-wrap",children:[(0,s.jsx)("div",{style:{backgroundColor:"var(--border)"},className:"jsx-bc071752c54fb059 w-px h-4 mx-0.5"}),[["all","All"],["untested","Untested"],["pass","Pass"],["fail","Fail"],["skip","Skip"],["blocked","Blocked"]].map(e=>{let[t,r]=e,o="all"===t?0===ei.size:ei.has(t),l="all"===t?a.length:a.filter(e=>e.status===t).length,n={all:{bg:"var(--bg-secondary)",text:"var(--text-secondary)"},untested:{bg:"var(--status-untested-bg)",text:"var(--status-untested-text)"},pass:{bg:"var(--status-pass-bg)",text:"var(--status-pass-text)"},fail:{bg:"var(--status-fail-bg)",text:"var(--status-fail-text)"},skip:{bg:"var(--status-skip-bg)",text:"var(--status-skip-text)"},blocked:{bg:"var(--status-blocked-bg)",text:"var(--status-blocked-text)"}}[t];return(0,s.jsxs)("button",{onClick:()=>"all"===t?eM():eL(t),style:{backgroundColor:o?n.bg:"transparent",color:o?n.text:"var(--text-tertiary)",borderColor:o?"transparent":"var(--border)"},className:"jsx-bc071752c54fb059 flex items-center gap-1 px-2 py-0.5 text-[10px] font-medium rounded-full border transition-colors",children:[r,(0,s.jsx)("span",{style:{backgroundColor:o?"rgba(0,0,0,0.1)":"var(--bg-secondary)",color:o?n.text:"var(--text-tertiary)"},className:"jsx-bc071752c54fb059 px-1 py-0 text-[9px] rounded-full min-w-[16px] text-center",children:l})]},t)}),(0,s.jsx)("div",{style:{backgroundColor:"var(--border)"},className:"jsx-bc071752c54fb059 w-px h-4 mx-0.5"}),[["all","All"],...f.D_.map(e=>[e,e])].map(e=>{let[t,r]=e,o="all"===t?0===ed.size:ed.has(t),l="all"===t?a.length:a.filter(e=>e.case_type===t).length,n={all:{bg:"var(--bg-secondary)",text:"var(--text-secondary)"},Positive:{bg:"var(--status-pass-bg)",text:"var(--status-pass-text)"},Negative:{bg:"var(--status-fail-bg)",text:"var(--status-fail-text)"},General:{bg:"var(--bg-secondary)",text:"var(--text-tertiary)"}},i=n[t]||n.General;return(0,s.jsxs)("button",{onClick:()=>"all"===t?eA():eR(t),style:{backgroundColor:o?i.bg:"transparent",color:o?i.text:"var(--text-tertiary)",borderColor:o?"transparent":"var(--border)"},className:"jsx-bc071752c54fb059 flex items-center gap-1 px-2 py-0.5 text-[10px] font-medium rounded-full border transition-colors",children:[r,(0,s.jsx)("span",{style:{backgroundColor:o?"rgba(0,0,0,0.1)":"var(--bg-secondary)",color:o?i.text:"var(--text-tertiary)"},className:"jsx-bc071752c54fb059 px-1 py-0 text-[9px] rounded-full min-w-[16px] text-center",children:l})]},"ct-".concat(t))})]})]}),W&&(0,s.jsxs)("div",{style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)"},className:"jsx-bc071752c54fb059 px-4 py-3 border-b",children:[(0,s.jsx)("label",{style:{color:"var(--text-tertiary)"},className:"jsx-bc071752c54fb059 text-xs font-medium mb-1 block",children:"Node Notes"}),(0,s.jsx)("textarea",{value:null!=(t=r.notes)?t:"",onChange:e=>R(r.id,{notes:e.target.value}),placeholder:"Add notes for this node...",rows:3,style:{borderColor:"var(--border)",borderRadius:"var(--radius-sm)",color:"var(--text-primary)"},className:"jsx-bc071752c54fb059 w-full px-3 py-2 text-sm bg-transparent outline-none border resize-none"})]}),(0,s.jsx)("div",{className:"jsx-bc071752c54fb059 px-4 py-3",children:(0,s.jsx)(k,{onAdd:e=>b(r.id,e),nodeLabel:r.label})}),(0,s.jsx)("div",{className:"jsx-bc071752c54fb059 flex-1 min-h-0 overflow-auto px-2",children:0===a.length?(0,s.jsx)(g.p,{message:"No test cases yet. Use the quick-add bar or Generate button to add test cases."}):(0,s.jsx)(L,{testCases:eP,columns:eS,expandAll:ea,selectMode:eu,selectedIds:em,onToggleSelect:eE,onToggleSelectAll:eI,sortKey:eb,sortDirection:ey,onSortChange:e=>{null===e?ev(null):eb===e?ef(e=>"asc"===e?"desc":"asc"):(ev(e),ef("asc"))},onUpdate:(e,t)=>v(r.id,e,t),onDelete:e=>y(r.id,e),onReorder:e=>N(r.id,e),onAddColumn:T?e=>T(r.id,e):void 0,onOpenColumns:()=>es(!0)})}),eu&&em.size>0&&(0,s.jsxs)("div",{style:{borderColor:"var(--border)",animation:"fadeInUp 150ms ease-out"},className:"jsx-bc071752c54fb059 px-4 py-2 border-t flex items-center gap-3",children:[(0,s.jsxs)("span",{style:{color:"var(--text-primary)"},className:"jsx-bc071752c54fb059 text-xs font-medium",children:[em.size," selected"]}),(0,s.jsx)("div",{className:"jsx-bc071752c54fb059 flex-1"}),[["pass","P"],["fail","F"],["skip","K"],["untested","U"],["blocked","B"]].map(e=>{let[t,r]=e;return(0,s.jsxs)("button",{onClick:()=>eB(t),style:{borderColor:"var(--border)",color:"var(--text-secondary)"},title:"Mark ".concat(t," (").concat(r,")"),className:"jsx-bc071752c54fb059 px-2 py-1 text-[10px] font-medium rounded-md border transition-colors hover:bg-[var(--bg-secondary)]",children:[t.charAt(0).toUpperCase()+t.slice(1),(0,s.jsx)("kbd",{style:{backgroundColor:"var(--bg-secondary)",color:"var(--text-tertiary)"},className:"jsx-bc071752c54fb059 ml-1 text-[8px] px-0.5 rounded",children:r})]},t)}),(0,s.jsx)("div",{style:{backgroundColor:"var(--border)"},className:"jsx-bc071752c54fb059 w-px h-4"}),(0,s.jsxs)("button",{onClick:eF,style:{borderColor:"var(--border)",color:"var(--status-fail-text)"},title:"Delete (D)",className:"jsx-bc071752c54fb059 px-2 py-1 text-[10px] font-medium rounded-md border transition-colors hover:bg-[var(--status-fail-bg)]",children:["Delete",(0,s.jsx)("kbd",{style:{backgroundColor:"var(--bg-secondary)",color:"var(--text-tertiary)"},className:"jsx-bc071752c54fb059 ml-1 text-[8px] px-0.5 rounded",children:"D"})]}),(0,s.jsx)("button",{onClick:eW,style:{color:"var(--text-tertiary)"},title:"Clear (Esc)",className:"jsx-bc071752c54fb059 px-1.5 py-1 text-[10px] font-medium rounded-md transition-colors hover:bg-[var(--bg-secondary)]",children:"\xd7"})]}),(0,s.jsx)(M,{stats:i,fullscreen:u,nodes:p,allTestCases:m,selectedNodeId:null==r?void 0:r.id,onSelectNode:h}),(0,s.jsxs)("div",{style:{borderColor:"var(--border)",backgroundColor:"var(--bg-primary)"},className:"jsx-bc071752c54fb059 flex-shrink-0 border-t py-2 flex justify-center relative",children:[er&&(0,s.jsx)("div",{ref:eN,style:{bottom:"100%",left:"50%",transform:"translateX(-50%)",marginBottom:4,backgroundColor:"var(--bg-card)",borderColor:"var(--border)",boxShadow:"var(--shadow-lg)",animation:"fadeIn 150ms ease-out",width:180},className:"jsx-bc071752c54fb059 absolute z-30 rounded-lg border",children:(0,s.jsxs)("div",{className:"jsx-bc071752c54fb059 py-1 max-h-[240px] overflow-y-auto",children:[c.map((e,t)=>{let o=!eD.includes(e.key);return(0,s.jsxs)("div",{className:"jsx-bc071752c54fb059 flex items-center justify-between px-3 py-1.5 text-[11px] hover:bg-[var(--bg-secondary)] transition-colors group/col",children:[(0,s.jsxs)("button",{onClick:()=>r&&D(r.id,e.key),style:{color:e.visible?"var(--text-primary)":"var(--text-tertiary)"},className:"jsx-bc071752c54fb059 flex items-center gap-2 flex-1 text-left",children:[(0,s.jsx)("span",{className:"jsx-bc071752c54fb059 w-3 text-center",children:e.visible?"✓":""}),(0,s.jsx)("span",{className:"jsx-bc071752c54fb059",children:e.label})]}),(0,s.jsxs)("div",{className:"jsx-bc071752c54fb059 flex items-center gap-0.5 opacity-0 group-hover/col:opacity-100 transition-opacity",children:[(0,s.jsx)("button",{onClick:()=>r&&(null==S?void 0:S(r.id,e.key,"up")),disabled:0===t,style:{color:"var(--text-tertiary)"},title:"Move up",className:"jsx-bc071752c54fb059 w-4 h-4 flex items-center justify-center rounded text-[10px] disabled:opacity-20 hover:bg-[var(--bg-secondary)]",children:"↑"}),(0,s.jsx)("button",{onClick:()=>r&&(null==S?void 0:S(r.id,e.key,"down")),disabled:t===c.length-1,style:{color:"var(--text-tertiary)"},title:"Move down",className:"jsx-bc071752c54fb059 w-4 h-4 flex items-center justify-center rounded text-[10px] disabled:opacity-20 hover:bg-[var(--bg-secondary)]",children:"↓"}),o&&(0,s.jsx)("button",{onClick:async()=>{if(r&&z)(!a.some(t=>{let r=t[e.key];return r&&"string"==typeof r&&""!==r.trim()})||!I||await I("Delete Column",'This column has data in some test cases. Delete "'.concat(e.label,'" anyway?')))&&z(r.id,e.key)},style:{color:"var(--status-fail-text)"},title:"Delete ".concat(e.label),className:"jsx-bc071752c54fb059 w-4 h-4 flex items-center justify-center rounded hover:opacity-100 transition-opacity text-[10px]",children:"\xd7"})]})]},e.key)}),eg?(0,s.jsx)("div",{className:"jsx-bc071752c54fb059 px-3 py-1.5",children:(0,s.jsx)("input",{ref:ew,value:ek,onChange:e=>eC(e.target.value),onKeyDown:e=>{"Enter"===e.key&&ek.trim()&&(null==T||T(r.id,ek.trim()),eC(""),ej(!1)),"Escape"===e.key&&(ej(!1),eC(""))},onBlur:()=>{ek.trim()&&(null==T||T(r.id,ek.trim())),eC(""),ej(!1)},placeholder:"Column name...",style:{borderColor:"var(--accent)",backgroundColor:"var(--bg-card)",color:"var(--text-primary)"},className:"jsx-bc071752c54fb059 w-full px-2 py-1 text-[11px] rounded border outline-none"})}):(0,s.jsxs)("button",{onClick:()=>ej(!0),style:{color:"var(--accent)"},className:"jsx-bc071752c54fb059 w-full px-3 py-1.5 text-[11px] text-left flex items-center gap-2 hover:bg-[var(--bg-secondary)] transition-colors",children:[(0,s.jsx)("span",{className:"jsx-bc071752c54fb059 w-3 text-center",children:"+"}),(0,s.jsx)("span",{className:"jsx-bc071752c54fb059",children:"Add Column"})]})]})}),(0,s.jsxs)(Y,{direction:"middle",iconSize:36,children:[(0,s.jsx)(V,{label:"Summary",onClick:()=>Z(!0),children:(0,s.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-secondary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-bc071752c54fb059",children:[(0,s.jsx)("path",{d:"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z",className:"jsx-bc071752c54fb059"}),(0,s.jsx)("polyline",{points:"14 2 14 8 20 8",className:"jsx-bc071752c54fb059"}),(0,s.jsx)("line",{x1:"16",y1:"13",x2:"8",y2:"13",className:"jsx-bc071752c54fb059"}),(0,s.jsx)("line",{x1:"16",y1:"17",x2:"8",y2:"17",className:"jsx-bc071752c54fb059"}),(0,s.jsx)("polyline",{points:"10 9 9 9 8 9",className:"jsx-bc071752c54fb059"})]})}),(0,s.jsx)(V,{label:"Columns",onClick:()=>es(!er),children:(0,s.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:er?"var(--accent)":"var(--text-secondary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-bc071752c54fb059",children:[(0,s.jsx)("rect",{x:"3",y:"3",width:"7",height:"7",className:"jsx-bc071752c54fb059"}),(0,s.jsx)("rect",{x:"14",y:"3",width:"7",height:"7",className:"jsx-bc071752c54fb059"}),(0,s.jsx)("rect",{x:"14",y:"14",width:"7",height:"7",className:"jsx-bc071752c54fb059"}),(0,s.jsx)("rect",{x:"3",y:"14",width:"7",height:"7",className:"jsx-bc071752c54fb059"})]})}),(0,s.jsx)("div",{style:{backgroundColor:"var(--border)"},className:"jsx-bc071752c54fb059 w-px h-5 mx-0.5 flex-shrink-0"}),(0,s.jsx)(q,{onExport:()=>O(!0),onImport:()=>Q(!0)}),(0,s.jsx)(J,{selectedNode:r,filteredTestCases:ez,columns:c}),(0,s.jsx)("div",{style:{backgroundColor:"var(--border)"},className:"jsx-bc071752c54fb059 w-px h-5 mx-0.5 flex-shrink-0"}),(0,s.jsx)(V,{label:"E2E Test",onClick:()=>et(!0),children:(0,s.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-secondary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-bc071752c54fb059",children:[(0,s.jsx)("circle",{cx:"12",cy:"12",r:"10",className:"jsx-bc071752c54fb059"}),(0,s.jsx)("polyline",{points:"12 6 12 12 16 14",className:"jsx-bc071752c54fb059"})]})}),(0,s.jsx)(V,{label:"Generate",onClick:()=>G(!0),children:(0,s.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-secondary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-bc071752c54fb059",children:(0,s.jsx)("polygon",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2",className:"jsx-bc071752c54fb059"})})})]})]}),(0,s.jsx)(A,{open:P,onClose:()=>O(!1),node:r,testCases:eP,columns:c}),(0,s.jsx)(B,{open:X,onClose:()=>G(!1),node:r,project:x,onGenerate:eU}),(0,s.jsx)(U,{open:_,onClose:()=>Z(!1),node:r,testCases:a,stats:i}),(0,s.jsx)(K,{open:$,onClose:()=>Q(!1),onImport:eO,nodeLabel:r.label}),ee&&r&&(0,s.jsx)(H,{testCases:a,projectId:d,onClose:()=>et(!1)}),(0,s.jsx)(o(),{id:"bc071752c54fb059",children:"@keyframes fadeInUp{from{opacity:0;transform:translatey(8px)}to{opacity:1;transform:translatey(0)}}"})]}):(0,s.jsx)("div",{className:"h-full",children:(0,s.jsx)(g.p,{message:"Select a node from the mindmap to view its test cases."})})}function J(e){let{selectedNode:t,filteredTestCases:r,columns:a}=e,[o,n]=(0,l.useState)(!1),[i,c]=(0,l.useState)(null),x=e=>{let s="md"===e?(0,R.wy)(t,r,a):(0,R.nN)(t,r);navigator.clipboard.writeText(s).then(()=>{c(e),setTimeout(()=>c(null),2e3)})};return(0,s.jsxs)("div",{className:"relative flex items-center cursor-pointer rounded-lg",style:{height:36},onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),children:[(0,s.jsxs)("div",{className:"flex items-center justify-center flex-shrink-0",style:{width:36,height:36},children:[(0,s.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-secondary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,s.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,s.jsx)("path",{d:"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1"})]}),o&&(0,s.jsx)("div",{className:"absolute inset-0 rounded-lg overflow-hidden pointer-events-none",style:{opacity:.15},children:(0,s.jsx)("div",{style:{position:"absolute",inset:0,background:"linear-gradient(105deg, transparent 40%, rgba(255,255,255,0.4) 45%, rgba(255,255,255,0.6) 50%, rgba(255,255,255,0.4) 55%, transparent 60%)",backgroundSize:"200% 100%",animation:"dockShimmer 1.5s ease-in-out"}})})]}),(0,s.jsx)(y.N,{children:o&&(0,s.jsxs)(d.P.div,{initial:{width:0,opacity:0},animate:{width:"auto",opacity:1},exit:{width:0,opacity:0},transition:{duration:.5,ease:[.25,.1,.25,1]},className:"flex items-center gap-0 overflow-hidden whitespace-nowrap flex-shrink-0",children:[(0,s.jsx)("button",{onClick:e=>{e.stopPropagation(),x("md")},className:"text-[10px] font-medium px-1.5 py-0.5 rounded transition-colors hover:bg-[var(--bg-secondary)]",style:{color:"md"===i?"var(--accent)":"var(--text-secondary)"},children:"md"===i?"Copied!":"Markdown"}),(0,s.jsx)("span",{className:"text-[10px]",style:{color:"var(--border)"},children:"|"}),(0,s.jsx)("button",{onClick:e=>{e.stopPropagation(),x("json")},className:"text-[10px] font-medium px-1.5 py-0.5 rounded transition-colors hover:bg-[var(--bg-secondary)]",style:{color:"json"===i?"var(--accent)":"var(--text-secondary)"},children:"json"===i?"Copied!":"JSON"})]})})]})}function q(e){let{onExport:t,onImport:r}=e,[a,o]=(0,l.useState)(!1);return(0,s.jsxs)("div",{className:"relative flex items-center cursor-pointer rounded-lg",style:{height:36},onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),children:[(0,s.jsxs)("div",{className:"flex items-center justify-center flex-shrink-0",style:{width:36,height:36},children:[(0,s.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-secondary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,s.jsx)("polyline",{points:"17 1 21 5 17 9"}),(0,s.jsx)("path",{d:"M3 11V9a4 4 0 014-4h14"}),(0,s.jsx)("polyline",{points:"7 23 3 19 7 15"}),(0,s.jsx)("path",{d:"M21 13v2a4 4 0 01-4 4H3"})]}),a&&(0,s.jsx)("div",{className:"absolute inset-0 rounded-lg overflow-hidden pointer-events-none",style:{opacity:.15},children:(0,s.jsx)("div",{style:{position:"absolute",inset:0,background:"linear-gradient(105deg, transparent 40%, rgba(255,255,255,0.4) 45%, rgba(255,255,255,0.6) 50%, rgba(255,255,255,0.4) 55%, transparent 60%)",backgroundSize:"200% 100%",animation:"dockShimmer 1.5s ease-in-out"}})})]}),(0,s.jsx)(y.N,{children:a&&(0,s.jsxs)(d.P.div,{initial:{width:0,opacity:0},animate:{width:"auto",opacity:1},exit:{width:0,opacity:0},transition:{duration:.5,ease:[.25,.1,.25,1]},className:"flex items-center gap-0 overflow-hidden whitespace-nowrap flex-shrink-0",children:[(0,s.jsx)("button",{onClick:e=>{e.stopPropagation(),t()},className:"text-[10px] font-medium px-1.5 py-0.5 rounded transition-colors hover:bg-[var(--bg-secondary)]",style:{color:"var(--text-secondary)"},children:"Export"}),(0,s.jsx)("span",{className:"text-[10px]",style:{color:"var(--border)"},children:"|"}),(0,s.jsx)("button",{onClick:e=>{e.stopPropagation(),r()},className:"text-[10px] font-medium px-1.5 py-0.5 rounded transition-colors hover:bg-[var(--bg-secondary)]",style:{color:"var(--text-secondary)"},children:"Import"})]})})]})}function Z(e){let{nodes:t,testCases:r,onSelectNode:a,onClose:o}=e,[n,i]=(0,l.useState)(""),[c,d]=(0,l.useState)(0),x=(0,l.useRef)(null),u=(0,l.useRef)(null);(0,l.useEffect)(()=>{var e;null==(e=x.current)||e.focus()},[]);let p=(0,l.useMemo)(()=>{if(!n.trim())return[];let e=n.toLowerCase().trim(),s=[];for(let o of t){var a;for(let t of null!=(a=r[o.id])?a:[]){let r=t.title.toLowerCase().includes(e),a=t.steps.toLowerCase().includes(e),l=t.expected.toLowerCase().includes(e),n=t.code.toLowerCase().includes(e);if(r||a||l||n){let e="title",r=t.title;a?(e="steps",r=t.steps):l?(e="expected",r=t.expected):n&&(e="code",r=t.code),s.push({node:o,testCase:t,matchField:e,matchText:r})}}}return s},[n,t,r]);(0,l.useEffect)(()=>{d(0)},[p.length]),(0,l.useEffect)(()=>{var e;u.current&&(null==(e=u.current.querySelectorAll("[data-search-item]")[c])||e.scrollIntoView({block:"nearest"}))},[c]);let m=(0,l.useCallback)(e=>{a(e.node.id),o()},[a,o]),h=(0,l.useCallback)(e=>{"Escape"===e.key?o():"ArrowDown"===e.key?(e.preventDefault(),d(e=>Math.min(e+1,p.length-1))):"ArrowUp"===e.key?(e.preventDefault(),d(e=>Math.max(e-1,0))):"Enter"===e.key&&p.length>0&&(e.preventDefault(),m(p[c]))},[p,c,m,o]),b=(e,t)=>{if(!t.trim())return e;let r=e.toLowerCase().indexOf(t.toLowerCase());if(-1===r)return e;let a=e.slice(0,r),o=e.slice(r,r+t.length),l=e.slice(r+t.length);return(0,s.jsxs)(s.Fragment,{children:[a.length>30&&"...",a.length>30?a.slice(-30):a,(0,s.jsx)("mark",{style:{backgroundColor:"var(--accent)",color:"#fff",borderRadius:2,padding:"0 1px"},children:o}),l.slice(0,40),l.length>40&&"..."]})},v={untested:{bg:"var(--status-untested-bg)",text:"var(--status-untested-text)"},pass:{bg:"var(--status-pass-bg)",text:"var(--status-pass-text)"},fail:{bg:"var(--status-fail-bg)",text:"var(--status-fail-text)"},skip:{bg:"var(--status-skip-bg)",text:"var(--status-skip-text)"},blocked:{bg:"var(--status-blocked-bg)",text:"var(--status-blocked-text)"}};return(0,s.jsx)("div",{className:"fixed inset-0 z-[350] flex items-start justify-center pt-[15vh]",style:{backgroundColor:"rgba(0,0,0,0.3)",animation:"fadeIn 150ms ease-out"},onClick:o,children:(0,s.jsxs)("div",{className:"w-full max-w-lg rounded-xl overflow-hidden",style:{backgroundColor:"var(--bg-card)",boxShadow:"var(--shadow-lg)"},onClick:e=>e.stopPropagation(),children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 px-4 py-3 border-b",style:{borderColor:"var(--border)"},children:[(0,s.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,s.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,s.jsx)("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]}),(0,s.jsx)("input",{ref:x,value:n,onChange:e=>i(e.target.value),onKeyDown:h,placeholder:"Search test cases...",className:"flex-1 bg-transparent outline-none text-sm",style:{color:"var(--text-primary)"}}),(0,s.jsx)("kbd",{className:"text-[10px] px-1.5 py-0.5 rounded border",style:{borderColor:"var(--border)",color:"var(--text-tertiary)"},children:"ESC"})]}),(0,s.jsxs)("div",{ref:u,className:"max-h-[300px] overflow-y-auto",children:[n.trim()&&0===p.length&&(0,s.jsx)("div",{className:"px-4 py-8 text-center",children:(0,s.jsxs)("p",{className:"text-xs",style:{color:"var(--text-tertiary)"},children:["No test cases found for “",n,"”"]})}),p.map((e,t)=>{let r=v[e.testCase.status]||v.untested;return(0,s.jsxs)("div",{"data-search-item":!0,className:"flex items-start gap-3 px-4 py-2.5 cursor-pointer transition-colors",style:{backgroundColor:t===c?"var(--bg-secondary)":"transparent",borderLeft:t===c?"2px solid var(--accent)":"2px solid transparent"},onClick:()=>m(e),onMouseEnter:()=>d(t),children:[(0,s.jsx)("div",{className:"w-2 h-2 rounded-full mt-1.5 flex-shrink-0",style:{backgroundColor:r.text}}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsx)("div",{className:"flex items-center gap-2 mb-0.5",children:(0,s.jsx)("span",{className:"text-[10px] font-mono truncate",style:{color:"var(--text-tertiary)"},children:e.node.code||e.node.label})}),(0,s.jsx)("div",{className:"text-xs font-medium truncate",style:{color:"var(--text-primary)"},children:b(e.testCase.title,n)}),"title"!==e.matchField&&(0,s.jsxs)("div",{className:"text-[11px] truncate mt-0.5",style:{color:"var(--text-tertiary)"},children:[(0,s.jsxs)("span",{className:"font-medium",style:{color:"var(--text-secondary)"},children:[e.matchField,":"]})," ",b(e.matchText,n)]})]}),(0,s.jsx)("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full flex-shrink-0",style:{backgroundColor:r.bg,color:r.text},children:e.testCase.status})]},"".concat(e.node.id,"-").concat(e.testCase.id))})]}),n.trim()&&p.length>0&&(0,s.jsxs)("div",{className:"flex items-center gap-3 px-4 py-2 border-t",style:{borderColor:"var(--border)"},children:[(0,s.jsxs)("span",{className:"text-[10px]",style:{color:"var(--text-tertiary)"},children:[p.length," result",1!==p.length?"s":""]}),(0,s.jsxs)("div",{className:"flex items-center gap-1",children:[(0,s.jsx)("kbd",{className:"text-[9px] px-1 py-0.5 rounded border",style:{borderColor:"var(--border)",color:"var(--text-tertiary)"},children:"↑↓"}),(0,s.jsx)("span",{className:"text-[9px]",style:{color:"var(--text-tertiary)"},children:"navigate"})]}),(0,s.jsxs)("div",{className:"flex items-center gap-1",children:[(0,s.jsx)("kbd",{className:"text-[9px] px-1 py-0.5 rounded border",style:{borderColor:"var(--border)",color:"var(--text-tertiary)"},children:"↵"}),(0,s.jsx)("span",{className:"text-[9px]",style:{color:"var(--text-tertiary)"},children:"go to node"})]})]})]})})}function $(){var e,t,r,a,c,d,x;let u=(0,n.useParams)(),p=(0,n.useRouter)(),m=u.projectId,{projects:h,activeProject:b,activeProjectId:y,selectedNodeId:f,setSelectedNodeId:j,switchProject:k,mindmap:C,testCases:w,pushState:N,lastSaved:S,canUndo:D,canRedo:E,undo:L,redo:M,confirmDialog:R}=(0,i.M)(),A=null!=(t=h[m])?t:null,T=(0,l.useRef)(null),z=y===m?b:A;(0,l.useEffect)(()=>{h[m]&&T.current!==m&&(T.current=m,k(m))},[m,h,k]),(0,l.useEffect)(()=>{j(null)},[m,j]),(0,l.useEffect)(()=>{let e=setInterval(()=>O(new Date),1e4);return()=>clearInterval(e)},[]);let I=(0,l.useMemo)(()=>{var e;return null!=(e=null==z?void 0:z.flows.find(e=>e.id===f))?e:null},[z,f]),[W,F]=(0,l.useState)("mindmap"),[B,P]=(0,l.useState)(!1),[U,O]=(0,l.useState)(()=>new Date),[X,K]=(0,l.useState)(.5),[H,G]=(0,l.useState)(!1),[Y,V]=(0,l.useState)(!1),[J,q]=(0,l.useState)(!1),[$,Q]=(0,l.useState)(!1),ee=(0,l.useRef)(null),et=(0,l.useRef)(null),er=(0,l.useRef)(null),es=(0,l.useRef)(null),ea=(0,l.useRef)({mouseX:0,startRatio:.5}),eo=(0,l.useCallback)(e=>{e.preventDefault(),ea.current={mouseX:e.clientX,startRatio:X},G(!0)},[X]);return((0,l.useEffect)(()=>{if(!H)return;let e=e=>{if(!ee.current)return;let t=ee.current.getBoundingClientRect(),r=(e.clientX-ea.current.mouseX)/t.width;K(Math.max(.1,Math.min(.9,ea.current.startRatio+r)))},t=()=>G(!1);return window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t)}},[H]),(0,l.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&"k"===e.key&&(e.preventDefault(),P(e=>!e))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),A)?z?(0,s.jsxs)("div",{className:"jsx-a894832df36b68ca h-full flex flex-col",children:[(0,s.jsxs)("div",{style:{borderColor:"var(--border)",backgroundColor:"var(--bg-card)"},className:"jsx-a894832df36b68ca flex md:hidden border-b flex-shrink-0",children:[(0,s.jsx)("button",{onClick:()=>F("mindmap"),style:{color:"mindmap"===W?"var(--accent)":"var(--text-tertiary)",borderBottom:"mindmap"===W?"2px solid var(--accent)":"2px solid transparent"},className:"jsx-a894832df36b68ca flex-1 px-4 py-2 text-xs font-medium transition-colors",children:"Mindmap"}),(0,s.jsx)("button",{onClick:()=>F("testcases"),style:{color:"testcases"===W?"var(--accent)":"var(--text-tertiary)",borderBottom:"testcases"===W?"2px solid var(--accent)":"2px solid transparent"},className:"jsx-a894832df36b68ca flex-1 px-4 py-2 text-xs font-medium transition-colors",children:"Test Cases"})]}),(0,s.jsxs)("div",{style:{borderColor:"var(--border)"},className:"jsx-a894832df36b68ca flex items-center justify-between px-4 py-1.5 border-b flex-shrink-0",children:[(0,s.jsx)("div",{style:{color:"var(--text-tertiary)"},className:"jsx-a894832df36b68ca text-[10px]",children:S?(0,s.jsxs)("span",{className:"jsx-a894832df36b68ca",children:["Last saved ",function(e,t){let r=new Date(e),s=Math.floor((t.getTime()-r.getTime())/1e3),a=Math.floor(s/60),o=Math.floor(a/60);return s<10?"just now":s<60?"".concat(s,"s ago"):a<60?"".concat(a,"m ago"):o<24?"".concat(o,"h ago"):r.toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}(S,U)]}):(0,s.jsx)("span",{className:"jsx-a894832df36b68ca",children:"Not saved yet"})}),(0,s.jsxs)("div",{className:"jsx-a894832df36b68ca flex items-center gap-2",children:[(0,s.jsxs)("button",{onClick:()=>P(!0),style:{borderColor:"var(--border)",color:"var(--text-tertiary)",minWidth:160},title:"Search test cases (Ctrl+K)",className:"jsx-a894832df36b68ca flex items-center gap-1.5 px-4 py-1 rounded-md border text-[11px] transition-colors hover:bg-[var(--bg-secondary)]",children:[(0,s.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-a894832df36b68ca",children:[(0,s.jsx)("circle",{cx:"11",cy:"11",r:"8",className:"jsx-a894832df36b68ca"}),(0,s.jsx)("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65",className:"jsx-a894832df36b68ca"})]}),(0,s.jsx)("span",{className:"jsx-a894832df36b68ca hidden sm:inline",children:"Search test cases..."}),(0,s.jsx)("kbd",{style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)"},className:"jsx-a894832df36b68ca text-[9px] px-1 py-0.5 rounded border ml-auto hidden sm:inline",children:"⌘K"})]}),(0,s.jsx)("button",{onClick:()=>p.push("/projects/".concat(m,"/summary")),style:{borderColor:"var(--border)",color:"var(--text-secondary)"},className:"jsx-a894832df36b68ca hidden md:block px-3 py-1 text-xs font-medium rounded-md border transition-colors hover:bg-[var(--bg-secondary)]",children:"Project Report"}),(0,s.jsx)("button",{onClick:()=>{Q(!0),setTimeout(()=>Q(!1),1500);let e=new Event("save-project");window.dispatchEvent(e)},style:{borderColor:$?"var(--status-pass-text)":"var(--border)",color:$?"var(--status-pass-text)":"var(--text-secondary)",backgroundColor:$?"var(--status-pass-bg)":"transparent"},className:"jsx-a894832df36b68ca px-3 py-1 text-xs font-medium rounded-md border transition-all",children:$?"Saved!":"Save"}),(0,s.jsx)("div",{className:"jsx-a894832df36b68ca flex-1"}),(0,s.jsx)("button",{onClick:()=>q(e=>!e),style:{color:"var(--text-tertiary)"},title:J?"Exit fullscreen":"Expand test cases",className:"jsx-a894832df36b68ca p-1.5 rounded transition-colors hover:bg-[var(--bg-secondary)]",children:J?(0,s.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-a894832df36b68ca",children:(0,s.jsx)("path",{d:"M8 3v3a2 2 0 01-2 2H3m18 0h-3a2 2 0 01-2-2V3m0 18v-3a2 2 0 012-2h3M3 16h3a2 2 0 012 2v3",className:"jsx-a894832df36b68ca"})}):(0,s.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-a894832df36b68ca",children:(0,s.jsx)("path",{d:"M8 3H5a2 2 0 00-2 2v3m18 0V5a2 2 0 00-2-2h-3m0 18h3a2 2 0 002-2v-3M3 16v3a2 2 0 002 2h3",className:"jsx-a894832df36b68ca"})})})]})]}),(0,s.jsxs)("div",{ref:ee,style:{cursor:H?"col-resize":void 0},className:"jsx-a894832df36b68ca flex-1 flex min-h-0 relative",children:[!J&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{ref:et,style:{width:"".concat(100*X,"%")},className:"jsx-a894832df36b68ca "+"\n ".concat("mindmap"===W?"flex":"hidden","\n md:flex flex-col min-w-0 mobile-full-width\n "),children:(0,s.jsx)(v,{nodes:C.nodes,edges:C.edges,testCases:null!=(r=z.testCases)?r:{},selectedNodeId:f,onSelect:C.selectNode,onAddNode:(e,t,r,s)=>{N("Add node"),C.addNode(e,t,r,s)},onDeleteNode:e=>{N("Delete node"),C.deleteNode(e)},onDeleteNodes:e=>{N("Delete nodes"),C.deleteNodes(e)},onUnlinkNode:e=>{N("Unlink node"),C.unlinkNode(e)},onRenameNode:(e,t)=>{N("Rename node"),C.renameNode(e,t)},onUpdateNode:(e,t)=>{N("Update node"),C.updateNode(e,t)},onAddEdge:(e,t,r)=>{N("Add edge"),C.addEdge(e,t,r)},onDeleteEdge:e=>{N("Delete edge"),C.deleteEdge(e)},onUpdateEdge:(e,t)=>{N("Update edge"),C.updateEdge(e,t)},onResetLayout:()=>{N("Reset layout"),C.resetLayout()},canUndo:D,canRedo:E,onUndo:L,onRedo:M})}),(0,s.jsxs)("div",{ref:es,style:{width:20,cursor:"col-resize"},onMouseDown:eo,onMouseEnter:()=>V(!0),onMouseLeave:()=>V(!1),className:"jsx-a894832df36b68ca hidden md:flex items-center justify-center flex-shrink-0 select-none relative group",children:[(0,s.jsx)("div",{style:{backgroundColor:Y||H?"var(--bg-secondary)":"transparent"},className:"jsx-a894832df36b68ca absolute inset-y-0 -left-2 -right-2 transition-colors duration-150"}),(0,s.jsx)("div",{style:{backgroundColor:"var(--border)",opacity:Y||H?0:1},className:"jsx-a894832df36b68ca absolute inset-y-0 left-1/2 -translate-x-1/2 w-[1px] transition-opacity duration-150"}),(0,s.jsx)("div",{style:{background:"linear-gradient(180deg, #9E7AFF 0%, #FE8BBB 50%, #9E7AFF 100%)",opacity:Y||H?.8:.4,animation:"beamFlow 3s ease-in-out infinite",backgroundSize:"100% 200%"},className:"jsx-a894832df36b68ca absolute inset-y-0 left-1/2 -translate-x-1/2 w-[2px] transition-opacity duration-150"}),(0,s.jsxs)("div",{className:"jsx-a894832df36b68ca relative z-10 flex flex-col gap-1.5",children:[(0,s.jsx)("div",{style:{backgroundColor:Y||H?"var(--text-secondary)":"var(--text-tertiary)"},className:"jsx-a894832df36b68ca w-1.5 h-1.5 rounded-full transition-colors duration-150"}),(0,s.jsx)("div",{style:{backgroundColor:Y||H?"var(--text-secondary)":"var(--text-tertiary)"},className:"jsx-a894832df36b68ca w-1.5 h-1.5 rounded-full transition-colors duration-150"}),(0,s.jsx)("div",{style:{backgroundColor:Y||H?"var(--text-secondary)":"var(--text-tertiary)"},className:"jsx-a894832df36b68ca w-1.5 h-1.5 rounded-full transition-colors duration-150"})]})]})]}),(0,s.jsx)("div",{ref:er,style:{width:J?"100%":"".concat((1-X)*100,"%")},className:"jsx-a894832df36b68ca "+"\n ".concat("testcases"===W?"flex":"hidden","\n md:flex flex-col min-w-0 mobile-full-width\n "),children:(0,s.jsx)(_,{selectedNode:I,testCases:w.testCases,stats:w.stats,columns:f?null!=(c=null!=(a=null==(e=z.columnConfigs)?void 0:e[f])?a:z.columnConfig)?c:[]:null!=(d=z.columnConfig)?d:[],projectId:m,project:z,fullscreen:J,allNodes:z.flows,allTestCases:z.testCases,onSelectNode:e=>{j(e),C.selectNode(e)},onAddTestCase:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];N("Add test case"),w.addTestCase(...t)},onUpdateTestCase:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];N("Update test case"),w.updateTestCase(...t)},onDeleteTestCase:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];N("Delete test case"),w.deleteTestCase(...t)},onBulkDelete:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];N("Delete test cases"),w.bulkDeleteTestCases(...t)},onBulkUpdate:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];N("Update test cases"),w.bulkUpdateTestCases(...t)},onReorderTestCases:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];N("Reorder test cases"),w.reorderTestCases(...t)},onToggleColumn:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];N("Toggle column"),w.toggleColumnVisibility(...t)},onRenameColumn:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];N("Rename column"),w.updateColumnConfig(...t)},onUpdateNode:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];N("Update node"),C.updateNode(...t)},onAddColumn:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];N("Add column"),w.addColumn(...t)},onDeleteColumn:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];N("Delete column"),w.deleteColumn(...t)},onReorderColumn:function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];N("Reorder column"),w.reorderColumn(...t)},confirmDialog:R})})]}),(0,s.jsx)(o(),{id:"a894832df36b68ca",children:"@media(max-width:767px){.mobile-full-width.jsx-a894832df36b68ca{width:100%!important}}"}),B&&z&&(0,s.jsx)(Z,{nodes:z.flows,testCases:null!=(x=z.testCases)?x:{},onSelectNode:e=>{j(e),C.selectNode(e)},onClose:()=>P(!1)})]}):(0,s.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,s.jsx)("div",{className:"text-sm",style:{color:"var(--text-tertiary)"},children:"Loading project..."})}):(0,s.jsx)(g.p,{message:"Project not found.",action:{label:"Back to Projects",onClick:()=>p.push("/projects")}})}V.displayName="DockIcon"},4269:(e,t,r)=>{"use strict";r.d(t,{cn:()=>o});var s=r(2821),a=r(5889);function o(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,a.QP)((0,s.$)(t))}},5815:(e,t,r)=>{"use strict";r.d(t,{p:()=>a});var s=r(5155);function a(e){let{message:t,action:r,secondaryAction:a}=e;return(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-4 px-6 text-center",children:[(0,s.jsx)("img",{src:"https://static.vecteezy.com/system/resources/thumbnails/067/162/149/small/cute-duck-meme-sticker-transparent-cute-illustration-free-png.png",alt:"",className:"w-28 h-28 object-contain select-none opacity-15",draggable:!1}),(0,s.jsx)("p",{className:"text-sm max-w-[280px]",style:{color:"var(--text-tertiary)"},children:t}),(r||a)&&(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[r&&(0,s.jsx)("button",{onClick:r.onClick,className:"px-4 py-2 text-sm font-medium rounded-md transition-opacity hover:opacity-80",style:{backgroundColor:"var(--accent)",color:"var(--bg-primary)",borderRadius:"var(--radius-pill)"},children:r.label}),a&&(0,s.jsx)("button",{onClick:a.onClick,className:"px-4 py-2 text-sm font-medium rounded-md border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)",borderRadius:"var(--radius-pill)"},children:a.label})]})]})}}},e=>{e.O(0,[343,909,793,968,253,798,642,441,255,358],()=>e(e.s=1868)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[659],{1399:(e,r,t)=>{Promise.resolve().then(t.bind(t,6268))},6268:(e,r,t)=>{"use strict";t.r(r),t.d(r,{default:()=>u});var s=t(5155),a=t(2115),l=t(63),o=t(2619),d=t.n(o),n=t(4417),i=t(7669),c=t(7711),x=t(158);function u(){var e,r,t;let o=(0,l.useParams)().projectId,{projects:x,updateProject:u}=(0,n.M)(),{activeProvider:p,activeProviderId:b,isConnected:h}=(0,i.P)(),f=x[o],[j,g]=(0,a.useState)(!1),[N,C]=(0,a.useState)(!1),k=(0,a.useCallback)(e=>{f&&u(f.id,r=>({...r,notes:e}))},[f,u]),w=(0,a.useCallback)(async()=>{if(f&&p&&h){C(!0);try{let e=await (0,c.Js)(f.name,f.notes||"",p.apiKey,b||"google",p.defaultModel,p.baseURL);u(f.id,r=>({...r,notes:e}))}catch(e){console.error("Refine failed:",e)}finally{C(!1)}}},[f,u,p,b,h]);if(!f)return(0,s.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,s.jsx)("p",{style:{color:"var(--text-tertiary)"},children:"Project not found."})});let R=Object.values(f.testCases).flat(),S=f.flows.length,E=R.length,P=(null!=(e=f.edges)?e:[]).length,M=R.filter(e=>"pass"===e.status).length,I=R.filter(e=>"fail"===e.status).length,_=R.filter(e=>"skip"===e.status).length,B=R.filter(e=>"untested"===e.status).length,F=R.filter(e=>"blocked"===e.status).length,J=E-_,L=J>0?Math.round(M/J*100):0,O=f.flows.map(e=>{var r;let t=null!=(r=f.testCases[e.id])?r:[],s=t.filter(e=>"pass"===e.status).length,a=t.filter(e=>"fail"===e.status).length,l=t.filter(e=>"skip"===e.status).length,o=t.length,d=o-l,n=d>0?Math.round(s/d*100):0;return{node:e,total:o,pass:s,fail:a,skip:l,rate:n}});return(0,s.jsxs)("div",{className:"h-full overflow-auto",children:[(0,s.jsxs)("div",{className:"px-5 py-4 border-b flex items-center gap-3",style:{borderColor:"var(--border)"},children:[(0,s.jsx)(d(),{href:"/projects/".concat(o),className:"text-xs px-2 py-1 rounded border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:"← Back"}),(0,s.jsxs)("h2",{className:"text-base font-medium flex-1",style:{color:"var(--text-primary)"},children:[f.name," — Summary"]}),(0,s.jsx)("button",{onClick:()=>g(!0),className:"px-3 py-1.5 text-xs font-medium rounded-md border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:"Export"})]}),(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-3 p-5",children:[(0,s.jsx)(m,{label:"Flow Nodes",value:S}),(0,s.jsx)(m,{label:"Test Cases",value:E}),(0,s.jsx)(m,{label:"Pass Rate",value:"".concat(L,"%"),color:"var(--status-pass-text)"}),(0,s.jsx)(m,{label:"Conditional Edges",value:P}),(0,s.jsx)(v,{type:f.type||"",onUpdate:e=>u(f.id,r=>({...r,type:e}))})]}),(0,s.jsxs)("div",{className:"px-5 pb-4",children:[(0,s.jsx)("h3",{className:"text-xs font-medium uppercase tracking-wider mb-3",style:{color:"var(--text-tertiary)"},children:"Status Breakdown"}),(0,s.jsxs)("div",{className:"flex gap-4 text-sm",style:{color:"var(--text-secondary)"},children:[(0,s.jsxs)("span",{children:["Pass: ",(0,s.jsx)("strong",{style:{color:"var(--status-pass-text)"},children:M})]}),(0,s.jsxs)("span",{children:["Fail: ",(0,s.jsx)("strong",{style:{color:"var(--status-fail-text)"},children:I})]}),(0,s.jsxs)("span",{children:["Skip: ",(0,s.jsx)("strong",{style:{color:"var(--status-skip-text)"},children:_})]}),(0,s.jsxs)("span",{children:["Untested: ",(0,s.jsx)("strong",{style:{color:"var(--status-untested-text)"},children:B})]}),(0,s.jsxs)("span",{children:["Blocked: ",(0,s.jsx)("strong",{style:{color:"var(--status-blocked-text)"},children:F})]})]})]}),(0,s.jsxs)("div",{className:"px-5 pb-4",children:[(0,s.jsx)("h3",{className:"text-xs font-medium uppercase tracking-wider mb-3",style:{color:"var(--text-tertiary)"},children:"Notes"}),(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)("textarea",{value:f.notes||"",onChange:e=>k(e.target.value),placeholder:"Add project notes, observations, or documentation...",rows:4,className:"w-full px-3 py-2 text-sm bg-transparent outline-none border resize-none transition-colors focus:border-[var(--border-hover)]",style:{borderColor:"var(--border)",borderRadius:"var(--radius-sm)",color:"var(--text-primary)"}}),h?(0,s.jsx)("button",{onClick:w,disabled:N||!f.notes,className:"absolute bottom-2 right-2 px-2 py-0.5 text-[10px] font-medium rounded border transition-all hover:bg-[var(--bg-secondary)] disabled:opacity-30 z-10",style:{borderColor:"var(--border)",color:"var(--accent)",backgroundColor:"var(--bg-card)",opacity:N?1:.7},title:"AI will refine your notes to be more structured",onMouseEnter:e=>e.currentTarget.style.opacity="1",onMouseLeave:e=>e.currentTarget.style.opacity="0.7",children:N?"Refining...":"✦ Refine"}):(0,s.jsx)("button",{disabled:!0,className:"absolute bottom-2 right-2 px-2 py-0.5 text-[10px] font-medium rounded border opacity-30 cursor-not-allowed",style:{borderColor:"var(--border)",color:"var(--text-tertiary)",backgroundColor:"var(--bg-card)"},title:"Configure an LLM provider in Settings to use AI refine",children:"✦ Refine"})]})]}),(0,s.jsxs)("div",{className:"px-5 pb-4",children:[(0,s.jsx)("h3",{className:"text-xs font-medium uppercase tracking-wider mb-3",style:{color:"var(--text-tertiary)"},children:"Per-Node Breakdown"}),(0,s.jsxs)("table",{className:"w-full text-sm",children:[(0,s.jsx)("thead",{children:(0,s.jsxs)("tr",{children:[(0,s.jsx)("th",{className:"text-left py-1.5 text-xs font-medium",style:{color:"var(--text-tertiary)"},children:"Code"}),(0,s.jsx)("th",{className:"text-left py-1.5 text-xs font-medium",style:{color:"var(--text-tertiary)"},children:"Node"}),(0,s.jsx)("th",{className:"text-right py-1.5 text-xs font-medium",style:{color:"var(--text-tertiary)"},children:"Cases"}),(0,s.jsx)("th",{className:"text-right py-1.5 text-xs font-medium",style:{color:"var(--text-tertiary)"},children:"Rate"}),(0,s.jsx)("th",{className:"py-1.5 w-24 text-xs font-medium",style:{color:"var(--text-tertiary)"}})]})}),(0,s.jsx)("tbody",{children:O.map(e=>{let{node:r,total:t,rate:a}=e;return(0,s.jsxs)("tr",{className:"border-t",style:{borderColor:"var(--border)"},children:[(0,s.jsx)("td",{className:"py-2 font-mono text-xs",style:{color:"var(--text-tertiary)"},children:r.code||"—"}),(0,s.jsx)("td",{className:"py-2",style:{color:"var(--text-primary)"},children:r.label}),(0,s.jsx)("td",{className:"py-2 text-right",style:{color:"var(--text-secondary)"},children:t}),(0,s.jsx)("td",{className:"py-2 text-right",style:{color:a>=80?"var(--status-pass-text)":a>=50?"var(--status-skip-text)":"var(--status-fail-text)"},children:t>0?"".concat(a,"%"):"—"}),(0,s.jsx)("td",{className:"py-2",children:t>0&&(0,s.jsx)("div",{className:"h-2 w-full rounded-full overflow-hidden",style:{backgroundColor:"var(--bg-secondary)"},children:(0,s.jsx)("div",{className:"h-full rounded-full",style:{width:"".concat(a,"%"),backgroundColor:a>=80?"var(--status-pass-text)":a>=50?"var(--status-skip-text)":"var(--status-fail-text)"}})})})]},r.id)})})]})]}),(null!=(r=f.edges)?r:[]).length>0&&(0,s.jsxs)("div",{className:"px-5 pb-4",children:[(0,s.jsx)("h3",{className:"text-xs font-medium uppercase tracking-wider mb-3",style:{color:"var(--text-tertiary)"},children:"Conditional Edges"}),(0,s.jsx)("div",{className:"flex flex-col gap-2",children:(null!=(t=f.edges)?t:[]).map(e=>{var r,t;let a=f.flows.find(r=>r.id===e.fromId),l=f.flows.find(r=>r.id===e.toId);return(0,s.jsxs)("div",{className:"flex items-center gap-2 text-xs",style:{color:"var(--text-secondary)"},children:[(0,s.jsx)("span",{style:{color:"var(--text-primary)"},children:null!=(r=null==a?void 0:a.label)?r:"?"}),(0,s.jsx)("span",{style:{color:"pass"===e.type?"var(--status-pass-text)":"var(--status-fail-text)"},children:"pass"===e.type?"→ ✓ Pass →":"fail"===e.type?"→ ✗ Fail →":"→"}),(0,s.jsx)("span",{style:{color:"var(--text-primary)"},children:null!=(t=null==l?void 0:l.label)?t:"?"})]},e.id)})})]}),(0,s.jsx)(y,{open:j,onClose:()=>g(!1),project:f})]})}function m(e){let{label:r,value:t,color:a}=e;return(0,s.jsxs)("div",{className:"p-3 rounded-md border",style:{borderColor:"var(--border)",borderRadius:"var(--radius-md)"},children:[(0,s.jsx)("div",{className:"text-xs mb-1",style:{color:"var(--text-tertiary)"},children:r}),(0,s.jsx)("div",{className:"text-lg font-medium",style:{color:null!=a?a:"var(--text-primary)"},children:t})]})}function v(e){let{type:r,onUpdate:t}=e,[l,o]=(0,a.useState)(!1);return(0,s.jsxs)("div",{className:"p-3 rounded-md border",style:{borderColor:"var(--border)",borderRadius:"var(--radius-md)"},children:[(0,s.jsxs)("div",{className:"text-xs mb-1 flex items-center justify-between",style:{color:"var(--text-tertiary)"},children:[(0,s.jsx)("span",{children:"Project Type"}),(0,s.jsx)("button",{onClick:()=>o(e=>!e),className:"text-[10px] hover:underline transition-colors",style:{color:"var(--accent)"},children:l?"Done":"Edit"})]}),l?(0,s.jsxs)("select",{value:r,onChange:e=>{t(e.target.value),o(!1)},className:"w-full px-2 py-1 text-sm rounded border outline-none cursor-pointer",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)",color:r?"var(--text-primary)":"var(--text-tertiary)"},children:[(0,s.jsx)("option",{value:"",children:"None"}),(0,s.jsx)("option",{value:"Dashboard",children:"Dashboard"}),(0,s.jsx)("option",{value:"Website",children:"Website"}),(0,s.jsx)("option",{value:"Gak Jelas",children:"Gak Jelas"})]}):(0,s.jsx)("div",{className:"text-lg font-medium",style:{color:r?"var(--text-primary)":"var(--text-tertiary)"},children:r||"Not set"})]})}function y(e){let{open:r,onClose:t,project:a}=e;return r?(0,s.jsx)("div",{className:"fixed inset-0 z-[300] flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.3)",animation:"fadeIn 150ms ease-out"},onClick:t,children:(0,s.jsxs)("div",{className:"w-full max-w-sm mx-4 rounded-xl p-5",style:{backgroundColor:"var(--bg-card)",boxShadow:"var(--shadow-lg)",borderRadius:"var(--radius-lg)"},onClick:e=>e.stopPropagation(),children:[(0,s.jsx)("h3",{className:"text-sm font-semibold mb-1",style:{color:"var(--text-primary)"},children:"Export Project"}),(0,s.jsxs)("p",{className:"text-xs mb-4",style:{color:"var(--text-tertiary)"},children:["Export “",a.name,"” as:"]}),(0,s.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,s.jsxs)("button",{onClick:()=>{(0,x.ii)(a),t()},className:"w-full text-left px-4 py-3 text-sm rounded-lg border transition-colors hover:border-[var(--border-hover)]",style:{borderColor:"var(--border)",borderRadius:"var(--radius-sm)"},children:[(0,s.jsx)("span",{className:"font-medium",style:{color:"var(--text-primary)"},children:"Markdown (.md)"}),(0,s.jsx)("br",{}),(0,s.jsx)("span",{className:"text-xs",style:{color:"var(--text-tertiary)"},children:"Formatted tables for documentation"})]}),(0,s.jsxs)("button",{onClick:()=>{(0,x.Vj)(a),t()},className:"w-full text-left px-4 py-3 text-sm rounded-lg border transition-colors hover:border-[var(--border-hover)]",style:{borderColor:"var(--border)",borderRadius:"var(--radius-sm)"},children:[(0,s.jsx)("span",{className:"font-medium",style:{color:"var(--text-primary)"},children:"JSON (.json)"}),(0,s.jsx)("br",{}),(0,s.jsx)("span",{className:"text-xs",style:{color:"var(--text-tertiary)"},children:"Full data backup"})]}),(0,s.jsxs)("button",{onClick:()=>{(0,x.Bf)(a),t()},className:"w-full text-left px-4 py-3 text-sm rounded-lg border transition-colors hover:border-[var(--border-hover)]",style:{borderColor:"var(--border)",borderRadius:"var(--radius-sm)"},children:[(0,s.jsx)("span",{className:"font-medium",style:{color:"var(--text-primary)"},children:"CSV (.csv)"}),(0,s.jsx)("br",{}),(0,s.jsx)("span",{className:"text-xs",style:{color:"var(--text-tertiary)"},children:"Spreadsheet-compatible format"})]}),(0,s.jsxs)("button",{onClick:async()=>{await (0,x.sy)(a),t()},className:"w-full text-left px-4 py-3 text-sm rounded-lg border transition-colors hover:border-[var(--border-hover)]",style:{borderColor:"var(--border)",borderRadius:"var(--radius-sm)"},children:[(0,s.jsx)("span",{className:"font-medium",style:{color:"var(--text-primary)"},children:"Excel (.xlsx)"}),(0,s.jsx)("br",{}),(0,s.jsx)("span",{className:"text-xs",style:{color:"var(--text-tertiary)"},children:"Styled spreadsheet with Summary tab"})]})]}),(0,s.jsx)("button",{onClick:t,className:"w-full mt-3 px-3 py-2 text-xs font-medium rounded-lg border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:"Cancel"})]})}):null}}},e=>{e.O(0,[343,619,968,798,642,441,255,358],()=>e(e.s=1399)),_N_E=e.O()}]);