test-lah 1.0.9 → 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 (754) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +51 -37
  3. package/.next/standalone/.next/app-path-routes-manifest.json +3 -1
  4. package/.next/standalone/.next/build-manifest.json +5 -5
  5. package/.next/standalone/.next/prerender-manifest.json +21 -21
  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 +6 -6
  9. package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/summary/page.js +1 -1
  11. package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/summary/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +4 -4
  13. package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
  15. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  17. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  18. package/.next/standalone/.next/server/app/api/e2e/route.js +8 -8
  19. package/.next/standalone/.next/server/app/api/e2e/route_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/api/generate/route.js +1 -29
  21. package/.next/standalone/.next/server/app/api/generate/route.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/api/generate/route_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/api/llm/encrypt/route_client-reference-manifest.js +1 -1
  24. package/.next/standalone/.next/server/app/api/llm/test/route.js +1 -29
  25. package/.next/standalone/.next/server/app/api/llm/test/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/llm/test/route_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/api/mcp/route.js +50 -0
  28. package/.next/standalone/.next/server/app/api/mcp/route.js.nft.json +1 -0
  29. package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -0
  30. package/.next/standalone/.next/server/app/api/refine-notes/route.js +7 -7
  31. package/.next/standalone/.next/server/app/api/refine-notes/route_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/api/state/route.js +1 -0
  33. package/.next/standalone/.next/server/app/api/state/route.js.nft.json +1 -0
  34. package/.next/standalone/.next/server/app/api/state/route_client-reference-manifest.js +1 -0
  35. package/.next/standalone/.next/server/app/api/weather/route_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/index.html +1 -1
  37. package/.next/standalone/.next/server/app/index.rsc +3 -3
  38. package/.next/standalone/.next/server/app/integrations.html +1 -1
  39. package/.next/standalone/.next/server/app/integrations.rsc +4 -4
  40. package/.next/standalone/.next/server/app/login/page.js +1 -1
  41. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/login.html +1 -1
  43. package/.next/standalone/.next/server/app/login.rsc +2 -2
  44. package/.next/standalone/.next/server/app/page.js +2 -2
  45. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/projects.html +1 -1
  47. package/.next/standalone/.next/server/app/projects.rsc +4 -4
  48. package/.next/standalone/.next/server/app-paths-manifest.json +3 -1
  49. package/.next/standalone/.next/server/chunks/496.js +33 -0
  50. package/.next/standalone/.next/server/chunks/611.js +3 -3
  51. package/.next/standalone/.next/server/chunks/615.js +2 -2
  52. package/.next/standalone/.next/server/chunks/736.js +2 -2
  53. package/.next/standalone/.next/server/chunks/845.js +23 -20
  54. package/.next/standalone/.next/server/chunks/898.js +2 -2
  55. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  56. package/.next/standalone/.next/server/pages/404.html +1 -1
  57. package/.next/standalone/.next/server/pages/500.html +1 -1
  58. package/.next/standalone/.next/server/pages-manifest.json +1 -1
  59. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  61. package/.next/standalone/.next/static/BI7koHWCC15MOwsCfxo2O/_buildManifest.js +1 -0
  62. package/.next/standalone/.next/static/chunks/{255-4f84124391a7dac4.js → 255-98a0bdaa30757bda.js} +1 -1
  63. package/.next/standalone/.next/static/chunks/642-75adb59cbb062e44.js +1 -0
  64. package/.next/standalone/.next/static/chunks/798-8424899efd598f73.js +1 -0
  65. package/.next/standalone/.next/static/chunks/app/(dashboard)/integrations/page-25d6f67123a8a2ef.js +1 -0
  66. package/.next/{static/chunks/app/(dashboard)/layout-e4ed5abcbb7c8802.js → standalone/.next/static/chunks/app/(dashboard)/layout-a63b3fef68015cb5.js} +1 -1
  67. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[projectId]/page-cfab61233220bde3.js +1 -0
  68. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[projectId]/summary/{page-1b2e89d37c95e30f.js → page-1650386b60d0337f.js} +1 -1
  69. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/page-420d60cc1ac676f3.js +1 -0
  70. package/.next/standalone/.next/static/chunks/app/api/e2e/route-4f053c4f9dcca3c0.js +1 -0
  71. package/.next/standalone/.next/static/chunks/app/api/generate/route-4f053c4f9dcca3c0.js +1 -0
  72. package/.next/standalone/.next/static/chunks/app/api/llm/encrypt/route-4f053c4f9dcca3c0.js +1 -0
  73. package/.next/standalone/.next/static/chunks/app/api/llm/test/route-4f053c4f9dcca3c0.js +1 -0
  74. package/.next/standalone/.next/static/chunks/app/api/mcp/route-4f053c4f9dcca3c0.js +1 -0
  75. package/.next/standalone/.next/static/chunks/app/api/refine-notes/route-4f053c4f9dcca3c0.js +1 -0
  76. package/.next/standalone/.next/static/chunks/app/api/state/route-4f053c4f9dcca3c0.js +1 -0
  77. package/.next/standalone/.next/static/chunks/app/api/weather/route-4f053c4f9dcca3c0.js +1 -0
  78. package/.next/standalone/.next/static/chunks/app/page-3e00e649355cd3ac.js +1 -0
  79. package/.next/{static/chunks/main-646068343426c12d.js → standalone/.next/static/chunks/main-2af68c75fbdc984e.js} +1 -1
  80. package/.next/standalone/.next/static/css/d95cfd16ee2f56f9.css +3 -0
  81. package/.next/standalone/node_modules/@next/env/package.json +1 -1
  82. package/.next/standalone/node_modules/caniuse-lite/data/agents.js +1 -1
  83. package/.next/standalone/node_modules/caniuse-lite/data/browserVersions.js +1 -1
  84. package/.next/standalone/node_modules/caniuse-lite/data/features/aac.js +1 -1
  85. package/.next/standalone/node_modules/caniuse-lite/data/features/abortcontroller.js +1 -1
  86. package/.next/standalone/node_modules/caniuse-lite/data/features/ac3-ec3.js +1 -1
  87. package/.next/standalone/node_modules/caniuse-lite/data/features/accelerometer.js +1 -1
  88. package/.next/standalone/node_modules/caniuse-lite/data/features/addeventlistener.js +1 -1
  89. package/.next/standalone/node_modules/caniuse-lite/data/features/alternate-stylesheet.js +1 -1
  90. package/.next/standalone/node_modules/caniuse-lite/data/features/ambient-light.js +1 -1
  91. package/.next/standalone/node_modules/caniuse-lite/data/features/apng.js +1 -1
  92. package/.next/standalone/node_modules/caniuse-lite/data/features/array-find-index.js +1 -1
  93. package/.next/standalone/node_modules/caniuse-lite/data/features/array-find.js +1 -1
  94. package/.next/standalone/node_modules/caniuse-lite/data/features/array-flat.js +1 -1
  95. package/.next/standalone/node_modules/caniuse-lite/data/features/array-includes.js +1 -1
  96. package/.next/standalone/node_modules/caniuse-lite/data/features/arrow-functions.js +1 -1
  97. package/.next/standalone/node_modules/caniuse-lite/data/features/asmjs.js +1 -1
  98. package/.next/standalone/node_modules/caniuse-lite/data/features/async-clipboard.js +1 -1
  99. package/.next/standalone/node_modules/caniuse-lite/data/features/async-functions.js +1 -1
  100. package/.next/standalone/node_modules/caniuse-lite/data/features/atob-btoa.js +1 -1
  101. package/.next/standalone/node_modules/caniuse-lite/data/features/audio-api.js +1 -1
  102. package/.next/standalone/node_modules/caniuse-lite/data/features/audio.js +1 -1
  103. package/.next/standalone/node_modules/caniuse-lite/data/features/audiotracks.js +1 -1
  104. package/.next/standalone/node_modules/caniuse-lite/data/features/autofocus.js +1 -1
  105. package/.next/standalone/node_modules/caniuse-lite/data/features/auxclick.js +1 -1
  106. package/.next/standalone/node_modules/caniuse-lite/data/features/av1.js +1 -1
  107. package/.next/standalone/node_modules/caniuse-lite/data/features/avif.js +1 -1
  108. package/.next/standalone/node_modules/caniuse-lite/data/features/background-attachment.js +1 -1
  109. package/.next/standalone/node_modules/caniuse-lite/data/features/background-clip-text.js +1 -1
  110. package/.next/standalone/node_modules/caniuse-lite/data/features/background-img-opts.js +1 -1
  111. package/.next/standalone/node_modules/caniuse-lite/data/features/background-position-x-y.js +1 -1
  112. package/.next/standalone/node_modules/caniuse-lite/data/features/background-repeat-round-space.js +1 -1
  113. package/.next/standalone/node_modules/caniuse-lite/data/features/background-sync.js +1 -1
  114. package/.next/standalone/node_modules/caniuse-lite/data/features/battery-status.js +1 -1
  115. package/.next/standalone/node_modules/caniuse-lite/data/features/beacon.js +1 -1
  116. package/.next/standalone/node_modules/caniuse-lite/data/features/beforeafterprint.js +1 -1
  117. package/.next/standalone/node_modules/caniuse-lite/data/features/bigint.js +1 -1
  118. package/.next/standalone/node_modules/caniuse-lite/data/features/blobbuilder.js +1 -1
  119. package/.next/standalone/node_modules/caniuse-lite/data/features/bloburls.js +1 -1
  120. package/.next/standalone/node_modules/caniuse-lite/data/features/border-image.js +1 -1
  121. package/.next/standalone/node_modules/caniuse-lite/data/features/border-radius.js +1 -1
  122. package/.next/standalone/node_modules/caniuse-lite/data/features/broadcastchannel.js +1 -1
  123. package/.next/standalone/node_modules/caniuse-lite/data/features/brotli.js +1 -1
  124. package/.next/standalone/node_modules/caniuse-lite/data/features/calc.js +1 -1
  125. package/.next/standalone/node_modules/caniuse-lite/data/features/canvas-blending.js +1 -1
  126. package/.next/standalone/node_modules/caniuse-lite/data/features/canvas-text.js +1 -1
  127. package/.next/standalone/node_modules/caniuse-lite/data/features/canvas.js +1 -1
  128. package/.next/standalone/node_modules/caniuse-lite/data/features/ch-unit.js +1 -1
  129. package/.next/standalone/node_modules/caniuse-lite/data/features/chacha20-poly1305.js +1 -1
  130. package/.next/standalone/node_modules/caniuse-lite/data/features/channel-messaging.js +1 -1
  131. package/.next/standalone/node_modules/caniuse-lite/data/features/childnode-remove.js +1 -1
  132. package/.next/standalone/node_modules/caniuse-lite/data/features/classlist.js +1 -1
  133. package/.next/standalone/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js +1 -1
  134. package/.next/standalone/node_modules/caniuse-lite/data/features/clipboard.js +1 -1
  135. package/.next/standalone/node_modules/caniuse-lite/data/features/colr-v1.js +1 -1
  136. package/.next/standalone/node_modules/caniuse-lite/data/features/colr.js +1 -1
  137. package/.next/standalone/node_modules/caniuse-lite/data/features/comparedocumentposition.js +1 -1
  138. package/.next/standalone/node_modules/caniuse-lite/data/features/console-basic.js +1 -1
  139. package/.next/standalone/node_modules/caniuse-lite/data/features/console-time.js +1 -1
  140. package/.next/standalone/node_modules/caniuse-lite/data/features/const.js +1 -1
  141. package/.next/standalone/node_modules/caniuse-lite/data/features/constraint-validation.js +1 -1
  142. package/.next/standalone/node_modules/caniuse-lite/data/features/contenteditable.js +1 -1
  143. package/.next/standalone/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js +1 -1
  144. package/.next/standalone/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js +1 -1
  145. package/.next/standalone/node_modules/caniuse-lite/data/features/cookie-store-api.js +1 -1
  146. package/.next/standalone/node_modules/caniuse-lite/data/features/cors.js +1 -1
  147. package/.next/standalone/node_modules/caniuse-lite/data/features/createimagebitmap.js +1 -1
  148. package/.next/standalone/node_modules/caniuse-lite/data/features/credential-management.js +1 -1
  149. package/.next/standalone/node_modules/caniuse-lite/data/features/cross-document-view-transitions.js +1 -1
  150. package/.next/standalone/node_modules/caniuse-lite/data/features/cryptography.js +1 -1
  151. package/.next/standalone/node_modules/caniuse-lite/data/features/css-all.js +1 -1
  152. package/.next/standalone/node_modules/caniuse-lite/data/features/css-anchor-positioning.js +1 -1
  153. package/.next/standalone/node_modules/caniuse-lite/data/features/css-animation.js +1 -1
  154. package/.next/standalone/node_modules/caniuse-lite/data/features/css-any-link.js +1 -1
  155. package/.next/standalone/node_modules/caniuse-lite/data/features/css-appearance.js +1 -1
  156. package/.next/standalone/node_modules/caniuse-lite/data/features/css-at-counter-style.js +1 -1
  157. package/.next/standalone/node_modules/caniuse-lite/data/features/css-autofill.js +1 -1
  158. package/.next/standalone/node_modules/caniuse-lite/data/features/css-backdrop-filter.js +1 -1
  159. package/.next/standalone/node_modules/caniuse-lite/data/features/css-background-offsets.js +1 -1
  160. package/.next/standalone/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js +1 -1
  161. package/.next/standalone/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js +1 -1
  162. package/.next/standalone/node_modules/caniuse-lite/data/features/css-boxshadow.js +1 -1
  163. package/.next/standalone/node_modules/caniuse-lite/data/features/css-canvas.js +1 -1
  164. package/.next/standalone/node_modules/caniuse-lite/data/features/css-caret-color.js +1 -1
  165. package/.next/standalone/node_modules/caniuse-lite/data/features/css-cascade-layers.js +1 -1
  166. package/.next/standalone/node_modules/caniuse-lite/data/features/css-cascade-scope.js +1 -1
  167. package/.next/standalone/node_modules/caniuse-lite/data/features/css-case-insensitive.js +1 -1
  168. package/.next/standalone/node_modules/caniuse-lite/data/features/css-clip-path.js +1 -1
  169. package/.next/standalone/node_modules/caniuse-lite/data/features/css-color-adjust.js +1 -1
  170. package/.next/standalone/node_modules/caniuse-lite/data/features/css-color-function.js +1 -1
  171. package/.next/standalone/node_modules/caniuse-lite/data/features/css-conic-gradients.js +1 -1
  172. package/.next/standalone/node_modules/caniuse-lite/data/features/css-container-queries-style.js +1 -1
  173. package/.next/standalone/node_modules/caniuse-lite/data/features/css-container-queries.js +1 -1
  174. package/.next/standalone/node_modules/caniuse-lite/data/features/css-container-query-units.js +1 -1
  175. package/.next/standalone/node_modules/caniuse-lite/data/features/css-containment.js +1 -1
  176. package/.next/standalone/node_modules/caniuse-lite/data/features/css-content-visibility.js +1 -1
  177. package/.next/standalone/node_modules/caniuse-lite/data/features/css-counters.js +1 -1
  178. package/.next/standalone/node_modules/caniuse-lite/data/features/css-crisp-edges.js +1 -1
  179. package/.next/standalone/node_modules/caniuse-lite/data/features/css-cross-fade.js +1 -1
  180. package/.next/standalone/node_modules/caniuse-lite/data/features/css-default-pseudo.js +1 -1
  181. package/.next/standalone/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js +1 -1
  182. package/.next/standalone/node_modules/caniuse-lite/data/features/css-deviceadaptation.js +1 -1
  183. package/.next/standalone/node_modules/caniuse-lite/data/features/css-dir-pseudo.js +1 -1
  184. package/.next/standalone/node_modules/caniuse-lite/data/features/css-display-contents.js +1 -1
  185. package/.next/standalone/node_modules/caniuse-lite/data/features/css-element-function.js +1 -1
  186. package/.next/standalone/node_modules/caniuse-lite/data/features/css-env-function.js +1 -1
  187. package/.next/standalone/node_modules/caniuse-lite/data/features/css-exclusions.js +1 -1
  188. package/.next/standalone/node_modules/caniuse-lite/data/features/css-featurequeries.js +1 -1
  189. package/.next/standalone/node_modules/caniuse-lite/data/features/css-file-selector-button.js +1 -1
  190. package/.next/standalone/node_modules/caniuse-lite/data/features/css-filter-function.js +1 -1
  191. package/.next/standalone/node_modules/caniuse-lite/data/features/css-filters.js +1 -1
  192. package/.next/standalone/node_modules/caniuse-lite/data/features/css-first-letter.js +1 -1
  193. package/.next/standalone/node_modules/caniuse-lite/data/features/css-first-line.js +1 -1
  194. package/.next/standalone/node_modules/caniuse-lite/data/features/css-fixed.js +1 -1
  195. package/.next/standalone/node_modules/caniuse-lite/data/features/css-focus-visible.js +1 -1
  196. package/.next/standalone/node_modules/caniuse-lite/data/features/css-focus-within.js +1 -1
  197. package/.next/standalone/node_modules/caniuse-lite/data/features/css-font-palette.js +1 -1
  198. package/.next/standalone/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js +1 -1
  199. package/.next/standalone/node_modules/caniuse-lite/data/features/css-font-stretch.js +1 -1
  200. package/.next/standalone/node_modules/caniuse-lite/data/features/css-gencontent.js +1 -1
  201. package/.next/standalone/node_modules/caniuse-lite/data/features/css-gradients.js +1 -1
  202. package/.next/standalone/node_modules/caniuse-lite/data/features/css-grid-animation.js +1 -1
  203. package/.next/standalone/node_modules/caniuse-lite/data/features/css-grid-lanes.js +1 -1
  204. package/.next/standalone/node_modules/caniuse-lite/data/features/css-grid.js +1 -1
  205. package/.next/standalone/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js +1 -1
  206. package/.next/standalone/node_modules/caniuse-lite/data/features/css-has.js +1 -1
  207. package/.next/standalone/node_modules/caniuse-lite/data/features/css-hyphens.js +1 -1
  208. package/.next/standalone/node_modules/caniuse-lite/data/features/css-if.js +1 -1
  209. package/.next/standalone/node_modules/caniuse-lite/data/features/css-image-orientation.js +1 -1
  210. package/.next/standalone/node_modules/caniuse-lite/data/features/css-image-set.js +1 -1
  211. package/.next/standalone/node_modules/caniuse-lite/data/features/css-in-out-of-range.js +1 -1
  212. package/.next/standalone/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js +1 -1
  213. package/.next/standalone/node_modules/caniuse-lite/data/features/css-initial-letter.js +1 -1
  214. package/.next/standalone/node_modules/caniuse-lite/data/features/css-initial-value.js +1 -1
  215. package/.next/standalone/node_modules/caniuse-lite/data/features/css-lch-lab.js +1 -1
  216. package/.next/standalone/node_modules/caniuse-lite/data/features/css-letter-spacing.js +1 -1
  217. package/.next/standalone/node_modules/caniuse-lite/data/features/css-line-clamp.js +1 -1
  218. package/.next/standalone/node_modules/caniuse-lite/data/features/css-logical-props.js +1 -1
  219. package/.next/standalone/node_modules/caniuse-lite/data/features/css-marker-pseudo.js +1 -1
  220. package/.next/standalone/node_modules/caniuse-lite/data/features/css-masks.js +1 -1
  221. package/.next/standalone/node_modules/caniuse-lite/data/features/css-matches-pseudo.js +1 -1
  222. package/.next/standalone/node_modules/caniuse-lite/data/features/css-math-functions.js +1 -1
  223. package/.next/standalone/node_modules/caniuse-lite/data/features/css-media-interaction.js +1 -1
  224. package/.next/standalone/node_modules/caniuse-lite/data/features/css-media-range-syntax.js +1 -1
  225. package/.next/standalone/node_modules/caniuse-lite/data/features/css-media-resolution.js +1 -1
  226. package/.next/standalone/node_modules/caniuse-lite/data/features/css-media-scripting.js +1 -1
  227. package/.next/standalone/node_modules/caniuse-lite/data/features/css-mediaqueries.js +1 -1
  228. package/.next/standalone/node_modules/caniuse-lite/data/features/css-mixblendmode.js +1 -1
  229. package/.next/standalone/node_modules/caniuse-lite/data/features/css-module-scripts.js +1 -1
  230. package/.next/standalone/node_modules/caniuse-lite/data/features/css-motion-paths.js +1 -1
  231. package/.next/standalone/node_modules/caniuse-lite/data/features/css-namespaces.js +1 -1
  232. package/.next/standalone/node_modules/caniuse-lite/data/features/css-nesting.js +1 -1
  233. package/.next/standalone/node_modules/caniuse-lite/data/features/css-not-sel-list.js +1 -1
  234. package/.next/standalone/node_modules/caniuse-lite/data/features/css-nth-child-of.js +1 -1
  235. package/.next/standalone/node_modules/caniuse-lite/data/features/css-opacity.js +1 -1
  236. package/.next/standalone/node_modules/caniuse-lite/data/features/css-optional-pseudo.js +1 -1
  237. package/.next/standalone/node_modules/caniuse-lite/data/features/css-overflow-anchor.js +1 -1
  238. package/.next/standalone/node_modules/caniuse-lite/data/features/css-overflow-overlay.js +1 -1
  239. package/.next/standalone/node_modules/caniuse-lite/data/features/css-overflow.js +1 -1
  240. package/.next/standalone/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js +1 -1
  241. package/.next/standalone/node_modules/caniuse-lite/data/features/css-page-break.js +1 -1
  242. package/.next/standalone/node_modules/caniuse-lite/data/features/css-paged-media.js +1 -1
  243. package/.next/standalone/node_modules/caniuse-lite/data/features/css-paint-api.js +1 -1
  244. package/.next/standalone/node_modules/caniuse-lite/data/features/css-placeholder-shown.js +1 -1
  245. package/.next/standalone/node_modules/caniuse-lite/data/features/css-placeholder.js +1 -1
  246. package/.next/standalone/node_modules/caniuse-lite/data/features/css-print-color-adjust.js +1 -1
  247. package/.next/standalone/node_modules/caniuse-lite/data/features/css-read-only-write.js +1 -1
  248. package/.next/standalone/node_modules/caniuse-lite/data/features/css-rebeccapurple.js +1 -1
  249. package/.next/standalone/node_modules/caniuse-lite/data/features/css-reflections.js +1 -1
  250. package/.next/standalone/node_modules/caniuse-lite/data/features/css-regions.js +1 -1
  251. package/.next/standalone/node_modules/caniuse-lite/data/features/css-relative-colors.js +1 -1
  252. package/.next/standalone/node_modules/caniuse-lite/data/features/css-repeating-gradients.js +1 -1
  253. package/.next/standalone/node_modules/caniuse-lite/data/features/css-resize.js +1 -1
  254. package/.next/standalone/node_modules/caniuse-lite/data/features/css-revert-value.js +1 -1
  255. package/.next/standalone/node_modules/caniuse-lite/data/features/css-rrggbbaa.js +1 -1
  256. package/.next/standalone/node_modules/caniuse-lite/data/features/css-scroll-behavior.js +1 -1
  257. package/.next/standalone/node_modules/caniuse-lite/data/features/css-scrollbar.js +1 -1
  258. package/.next/standalone/node_modules/caniuse-lite/data/features/css-sel2.js +1 -1
  259. package/.next/standalone/node_modules/caniuse-lite/data/features/css-sel3.js +1 -1
  260. package/.next/standalone/node_modules/caniuse-lite/data/features/css-selection.js +1 -1
  261. package/.next/standalone/node_modules/caniuse-lite/data/features/css-shapes.js +1 -1
  262. package/.next/standalone/node_modules/caniuse-lite/data/features/css-snappoints.js +1 -1
  263. package/.next/standalone/node_modules/caniuse-lite/data/features/css-sticky.js +1 -1
  264. package/.next/standalone/node_modules/caniuse-lite/data/features/css-subgrid.js +1 -1
  265. package/.next/standalone/node_modules/caniuse-lite/data/features/css-supports-api.js +1 -1
  266. package/.next/standalone/node_modules/caniuse-lite/data/features/css-table.js +1 -1
  267. package/.next/standalone/node_modules/caniuse-lite/data/features/css-text-align-last.js +1 -1
  268. package/.next/standalone/node_modules/caniuse-lite/data/features/css-text-box-trim.js +1 -1
  269. package/.next/standalone/node_modules/caniuse-lite/data/features/css-text-indent.js +1 -1
  270. package/.next/standalone/node_modules/caniuse-lite/data/features/css-text-justify.js +1 -1
  271. package/.next/standalone/node_modules/caniuse-lite/data/features/css-text-orientation.js +1 -1
  272. package/.next/standalone/node_modules/caniuse-lite/data/features/css-text-spacing.js +1 -1
  273. package/.next/standalone/node_modules/caniuse-lite/data/features/css-text-wrap-balance.js +1 -1
  274. package/.next/standalone/node_modules/caniuse-lite/data/features/css-textshadow.js +1 -1
  275. package/.next/standalone/node_modules/caniuse-lite/data/features/css-touch-action.js +1 -1
  276. package/.next/standalone/node_modules/caniuse-lite/data/features/css-transitions.js +1 -1
  277. package/.next/standalone/node_modules/caniuse-lite/data/features/css-unicode-bidi.js +1 -1
  278. package/.next/standalone/node_modules/caniuse-lite/data/features/css-unset-value.js +1 -1
  279. package/.next/standalone/node_modules/caniuse-lite/data/features/css-variables.js +1 -1
  280. package/.next/standalone/node_modules/caniuse-lite/data/features/css-when-else.js +1 -1
  281. package/.next/standalone/node_modules/caniuse-lite/data/features/css-widows-orphans.js +1 -1
  282. package/.next/standalone/node_modules/caniuse-lite/data/features/css-width-stretch.js +1 -1
  283. package/.next/standalone/node_modules/caniuse-lite/data/features/css-writing-mode.js +1 -1
  284. package/.next/standalone/node_modules/caniuse-lite/data/features/css-zoom.js +1 -1
  285. package/.next/standalone/node_modules/caniuse-lite/data/features/css3-attr.js +1 -1
  286. package/.next/standalone/node_modules/caniuse-lite/data/features/css3-boxsizing.js +1 -1
  287. package/.next/standalone/node_modules/caniuse-lite/data/features/css3-colors.js +1 -1
  288. package/.next/standalone/node_modules/caniuse-lite/data/features/css3-cursors-grab.js +1 -1
  289. package/.next/standalone/node_modules/caniuse-lite/data/features/css3-cursors-newer.js +1 -1
  290. package/.next/standalone/node_modules/caniuse-lite/data/features/css3-cursors.js +1 -1
  291. package/.next/standalone/node_modules/caniuse-lite/data/features/css3-tabsize.js +1 -1
  292. package/.next/standalone/node_modules/caniuse-lite/data/features/currentcolor.js +1 -1
  293. package/.next/standalone/node_modules/caniuse-lite/data/features/custom-elements.js +1 -1
  294. package/.next/standalone/node_modules/caniuse-lite/data/features/custom-elementsv1.js +1 -1
  295. package/.next/standalone/node_modules/caniuse-lite/data/features/customevent.js +1 -1
  296. package/.next/standalone/node_modules/caniuse-lite/data/features/customizable-select.js +1 -1
  297. package/.next/standalone/node_modules/caniuse-lite/data/features/datalist.js +1 -1
  298. package/.next/standalone/node_modules/caniuse-lite/data/features/dataset.js +1 -1
  299. package/.next/standalone/node_modules/caniuse-lite/data/features/datauri.js +1 -1
  300. package/.next/standalone/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js +1 -1
  301. package/.next/standalone/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js +1 -1
  302. package/.next/standalone/node_modules/caniuse-lite/data/features/decorators.js +1 -1
  303. package/.next/standalone/node_modules/caniuse-lite/data/features/details.js +1 -1
  304. package/.next/standalone/node_modules/caniuse-lite/data/features/deviceorientation.js +1 -1
  305. package/.next/standalone/node_modules/caniuse-lite/data/features/devicepixelratio.js +1 -1
  306. package/.next/standalone/node_modules/caniuse-lite/data/features/dialog.js +1 -1
  307. package/.next/standalone/node_modules/caniuse-lite/data/features/dispatchevent.js +1 -1
  308. package/.next/standalone/node_modules/caniuse-lite/data/features/dnssec.js +1 -1
  309. package/.next/standalone/node_modules/caniuse-lite/data/features/do-not-track.js +1 -1
  310. package/.next/standalone/node_modules/caniuse-lite/data/features/document-currentscript.js +1 -1
  311. package/.next/standalone/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js +1 -1
  312. package/.next/standalone/node_modules/caniuse-lite/data/features/document-execcommand.js +1 -1
  313. package/.next/standalone/node_modules/caniuse-lite/data/features/document-policy.js +1 -1
  314. package/.next/standalone/node_modules/caniuse-lite/data/features/document-scrollingelement.js +1 -1
  315. package/.next/standalone/node_modules/caniuse-lite/data/features/documenthead.js +1 -1
  316. package/.next/standalone/node_modules/caniuse-lite/data/features/dom-manip-convenience.js +1 -1
  317. package/.next/standalone/node_modules/caniuse-lite/data/features/dom-range.js +1 -1
  318. package/.next/standalone/node_modules/caniuse-lite/data/features/domcontentloaded.js +1 -1
  319. package/.next/standalone/node_modules/caniuse-lite/data/features/dommatrix.js +1 -1
  320. package/.next/standalone/node_modules/caniuse-lite/data/features/download.js +1 -1
  321. package/.next/standalone/node_modules/caniuse-lite/data/features/dragndrop.js +1 -1
  322. package/.next/standalone/node_modules/caniuse-lite/data/features/element-closest.js +1 -1
  323. package/.next/standalone/node_modules/caniuse-lite/data/features/element-from-point.js +1 -1
  324. package/.next/standalone/node_modules/caniuse-lite/data/features/element-scroll-methods.js +1 -1
  325. package/.next/standalone/node_modules/caniuse-lite/data/features/eme.js +1 -1
  326. package/.next/standalone/node_modules/caniuse-lite/data/features/eot.js +1 -1
  327. package/.next/standalone/node_modules/caniuse-lite/data/features/es5.js +1 -1
  328. package/.next/standalone/node_modules/caniuse-lite/data/features/es6-class.js +1 -1
  329. package/.next/standalone/node_modules/caniuse-lite/data/features/es6-generators.js +1 -1
  330. package/.next/standalone/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js +1 -1
  331. package/.next/standalone/node_modules/caniuse-lite/data/features/es6-module.js +1 -1
  332. package/.next/standalone/node_modules/caniuse-lite/data/features/es6-number.js +1 -1
  333. package/.next/standalone/node_modules/caniuse-lite/data/features/es6-string-includes.js +1 -1
  334. package/.next/standalone/node_modules/caniuse-lite/data/features/es6.js +1 -1
  335. package/.next/standalone/node_modules/caniuse-lite/data/features/eventsource.js +1 -1
  336. package/.next/standalone/node_modules/caniuse-lite/data/features/extended-system-fonts.js +1 -1
  337. package/.next/standalone/node_modules/caniuse-lite/data/features/feature-policy.js +1 -1
  338. package/.next/standalone/node_modules/caniuse-lite/data/features/fetch.js +1 -1
  339. package/.next/standalone/node_modules/caniuse-lite/data/features/fieldset-disabled.js +1 -1
  340. package/.next/standalone/node_modules/caniuse-lite/data/features/fileapi.js +1 -1
  341. package/.next/standalone/node_modules/caniuse-lite/data/features/filereader.js +1 -1
  342. package/.next/standalone/node_modules/caniuse-lite/data/features/filereadersync.js +1 -1
  343. package/.next/standalone/node_modules/caniuse-lite/data/features/filesystem.js +1 -1
  344. package/.next/standalone/node_modules/caniuse-lite/data/features/flac.js +1 -1
  345. package/.next/standalone/node_modules/caniuse-lite/data/features/flexbox-gap.js +1 -1
  346. package/.next/standalone/node_modules/caniuse-lite/data/features/flexbox.js +1 -1
  347. package/.next/standalone/node_modules/caniuse-lite/data/features/flow-root.js +1 -1
  348. package/.next/standalone/node_modules/caniuse-lite/data/features/focusin-focusout-events.js +1 -1
  349. package/.next/standalone/node_modules/caniuse-lite/data/features/font-family-system-ui.js +1 -1
  350. package/.next/standalone/node_modules/caniuse-lite/data/features/font-feature.js +1 -1
  351. package/.next/standalone/node_modules/caniuse-lite/data/features/font-kerning.js +1 -1
  352. package/.next/standalone/node_modules/caniuse-lite/data/features/font-loading.js +1 -1
  353. package/.next/standalone/node_modules/caniuse-lite/data/features/font-size-adjust.js +1 -1
  354. package/.next/standalone/node_modules/caniuse-lite/data/features/font-smooth.js +1 -1
  355. package/.next/standalone/node_modules/caniuse-lite/data/features/font-unicode-range.js +1 -1
  356. package/.next/standalone/node_modules/caniuse-lite/data/features/font-variant-alternates.js +1 -1
  357. package/.next/standalone/node_modules/caniuse-lite/data/features/font-variant-numeric.js +1 -1
  358. package/.next/standalone/node_modules/caniuse-lite/data/features/fontface.js +1 -1
  359. package/.next/standalone/node_modules/caniuse-lite/data/features/form-attribute.js +1 -1
  360. package/.next/standalone/node_modules/caniuse-lite/data/features/form-submit-attributes.js +1 -1
  361. package/.next/standalone/node_modules/caniuse-lite/data/features/form-validation.js +1 -1
  362. package/.next/standalone/node_modules/caniuse-lite/data/features/forms.js +1 -1
  363. package/.next/standalone/node_modules/caniuse-lite/data/features/fullscreen.js +1 -1
  364. package/.next/standalone/node_modules/caniuse-lite/data/features/gamepad.js +1 -1
  365. package/.next/standalone/node_modules/caniuse-lite/data/features/geolocation.js +1 -1
  366. package/.next/standalone/node_modules/caniuse-lite/data/features/getboundingclientrect.js +1 -1
  367. package/.next/standalone/node_modules/caniuse-lite/data/features/getcomputedstyle.js +1 -1
  368. package/.next/standalone/node_modules/caniuse-lite/data/features/getelementsbyclassname.js +1 -1
  369. package/.next/standalone/node_modules/caniuse-lite/data/features/getrandomvalues.js +1 -1
  370. package/.next/standalone/node_modules/caniuse-lite/data/features/gyroscope.js +1 -1
  371. package/.next/standalone/node_modules/caniuse-lite/data/features/hardwareconcurrency.js +1 -1
  372. package/.next/standalone/node_modules/caniuse-lite/data/features/hashchange.js +1 -1
  373. package/.next/standalone/node_modules/caniuse-lite/data/features/heif.js +1 -1
  374. package/.next/standalone/node_modules/caniuse-lite/data/features/hevc.js +1 -1
  375. package/.next/standalone/node_modules/caniuse-lite/data/features/hidden.js +1 -1
  376. package/.next/standalone/node_modules/caniuse-lite/data/features/high-resolution-time.js +1 -1
  377. package/.next/standalone/node_modules/caniuse-lite/data/features/history.js +1 -1
  378. package/.next/standalone/node_modules/caniuse-lite/data/features/html-media-capture.js +1 -1
  379. package/.next/standalone/node_modules/caniuse-lite/data/features/html5semantic.js +1 -1
  380. package/.next/standalone/node_modules/caniuse-lite/data/features/http-live-streaming.js +1 -1
  381. package/.next/standalone/node_modules/caniuse-lite/data/features/http2.js +1 -1
  382. package/.next/standalone/node_modules/caniuse-lite/data/features/http3.js +1 -1
  383. package/.next/standalone/node_modules/caniuse-lite/data/features/iframe-sandbox.js +1 -1
  384. package/.next/standalone/node_modules/caniuse-lite/data/features/iframe-seamless.js +1 -1
  385. package/.next/standalone/node_modules/caniuse-lite/data/features/iframe-srcdoc.js +1 -1
  386. package/.next/standalone/node_modules/caniuse-lite/data/features/imagecapture.js +1 -1
  387. package/.next/standalone/node_modules/caniuse-lite/data/features/ime.js +1 -1
  388. package/.next/standalone/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js +1 -1
  389. package/.next/standalone/node_modules/caniuse-lite/data/features/import-maps.js +1 -1
  390. package/.next/standalone/node_modules/caniuse-lite/data/features/imports.js +1 -1
  391. package/.next/standalone/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js +1 -1
  392. package/.next/standalone/node_modules/caniuse-lite/data/features/indexeddb.js +1 -1
  393. package/.next/standalone/node_modules/caniuse-lite/data/features/indexeddb2.js +1 -1
  394. package/.next/standalone/node_modules/caniuse-lite/data/features/inline-block.js +1 -1
  395. package/.next/standalone/node_modules/caniuse-lite/data/features/innertext.js +1 -1
  396. package/.next/standalone/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js +1 -1
  397. package/.next/standalone/node_modules/caniuse-lite/data/features/input-color.js +1 -1
  398. package/.next/standalone/node_modules/caniuse-lite/data/features/input-datetime.js +1 -1
  399. package/.next/standalone/node_modules/caniuse-lite/data/features/input-email-tel-url.js +1 -1
  400. package/.next/standalone/node_modules/caniuse-lite/data/features/input-event.js +1 -1
  401. package/.next/standalone/node_modules/caniuse-lite/data/features/input-file-accept.js +1 -1
  402. package/.next/standalone/node_modules/caniuse-lite/data/features/input-file-directory.js +1 -1
  403. package/.next/standalone/node_modules/caniuse-lite/data/features/input-file-multiple.js +1 -1
  404. package/.next/standalone/node_modules/caniuse-lite/data/features/input-inputmode.js +1 -1
  405. package/.next/standalone/node_modules/caniuse-lite/data/features/input-minlength.js +1 -1
  406. package/.next/standalone/node_modules/caniuse-lite/data/features/input-number.js +1 -1
  407. package/.next/standalone/node_modules/caniuse-lite/data/features/input-pattern.js +1 -1
  408. package/.next/standalone/node_modules/caniuse-lite/data/features/input-placeholder.js +1 -1
  409. package/.next/standalone/node_modules/caniuse-lite/data/features/input-range.js +1 -1
  410. package/.next/standalone/node_modules/caniuse-lite/data/features/input-search.js +1 -1
  411. package/.next/standalone/node_modules/caniuse-lite/data/features/input-selection.js +1 -1
  412. package/.next/standalone/node_modules/caniuse-lite/data/features/insert-adjacent.js +1 -1
  413. package/.next/standalone/node_modules/caniuse-lite/data/features/insertadjacenthtml.js +1 -1
  414. package/.next/standalone/node_modules/caniuse-lite/data/features/internationalization.js +1 -1
  415. package/.next/standalone/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js +1 -1
  416. package/.next/standalone/node_modules/caniuse-lite/data/features/intersectionobserver.js +1 -1
  417. package/.next/standalone/node_modules/caniuse-lite/data/features/intl-pluralrules.js +1 -1
  418. package/.next/standalone/node_modules/caniuse-lite/data/features/intrinsic-width.js +1 -1
  419. package/.next/standalone/node_modules/caniuse-lite/data/features/jpeg2000.js +1 -1
  420. package/.next/standalone/node_modules/caniuse-lite/data/features/jpegxl.js +1 -1
  421. package/.next/standalone/node_modules/caniuse-lite/data/features/jpegxr.js +1 -1
  422. package/.next/standalone/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js +1 -1
  423. package/.next/standalone/node_modules/caniuse-lite/data/features/json.js +1 -1
  424. package/.next/standalone/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js +1 -1
  425. package/.next/standalone/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js +1 -1
  426. package/.next/standalone/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js +1 -1
  427. package/.next/standalone/node_modules/caniuse-lite/data/features/keyboardevent-code.js +1 -1
  428. package/.next/standalone/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js +1 -1
  429. package/.next/standalone/node_modules/caniuse-lite/data/features/keyboardevent-key.js +1 -1
  430. package/.next/standalone/node_modules/caniuse-lite/data/features/keyboardevent-location.js +1 -1
  431. package/.next/standalone/node_modules/caniuse-lite/data/features/keyboardevent-which.js +1 -1
  432. package/.next/standalone/node_modules/caniuse-lite/data/features/lazyload.js +1 -1
  433. package/.next/standalone/node_modules/caniuse-lite/data/features/let.js +1 -1
  434. package/.next/standalone/node_modules/caniuse-lite/data/features/link-icon-png.js +1 -1
  435. package/.next/standalone/node_modules/caniuse-lite/data/features/link-icon-svg.js +1 -1
  436. package/.next/standalone/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js +1 -1
  437. package/.next/standalone/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js +1 -1
  438. package/.next/standalone/node_modules/caniuse-lite/data/features/link-rel-preconnect.js +1 -1
  439. package/.next/standalone/node_modules/caniuse-lite/data/features/link-rel-prefetch.js +1 -1
  440. package/.next/standalone/node_modules/caniuse-lite/data/features/link-rel-preload.js +1 -1
  441. package/.next/standalone/node_modules/caniuse-lite/data/features/link-rel-prerender.js +1 -1
  442. package/.next/standalone/node_modules/caniuse-lite/data/features/loading-lazy-attr.js +1 -1
  443. package/.next/standalone/node_modules/caniuse-lite/data/features/loading-lazy-media.js +1 -1
  444. package/.next/standalone/node_modules/caniuse-lite/data/features/localecompare.js +1 -1
  445. package/.next/standalone/node_modules/caniuse-lite/data/features/magnetometer.js +1 -1
  446. package/.next/standalone/node_modules/caniuse-lite/data/features/matchesselector.js +1 -1
  447. package/.next/standalone/node_modules/caniuse-lite/data/features/matchmedia.js +1 -1
  448. package/.next/standalone/node_modules/caniuse-lite/data/features/mathml.js +1 -1
  449. package/.next/standalone/node_modules/caniuse-lite/data/features/maxlength.js +1 -1
  450. package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js +1 -1
  451. package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js +1 -1
  452. package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js +1 -1
  453. package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js +1 -1
  454. package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js +1 -1
  455. package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js +1 -1
  456. package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js +1 -1
  457. package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js +1 -1
  458. package/.next/standalone/node_modules/caniuse-lite/data/features/media-fragments.js +1 -1
  459. package/.next/standalone/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js +1 -1
  460. package/.next/standalone/node_modules/caniuse-lite/data/features/mediarecorder.js +1 -1
  461. package/.next/standalone/node_modules/caniuse-lite/data/features/mediasource.js +1 -1
  462. package/.next/standalone/node_modules/caniuse-lite/data/features/menu.js +1 -1
  463. package/.next/standalone/node_modules/caniuse-lite/data/features/meta-theme-color.js +1 -1
  464. package/.next/standalone/node_modules/caniuse-lite/data/features/meter.js +1 -1
  465. package/.next/standalone/node_modules/caniuse-lite/data/features/midi.js +1 -1
  466. package/.next/standalone/node_modules/caniuse-lite/data/features/minmaxwh.js +1 -1
  467. package/.next/standalone/node_modules/caniuse-lite/data/features/mp3.js +1 -1
  468. package/.next/standalone/node_modules/caniuse-lite/data/features/mpeg-dash.js +1 -1
  469. package/.next/standalone/node_modules/caniuse-lite/data/features/mpeg4.js +1 -1
  470. package/.next/standalone/node_modules/caniuse-lite/data/features/multibackgrounds.js +1 -1
  471. package/.next/standalone/node_modules/caniuse-lite/data/features/multicolumn.js +1 -1
  472. package/.next/standalone/node_modules/caniuse-lite/data/features/mutation-events.js +1 -1
  473. package/.next/standalone/node_modules/caniuse-lite/data/features/mutationobserver.js +1 -1
  474. package/.next/standalone/node_modules/caniuse-lite/data/features/namevalue-storage.js +1 -1
  475. package/.next/standalone/node_modules/caniuse-lite/data/features/native-filesystem-api.js +1 -1
  476. package/.next/standalone/node_modules/caniuse-lite/data/features/nav-timing.js +1 -1
  477. package/.next/standalone/node_modules/caniuse-lite/data/features/netinfo.js +1 -1
  478. package/.next/standalone/node_modules/caniuse-lite/data/features/notifications.js +1 -1
  479. package/.next/standalone/node_modules/caniuse-lite/data/features/object-entries.js +1 -1
  480. package/.next/standalone/node_modules/caniuse-lite/data/features/object-fit.js +1 -1
  481. package/.next/standalone/node_modules/caniuse-lite/data/features/object-observe.js +1 -1
  482. package/.next/standalone/node_modules/caniuse-lite/data/features/object-values.js +1 -1
  483. package/.next/standalone/node_modules/caniuse-lite/data/features/objectrtc.js +1 -1
  484. package/.next/standalone/node_modules/caniuse-lite/data/features/offline-apps.js +1 -1
  485. package/.next/standalone/node_modules/caniuse-lite/data/features/offscreencanvas.js +1 -1
  486. package/.next/standalone/node_modules/caniuse-lite/data/features/ogg-vorbis.js +1 -1
  487. package/.next/standalone/node_modules/caniuse-lite/data/features/ogv.js +1 -1
  488. package/.next/standalone/node_modules/caniuse-lite/data/features/ol-reversed.js +1 -1
  489. package/.next/standalone/node_modules/caniuse-lite/data/features/once-event-listener.js +1 -1
  490. package/.next/standalone/node_modules/caniuse-lite/data/features/online-status.js +1 -1
  491. package/.next/standalone/node_modules/caniuse-lite/data/features/opus.js +1 -1
  492. package/.next/standalone/node_modules/caniuse-lite/data/features/orientation-sensor.js +1 -1
  493. package/.next/standalone/node_modules/caniuse-lite/data/features/outline.js +1 -1
  494. package/.next/standalone/node_modules/caniuse-lite/data/features/pad-start-end.js +1 -1
  495. package/.next/standalone/node_modules/caniuse-lite/data/features/page-transition-events.js +1 -1
  496. package/.next/standalone/node_modules/caniuse-lite/data/features/pagevisibility.js +1 -1
  497. package/.next/standalone/node_modules/caniuse-lite/data/features/passive-event-listener.js +1 -1
  498. package/.next/standalone/node_modules/caniuse-lite/data/features/passkeys.js +1 -1
  499. package/.next/standalone/node_modules/caniuse-lite/data/features/passwordrules.js +1 -1
  500. package/.next/standalone/node_modules/caniuse-lite/data/features/path2d.js +1 -1
  501. package/.next/standalone/node_modules/caniuse-lite/data/features/payment-request.js +1 -1
  502. package/.next/standalone/node_modules/caniuse-lite/data/features/pdf-viewer.js +1 -1
  503. package/.next/standalone/node_modules/caniuse-lite/data/features/permissions-api.js +1 -1
  504. package/.next/standalone/node_modules/caniuse-lite/data/features/permissions-policy.js +1 -1
  505. package/.next/standalone/node_modules/caniuse-lite/data/features/picture-in-picture.js +1 -1
  506. package/.next/standalone/node_modules/caniuse-lite/data/features/picture.js +1 -1
  507. package/.next/standalone/node_modules/caniuse-lite/data/features/ping.js +1 -1
  508. package/.next/standalone/node_modules/caniuse-lite/data/features/png-alpha.js +1 -1
  509. package/.next/standalone/node_modules/caniuse-lite/data/features/pointer-events.js +1 -1
  510. package/.next/standalone/node_modules/caniuse-lite/data/features/pointer.js +1 -1
  511. package/.next/standalone/node_modules/caniuse-lite/data/features/pointerlock.js +1 -1
  512. package/.next/standalone/node_modules/caniuse-lite/data/features/portals.js +1 -1
  513. package/.next/standalone/node_modules/caniuse-lite/data/features/prefers-color-scheme.js +1 -1
  514. package/.next/standalone/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js +1 -1
  515. package/.next/standalone/node_modules/caniuse-lite/data/features/progress.js +1 -1
  516. package/.next/standalone/node_modules/caniuse-lite/data/features/promise-finally.js +1 -1
  517. package/.next/standalone/node_modules/caniuse-lite/data/features/promises.js +1 -1
  518. package/.next/standalone/node_modules/caniuse-lite/data/features/proximity.js +1 -1
  519. package/.next/standalone/node_modules/caniuse-lite/data/features/proxy.js +1 -1
  520. package/.next/standalone/node_modules/caniuse-lite/data/features/publickeypinning.js +1 -1
  521. package/.next/standalone/node_modules/caniuse-lite/data/features/push-api.js +1 -1
  522. package/.next/standalone/node_modules/caniuse-lite/data/features/queryselector.js +1 -1
  523. package/.next/standalone/node_modules/caniuse-lite/data/features/readonly-attr.js +1 -1
  524. package/.next/standalone/node_modules/caniuse-lite/data/features/referrer-policy.js +1 -1
  525. package/.next/standalone/node_modules/caniuse-lite/data/features/registerprotocolhandler.js +1 -1
  526. package/.next/standalone/node_modules/caniuse-lite/data/features/rel-noopener.js +1 -1
  527. package/.next/standalone/node_modules/caniuse-lite/data/features/rel-noreferrer.js +1 -1
  528. package/.next/standalone/node_modules/caniuse-lite/data/features/rellist.js +1 -1
  529. package/.next/standalone/node_modules/caniuse-lite/data/features/rem.js +1 -1
  530. package/.next/standalone/node_modules/caniuse-lite/data/features/requestanimationframe.js +1 -1
  531. package/.next/standalone/node_modules/caniuse-lite/data/features/requestidlecallback.js +1 -1
  532. package/.next/standalone/node_modules/caniuse-lite/data/features/resizeobserver.js +1 -1
  533. package/.next/standalone/node_modules/caniuse-lite/data/features/resource-timing.js +1 -1
  534. package/.next/standalone/node_modules/caniuse-lite/data/features/rest-parameters.js +1 -1
  535. package/.next/standalone/node_modules/caniuse-lite/data/features/rtcpeerconnection.js +1 -1
  536. package/.next/standalone/node_modules/caniuse-lite/data/features/ruby.js +1 -1
  537. package/.next/standalone/node_modules/caniuse-lite/data/features/run-in.js +1 -1
  538. package/.next/standalone/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js +1 -1
  539. package/.next/standalone/node_modules/caniuse-lite/data/features/screen-orientation.js +1 -1
  540. package/.next/standalone/node_modules/caniuse-lite/data/features/script-async.js +1 -1
  541. package/.next/standalone/node_modules/caniuse-lite/data/features/script-defer.js +1 -1
  542. package/.next/standalone/node_modules/caniuse-lite/data/features/scrollintoview.js +1 -1
  543. package/.next/standalone/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js +1 -1
  544. package/.next/standalone/node_modules/caniuse-lite/data/features/sdch.js +1 -1
  545. package/.next/standalone/node_modules/caniuse-lite/data/features/selection-api.js +1 -1
  546. package/.next/standalone/node_modules/caniuse-lite/data/features/server-timing.js +1 -1
  547. package/.next/standalone/node_modules/caniuse-lite/data/features/serviceworkers.js +1 -1
  548. package/.next/standalone/node_modules/caniuse-lite/data/features/setimmediate.js +1 -1
  549. package/.next/standalone/node_modules/caniuse-lite/data/features/shadowdom.js +1 -1
  550. package/.next/standalone/node_modules/caniuse-lite/data/features/shadowdomv1.js +1 -1
  551. package/.next/standalone/node_modules/caniuse-lite/data/features/sharedarraybuffer.js +1 -1
  552. package/.next/standalone/node_modules/caniuse-lite/data/features/sharedworkers.js +1 -1
  553. package/.next/standalone/node_modules/caniuse-lite/data/features/sni.js +1 -1
  554. package/.next/standalone/node_modules/caniuse-lite/data/features/spdy.js +1 -1
  555. package/.next/standalone/node_modules/caniuse-lite/data/features/speech-recognition.js +1 -1
  556. package/.next/standalone/node_modules/caniuse-lite/data/features/speech-synthesis.js +1 -1
  557. package/.next/standalone/node_modules/caniuse-lite/data/features/spellcheck-attribute.js +1 -1
  558. package/.next/standalone/node_modules/caniuse-lite/data/features/sql-storage.js +1 -1
  559. package/.next/standalone/node_modules/caniuse-lite/data/features/srcset.js +1 -1
  560. package/.next/standalone/node_modules/caniuse-lite/data/features/stream.js +1 -1
  561. package/.next/standalone/node_modules/caniuse-lite/data/features/streams.js +1 -1
  562. package/.next/standalone/node_modules/caniuse-lite/data/features/stricttransportsecurity.js +1 -1
  563. package/.next/standalone/node_modules/caniuse-lite/data/features/style-scoped.js +1 -1
  564. package/.next/standalone/node_modules/caniuse-lite/data/features/subresource-bundling.js +1 -1
  565. package/.next/standalone/node_modules/caniuse-lite/data/features/subresource-integrity.js +1 -1
  566. package/.next/standalone/node_modules/caniuse-lite/data/features/svg-css.js +1 -1
  567. package/.next/standalone/node_modules/caniuse-lite/data/features/svg-filters.js +1 -1
  568. package/.next/standalone/node_modules/caniuse-lite/data/features/svg-fonts.js +1 -1
  569. package/.next/standalone/node_modules/caniuse-lite/data/features/svg-fragment.js +1 -1
  570. package/.next/standalone/node_modules/caniuse-lite/data/features/svg-html.js +1 -1
  571. package/.next/standalone/node_modules/caniuse-lite/data/features/svg-html5.js +1 -1
  572. package/.next/standalone/node_modules/caniuse-lite/data/features/svg-img.js +1 -1
  573. package/.next/standalone/node_modules/caniuse-lite/data/features/svg-smil.js +1 -1
  574. package/.next/standalone/node_modules/caniuse-lite/data/features/svg.js +1 -1
  575. package/.next/standalone/node_modules/caniuse-lite/data/features/sxg.js +1 -1
  576. package/.next/standalone/node_modules/caniuse-lite/data/features/tabindex-attr.js +1 -1
  577. package/.next/standalone/node_modules/caniuse-lite/data/features/template-literals.js +1 -1
  578. package/.next/standalone/node_modules/caniuse-lite/data/features/template.js +1 -1
  579. package/.next/standalone/node_modules/caniuse-lite/data/features/temporal.js +1 -1
  580. package/.next/standalone/node_modules/caniuse-lite/data/features/testfeat.js +1 -1
  581. package/.next/standalone/node_modules/caniuse-lite/data/features/text-decoration.js +1 -1
  582. package/.next/standalone/node_modules/caniuse-lite/data/features/text-emphasis.js +1 -1
  583. package/.next/standalone/node_modules/caniuse-lite/data/features/text-overflow.js +1 -1
  584. package/.next/standalone/node_modules/caniuse-lite/data/features/text-size-adjust.js +1 -1
  585. package/.next/standalone/node_modules/caniuse-lite/data/features/text-stroke.js +1 -1
  586. package/.next/standalone/node_modules/caniuse-lite/data/features/textcontent.js +1 -1
  587. package/.next/standalone/node_modules/caniuse-lite/data/features/textencoder.js +1 -1
  588. package/.next/standalone/node_modules/caniuse-lite/data/features/tls1-1.js +1 -1
  589. package/.next/standalone/node_modules/caniuse-lite/data/features/tls1-2.js +1 -1
  590. package/.next/standalone/node_modules/caniuse-lite/data/features/tls1-3.js +1 -1
  591. package/.next/standalone/node_modules/caniuse-lite/data/features/touch.js +1 -1
  592. package/.next/standalone/node_modules/caniuse-lite/data/features/transforms2d.js +1 -1
  593. package/.next/standalone/node_modules/caniuse-lite/data/features/transforms3d.js +1 -1
  594. package/.next/standalone/node_modules/caniuse-lite/data/features/trusted-types.js +1 -1
  595. package/.next/standalone/node_modules/caniuse-lite/data/features/ttf.js +1 -1
  596. package/.next/standalone/node_modules/caniuse-lite/data/features/typedarrays.js +1 -1
  597. package/.next/standalone/node_modules/caniuse-lite/data/features/u2f.js +1 -1
  598. package/.next/standalone/node_modules/caniuse-lite/data/features/unhandledrejection.js +1 -1
  599. package/.next/standalone/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js +1 -1
  600. package/.next/standalone/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js +1 -1
  601. package/.next/standalone/node_modules/caniuse-lite/data/features/url.js +1 -1
  602. package/.next/standalone/node_modules/caniuse-lite/data/features/urlsearchparams.js +1 -1
  603. package/.next/standalone/node_modules/caniuse-lite/data/features/use-strict.js +1 -1
  604. package/.next/standalone/node_modules/caniuse-lite/data/features/user-select-none.js +1 -1
  605. package/.next/standalone/node_modules/caniuse-lite/data/features/user-timing.js +1 -1
  606. package/.next/standalone/node_modules/caniuse-lite/data/features/variable-fonts.js +1 -1
  607. package/.next/standalone/node_modules/caniuse-lite/data/features/vector-effect.js +1 -1
  608. package/.next/standalone/node_modules/caniuse-lite/data/features/vibration.js +1 -1
  609. package/.next/standalone/node_modules/caniuse-lite/data/features/video.js +1 -1
  610. package/.next/standalone/node_modules/caniuse-lite/data/features/videotracks.js +1 -1
  611. package/.next/standalone/node_modules/caniuse-lite/data/features/view-transitions.js +1 -1
  612. package/.next/standalone/node_modules/caniuse-lite/data/features/viewport-unit-variants.js +1 -1
  613. package/.next/standalone/node_modules/caniuse-lite/data/features/viewport-units.js +1 -1
  614. package/.next/standalone/node_modules/caniuse-lite/data/features/wai-aria.js +1 -1
  615. package/.next/standalone/node_modules/caniuse-lite/data/features/wake-lock.js +1 -1
  616. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-bigint.js +1 -1
  617. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-bulk-memory.js +1 -1
  618. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-extended-const.js +1 -1
  619. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-gc.js +1 -1
  620. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-multi-memory.js +1 -1
  621. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-multi-value.js +1 -1
  622. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-mutable-globals.js +1 -1
  623. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-nontrapping-fptoint.js +1 -1
  624. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-reference-types.js +1 -1
  625. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-relaxed-simd.js +1 -1
  626. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-signext.js +1 -1
  627. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-simd.js +1 -1
  628. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-tail-calls.js +1 -1
  629. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-threads.js +1 -1
  630. package/.next/standalone/node_modules/caniuse-lite/data/features/wasm.js +1 -1
  631. package/.next/standalone/node_modules/caniuse-lite/data/features/wav.js +1 -1
  632. package/.next/standalone/node_modules/caniuse-lite/data/features/wbr-element.js +1 -1
  633. package/.next/standalone/node_modules/caniuse-lite/data/features/web-animation.js +1 -1
  634. package/.next/standalone/node_modules/caniuse-lite/data/features/web-app-manifest.js +1 -1
  635. package/.next/standalone/node_modules/caniuse-lite/data/features/web-bluetooth.js +1 -1
  636. package/.next/standalone/node_modules/caniuse-lite/data/features/web-serial.js +1 -1
  637. package/.next/standalone/node_modules/caniuse-lite/data/features/web-share.js +1 -1
  638. package/.next/standalone/node_modules/caniuse-lite/data/features/webauthn.js +1 -1
  639. package/.next/standalone/node_modules/caniuse-lite/data/features/webcodecs.js +1 -1
  640. package/.next/standalone/node_modules/caniuse-lite/data/features/webgl.js +1 -1
  641. package/.next/standalone/node_modules/caniuse-lite/data/features/webgl2.js +1 -1
  642. package/.next/standalone/node_modules/caniuse-lite/data/features/webgpu.js +1 -1
  643. package/.next/standalone/node_modules/caniuse-lite/data/features/webhid.js +1 -1
  644. package/.next/standalone/node_modules/caniuse-lite/data/features/webkit-user-drag.js +1 -1
  645. package/.next/standalone/node_modules/caniuse-lite/data/features/webm.js +1 -1
  646. package/.next/standalone/node_modules/caniuse-lite/data/features/webnfc.js +1 -1
  647. package/.next/standalone/node_modules/caniuse-lite/data/features/webp.js +1 -1
  648. package/.next/standalone/node_modules/caniuse-lite/data/features/websockets.js +1 -1
  649. package/.next/standalone/node_modules/caniuse-lite/data/features/webtransport.js +1 -1
  650. package/.next/standalone/node_modules/caniuse-lite/data/features/webusb.js +1 -1
  651. package/.next/standalone/node_modules/caniuse-lite/data/features/webvr.js +1 -1
  652. package/.next/standalone/node_modules/caniuse-lite/data/features/webvtt.js +1 -1
  653. package/.next/standalone/node_modules/caniuse-lite/data/features/webworkers.js +1 -1
  654. package/.next/standalone/node_modules/caniuse-lite/data/features/webxr.js +1 -1
  655. package/.next/standalone/node_modules/caniuse-lite/data/features/will-change.js +1 -1
  656. package/.next/standalone/node_modules/caniuse-lite/data/features/woff.js +1 -1
  657. package/.next/standalone/node_modules/caniuse-lite/data/features/woff2.js +1 -1
  658. package/.next/standalone/node_modules/caniuse-lite/data/features/word-break.js +1 -1
  659. package/.next/standalone/node_modules/caniuse-lite/data/features/wordwrap.js +1 -1
  660. package/.next/standalone/node_modules/caniuse-lite/data/features/x-doc-messaging.js +1 -1
  661. package/.next/standalone/node_modules/caniuse-lite/data/features/x-frame-options.js +1 -1
  662. package/.next/standalone/node_modules/caniuse-lite/data/features/xhr2.js +1 -1
  663. package/.next/standalone/node_modules/caniuse-lite/data/features/xhtml.js +1 -1
  664. package/.next/standalone/node_modules/caniuse-lite/data/features/xhtmlsmil.js +1 -1
  665. package/.next/standalone/node_modules/caniuse-lite/data/features/xml-serializer.js +1 -1
  666. package/.next/standalone/node_modules/caniuse-lite/data/features/zstd.js +1 -1
  667. package/.next/standalone/node_modules/caniuse-lite/package.json +1 -1
  668. package/.next/standalone/node_modules/next/dist/build/swc/index.js +1 -1
  669. package/.next/standalone/node_modules/next/dist/build/webpack-config.js +2 -2
  670. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js +1 -1
  671. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +1 -1
  672. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +13 -13
  673. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js +12 -12
  674. package/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +1 -1
  675. package/.next/standalone/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js +1 -1
  676. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +1 -1
  677. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  678. package/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  679. package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +3 -1
  680. package/.next/standalone/node_modules/next/dist/shared/lib/canary-only.js +1 -1
  681. package/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  682. package/.next/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
  683. package/.next/standalone/node_modules/next/package.json +15 -15
  684. package/.next/standalone/node_modules/semver/classes/range.js +9 -0
  685. package/.next/standalone/node_modules/semver/package.json +1 -1
  686. package/.next/standalone/package.json +3 -2
  687. package/.next/static/BI7koHWCC15MOwsCfxo2O/_buildManifest.js +1 -0
  688. package/.next/static/chunks/{255-4f84124391a7dac4.js → 255-98a0bdaa30757bda.js} +1 -1
  689. package/.next/static/chunks/642-75adb59cbb062e44.js +1 -0
  690. package/.next/static/chunks/798-8424899efd598f73.js +1 -0
  691. package/.next/static/chunks/app/(dashboard)/integrations/page-25d6f67123a8a2ef.js +1 -0
  692. package/.next/{standalone/.next/static/chunks/app/(dashboard)/layout-e4ed5abcbb7c8802.js → static/chunks/app/(dashboard)/layout-a63b3fef68015cb5.js} +1 -1
  693. package/.next/static/chunks/app/(dashboard)/projects/[projectId]/page-cfab61233220bde3.js +1 -0
  694. package/.next/static/chunks/app/(dashboard)/projects/[projectId]/summary/{page-1b2e89d37c95e30f.js → page-1650386b60d0337f.js} +1 -1
  695. package/.next/static/chunks/app/(dashboard)/projects/page-420d60cc1ac676f3.js +1 -0
  696. package/.next/static/chunks/app/api/e2e/route-4f053c4f9dcca3c0.js +1 -0
  697. package/.next/static/chunks/app/api/generate/route-4f053c4f9dcca3c0.js +1 -0
  698. package/.next/static/chunks/app/api/llm/encrypt/route-4f053c4f9dcca3c0.js +1 -0
  699. package/.next/static/chunks/app/api/llm/test/route-4f053c4f9dcca3c0.js +1 -0
  700. package/.next/static/chunks/app/api/mcp/route-4f053c4f9dcca3c0.js +1 -0
  701. package/.next/static/chunks/app/api/refine-notes/route-4f053c4f9dcca3c0.js +1 -0
  702. package/.next/static/chunks/app/api/state/route-4f053c4f9dcca3c0.js +1 -0
  703. package/.next/static/chunks/app/api/weather/route-4f053c4f9dcca3c0.js +1 -0
  704. package/.next/static/chunks/app/page-3e00e649355cd3ac.js +1 -0
  705. package/.next/{standalone/.next/static/chunks/main-646068343426c12d.js → static/chunks/main-2af68c75fbdc984e.js} +1 -1
  706. package/.next/static/css/d95cfd16ee2f56f9.css +3 -0
  707. package/README.md +30 -17
  708. package/package.json +3 -2
  709. package/.next/standalone/.next/static/chunks/246-28370f424ce95be6.js +0 -1
  710. package/.next/standalone/.next/static/chunks/642-d84ad067810dd35b.js +0 -1
  711. package/.next/standalone/.next/static/chunks/app/(dashboard)/integrations/page-d62f7774ba0ed3ab.js +0 -1
  712. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[projectId]/page-0d320c1bd8d89d9c.js +0 -1
  713. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/page-5f4191feafff095a.js +0 -1
  714. package/.next/standalone/.next/static/chunks/app/api/e2e/route-234cc6154c5cd194.js +0 -1
  715. package/.next/standalone/.next/static/chunks/app/api/generate/route-234cc6154c5cd194.js +0 -1
  716. package/.next/standalone/.next/static/chunks/app/api/llm/encrypt/route-234cc6154c5cd194.js +0 -1
  717. package/.next/standalone/.next/static/chunks/app/api/llm/test/route-234cc6154c5cd194.js +0 -1
  718. package/.next/standalone/.next/static/chunks/app/api/refine-notes/route-234cc6154c5cd194.js +0 -1
  719. package/.next/standalone/.next/static/chunks/app/api/weather/route-234cc6154c5cd194.js +0 -1
  720. package/.next/standalone/.next/static/chunks/app/page-dd12a450edb4a44d.js +0 -1
  721. package/.next/standalone/.next/static/css/d31bdcc43c2da03c.css +0 -3
  722. package/.next/standalone/.next/static/pu5ThH8RrsP9e4dTXjYwA/_buildManifest.js +0 -1
  723. package/.next/standalone/node_modules/buffer-from/index.js +0 -72
  724. package/.next/standalone/node_modules/buffer-from/package.json +0 -19
  725. package/.next/standalone/node_modules/source-map/lib/array-set.js +0 -121
  726. package/.next/standalone/node_modules/source-map/lib/base64-vlq.js +0 -140
  727. package/.next/standalone/node_modules/source-map/lib/base64.js +0 -67
  728. package/.next/standalone/node_modules/source-map/lib/binary-search.js +0 -111
  729. package/.next/standalone/node_modules/source-map/lib/mapping-list.js +0 -79
  730. package/.next/standalone/node_modules/source-map/lib/quick-sort.js +0 -114
  731. package/.next/standalone/node_modules/source-map/lib/source-map-consumer.js +0 -1145
  732. package/.next/standalone/node_modules/source-map/lib/source-map-generator.js +0 -425
  733. package/.next/standalone/node_modules/source-map/lib/source-node.js +0 -413
  734. package/.next/standalone/node_modules/source-map/lib/util.js +0 -488
  735. package/.next/standalone/node_modules/source-map/package.json +0 -73
  736. package/.next/standalone/node_modules/source-map/source-map.js +0 -8
  737. package/.next/standalone/node_modules/source-map-support/package.json +0 -31
  738. package/.next/standalone/node_modules/source-map-support/source-map-support.js +0 -625
  739. package/.next/static/chunks/246-28370f424ce95be6.js +0 -1
  740. package/.next/static/chunks/642-d84ad067810dd35b.js +0 -1
  741. package/.next/static/chunks/app/(dashboard)/integrations/page-d62f7774ba0ed3ab.js +0 -1
  742. package/.next/static/chunks/app/(dashboard)/projects/[projectId]/page-0d320c1bd8d89d9c.js +0 -1
  743. package/.next/static/chunks/app/(dashboard)/projects/page-5f4191feafff095a.js +0 -1
  744. package/.next/static/chunks/app/api/e2e/route-234cc6154c5cd194.js +0 -1
  745. package/.next/static/chunks/app/api/generate/route-234cc6154c5cd194.js +0 -1
  746. package/.next/static/chunks/app/api/llm/encrypt/route-234cc6154c5cd194.js +0 -1
  747. package/.next/static/chunks/app/api/llm/test/route-234cc6154c5cd194.js +0 -1
  748. package/.next/static/chunks/app/api/refine-notes/route-234cc6154c5cd194.js +0 -1
  749. package/.next/static/chunks/app/api/weather/route-234cc6154c5cd194.js +0 -1
  750. package/.next/static/chunks/app/page-dd12a450edb4a44d.js +0 -1
  751. package/.next/static/css/d31bdcc43c2da03c.css +0 -3
  752. package/.next/static/pu5ThH8RrsP9e4dTXjYwA/_buildManifest.js +0 -1
  753. /package/.next/standalone/.next/static/{pu5ThH8RrsP9e4dTXjYwA → BI7koHWCC15MOwsCfxo2O}/_ssgManifest.js +0 -0
  754. /package/.next/static/{pu5ThH8RrsP9e4dTXjYwA → BI7koHWCC15MOwsCfxo2O}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[642],{158:(e,t,o)=>{o.d(t,{Bf:()=>C,G$:()=>j,Rz:()=>k,Vj:()=>u,hX:()=>f,ii:()=>p,k5:()=>m,nN:()=>c,sy:()=>L,wy:()=>s});var n=o(8566),l=o(9280),i=o.n(l);let a={untested:"⬜ Untested",pass:"✅ Pass",fail:"❌ Fail",skip:"⏭ Skip",blocked:"\uD83D\uDEAB Blocked"},r=e=>e.replace(/\n/g,"<br>").replace(/\|/g,"\\|");function s(e,t,o){let l=(o.length>0?o:n._X).filter(e=>e.visible),i=l.map(e=>e.label).join(" | "),s=l.map(()=>"---").join(" | "),c="# ".concat(e.code?e.code+" — ":"").concat(e.label,"\n\n");c+="| # | ".concat(i," |\n"),c+="|---|".concat(s,"|\n"),t.forEach((e,t)=>{let o=l.map(t=>"status"===t.key?a[e.status]:r(e[t.key]||""));c+="| ".concat(t+1," | ").concat(o.join(" | ")," |\n")});let d=t.length,p=t.filter(e=>"skip"===e.status).length,u=t.filter(e=>"pass"===e.status).length,m=d-p>0?Math.round(u/(d-p)*100):0;return c+="\n**Pass rate: ".concat(u,"/").concat(d-p," (").concat(m,"%)**\n")}function c(e,t){return JSON.stringify({node:e,testCases:t},null,2)}function d(e,t,o){let n=new Blob([e],{type:o}),l=URL.createObjectURL(n),i=document.createElement("a");i.href=l,i.download=t,i.click(),URL.revokeObjectURL(l)}function p(e){d(function(e){let t="# ".concat(e.name,"\n\n");for(let p of e.flows){var o,l,i,s,c,d;let u=e.testCases[p.id];if(!u||0===u.length)continue;let m=((null!=(s=null!=(i=null==(o=e.columnConfigs)?void 0:o[p.id])?i:e.columnConfig)?s:[]).length>0?null!=(d=null!=(c=null==(l=e.columnConfigs)?void 0:l[p.id])?c:e.columnConfig)?d:[]:n._X).filter(e=>e.visible),f=m.map(e=>e.label).join(" | "),g=m.map(()=>"---").join(" | ");t+="## ".concat(p.code?p.code+" — ":"").concat(p.label,"\n\n"),t+="| # | ".concat(f," |\n"),t+="|---|".concat(g,"|\n"),u.forEach((e,o)=>{let n=m.map(t=>"status"===t.key?a[e.status]:r(e[t.key]||""));t+="| ".concat(o+1," | ").concat(n.join(" | ")," |\n")});let h=u.length,v=u.filter(e=>"skip"===e.status).length,k=u.filter(e=>"pass"===e.status).length,y=h-v>0?Math.round(k/(h-v)*100):0;t+="\n**Pass rate: ".concat(k,"/").concat(h-v," (").concat(y,"%)**\n\n---\n\n")}return t}(e),"".concat(e.name,".md"),"text/markdown")}function u(e){d(JSON.stringify(e,null,2),"".concat(e.name,".json"),"application/json")}function m(e,t,o){let n=(e.code||e.label).replace(/[^a-zA-Z0-9_-]/g,"_");d(s(e,t,o),"".concat(n,".md"),"text/markdown")}function f(e,t){let o=(e.code||e.label).replace(/[^a-zA-Z0-9_-]/g,"_");d(c(e,t),"".concat(o,".json"),"application/json")}function g(e,t){let o=e&&e.length>0?e:t;return o.length>0?o:n._X}function h(e,t){return t.map(t=>"status"===t.key?a[e.status]:e[t.key]||"")}function v(e){return e.includes(",")||e.includes('"')||e.includes("\n")?'"'.concat(e.replace(/"/g,'""'),'"'):e}function k(e,t,o){let l=(e.code||e.label).replace(/[^a-zA-Z0-9_-]/g,"_");d(function(e,t,o){let l=g(o,n._X).filter(e=>e.visible);return[["#",...l.map(e=>v(e.label))].join(","),...t.map((e,t)=>[String(t+1),...h(e,l).map(v)].join(","))].join("\n")}(0,t,o),"".concat(l,".csv"),"text/csv")}function y(e,t){var o,l,i;let a=null!=(i=null!=(l=null==(o=e.columnConfigs)?void 0:o[t])?l:e.columnConfig)?i:[];return a.length>0?a:n._X}function b(e){e.fill={type:"pattern",pattern:"solid",fgColor:{argb:"FFdbd8d3"}},e.font={name:"Inter",bold:!0,size:11},e.border={top:{style:"thin"},bottom:{style:"thin"},left:{style:"thin"},right:{style:"thin"}},e.alignment={vertical:"middle",horizontal:"left",wrapText:!0}}function w(e){e.border={top:{style:"thin"},bottom:{style:"thin"},left:{style:"thin"},right:{style:"thin"}},e.font={name:"Inter",size:11},e.alignment={vertical:"middle",horizontal:"left",wrapText:!0}}function P(e,t,o,n,l){let i=e.addWorksheet(t);return i.columns=[{header:"#",key:"row",width:6},...l.map(e=>({header:e.label,key:e.key,width:Math.max(e.label.length+4,18)}))],i.getRow(1).eachCell(b),n.forEach((e,t)=>{let o={row:t+1};l.forEach(t=>{"status"===t.key?o[t.key]=a[e.status]:o[t.key]=e[t.key]||""}),i.addRow(o).eachCell(w)}),i}async function U(e,t,o){let l=g(o,n._X).filter(e=>e.visible),a=new(i()).Workbook;return a.creator="Ayu Management Tools",P(a,e.label,e.label,t,l),new Blob([await a.xlsx.writeBuffer()],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"})}async function j(e,t,o){let n=(e.code||e.label).replace(/[^a-zA-Z0-9_-]/g,"_"),l=await U(e,t,o),i=URL.createObjectURL(l),a=document.createElement("a");a.href=i,a.download="".concat(n,".xlsx"),a.click(),URL.revokeObjectURL(i)}async function M(e){let t=new(i()).Workbook;for(let o of(t.creator="Ayu Management Tools",e.flows)){let n=e.testCases[o.id];if(!n||0===n.length)continue;let l=y(e,o.id).filter(e=>e.visible);P(t,(o.code||o.label).substring(0,31).replace(/[\\/*?[\]]/g,"_"),o.label,n,l)}return new Blob([await t.xlsx.writeBuffer()],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"})}async function L(e){let t=await M(e),o=URL.createObjectURL(t),n=document.createElement("a");n.href=o,n.download="".concat(e.name,".xlsx"),n.click(),URL.revokeObjectURL(o)}function C(e){d(function(e){let t="";for(let o of e.flows){let n=e.testCases[o.id];if(!n||0===n.length)continue;let l=y(e,o.id).filter(e=>e.visible);t+="# ".concat(o.code?o.code+" — ":"").concat(o.label,"\n"),t+=["#",...l.map(e=>v(e.label))].join(",")+"\n",n.forEach((e,o)=>{let n=[String(o+1),...h(e,l).map(v)];t+=n.join(",")+"\n"}),t+="\n"}return t}(e),"".concat(e.name,".csv"),"text/csv")}},3362:(e,t,o)=>{o.d(t,{FC:()=>i,Pj:()=>l});let n={openai:{id:"openai",name:"OpenAI",type:"native",description:"GPT models powering ChatGPT. Industry-leading language understanding.",logoUrl:"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/openai.svg",keyUrl:"https://platform.openai.com/api-keys",keyPlaceholder:"sk-...",color:"#10A37F",sdkProvider:"openai",defaultModel:"gpt-4o-mini",popularModels:["gpt-4o","gpt-4o-mini","gpt-4-turbo","gpt-3.5-turbo"]},google:{id:"google",name:"Google Gemini",type:"native",description:"Google's multimodal AI with strong reasoning capabilities.",logoUrl:"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/googlegemini.svg",keyUrl:"https://aistudio.google.com/apikey",keyPlaceholder:"AIza...",color:"#4285F4",sdkProvider:"google",defaultModel:"gemini-2.5-flash",popularModels:["gemini-2.5-flash","gemini-2.5-pro","gemini-2.0-flash"]},anthropic:{id:"anthropic",name:"Anthropic",type:"native",description:"Claude models — safe, steerable, and highly capable.",logoUrl:"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/anthropic.svg",keyUrl:"https://console.anthropic.com/settings/keys",keyPlaceholder:"sk-ant-...",color:"#D97706",sdkProvider:"anthropic",defaultModel:"claude-sonnet-4-20250514",popularModels:["claude-sonnet-4-20250514","claude-haiku-4-20250514","claude-3-5-sonnet-20241022"]},deepseek:{id:"deepseek",name:"DeepSeek",type:"openai-compatible",description:"High-performance open-source models with competitive reasoning.",logoUrl:"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/deepseek.svg",keyUrl:"https://platform.deepseek.com/api_keys",keyPlaceholder:"sk-...",color:"#4D6BFE",sdkProvider:"openai",baseURL:"https://api.deepseek.com/v1",defaultModel:"deepseek-chat",popularModels:["deepseek-chat","deepseek-reasoner"]},xiaomi:{id:"xiaomi",name:"Xiaomi (MiMo)",type:"openai-compatible",description:"Xiaomi's MiMo models — OpenAI-compatible API.",logoUrl:"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/xiaomi.svg",keyUrl:"https://platform.xiaomimimo.com/",keyPlaceholder:"tp-...",color:"#FF6900",sdkProvider:"openai",baseURL:"https://token-plan-sgp.xiaomimimo.com/v1",defaultModel:"mimo-v2.5",popularModels:["mimo-v2.5","mimo-v2.5-pro"]},openrouter:{id:"openrouter",name:"OpenRouter",type:"openai-compatible",description:"Unified gateway to 200+ models — Claude, Llama, Mistral, Gemini, and more.",logoUrl:"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/openrouter.svg",keyUrl:"https://openrouter.ai/keys",keyPlaceholder:"sk-or-...",color:"#6366F1",sdkProvider:"openai",baseURL:"https://openrouter.ai/api/v1",defaultModel:"openrouter/free",popularModels:["openrouter/free","meta-llama/llama-4-maverick:free","google/gemini-2.5-flash:free","deepseek/deepseek-chat-v3-0324:free","mistralai/mistral-small-3.2-24b:free","qwen/qwen3-235b-a22b:free","microsoft/phi-4-reasoning-plus:free"]},groq:{id:"groq",name:"Groq",type:"native",description:"Ultra-fast inference with LPU hardware. Blazing speed for Llama, Mixtral, and Gemma models.",logoUrl:"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/groq.svg",keyUrl:"https://console.groq.com/keys",keyPlaceholder:"gsk_...",color:"#F55036",sdkProvider:"groq",defaultModel:"llama-3.3-70b-versatile",popularModels:["llama-3.3-70b-versatile","llama-3.1-8b-instant","mixtral-8x7b-32768","gemma2-9b-it","meta-llama/llama-4-scout-17b-16e-instruct","qwen-qwq-32b"]},custom:{id:"custom",name:"Custom (OpenAI-compatible)",type:"openai-compatible",description:"Any OpenAI-compatible API — Ollama, LM Studio, vLLM, LiteLLM, etc.",logoUrl:"",keyUrl:"",keyPlaceholder:"sk-... or any key",color:"#6B7280",sdkProvider:"openai",defaultModel:"",popularModels:[],requiresBaseURL:!0},"claude-code":{id:"claude-code",name:"Claude (Local CLI)",type:"local-cli",description:"Uses your locally installed, logged-in Claude Code CLI — no API key needed, billed against your Claude subscription instead of pay-per-token.",logoUrl:"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/anthropic.svg",keyUrl:"",keyPlaceholder:"",color:"#D97706",sdkProvider:"anthropic",defaultModel:"",popularModels:[]}},l=Object.values(n);function i(e){var t;return null!=(t=n[e])?t:n.custom}},7669:(e,t,o)=>{o.d(t,{P:()=>d});var n=o(2115),l=o(3362);let i="qa-llm-config",a={apiKey:"",baseURL:"",defaultModel:"",secondaryModel:"",models:[],connected:!1};function r(){let e={};for(let t of l.Pj)e[t.id]={...a,baseURL:t.baseURL||""};return{activeProvider:null,providers:e}}function s(){try{let t=localStorage.getItem(i);if(!t)return r();let o=JSON.parse(t);if(o.provider&&o.apiKey&&!o.providers){let e=r();return{...e,activeProvider:null,providers:{...e.providers,google:{...a,apiKey:o.apiKey,connected:!0}}}}let n=r(),s={...n,...o,providers:{...n.providers}};for(let t of l.Pj){var e;let n=null==(e=o.providers)?void 0:e[t.id];s.providers[t.id]={...a,baseURL:t.baseURL||"",...n}}return s}catch(e){return r()}}function c(e){try{localStorage.setItem(i,JSON.stringify(e))}catch(e){}}function d(){let[e,t]=(0,n.useState)(r),[o,i]=(0,n.useState)(!1);(0,n.useEffect)(()=>{t(s()),i(!0)},[]);let a=(0,n.useCallback)((e,o)=>{let n=s(),l={...n,providers:{...n.providers,[e]:{...n.providers[e],...o}}};c(l),t(l)},[]),d=(0,n.useCallback)(e=>{let o={...s(),activeProvider:e};c(o),t(o)},[]),p=e.activeProvider?e.providers[e.activeProvider]:null,u=!!e.activeProvider&&"local-cli"===(0,l.FC)(e.activeProvider).type,m=o&&!!p&&p.connected&&(u||p.apiKey.length>0);return{config:e,loaded:o,isConnected:m,activeProvider:p,activeProviderId:e.activeProvider,updateProvider:a,setActiveProvider:d}}},7711:(e,t,o)=>{o.d(t,{Z7:()=>l,Js:()=>i});var n=o(5653);async function l(e){let t=await fetch("/api/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json().catch(()=>({error:"Request failed"}))).error||"HTTP ".concat(t.status));return(await t.json()).testCases}async function i(e,t,o){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"google",l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",i=arguments.length>5?arguments[5]:void 0,a=await fetch("/api/refine-notes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:e,notes:t,apiKey:o,provider:n,model:l,baseURL:i})});if(!a.ok)throw Error((await a.json().catch(()=>({error:"Request failed"}))).error||"HTTP ".concat(a.status));return(await a.json()).refined}n.Ik({title:n.Yj().describe("Short descriptive title of the test case"),steps:n.Yj().describe("Numbered test steps separated by newlines"),expected:n.Yj().describe("Expected result of the test")})}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[798],{4417:(e,t,r)=>{r.d(t,{q:()=>C,M:()=>m});var l=r(5155),n=r(2115);function s(e,t){let[r,l]=(0,n.useState)(()=>(function(e,t){try{let r=localStorage.getItem(e);return r?JSON.parse(r):t}catch(e){return t}})(e,t)),[s,a]=(0,n.useState)(null),o=(0,n.useRef)(null);return(0,n.useEffect)(()=>{let t=t=>{if(t.key===e&&t.newValue)try{l(JSON.parse(t.newValue))}catch(e){}};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)},[e]),[r,(0,n.useCallback)(t=>{l(r=>{let l=t instanceof Function?t(r):t;return o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{try{localStorage.setItem(e,JSON.stringify(l))}catch(e){}a(new Date().toISOString())},300),l})},[e]),s]}var a=r(8566);let o={projects:{},activeProjectId:null,selectedNodeId:null};function c(e){var t;return Object.keys(null!=(t=e.projects)?t:{}).length>0}let i={name:"",bannerColor:"#64B5F6",avatarUrl:"",role:"QA Engineer"};function u(e){try{localStorage.setItem("qa-last-test-activity",new Date().toISOString());let t=localStorage.getItem("qa-project-activity"),r=t?JSON.parse(t):{};r[e]=new Date().toISOString(),localStorage.setItem("qa-project-activity",JSON.stringify(r))}catch(e){}}let d={baseUrl:"http://localhost:3000",browser:"chromium",headless:!0,timeout:3e4};var p=r(7065);let f=(0,n.createContext)(null);function C(e){let{children:t}=e,r=function(){var e;let[t,r,l]=s("qa-dashboard",o),i=(0,n.useRef)(!1),u=(0,n.useRef)(null);(0,n.useEffect)(()=>{let e=!1;return fetch("/api/state").then(e=>e.ok?e.json():null).then(l=>{!e&&l&&(c(l)?r(l):c(t)&&fetch("/api/state",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).catch(()=>{}))}).catch(()=>{}).finally(()=>{i.current=!0}),()=>{e=!0}},[]),(0,n.useEffect)(()=>{if(i.current)return u.current&&clearTimeout(u.current),u.current=setTimeout(()=>{fetch("/api/state",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).catch(()=>{})},300),()=>{u.current&&clearTimeout(u.current)}},[t]),(0,n.useEffect)(()=>{let e=setInterval(()=>{"hidden"!==document.visibilityState&&fetch("/api/state").then(e=>e.ok?e.json():null).then(e=>{e&&c(e)&&r(e)}).catch(()=>{})},4e3);return()=>clearInterval(e)},[r]);let d=(0,n.useCallback)((e,t)=>{let l=crypto.randomUUID(),n={id:l,name:e,type:t||"",notes:"",createdAt:new Date().toISOString(),flows:[],testCases:{},columnConfig:[...a._X],columnConfigs:{},edges:[],userProfile:{name:"",bannerColor:"#64B5F6"},nodeCounter:0,tcCounter:{}};return r(e=>({...e,projects:{...e.projects,[l]:n},activeProjectId:l,selectedNodeId:null})),l},[r]),p=(0,n.useCallback)(e=>{r(t=>{var r;let{[e]:l,...n}=t.projects,s=Object.keys(n);return{...t,projects:n,activeProjectId:t.activeProjectId===e?null!=(r=s[0])?r:null:t.activeProjectId,selectedNodeId:t.activeProjectId===e?null:t.selectedNodeId}})},[r]),f=(0,n.useCallback)(e=>{r(t=>({...t,activeProjectId:e,selectedNodeId:null}))},[r]),C=(0,n.useCallback)((e,t)=>{r(r=>({...r,projects:{...r.projects,[e]:{...r.projects[e],name:t}}}))},[r]),m=(0,n.useCallback)(e=>{r(t=>{let r=t.projects[e];if(!r)return t;let l=crypto.randomUUID(),n=new Date().toISOString(),s={...JSON.parse(JSON.stringify(r)),id:l,name:"".concat(r.name," (Copy)"),createdAt:n};return{...t,projects:{...t.projects,[l]:s},activeProjectId:l,selectedNodeId:null}})},[r]),v=(0,n.useCallback)(e=>{try{let t=JSON.parse(e);if(!t||"object"!=typeof t)return{ok:!1,error:"Invalid JSON"};if(!t.name||!t.flows)return{ok:!1,error:"Missing required fields (name, flows)"};let l=crypto.randomUUID(),n={id:l,name:t.name,createdAt:t.createdAt||new Date().toISOString(),flows:Array.isArray(t.flows)?t.flows:[],testCases:t.testCases&&"object"==typeof t.testCases?t.testCases:{},columnConfig:Array.isArray(t.columnConfig)?t.columnConfig:[...a._X],columnConfigs:t.columnConfigs&&"object"==typeof t.columnConfigs?t.columnConfigs:{},edges:Array.isArray(t.edges)?t.edges:[],userProfile:t.userProfile&&"object"==typeof t.userProfile?t.userProfile:{name:"",bannerColor:"#64B5F6"},nodeCounter:"number"==typeof t.nodeCounter?t.nodeCounter:0,tcCounter:t.tcCounter&&"object"==typeof t.tcCounter?t.tcCounter:{}};return r(e=>({...e,projects:{...e.projects,[l]:n},activeProjectId:l,selectedNodeId:null})),{ok:!0}}catch(e){return{ok:!1,error:"Failed to parse project file"}}},[r]),g=(0,n.useCallback)(e=>{r(t=>({...t,selectedNodeId:e}))},[r]),h=(0,n.useCallback)((e,t)=>{r(r=>({...r,projects:{...r.projects,[e]:t(r.projects[e])}}))},[r]),b=t.activeProjectId&&null!=(e=t.projects[t.activeProjectId])?e:null;return{state:t,setState:r,projects:t.projects,activeProject:b,activeProjectId:t.activeProjectId,selectedNodeId:t.selectedNodeId,createProject:d,deleteProject:p,duplicateProject:m,importProject:v,switchProject:f,renameProject:C,setSelectedNodeId:g,updateProject:h,lastSaved:l}}(),C=function(){let[e,t]=s("qa-profile",i),r=e.name.split(" ").map(e=>e[0]).filter(Boolean).slice(0,2).join("").toUpperCase()||"?";return{profile:e,setName:e=>t(t=>({...t,name:e})),setBannerColor:e=>t(t=>({...t,bannerColor:e})),setAvatarUrl:e=>t(t=>({...t,avatarUrl:e})),setRole:e=>t(t=>({...t,role:e})),initials:r}}(),m=function(e,t){let[r,l]=(0,n.useState)([]),[s,a]=(0,n.useState)(-1),o=(0,n.useRef)(!1),c=(0,n.useCallback)(t=>{if(!e||o.current){o.current=!1;return}l(r=>{let l=[...r.slice(0,s+1),{label:t,projectSnapshot:JSON.parse(JSON.stringify(e))}];return l.length>50&&l.shift(),l}),a(e=>Math.min(e+1,49))},[e,s]),i=(0,n.useCallback)(()=>{if(s<0||!e)return;let l=r[s];l&&(o.current=!0,t(e.id,()=>l.projectSnapshot),a(e=>e-1))},[r,s,e,t]),u=(0,n.useCallback)(()=>{if(s>=r.length-1||!e)return;let l=r[s+1];l&&(o.current=!0,t(e.id,()=>l.projectSnapshot),a(e=>e+1))},[r,s,e,t]),d=s>=0;return{pushState:c,undo:i,redo:u,canUndo:d,canRedo:s<r.length-1,recentActions:r.slice(-10).map(e=>e.label).reverse()}}(r.activeProject,r.updateProject),v=function(e,t,r,l){var s,o;let c=null!=(s=null==e?void 0:e.flows)?s:[],i=null!=(o=null==e?void 0:e.edges)?o:[],u=(0,n.useCallback)((r,n,s,o)=>{if(!e)return null;let c=crypto.randomUUID(),i="";return t(e.id,e=>{var t;let l=(null!=(t=e.nodeCounter)?t:0)+1,u=(n||"").trim().replace(/[^a-zA-Z0-9\s]/g,"").split(/\s+/).filter(e=>e.length>0),d="";d=u.length>=2?u[0].charAt(0).toUpperCase()+u[u.length-1].charAt(0).toUpperCase():1===u.length&&u[0].length>=2?u[0].charAt(0).toUpperCase()+u[0].charAt(u[0].length-1).toUpperCase():"N";let p=e.flows.map(e=>e.code),f=d,C=1;for(;p.includes(f);)f=d+String(++C);i=f;let m=(0,a.IU)(c,i,n,r);s&&(m.position=s),o&&(m.direction=o);let v=[...e.flows];if(r){let e=v.findIndex(e=>e.id===r);-1!==e&&(v[e]={...v[e],children:[...v[e].children,c]})}return v.push(m),{...e,flows:v,testCases:{...e.testCases,[c]:[]},nodeCounter:l}}),l(c),c},[e,t,l]),d=(0,n.useCallback)(n=>{if(!e)return;let s=new Set,a=t=>{s.add(t);let r=e.flows.find(e=>e.id===t);null==r||r.children.forEach(a)};a(n),t(e.id,e=>{var t;let r=e.flows.filter(e=>!s.has(e.id)).map(e=>({...e,children:e.children.filter(e=>!s.has(e))})),l={...e.testCases};s.forEach(e=>delete l[e]);let n=(null!=(t=e.edges)?t:[]).filter(e=>!s.has(e.fromId)&&!s.has(e.toId));return{...e,flows:r,testCases:l,edges:n}}),s.has(null!=r?r:"")&&l(null)},[e,t,r,l]),p=(0,n.useCallback)(n=>{if(!e||0===n.length)return;let s=new Set,a=t=>{s.add(t);let r=e.flows.find(e=>e.id===t);null==r||r.children.forEach(a)};n.forEach(a),t(e.id,e=>{var t;let r=e.flows.filter(e=>!s.has(e.id)).map(e=>({...e,children:e.children.filter(e=>!s.has(e))})),l={...e.testCases};s.forEach(e=>delete l[e]);let n=(null!=(t=e.edges)?t:[]).filter(e=>!s.has(e.fromId)&&!s.has(e.toId));return{...e,flows:r,testCases:l,edges:n}}),s.has(null!=r?r:"")&&l(null)},[e,t,r,l]),f=(0,n.useCallback)((r,l)=>{e&&t(e.id,e=>({...e,flows:e.flows.map(e=>e.id===r?{...e,label:l}:e)}))},[e,t]),C=(0,n.useCallback)((r,l)=>{e&&t(e.id,e=>({...e,flows:e.flows.map(e=>e.id===r?{...e,...l}:e)}))},[e,t]),m=(0,n.useCallback)(r=>{e&&t(e.id,e=>{let t=e.flows.find(e=>e.id===r);return t&&t.parentId?{...e,flows:e.flows.map(e=>e.id===r?{...e,parentId:null}:e.id===t.parentId?{...e,children:e.children.filter(e=>e!==r)}:e)}:e})},[e,t]),v=(0,n.useCallback)(e=>{l(e)},[l]),g=(0,n.useCallback)((r,l,n)=>{if(!e)return;let s={id:crypto.randomUUID(),fromId:r,toId:l,type:n};t(e.id,e=>{var t;return{...e,edges:[...null!=(t=e.edges)?t:[],s]}})},[e,t]),h=(0,n.useCallback)(r=>{e&&t(e.id,e=>{var t;return{...e,edges:(null!=(t=e.edges)?t:[]).filter(e=>e.id!==r)}})},[e,t]);return{nodes:c,edges:i,selectedNodeId:r,addNode:u,deleteNode:d,deleteNodes:p,unlinkNode:m,renameNode:f,updateNode:C,selectNode:v,addEdge:g,deleteEdge:h,updateEdge:(0,n.useCallback)((r,l)=>{e&&t(e.id,e=>{var t;return{...e,edges:(null!=(t=e.edges)?t:[]).map(e=>e.id===r?{...e,...l}:e)}})},[e,t]),resetLayout:(0,n.useCallback)(()=>{e&&t(e.id,e=>({...e,flows:e.flows.map(e=>({...e,position:null}))}))},[e,t])}}(r.activeProject,r.updateProject,r.selectedNodeId,r.setSelectedNodeId),g=function(e,t,r){var l;let s=r&&e&&null!=(l=e.testCases[r])?l:[],o=function(e){let t=e.length,r=e.filter(e=>"pass"===e.status).length,l=e.filter(e=>"fail"===e.status).length,n=e.filter(e=>"skip"===e.status).length,s=e.filter(e=>"untested"===e.status).length,a=e.filter(e=>"blocked"===e.status).length,o=t-n,c=o>0?Math.round(r/o*100):0;return{total:t,pass:r,fail:l,skip:n,untested:s,blocked:a,passRate:c}}(s),c=(0,n.useCallback)((r,l,n,s)=>{e&&(t(e.id,e=>(function(e,t,r,l,n){var s,a,o,c;let i=e.flows.find(e=>e.id===t),u=null!=(s=null==i?void 0:i.code)?s:"N000",d=null!=(a=e.testCases[t])?a:[],p={...null!=(o=e.tcCounter)?o:{}},f=(null!=(c=p[t])?c:0)+1;p[t]=f;let C="".concat(u,"-TC").concat(String(f).padStart(3,"0")),m={id:crypto.randomUUID(),code:C,title:r,steps:null!=l?l:"",expected:null!=n?n:"",status:"untested",case_type:"General",notes:"",links:"",order:d.length};return{project:{...e,testCases:{...e.testCases,[t]:[...d,m]},tcCounter:p},testCase:m}})(e,r,l,n,s).project),u(e.id))},[e,t]),i=(0,n.useCallback)((r,l,n)=>{e&&(t(e.id,e=>{var t;return{...e,testCases:{...e.testCases,[r]:(null!=(t=e.testCases[r])?t:[]).map(e=>e.id===l?{...e,...n}:e)}}}),u(e.id))},[e,t]),d=(0,n.useCallback)((r,l)=>{e&&t(e.id,e=>{var t;return{...e,testCases:{...e.testCases,[r]:(null!=(t=e.testCases[r])?t:[]).filter(e=>e.id!==l)}}})},[e,t]),p=(0,n.useCallback)((r,l)=>{e&&0!==l.length&&t(e.id,e=>(function(e,t,r){var l;let n=new Set(r);return{...e,testCases:{...e.testCases,[t]:(null!=(l=e.testCases[t])?l:[]).filter(e=>!n.has(e.id))}}})(e,r,l))},[e,t]),f=(0,n.useCallback)((r,l,n)=>{e&&0!==l.length&&t(e.id,e=>(function(e,t,r,l){var n;let s=new Set(r);return{...e,testCases:{...e.testCases,[t]:(null!=(n=e.testCases[t])?n:[]).map(e=>s.has(e.id)?{...e,...l}:e)}}})(e,r,l,n))},[e,t]),C=(0,n.useCallback)((r,l)=>{e&&t(e.id,e=>(function(e,t,r){var l;let n=new Map((null!=(l=e.testCases[t])?l:[]).map(e=>[e.id,e])),s=r.map((e,t)=>{let r=n.get(e);return r?{...r,order:t}:null}).filter(e=>null!==e);return{...e,testCases:{...e.testCases,[t]:s}}})(e,r,l))},[e,t]),m=(0,n.useCallback)((r,l,n)=>{e&&t(e.id,e=>{var t,s;let o={...null!=(t=e.columnConfigs)?t:{}},c=null!=(s=o[r])?s:[...a._X];return o[r]=c.map(e=>e.key===l?{...e,label:n}:e),{...e,columnConfigs:o}})},[e,t]),v=(0,n.useCallback)((r,l)=>{e&&t(e.id,e=>{var t,n;let s={...null!=(t=e.columnConfigs)?t:{}},o=null!=(n=s[r])?n:[...a._X];return s[r]=o.map(e=>e.key===l?{...e,visible:!e.visible}:e),{...e,columnConfigs:s}})},[e,t]),g=(0,n.useCallback)((r,l)=>{if(!e)return;let n=l.toLowerCase().replace(/\s+/g,"_");t(e.id,e=>{var t,s;let o={...null!=(t=e.columnConfigs)?t:{}},c=null!=(s=o[r])?s:[...a._X];return o[r]=[...c,{key:n,label:l,visible:!0}],{...e,columnConfigs:o}})},[e,t]);return{testCases:s,stats:o,addTestCase:c,updateTestCase:i,deleteTestCase:d,bulkDeleteTestCases:p,bulkUpdateTestCases:f,reorderTestCases:C,updateColumnConfig:m,toggleColumnVisibility:v,addColumn:g,deleteColumn:(0,n.useCallback)((r,l)=>{e&&t(e.id,e=>{var t,n;let s={...null!=(t=e.columnConfigs)?t:{}},o=null!=(n=s[r])?n:[...a._X];return s[r]=o.filter(e=>e.key!==l),{...e,columnConfigs:s}})},[e,t]),reorderColumn:(0,n.useCallback)((r,l,n)=>{e&&t(e.id,e=>{var t,s;let o={...null!=(t=e.columnConfigs)?t:{}},c=[...null!=(s=o[r])?s:[...a._X]],i=c.findIndex(e=>e.key===l);if(-1===i)return e;let u="up"===n?i-1:i+1;if(u<0||u>=c.length)return e;let d=c[i];return c[i]=c[u],c[u]=d,o[r]=c,{...e,columnConfigs:o}})},[e,t])}}(r.activeProject,r.updateProject,r.selectedNodeId),h=function(e,t){let r=null==e?void 0:e.id,l=(0,n.useMemo)(()=>(null==e?void 0:e.e2eData)||{config:d,runs:[],savedScripts:[]},[null==e?void 0:e.e2eData]),s=(0,n.useCallback)(e=>{r&&t(r,t=>({...t,e2eData:e(t.e2eData||{config:d,runs:[],savedScripts:[]})}))},[r,t]),a=(0,n.useCallback)(e=>{s(t=>({...t,config:{...t.config,...e}}))},[s]),o=(0,n.useCallback)(e=>{let t={...e,id:"run-".concat(Date.now(),"-").concat(Math.random().toString(36).slice(2,8)),timestamp:new Date().toISOString()};return s(e=>({...e,runs:[t,...e.runs].slice(0,20)})),t},[s]),c=(0,n.useCallback)(e=>{s(t=>({...t,runs:t.runs.filter(t=>t.id!==e)}))},[s]),i=(0,n.useCallback)(()=>{s(e=>({...e,runs:[]}))},[s]),u=(0,n.useCallback)((e,t,l,n)=>{s(s=>{let a=s.savedScripts.findIndex(t=>t.testCaseId===e),o={id:a>=0?s.savedScripts[a].id:"script-".concat(Date.now()),projectId:r,testCaseId:e,title:t,code:l,script:n,updatedAt:new Date().toISOString()},c=[...s.savedScripts];return a>=0?c[a]=o:c.push(o),{...s,savedScripts:c}})},[r,s]),p=(0,n.useCallback)(e=>{s(t=>({...t,savedScripts:t.savedScripts.filter(t=>t.testCaseId!==e)}))},[s]),f=(0,n.useCallback)(e=>l.savedScripts.find(t=>t.testCaseId===e),[l.savedScripts]);return{config:l.config,runs:l.runs,savedScripts:l.savedScripts,saveConfig:a,saveRun:o,deleteRun:c,clearRuns:i,saveScript:u,deleteScript:p,getScript:f}}(r.activeProject,r.updateProject),b=(0,p.s)(),y=(0,n.useMemo)(()=>({projects:r.projects,activeProject:r.activeProject,activeProjectId:r.activeProjectId,selectedNodeId:r.selectedNodeId,createProject:r.createProject,deleteProject:r.deleteProject,duplicateProject:r.duplicateProject,importProject:r.importProject,switchProject:r.switchProject,renameProject:r.renameProject,setSelectedNodeId:r.setSelectedNodeId,updateProject:r.updateProject,profile:C.profile,profileInitials:C.initials,setProfileName:C.setName,setProfileBannerColor:C.setBannerColor,setProfileAvatarUrl:C.setAvatarUrl,setProfileRole:C.setRole,canUndo:m.canUndo,canRedo:m.canRedo,undo:m.undo,redo:m.redo,pushState:m.pushState,mindmap:v,testCases:g,e2e:h,dialog:b.dialog,alertDialog:b.alert,confirmDialog:b.confirm,promptDialog:b.prompt,lastSaved:r.lastSaved}),[r,C,m,v,g,h,b]);return(0,l.jsx)(f.Provider,{value:y,children:t})}function m(){let e=(0,n.useContext)(f);if(!e)throw Error("useDashboard must be used within DashboardProvider");return e}},7065:(e,t,r)=>{r.d(t,{q:()=>a,s:()=>s});var l=r(5155),n=r(2115);function s(){let[e,t]=(0,n.useState)(null),r=(0,n.useCallback)((e,r)=>new Promise(l=>{t({type:"alert",title:e,message:r,resolve:()=>{t(null),l()}})}),[]);return{dialog:e,alert:r,confirm:(0,n.useCallback)((e,r)=>new Promise(l=>{t({type:"confirm",title:e,message:r,resolve:e=>{t(null),l(!0===e)}})}),[]),prompt:(0,n.useCallback)(function(e,r){let l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return new Promise(n=>{t({type:"prompt",title:e,message:r,defaultValue:l,resolve:e=>{t(null),n("string"==typeof e?e:null)}})})},[])}}function a(e){let{dialog:t}=e,[r,s]=(0,n.useState)(""),a=(0,n.useRef)(null);return((0,n.useEffect)(()=>{if((null==t?void 0:t.type)==="prompt"){var e;s(null!=(e=t.defaultValue)?e:""),setTimeout(()=>{var e;return null==(e=a.current)?void 0:e.focus()},50)}},[t]),(0,n.useEffect)(()=>{if(!t)return;let e=e=>{"Escape"===e.key&&t.resolve("prompt"===t.type&&null),"Enter"===e.key&&"prompt"!==t.type&&t.resolve("confirm"===t.type||null)};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[t]),t)?(0,l.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:()=>t.resolve("prompt"===t.type&&null),children:(0,l.jsx)("div",{className:"relative w-full max-w-sm mx-4",onClick:e=>e.stopPropagation(),children:(0,l.jsx)("div",{className:"p-[2px] rounded-xl overflow-hidden",style:{background:"linear-gradient(135deg, #9E7AFF 0%, #FE8BBB 50%, #9E7AFF 100%)",backgroundSize:"200% 200%",animation:"borderShine 3s linear infinite"},children:(0,l.jsxs)("div",{className:"rounded-[10px] p-5",style:{backgroundColor:"var(--bg-card)",boxShadow:"var(--shadow-xl)"},children:[(0,l.jsx)("h3",{className:"text-sm font-semibold mb-2",style:{color:"var(--text-primary)"},children:t.title}),(0,l.jsx)("p",{className:"text-xs mb-4",style:{color:"var(--text-secondary)"},children:t.message}),"prompt"===t.type&&(0,l.jsx)("input",{ref:a,value:r,onChange:e=>s(e.target.value),onKeyDown:e=>{"Enter"===e.key&&t.resolve(r.trim()||null)},className:"w-full px-3 py-2 text-sm rounded-lg border outline-none transition-colors focus:border-[var(--accent)] mb-4",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)",color:"var(--text-primary)"},placeholder:"Enter value..."}),(0,l.jsxs)("div",{className:"flex gap-2 justify-end",children:["alert"!==t.type&&(0,l.jsx)("button",{onClick:()=>t.resolve("prompt"===t.type&&null),className:"px-3 py-1.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,l.jsx)("button",{onClick:()=>{"confirm"===t.type?t.resolve(!0):"prompt"===t.type?t.resolve(r.trim()||null):t.resolve(null)},className:"px-3 py-1.5 text-xs font-medium rounded-lg transition-opacity hover:opacity-80",style:{backgroundColor:"var(--accent)",color:"var(--bg-primary)"},children:"confirm"===t.type?"Confirm":"OK"})]})]})})})}):null}},8566:(e,t,r)=>{r.d(t,{D_:()=>n,IU:()=>a,T7:()=>s,_X:()=>l});let l=[{key:"code",label:"ID",visible:!0},{key:"title",label:"Test Case",visible:!0},{key:"steps",label:"Steps",visible:!0},{key:"expected",label:"Expected Result",visible:!0},{key:"status",label:"Status",visible:!0},{key:"case_type",label:"Case Type",visible:!1},{key:"notes",label:"Notes",visible:!0},{key:"links",label:"Links",visible:!1}],n=["General","Positive","Negative"],s=["#E57373","#F06292","#BA68C8","#9575CD","#7986CB","#64B5F6","#4FC3F7","#4DD0E1","#4DB6AC","#81C784","#AED581","#FFD54F","#FFB74D","#FF8A65","#A1887F","#90A4AE"];function a(e,t,r,l){return{id:e,code:t,label:r,parentId:l,children:[],shape:"rounded",notes:"",position:null}}}}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[480],{469:(e,t,o)=>{Promise.resolve().then(o.bind(o,4071))},3362:(e,t,o)=>{"use strict";o.d(t,{FC:()=>a,Pj:()=>l});let r={openai:{id:"openai",name:"OpenAI",type:"native",description:"GPT models powering ChatGPT. Industry-leading language understanding.",logoUrl:"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/openai.svg",keyUrl:"https://platform.openai.com/api-keys",keyPlaceholder:"sk-...",color:"#10A37F",sdkProvider:"openai",defaultModel:"gpt-4o-mini",popularModels:["gpt-4o","gpt-4o-mini","gpt-4-turbo","gpt-3.5-turbo"]},google:{id:"google",name:"Google Gemini",type:"native",description:"Google's multimodal AI with strong reasoning capabilities.",logoUrl:"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/googlegemini.svg",keyUrl:"https://aistudio.google.com/apikey",keyPlaceholder:"AIza...",color:"#4285F4",sdkProvider:"google",defaultModel:"gemini-2.5-flash",popularModels:["gemini-2.5-flash","gemini-2.5-pro","gemini-2.0-flash"]},anthropic:{id:"anthropic",name:"Anthropic",type:"native",description:"Claude models — safe, steerable, and highly capable.",logoUrl:"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/anthropic.svg",keyUrl:"https://console.anthropic.com/settings/keys",keyPlaceholder:"sk-ant-...",color:"#D97706",sdkProvider:"anthropic",defaultModel:"claude-sonnet-4-20250514",popularModels:["claude-sonnet-4-20250514","claude-haiku-4-20250514","claude-3-5-sonnet-20241022"]},deepseek:{id:"deepseek",name:"DeepSeek",type:"openai-compatible",description:"High-performance open-source models with competitive reasoning.",logoUrl:"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/deepseek.svg",keyUrl:"https://platform.deepseek.com/api_keys",keyPlaceholder:"sk-...",color:"#4D6BFE",sdkProvider:"openai",baseURL:"https://api.deepseek.com/v1",defaultModel:"deepseek-chat",popularModels:["deepseek-chat","deepseek-reasoner"]},xiaomi:{id:"xiaomi",name:"Xiaomi (MiMo)",type:"openai-compatible",description:"Xiaomi's MiMo models — OpenAI-compatible API.",logoUrl:"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/xiaomi.svg",keyUrl:"https://platform.xiaomimimo.com/",keyPlaceholder:"tp-...",color:"#FF6900",sdkProvider:"openai",baseURL:"https://token-plan-sgp.xiaomimimo.com/v1",defaultModel:"mimo-v2.5",popularModels:["mimo-v2.5","mimo-v2.5-pro"]},openrouter:{id:"openrouter",name:"OpenRouter",type:"openai-compatible",description:"Unified gateway to 200+ models — Claude, Llama, Mistral, Gemini, and more.",logoUrl:"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/openrouter.svg",keyUrl:"https://openrouter.ai/keys",keyPlaceholder:"sk-or-...",color:"#6366F1",sdkProvider:"openai",baseURL:"https://openrouter.ai/api/v1",defaultModel:"openrouter/free",popularModels:["openrouter/free","meta-llama/llama-4-maverick:free","google/gemini-2.5-flash:free","deepseek/deepseek-chat-v3-0324:free","mistralai/mistral-small-3.2-24b:free","qwen/qwen3-235b-a22b:free","microsoft/phi-4-reasoning-plus:free"]},groq:{id:"groq",name:"Groq",type:"native",description:"Ultra-fast inference with LPU hardware. Blazing speed for Llama, Mixtral, and Gemma models.",logoUrl:"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/groq.svg",keyUrl:"https://console.groq.com/keys",keyPlaceholder:"gsk_...",color:"#F55036",sdkProvider:"groq",defaultModel:"llama-3.3-70b-versatile",popularModels:["llama-3.3-70b-versatile","llama-3.1-8b-instant","mixtral-8x7b-32768","gemma2-9b-it","meta-llama/llama-4-scout-17b-16e-instruct","qwen-qwq-32b"]},custom:{id:"custom",name:"Custom (OpenAI-compatible)",type:"openai-compatible",description:"Any OpenAI-compatible API — Ollama, LM Studio, vLLM, LiteLLM, etc.",logoUrl:"",keyUrl:"",keyPlaceholder:"sk-... or any key",color:"#6B7280",sdkProvider:"openai",defaultModel:"",popularModels:[],requiresBaseURL:!0},"claude-code":{id:"claude-code",name:"Claude (Local CLI)",type:"local-cli",description:"Uses your locally installed, logged-in Claude Code CLI — no API key needed, billed against your Claude subscription instead of pay-per-token.",logoUrl:"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/anthropic.svg",keyUrl:"",keyPlaceholder:"",color:"#D97706",sdkProvider:"anthropic",defaultModel:"",popularModels:[]}},l=Object.values(r);function a(e){var t;return null!=(t=r[e])?t:r.custom}},4071:(e,t,o)=>{"use strict";o.r(t),o.d(t,{default:()=>i});var r=o(5155),l=o(2115),a=o(5307),s=o(7669),n=o(3362);function i(){let{activeProviderId:e,setActiveProvider:t}=(0,s.P)(),[o,i]=(0,l.useState)(e);return(0,l.useEffect)(()=>{o||i(e)},[e]),(0,r.jsxs)("div",{className:"h-full overflow-auto relative",children:[(0,r.jsxs)("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[(0,r.jsx)(a.b,{width:40,height:40,x:-1,y:-1,className:"opacity-20"}),(0,r.jsx)("div",{className:"absolute inset-0",style:{background:"linear-gradient(to bottom, var(--bg-primary) 0%, transparent 20%, transparent 80%, var(--bg-primary) 100%)"}})]}),(0,r.jsxs)("div",{className:"relative p-6 max-w-4xl",children:[(0,r.jsxs)("div",{className:"mb-6",children:[(0,r.jsx)("h2",{className:"text-lg font-medium",style:{color:"var(--text-primary)"},children:"Integrations"}),(0,r.jsx)("p",{className:"text-xs mt-0.5",style:{color:"var(--text-tertiary)"},children:"Connect an AI provider to enable test case generation."})]}),(0,r.jsx)("h3",{className:"text-xs font-medium uppercase tracking-wider mb-3",style:{color:"var(--text-tertiary)"},children:"AI Providers"}),(0,r.jsx)("div",{className:"space-y-3",children:n.Pj.map(l=>(0,r.jsx)(d,{def:l,expanded:o===l.id,onToggle:()=>i(e=>e===l.id?null:l.id),isActive:e===l.id,onSetActive:()=>t(l.id)},l.id))})]})]})}function d(e){let{def:t,expanded:o,onToggle:l,isActive:a,onSetActive:s}=e;return"local-cli"===t.type?(0,r.jsx)(c,{def:t,expanded:o,onToggle:l,isActive:a,onSetActive:s}):(0,r.jsx)(p,{def:t,expanded:o,onToggle:l,isActive:a,onSetActive:s})}function c(e){let{def:t,expanded:o,onToggle:a,isActive:n,onSetActive:i}=e,{config:d,updateProvider:c}=(0,s.P)(),p=d.providers[t.id],[u,m]=(0,l.useState)(!1),[x,v]=(0,l.useState)(null),h=t.color||"#6B7280";if(!p)return null;let y=async()=>{m(!0),v(null);try{let e=await fetch("/api/llm/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t.id})}),o=await e.json();v(o)}catch(e){v({ok:!1,error:"Network error"})}finally{m(!1)}};return(0,r.jsxs)("div",{className:"rounded-xl border transition-all overflow-hidden",style:{borderColor:n?h:o?"var(--border-hover)":"var(--border)",backgroundColor:"var(--bg-card)",boxShadow:n?"0 0 0 1px ".concat(h,"20"):void 0},children:[(0,r.jsxs)("button",{onClick:a,className:"w-full px-5 py-4 flex items-center gap-3 text-left transition-colors hover:bg-[var(--bg-secondary)]",children:[(0,r.jsx)("div",{className:"w-11 h-11 rounded-lg flex items-center justify-center overflow-hidden flex-shrink-0",style:{backgroundColor:"".concat(h,"10")},children:t.logoUrl?(0,r.jsx)("img",{src:t.logoUrl,alt:t.name,width:24,height:24,className:"opacity-80",style:{filter:"brightness(0.5)"},onError:e=>{e.target.style.display="none"}}):(0,r.jsx)("span",{className:"text-xs font-bold",style:{color:h},children:"CLI"})}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"text-sm font-semibold",style:{color:"var(--text-primary)"},children:t.name}),n&&p.connected&&(0,r.jsx)("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full",style:{backgroundColor:"".concat(h,"15"),color:h},children:"Active"}),(0,r.jsx)("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full",style:{backgroundColor:p.connected?"var(--status-pass-bg)":"var(--bg-secondary)",color:p.connected?"var(--status-pass-text)":"var(--text-tertiary)"},children:p.connected?"Connected":"Not configured"})]}),(0,r.jsx)("p",{className:"text-[11px] mt-0.5 truncate",style:{color:"var(--text-tertiary)"},children:t.description})]}),(0,r.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"flex-shrink-0 transition-transform duration-200",style:{transform:o?"rotate(180deg)":"rotate(0deg)"},children:(0,r.jsx)("polyline",{points:"6 9 12 15 18 9"})})]}),(0,r.jsx)("div",{style:{maxHeight:o?"300px":"0px",overflow:"hidden",transition:"max-height 250ms ease-out"},children:(0,r.jsxs)("div",{className:"px-5 pb-5 pt-1 space-y-3",children:[(0,r.jsxs)("p",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:["No API key needed — this uses the ",(0,r.jsx)("code",{children:"claude"})," CLI already installed and logged in on the machine running this app's server, billed against your Claude subscription instead of pay-per-token."]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("button",{onClick:y,disabled:u,className:"px-4 py-2 text-xs font-medium rounded-lg border transition-all hover:bg-[var(--bg-secondary)] disabled:opacity-40",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:u?"Testing...":"Test"}),p.connected?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{onClick:()=>{c(t.id,{connected:!1})},className:"px-3 py-2 text-xs font-medium rounded-lg border transition-colors hover:bg-[var(--status-fail-bg)]",style:{borderColor:"var(--border)",color:"var(--text-tertiary)"},children:"Disconnect"}),!n&&(0,r.jsx)("button",{onClick:i,className:"px-3 py-2 text-xs font-medium rounded-lg transition-all hover:opacity-90",style:{backgroundColor:h,color:"#fff"},children:"Set Active"})]}):(0,r.jsx)("button",{onClick:()=>{c(t.id,{connected:!0})},className:"px-4 py-2 text-xs font-medium rounded-lg transition-all hover:opacity-90",style:{backgroundColor:h,color:"#fff"},children:"Connect"})]}),x&&(0,r.jsx)("div",{className:"text-xs px-3 py-2 rounded-lg",style:{backgroundColor:x.ok?"var(--status-pass-bg)":"var(--status-fail-bg)",color:x.ok?"var(--status-pass-text)":"var(--status-fail-text)"},children:x.ok?"Claude Code CLI is reachable and authenticated.":"Failed: ".concat(x.error)})]})})]})}function p(e){let{def:t,expanded:o,onToggle:a,isActive:n,onSetActive:i}=e,{config:d,updateProvider:c}=(0,s.P)(),p=d.providers[t.id],[m,x]=(0,l.useState)(!1),[v,h]=(0,l.useState)((null==p?void 0:p.apiKey)||""),[y,g]=(0,l.useState)((null==p?void 0:p.baseURL)||t.baseURL||""),[b,f]=(0,l.useState)(!1),k=(null==p?void 0:p.defaultModel)||t.defaultModel,[j,C]=(0,l.useState)(null),[N,w]=(0,l.useState)(null);(0,l.useEffect)(()=>{o&&p&&!p.connected&&!m&&(h(p.apiKey),g(p.baseURL||t.baseURL||""))},[o]),(0,l.useEffect)(()=>{(null==p?void 0:p.connected)&&p.apiKey&&!p.apiKey.startsWith("enc:")&&fetch("/api/llm/encrypt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({value:p.apiKey})}).then(e=>e.json()).then(e=>{e.encrypted&&c(t.id,{apiKey:e.encrypted})}).catch(()=>{})},[]);let U=async()=>{let e=v.trim();if(e){f(!0),C(null),w(null);try{let o=await fetch("/api/llm/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t.id,apiKey:e,baseURL:y.trim()||void 0,model:k})}),r=await o.json();C(r),r.ok&&w(e)}catch(e){C({ok:!1,error:"Network error"})}finally{f(!1)}}},P=async()=>{let e=N||v.trim();if(!e)return;if(!N)return void await U();let o=e;try{let t=await fetch("/api/llm/encrypt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({value:e})}),r=await t.json();r.encrypted&&(o=r.encrypted)}catch(e){}c(t.id,{apiKey:o,baseURL:y.trim()||t.baseURL||"",connected:!0,models:t.popularModels,defaultModel:(null==p?void 0:p.defaultModel)||t.defaultModel||t.popularModels[0]||"",secondaryModel:(null==p?void 0:p.secondaryModel)||""}),x(!1),C(null),w(null)},M=(e,o)=>{c(t.id,{[e]:o})};if(!p)return null;let L=t.color||"#6B7280";return(0,r.jsxs)("div",{className:"rounded-xl border transition-all overflow-hidden",style:{borderColor:n?L:o?"var(--border-hover)":"var(--border)",backgroundColor:"var(--bg-card)",boxShadow:n?"0 0 0 1px ".concat(L,"20"):void 0},children:[(0,r.jsxs)("button",{onClick:a,className:"w-full px-5 py-4 flex items-center gap-3 text-left transition-colors hover:bg-[var(--bg-secondary)]",children:[(0,r.jsx)("div",{className:"w-11 h-11 rounded-lg flex items-center justify-center overflow-hidden flex-shrink-0",style:{backgroundColor:"".concat(L,"10")},children:t.logoUrl?(0,r.jsx)("img",{src:t.logoUrl,alt:t.name,width:24,height:24,className:"opacity-80",style:{filter:"brightness(0.5)"},onError:e=>{e.target.style.display="none"}}):(0,r.jsx)("span",{className:"text-xs font-bold",style:{color:L},children:"API"})}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"text-sm font-semibold",style:{color:"var(--text-primary)"},children:t.name}),n&&p.connected&&(0,r.jsx)("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full",style:{backgroundColor:"".concat(L,"15"),color:L},children:"Active"}),(0,r.jsx)("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full",style:{backgroundColor:p.connected?"var(--status-pass-bg)":"var(--bg-secondary)",color:p.connected?"var(--status-pass-text)":"var(--text-tertiary)"},children:p.connected?"Connected":"Not configured"})]}),(0,r.jsx)("p",{className:"text-[11px] mt-0.5 truncate",style:{color:"var(--text-tertiary)"},children:t.description})]}),(0,r.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"var(--text-tertiary)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"flex-shrink-0 transition-transform duration-200",style:{transform:o?"rotate(180deg)":"rotate(0deg)"},children:(0,r.jsx)("polyline",{points:"6 9 12 15 18 9"})})]}),(0,r.jsx)("div",{style:{maxHeight:o?"600px":"0px",overflow:"hidden",transition:"max-height 250ms ease-out"},children:(0,r.jsxs)("div",{className:"px-5 pb-5 pt-1 space-y-3",children:[m||!p.connected?(0,r.jsxs)("div",{className:"space-y-2",children:[t.requiresBaseURL&&(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"text-[10px] font-medium uppercase tracking-wider block mb-1",style:{color:"var(--text-tertiary)"},children:"API Base URL"}),(0,r.jsx)("input",{type:"text",value:y,onChange:e=>{g(e.target.value),w(null),C(null)},placeholder:"https://api.example.com/v1",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-primary)",color:"var(--text-primary)"}})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("input",{type:"password",value:v,onChange:e=>{h(e.target.value),w(null),C(null)},placeholder:t.keyPlaceholder,className:"flex-1 px-3 py-2 text-sm rounded-lg outline-none border transition-colors focus:border-[var(--accent)]",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-primary)",color:"var(--text-primary)"},onKeyDown:e=>{"Enter"===e.key&&U()}}),(0,r.jsx)("button",{onClick:U,disabled:b||!v.trim(),className:"px-4 py-2 text-xs font-medium rounded-lg border transition-all hover:bg-[var(--bg-secondary)] disabled:opacity-40",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:b?(0,r.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,r.jsx)("svg",{className:"animate-spin",width:12,height:12,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,r.jsx)("circle",{cx:"12",cy:"12",r:"10",strokeDasharray:"30 70"})}),"Testing"]}):"Test"}),(0,r.jsx)("button",{onClick:P,disabled:!N&&!v.trim(),className:"px-4 py-2 text-xs font-medium rounded-lg transition-all hover:opacity-90 disabled:opacity-40",style:{backgroundColor:L,color:"#fff"},children:"Connect"}),m&&(0,r.jsx)("button",{onClick:()=>{x(!1),h(p.apiKey),g(p.baseURL||t.baseURL||""),w(null),C(null)},className:"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"})]}),j&&(0,r.jsx)("div",{className:"text-xs px-3 py-2 rounded-lg",style:{backgroundColor:j.ok?"var(--status-pass-bg)":"var(--status-fail-bg)",color:j.ok?"var(--status-pass-text)":"var(--status-fail-text)"},children:j.ok?"Connection verified! Click Connect to save.":"Failed: ".concat(j.error)}),t.keyUrl&&(0,r.jsxs)("p",{className:"text-[10px]",style:{color:"var(--text-tertiary)"},children:["Get your key at"," ",(0,r.jsx)("a",{href:t.keyUrl,target:"_blank",rel:"noopener noreferrer",style:{color:L,textDecoration:"underline"},children:t.keyUrl.replace("https://","").split("/")[0]})]})]}):(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("button",{onClick:()=>{h(p.apiKey),g(p.baseURL||t.baseURL||""),x(!0)},className:"flex-1 px-3 py-2 text-xs font-medium rounded-lg border transition-all hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:"Update API Key"}),(0,r.jsx)("button",{onClick:()=>{c(t.id,{apiKey:"",connected:!1,models:[],defaultModel:"",secondaryModel:""}),h(""),g(t.baseURL||""),x(!1),C(null)},className:"px-3 py-2 text-xs font-medium rounded-lg border transition-colors hover:bg-[var(--status-fail-bg)]",style:{borderColor:"var(--border)",color:"var(--text-tertiary)"},children:"Disconnect"}),!n&&(0,r.jsx)("button",{onClick:i,className:"px-3 py-2 text-xs font-medium rounded-lg transition-all hover:opacity-90",style:{backgroundColor:L,color:"#fff"},children:"Set Active"})]}),(0,r.jsxs)("div",{className:"pt-3 border-t",style:{borderColor:"var(--border)"},children:[(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"text-[10px] font-medium uppercase tracking-wider block mb-1.5",style:{color:"var(--text-tertiary)"},children:"Default Model"}),(0,r.jsx)(u,{value:p.defaultModel,models:p.models.length>0?p.models:t.popularModels,onChange:e=>M("defaultModel",e)})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"text-[10px] font-medium uppercase tracking-wider block mb-1.5",style:{color:"var(--text-tertiary)"},children:"Fallback Model"}),(0,r.jsx)(u,{value:p.secondaryModel,models:p.models.length>0?p.models:t.popularModels,onChange:e=>M("secondaryModel",e),allowEmpty:!0})]})]}),n&&p.connected&&(0,r.jsxs)("div",{className:"mt-2 text-[10px] flex items-center gap-1.5",style:{color:"var(--text-tertiary)"},children:[(0,r.jsx)("div",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:L}}),"Using ",p.defaultModel,p.secondaryModel?" (fallback: ".concat(p.secondaryModel,")"):""]})]})]})})]})}function u(e){let{value:t,models:o,onChange:a,allowEmpty:s}=e,[n,i]=(0,l.useState)(!1),d=o.includes(t);return n||!d&&""!==t?(0,r.jsxs)("div",{className:"flex gap-1",children:[(0,r.jsx)("input",{type:"text",value:t,onChange:e=>a(e.target.value),placeholder:"model-id",className:"flex-1 px-2.5 py-1.5 text-xs rounded-lg border outline-none transition-colors focus:border-[var(--accent)]",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-primary)",color:"var(--text-primary)"}}),o.length>0&&(0,r.jsx)("button",{onClick:()=>{i(!1),a(o[0])},className:"px-2 py-1.5 text-[10px] rounded-lg border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-tertiary)"},title:"Switch to preset list",children:(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("polyline",{points:"6 9 12 15 18 9"})})})]}):(0,r.jsxs)("div",{className:"flex gap-1",children:[(0,r.jsxs)("select",{value:t,onChange:e=>a(e.target.value),className:"flex-1 px-2.5 py-1.5 text-xs rounded-lg border outline-none transition-colors cursor-pointer",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-primary)",color:"var(--text-primary)"},children:[s&&(0,r.jsx)("option",{value:"",children:"None"}),o.map(e=>(0,r.jsx)("option",{value:e,children:e},e))]}),(0,r.jsx)("button",{onClick:()=>i(!0),className:"px-2 py-1.5 text-[10px] rounded-lg border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-tertiary)"},title:"Enter custom model ID",children:"✏️"})]})}},4269:(e,t,o)=>{"use strict";o.d(t,{cn:()=>a});var r=o(2821),l=o(5889);function a(){for(var e=arguments.length,t=Array(e),o=0;o<e;o++)t[o]=arguments[o];return(0,l.QP)((0,r.$)(t))}},5307:(e,t,o)=>{"use strict";o.d(t,{b:()=>s});var r=o(5155),l=o(2115),a=o(4269);function s(e){let{width:t=40,height:o=40,x:s=-1,y:n=-1,strokeDasharray:i="0",squares:d,className:c,...p}=e,u=(0,l.useId)();return(0,r.jsxs)("svg",{"aria-hidden":"true",className:(0,a.cn)("pointer-events-none absolute inset-0 h-full w-full fill-gray-400/30 stroke-gray-400/30",c),...p,children:[(0,r.jsx)("defs",{children:(0,r.jsx)("pattern",{id:u,width:t,height:o,patternUnits:"userSpaceOnUse",x:s,y:n,children:(0,r.jsx)("path",{d:"M.5 ".concat(o,"V.5H").concat(t),fill:"none",strokeDasharray:i})})}),(0,r.jsx)("rect",{width:"100%",height:"100%",strokeWidth:0,fill:"url(#".concat(u,")")}),d&&(0,r.jsx)("svg",{x:s,y:n,className:"overflow-visible",children:d.map(e=>{let[l,a]=e;return(0,r.jsx)("rect",{strokeWidth:"0",width:t-1,height:o-1,x:l*t+1,y:a*o+1},"".concat(l,"-").concat(a))})})]})}},7669:(e,t,o)=>{"use strict";o.d(t,{P:()=>c});var r=o(2115),l=o(3362);let a="qa-llm-config",s={apiKey:"",baseURL:"",defaultModel:"",secondaryModel:"",models:[],connected:!1};function n(){let e={};for(let t of l.Pj)e[t.id]={...s,baseURL:t.baseURL||""};return{activeProvider:null,providers:e}}function i(){try{let t=localStorage.getItem(a);if(!t)return n();let o=JSON.parse(t);if(o.provider&&o.apiKey&&!o.providers){let e=n();return{...e,activeProvider:null,providers:{...e.providers,google:{...s,apiKey:o.apiKey,connected:!0}}}}let r=n(),i={...r,...o,providers:{...r.providers}};for(let t of l.Pj){var e;let r=null==(e=o.providers)?void 0:e[t.id];i.providers[t.id]={...s,baseURL:t.baseURL||"",...r}}return i}catch(e){return n()}}function d(e){try{localStorage.setItem(a,JSON.stringify(e))}catch(e){}}function c(){let[e,t]=(0,r.useState)(n),[o,a]=(0,r.useState)(!1);(0,r.useEffect)(()=>{t(i()),a(!0)},[]);let s=(0,r.useCallback)((e,o)=>{let r=i(),l={...r,providers:{...r.providers,[e]:{...r.providers[e],...o}}};d(l),t(l)},[]),c=(0,r.useCallback)(e=>{let o={...i(),activeProvider:e};d(o),t(o)},[]),p=e.activeProvider?e.providers[e.activeProvider]:null,u=!!e.activeProvider&&"local-cli"===(0,l.FC)(e.activeProvider).type,m=o&&!!p&&p.connected&&(u||p.apiKey.length>0);return{config:e,loaded:o,isConnected:m,activeProvider:p,activeProviderId:e.activeProvider,updateProvider:s,setActiveProvider:c}}}},e=>{e.O(0,[909,441,255,358],()=>e(e.s=469)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[305],{63:(e,t,r)=>{"use strict";var a=r(7260);r.o(a,"useParams")&&r.d(t,{useParams:function(){return a.useParams}}),r.o(a,"usePathname")&&r.d(t,{usePathname:function(){return a.usePathname}}),r.o(a,"useRouter")&&r.d(t,{useRouter:function(){return a.useRouter}})},265:(e,t,r)=>{"use strict";r.d(t,{Vx:()=>n,p1:()=>l});var a=r(5155),s=r(2115);let o=(0,s.createContext)(null);function l(){let e=(0,s.useContext)(o);if(!e)throw Error("useProgress must be used within ProgressProvider");return e}function n(e){let{children:t}=e,[r,l]=(0,s.useState)(0),[n,i]=(0,s.useState)(""),[c,d]=(0,s.useState)(!1),u=(0,s.useRef)(null),x=(0,s.useRef)(null),h=(0,s.useCallback)(()=>{u.current&&(clearInterval(u.current),u.current=null),x.current&&(clearTimeout(x.current),x.current=null)},[]),p=(0,s.useCallback)(()=>{d(!1),l(0),i("")},[]),m=(0,s.useCallback)(e=>{h(),l(0),i(e||""),d(!0),u.current=setInterval(()=>{l(e=>e>=90?(u.current&&clearInterval(u.current),u.current=null,90):e+15*Math.random())},300),x.current=setTimeout(()=>{p()},8e3)},[h,p]),v=(0,s.useCallback)((e,t)=>{l(Math.min(95,e)),t&&i(t)},[]),b=(0,s.useCallback)(e=>{h(),l(100),e&&i(e),setTimeout(()=>{p()},500)},[h,p]),g=(0,s.useCallback)(()=>{h(),p()},[h,p]);return(0,s.useEffect)(()=>()=>h(),[h]),(0,a.jsxs)(o.Provider,{value:{startProgress:m,updateProgress:v,completeProgress:b,cancelProgress:g,isProgressing:c},children:[t,(0,a.jsxs)("div",{className:"fixed bottom-0 left-0 right-0 z-[600] transition-all duration-300 ease-out",style:{opacity:+!!c,transform:c?"translateY(0)":"translateY(100%)",pointerEvents:c?"auto":"none"},children:[(0,a.jsx)("div",{className:"h-1 w-full",style:{backgroundColor:"var(--bg-secondary)"},children:(0,a.jsx)("div",{className:"h-full transition-all duration-200 ease-out",style:{width:"".concat(r,"%"),backgroundColor:r>=100?"var(--status-pass-text)":"var(--accent)",boxShadow:r>=100?"0 0 10px var(--status-pass-text)":"none"}})}),n&&(0,a.jsxs)("div",{className:"flex items-center justify-center py-2 px-4 text-xs font-medium cursor-pointer",onClick:g,style:{backgroundColor:"var(--bg-card)",color:r>=100?"var(--status-pass-text)":"var(--text-secondary)",borderTop:"1px solid var(--border)"},children:[r>=100&&(0,a.jsx)("svg",{className:"mr-2",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:(0,a.jsx)("path",{d:"M2 6l3 3 5-5",stroke:"var(--status-pass-text)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),n]})]})]})}},854:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});var a=r(2115);let s="qa-auth";function o(e){try{sessionStorage.setItem(s,JSON.stringify(e))}catch(e){}}function l(){let[e,t]=(0,a.useState)({name:"",isLoggedIn:!1}),[r,l]=(0,a.useState)(!1);(0,a.useEffect)(()=>{t(function(){try{let e=sessionStorage.getItem(s);if(!e)return{name:"",isLoggedIn:!1};return JSON.parse(e)}catch(e){return{name:"",isLoggedIn:!1}}}()),l(!0)},[]);let n=(0,a.useCallback)(e=>{let r={name:e,isLoggedIn:!0};o(r),t(r)},[]),i=(0,a.useCallback)(()=>{let e={name:"",isLoggedIn:!1};o(e),t(e)},[]);return{...e,loaded:r,login:n,logout:i}}},8609:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>M});var a=r(5155),s=r(2115),o=r(63),l=r(7246),n=r(2619),i=r.n(n),c=r(854),d=r(8566);let u=["https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_11.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_12.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_13.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_14.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_15.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_16.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_17.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_18.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_19.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_20.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_21.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_22.png"],x=["https://i.pinimg.com/736x/ed/74/06/ed74063ade6d66fce2ca19acbe74babc.jpg","https://i.pinimg.com/736x/8c/6d/56/8c6d563311f0917d45d1f2ce5d7c1a2d.jpg","https://i.pinimg.com/736x/86/b8/be/86b8bea1c772cf5c540e6f01e6acce59.jpg","https://i.pinimg.com/736x/78/d4/b1/78d4b1787a4fd23c2a8d21e4fbbc016f.jpg","https://i.pinimg.com/1200x/87/de/e6/87dee6d33b04f1df28bc85702ee12d4b.jpg","https://i.pinimg.com/1200x/3b/e3/95/3be395c4a94705f95e0603afb04f9d56.jpg","https://media.licdn.com/dms/image/v2/D5603AQHBu4wrzFWoTw/profile-displayphoto-crop_800_800/B56Zq.Sy6LKsAI-/0/1764129191465?e=1782345600&v=beta&t=79y6xLivwcpvwy53sy1TuVopK4FMp6O8uAu7QxlIxDo"],h=["QA Engineer","QA Lead","Developer","Designer","Manager"];function p(e,t){let r=parseInt(e.replace("#",""),16),a=Math.min(255,(r>>16)+Math.round((255-(r>>16))*t)),s=Math.min(255,(r>>8&255)+Math.round((255-(r>>8&255))*t)),o=Math.min(255,(255&r)+Math.round((255-(255&r))*t));return"#".concat((a<<16|s<<8|o).toString(16).padStart(6,"0"))}function m(e){let{profile:t,initials:r,onSetName:o,onSetBannerColor:l,onSetAvatarUrl:n,onSetRole:i}=e,[c,m]=(0,s.useState)(!1),[v,b]=(0,s.useState)(!1),[g,f]=(0,s.useState)(!1),[y,j]=(0,s.useState)(t.name),[k,w]=(0,s.useState)(t.role||""),N=(0,s.useRef)(null),C=(0,s.useRef)(null),S=(0,s.useRef)(null);(0,s.useEffect)(()=>{let e=e=>{N.current&&!N.current.contains(e.target)&&m(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,s.useEffect)(()=>{v&&C.current&&C.current.focus()},[v]),(0,s.useEffect)(()=>{g&&S.current&&S.current.focus()},[g]);let M=()=>{o(y.trim()),b(!1)},L=()=>{i(k.trim()),f(!1)},I=!!t.avatarUrl;return(0,a.jsxs)("div",{className:"relative",ref:N,children:[(0,a.jsx)("button",{onClick:()=>m(!c),className:"w-9 h-9 rounded-full flex items-center justify-center text-xs font-medium overflow-hidden border-2 transition-all hover:scale-105",style:{borderColor:c?"var(--accent)":"transparent",boxShadow:c?"0 0 0 2px var(--accent), 0 2px 8px rgba(0,0,0,0.1)":"0 1px 3px rgba(0,0,0,0.08)"},children:I?(0,a.jsx)("img",{src:t.avatarUrl,alt:"Avatar",className:"w-full h-full object-cover"}):(0,a.jsx)("span",{className:"w-full h-full flex items-center justify-center",style:{backgroundColor:t.bannerColor,color:"#fff"},children:r})}),c&&(0,a.jsxs)("div",{className:"absolute right-0 top-full mt-2 w-80 border z-50 overflow-hidden",style:{backgroundColor:"var(--bg-card)",borderColor:"var(--border)",borderRadius:"var(--radius-lg)",boxShadow:"var(--shadow-xl)",animation:"fadeIn 150ms ease-out"},children:[(0,a.jsxs)("div",{className:"relative px-5 pt-5 pb-4",style:{background:"linear-gradient(135deg, ".concat(t.bannerColor," 0%, ").concat(p(t.bannerColor,.4)," 50%, ").concat(t.bannerColor," 100%)")},children:[(0,a.jsx)("div",{className:"absolute inset-0 opacity-10",style:{backgroundImage:"radial-gradient(circle at 20% 50%, white 1px, transparent 1px), radial-gradient(circle at 80% 20%, white 1px, transparent 1px)",backgroundSize:"30px 30px"}}),(0,a.jsxs)("div",{className:"relative flex items-end gap-4",children:[(0,a.jsxs)("div",{className:"relative group",children:[(0,a.jsx)("div",{className:"w-16 h-16 rounded-xl overflow-hidden border-3 flex-shrink-0",style:{borderColor:"rgba(255,255,255,0.3)",boxShadow:"0 4px 12px rgba(0,0,0,0.2)"},children:I?(0,a.jsx)("img",{src:t.avatarUrl,alt:"Avatar",className:"w-full h-full object-cover"}):(0,a.jsx)("div",{className:"w-full h-full flex items-center justify-center text-xl font-bold",style:{backgroundColor:t.bannerColor,color:"#fff"},children:r})}),(0,a.jsx)("div",{className:"absolute inset-0 rounded-xl flex items-center justify-center opacity-0 group-hover:opacity-100 cursor-pointer transition-opacity",style:{backgroundColor:"rgba(0,0,0,0.4)"},onClick:e=>{var t;e.stopPropagation(),null==(t=document.getElementById("avatar-gallery"))||t.scrollIntoView({behavior:"smooth"})},children:(0,a.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"white",children:(0,a.jsx)("path",{d:"M14 11V14H2V11H0V14C0 15.1.9 16 2 16H14C15.1 16 16 15.1 16 14V11H14ZM7 9L4.5 6.5L3 8L8 13L13 8L11.5 6.5L9 9V0H7V9Z"})})})]}),(0,a.jsxs)("div",{className:"flex-1 min-w-0 pb-1",children:[v?(0,a.jsx)("input",{ref:C,value:y,onChange:e=>j(e.target.value),onBlur:M,onKeyDown:e=>{"Enter"===e.key&&M(),"Escape"===e.key&&b(!1)},className:"w-full bg-white/20 backdrop-blur-sm outline-none text-white text-sm font-semibold px-2 py-1 rounded placeholder-white/50",placeholder:"Your name..."}):(0,a.jsx)("div",{className:"text-sm font-semibold text-white cursor-pointer hover:opacity-80 truncate",onClick:()=>{j(t.name),b(!0)},children:t.name||"Click to set name"}),(0,a.jsx)("div",{className:"text-[11px] mt-0.5 px-2 py-0.5 rounded-full inline-block cursor-pointer hover:opacity-80",style:{backgroundColor:"rgba(255,255,255,0.15)",color:"rgba(255,255,255,0.9)"},onClick:()=>{w(t.role||""),f(!0)},children:g?(0,a.jsx)("input",{ref:S,value:k,onChange:e=>w(e.target.value),onBlur:L,onKeyDown:e=>{"Enter"===e.key&&L(),"Escape"===e.key&&f(!1)},className:"bg-transparent outline-none text-white text-[11px] w-24 placeholder-white/50",placeholder:"Your role..."}):t.role||"Set role..."})]})]})]}),(0,a.jsxs)("div",{className:"px-4 pt-3 pb-2",children:[(0,a.jsx)("label",{className:"text-[10px] font-semibold uppercase tracking-wider block mb-2",style:{color:"var(--text-tertiary)"},children:"Role"}),(0,a.jsx)("div",{className:"flex flex-wrap gap-1.5",children:h.map(e=>(0,a.jsx)("button",{onClick:()=>i(e),className:"px-2 py-1 text-[10px] rounded-md border transition-colors",style:{borderColor:t.role===e?"var(--accent)":"var(--border)",color:t.role===e?"var(--accent)":"var(--text-secondary)",backgroundColor:t.role===e?"var(--accent)10":"transparent",fontWeight:t.role===e?600:400},children:e},e))})]}),(0,a.jsxs)("div",{id:"avatar-gallery",className:"px-4 pt-2 pb-3",children:[(0,a.jsx)("label",{className:"text-[10px] font-semibold uppercase tracking-wider block mb-2",style:{color:"var(--text-tertiary)"},children:"Choose Avatar"}),(0,a.jsx)("div",{className:"grid grid-cols-6 gap-2",children:u.map((e,r)=>(0,a.jsx)("button",{onClick:()=>n(e),className:"w-10 h-10 rounded-lg overflow-hidden border-2 transition-all hover:scale-110 hover:shadow-md",style:{borderColor:t.avatarUrl===e?"var(--accent)":"transparent",boxShadow:t.avatarUrl===e?"0 0 0 2px var(--accent)":"none"},children:(0,a.jsx)("img",{src:e,alt:"Avatar ".concat(r+11),className:"w-full h-full object-cover",loading:"lazy"})},e))}),(0,a.jsx)("div",{className:"grid grid-cols-6 gap-2 mt-2",children:x.map((e,r)=>(0,a.jsx)("button",{onClick:()=>n(e),className:"w-10 h-10 rounded-lg overflow-hidden border-2 transition-all hover:scale-110 hover:shadow-md",style:{borderColor:t.avatarUrl===e?"var(--accent)":"transparent",boxShadow:t.avatarUrl===e?"0 0 0 2px var(--accent)":"none"},children:(0,a.jsx)("img",{src:e,alt:"Avatar ".concat(r+23),className:"w-full h-full object-cover",loading:"lazy"})},e))})]}),(0,a.jsxs)("div",{className:"px-4 pb-4",children:[(0,a.jsx)("label",{className:"text-[10px] font-semibold uppercase tracking-wider block mb-2",style:{color:"var(--text-tertiary)"},children:"Banner Color"}),(0,a.jsx)("div",{className:"grid grid-cols-8 gap-1.5",children:d.T7.map(e=>(0,a.jsx)("button",{onClick:()=>l(e),className:"w-6 h-6 rounded-full transition-transform hover:scale-110 relative overflow-hidden",style:{background:"linear-gradient(135deg, ".concat(function(e,t){let r=parseInt(e.replace("#",""),16),a=Math.max(0,(r>>16)-Math.round((r>>16)*.3)),s=Math.max(0,(r>>8&255)-Math.round((r>>8&255)*.3)),o=Math.max(0,(255&r)-Math.round((255&r)*t));return"#".concat((a<<16|s<<8|o).toString(16).padStart(6,"0"))}(e,.3)," 0%, ").concat(e," 50%, ").concat(p(e,.3)," 100%)"),outline:t.bannerColor!==e||t.avatarUrl?"none":"2px solid var(--accent)",outlineOffset:2},children:(0,a.jsx)("div",{className:"absolute inset-0",style:{background:"linear-gradient(135deg, transparent 0%, rgba(255,255,255,0.3) 50%, transparent 100%)",animation:"shimmer 2s ease-in-out infinite"}})},e))})]}),(0,a.jsxs)("div",{className:"px-4 py-2.5 border-t flex items-center justify-between",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)"},children:[(0,a.jsx)("span",{className:"text-[10px]",style:{color:"var(--text-tertiary)"},children:"Profile data stored locally"}),(0,a.jsx)("button",{onClick:()=>m(!1),className:"text-[10px] font-medium px-2 py-0.5 rounded",style:{color:"var(--accent)"},children:"Done"})]})]})]})}function v(e){let{open:t,onClose:r,profile:o,initials:l,stats:n}=e,[i,c]=(0,s.useState)(!1),[d,u]=(0,s.useState)(!1);if(!t)return null;let x="My Test Lah!:\n".concat(n.projects," Projects | ").concat(n.testCases," Cases | ").concat(n.passRate,"% Pass Rate"),h=async()=>{if(navigator.share)try{await navigator.share({title:"Test Lah! Stats",text:x})}catch(e){}else navigator.clipboard.writeText(x)};return(0,a.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,a.jsxs)("div",{className:"w-72 mx-4",onClick:e=>e.stopPropagation(),style:{perspective:"1000px"},children:[(0,a.jsxs)("div",{className:"relative w-full",style:{transformStyle:"preserve-3d",transform:i?"rotateY(180deg)":"rotateY(0)",transition:"transform 0.5s ease",height:"380px"},children:[(0,a.jsxs)("div",{className:"absolute inset-0 rounded-xl overflow-hidden border",style:{backfaceVisibility:"hidden",borderColor:"var(--border)",boxShadow:"var(--shadow-lg)"},children:[(0,a.jsx)("div",{className:"absolute inset-0",style:{background:"linear-gradient(160deg, ".concat(function(e,t){let r=parseInt(e.replace("#",""),16),a=Math.max(0,(r>>16)-Math.round((r>>16)*.25)),s=Math.max(0,(r>>8&255)-Math.round((r>>8&255)*t)),o=Math.max(0,(255&r)-Math.round((255&r)*t));return"#".concat((a<<16|s<<8|o).toString(16).padStart(6,"0"))}(o.bannerColor,.25)," 0%, ").concat(o.bannerColor," 50%, ").concat(function(e,t){let r=parseInt(e.replace("#",""),16),a=Math.min(255,(r>>16)+Math.round((255-(r>>16))*.2)),s=Math.min(255,(r>>8&255)+Math.round((255-(r>>8&255))*t)),o=Math.min(255,(255&r)+Math.round((255-(255&r))*t));return"#".concat((a<<16|s<<8|o).toString(16).padStart(6,"0"))}(o.bannerColor,.2)," 100%)")}}),(0,a.jsxs)("div",{className:"relative h-full flex flex-col items-center justify-center px-4",children:[(0,a.jsx)("div",{className:"w-20 h-20 rounded-xl overflow-hidden border-2 mb-3",style:{borderColor:"rgba(255,255,255,0.3)"},children:o.avatarUrl?(0,a.jsx)("img",{src:o.avatarUrl,alt:"Avatar",className:"w-full h-full object-cover"}):(0,a.jsx)("div",{className:"w-full h-full flex items-center justify-center text-2xl font-bold",style:{backgroundColor:"rgba(0,0,0,0.2)",color:"#fff"},children:l})}),(0,a.jsx)("h3",{className:"text-base font-semibold text-white drop-shadow-sm",children:o.name||"Anonymous Tester"}),(0,a.jsx)("p",{className:"text-xs mt-0.5 text-white/70",children:o.role||"No role set"}),(0,a.jsxs)("div",{className:"flex items-center gap-4 mt-4",children:[(0,a.jsx)(b,{value:n.projects,label:"Projects"}),(0,a.jsx)("div",{className:"w-px h-6 bg-white/20"}),(0,a.jsx)(b,{value:n.testCases,label:"Cases"}),(0,a.jsx)("div",{className:"w-px h-6 bg-white/20"}),(0,a.jsx)(b,{value:"".concat(n.passRate,"%"),label:"Pass"})]}),(0,a.jsx)("button",{onClick:()=>c(!0),className:"mt-5 px-4 py-1.5 text-[11px] font-medium rounded-full transition-colors",style:{backgroundColor:"rgba(255,255,255,0.2)",color:"#fff"},children:"View stats"}),(0,a.jsx)("button",{onClick:()=>u(!0),className:"mt-2 px-4 py-1.5 text-[11px] font-medium rounded-full transition-colors",style:{backgroundColor:"rgba(255,255,255,0.1)",color:"rgba(255,255,255,0.7)"},children:"Get reward for my hardwork"})]})]}),(0,a.jsx)("div",{className:"absolute inset-0 rounded-xl overflow-hidden border",style:{backfaceVisibility:"hidden",transform:"rotateY(180deg)",borderColor:"var(--border)",backgroundColor:"var(--bg-card)",boxShadow:"var(--shadow-lg)"},children:(0,a.jsxs)("div",{className:"h-full flex flex-col",children:[(0,a.jsxs)("div",{className:"px-4 py-3 border-b flex items-center justify-between",style:{borderColor:"var(--border)"},children:[(0,a.jsx)("span",{className:"text-xs font-semibold",style:{color:"var(--text-primary)"},children:"Statistics"}),(0,a.jsx)("button",{onClick:()=>c(!1),className:"text-[10px] px-2 py-0.5 rounded border transition-colors hover:bg-[var(--bg-secondary)]",style:{color:"var(--text-tertiary)",borderColor:"var(--border)"},children:"Back"})]}),(0,a.jsxs)("div",{className:"flex-1 overflow-auto p-4 space-y-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,a.jsx)("span",{className:"text-[10px] uppercase tracking-wider",style:{color:"var(--text-tertiary)"},children:"Pass Rate"}),(0,a.jsxs)("span",{className:"text-sm font-semibold",style:{color:n.passRate>=80?"var(--status-pass-text)":n.passRate>=50?"var(--status-skip-text)":"var(--status-fail-text)"},children:[n.passRate,"%"]})]}),(0,a.jsx)("div",{className:"h-1.5 rounded-full overflow-hidden",style:{backgroundColor:"var(--bg-secondary)"},children:(0,a.jsx)("div",{className:"h-full rounded-full",style:{width:"".concat(n.passRate,"%"),backgroundColor:n.passRate>=80?"var(--status-pass-text)":n.passRate>=50?"var(--status-skip-text)":"var(--status-fail-text)"}})})]}),(0,a.jsxs)("div",{className:"grid grid-cols-4 gap-1.5",children:[(0,a.jsx)(g,{label:"Pass",value:n.pass,color:"var(--status-pass-text)"}),(0,a.jsx)(g,{label:"Fail",value:n.fail,color:"var(--status-fail-text)"}),(0,a.jsx)(g,{label:"Skip",value:n.skip,color:"var(--status-skip-text)"}),(0,a.jsx)(g,{label:"Blocked",value:n.blocked,color:"var(--status-blocked-text)"}),(0,a.jsx)(g,{label:"New",value:n.untested})]}),(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsx)(f,{label:"Test Cases",value:n.testCases}),(0,a.jsx)(f,{label:"Flow Nodes",value:n.nodes}),(0,a.jsx)(f,{label:"Edges",value:n.edges}),(0,a.jsx)(f,{label:"Projects",value:n.projects})]}),(0,a.jsxs)("button",{onClick:h,className:"w-full px-3 py-2 text-[11px] font-medium rounded-lg border transition-colors hover:bg-[var(--bg-secondary)] flex items-center justify-center gap-1.5",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:[(0,a.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M4 12v8a2 2 0 002 2h12a2 2 0 002-2v-8"}),(0,a.jsx)("polyline",{points:"16 6 12 2 8 6"}),(0,a.jsx)("line",{x1:"12",y1:"2",x2:"12",y2:"15"})]}),"Share"]})]})]})})]}),(0,a.jsx)("button",{onClick:r,className:"w-full mt-2 px-3 py-2 text-[11px] font-medium rounded-lg border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)",backgroundColor:"var(--bg-card)"},children:"Close"})]}),d&&(0,a.jsx)("div",{className:"fixed inset-0 z-[500] flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.4)",animation:"fadeIn 150ms ease-out"},onClick:()=>u(!1),children:(0,a.jsxs)("div",{className:"w-full max-w-sm mx-4 rounded-xl border overflow-hidden",style:{backgroundColor:"var(--bg-card)",borderColor:"var(--border)",boxShadow:"var(--shadow-lg)",animation:"fadeInUp 200ms ease-out"},onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)("div",{className:"px-6 pt-6 pb-4 text-center",children:[(0,a.jsx)("div",{className:"w-14 h-14 mx-auto mb-4 rounded-full flex items-center justify-center",style:{backgroundColor:"var(--status-skip-bg)"},children:(0,a.jsx)("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",stroke:"var(--status-skip-text)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,a.jsx)("path",{d:"M12 2L15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"})})}),(0,a.jsx)("h3",{className:"text-base font-semibold mb-2",style:{color:"var(--text-primary)"},children:"Premium Feature"}),(0,a.jsxs)("p",{className:"text-xs leading-relaxed mb-4",style:{color:"var(--text-secondary)"},children:["Getting rewards for your hardwork is only available for ",(0,a.jsx)("strong",{children:"Premium Users"}),". To upgrade, please transfer to the following VA:"]}),(0,a.jsxs)("div",{className:"px-4 py-3 rounded-lg border mb-4",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)"},children:[(0,a.jsx)("p",{className:"text-[10px] uppercase tracking-wider mb-1",style:{color:"var(--text-tertiary)"},children:"Virtual Account"}),(0,a.jsx)("p",{className:"text-sm font-mono font-semibold",style:{color:"var(--text-primary)"},children:"0895 332 333 587"}),(0,a.jsx)("p",{className:"text-[10px] mt-1",style:{color:"var(--text-tertiary)"},children:"a/n Qois Ramadhani"})]}),(0,a.jsx)("p",{className:"text-[10px] italic",style:{color:"var(--text-tertiary)"},children:"*This is a joke. Please don't actually transfer. Or do. I won't stop you."})]}),(0,a.jsx)("div",{className:"px-6 pb-5",children:(0,a.jsx)("button",{onClick:()=>u(!1),className:"w-full 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:"Fine, I'll keep working for free"})})]})})]})}function b(e){let{value:t,label:r}=e;return(0,a.jsxs)("div",{className:"text-center",children:[(0,a.jsx)("div",{className:"text-sm font-semibold text-white",children:t}),(0,a.jsx)("div",{className:"text-[9px] uppercase tracking-wider text-white/60",children:r})]})}function g(e){let{label:t,value:r,color:s}=e;return(0,a.jsxs)("div",{className:"py-2 rounded-lg text-center",style:{backgroundColor:"var(--bg-secondary)"},children:[(0,a.jsx)("div",{className:"text-sm font-medium",style:{color:null!=s?s:"var(--text-secondary)"},children:r}),(0,a.jsx)("div",{className:"text-[8px] uppercase tracking-wider",style:{color:"var(--text-tertiary)"},children:t})]})}function f(e){let{label:t,value:r}=e;return(0,a.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 rounded-lg",style:{backgroundColor:"var(--bg-secondary)"},children:[(0,a.jsx)("span",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:t}),(0,a.jsx)("span",{className:"text-xs font-medium",style:{color:"var(--text-primary)"},children:r})]})}var y=r(265);function j(){let{projects:e,activeProject:t,activeProjectId:r,profile:n,profileInitials:d,setProfileName:u,setProfileBannerColor:x,setProfileAvatarUrl:h,setProfileRole:p}=(0,l.M)(),{logout:b}=(0,c.A)(),g=(0,o.useRouter)(),f=(0,o.usePathname)(),{startProgress:j,completeProgress:w}=(0,y.p1)(),[N,C]=(0,s.useState)(!1),[S,M]=(0,s.useState)(!1),L=Object.values(e),I=(0,s.useMemo)(()=>{let e=L.flatMap(e=>Object.values(e.testCases).flat()),t=e.length,r=e.filter(e=>"pass"===e.status).length,a=e.filter(e=>"fail"===e.status).length,s=e.filter(e=>"skip"===e.status).length,o=e.filter(e=>"untested"===e.status).length,l=e.filter(e=>"blocked"===e.status).length,n=L.reduce((e,t)=>e+t.flows.length,0),i=L.reduce((e,t)=>{var r;return e+(null!=(r=t.edges)?r:[]).length},0),c=t-s,d=c>0?Math.round(r/c*100):0;return{projects:L.length,testCases:t,passRate:d,nodes:n,edges:i,pass:r,fail:a,skip:s,untested:o,blocked:l}},[L]),A=f.startsWith("/integrations")?"integrations":"projects";return(0,a.jsxs)("header",{className:"flex flex-col border-b flex-shrink-0 relative",style:{backgroundColor:"var(--bg-card)",borderColor:"var(--border)"},children:[(0,a.jsx)("div",{className:"absolute inset-0 overflow-hidden flex items-center justify-center pointer-events-none group/duck",children:(0,a.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:"h-[85%] object-contain select-none transition-all duration-300 group-hover/duck:scale-110 group-hover/duck:opacity-[0.15] cursor-pointer",style:{opacity:.09,pointerEvents:"auto"},onClick:()=>g.push("/projects"),title:"Quack! \uD83E\uDD86"})}),(0,a.jsxs)("div",{className:"relative z-10 flex items-center justify-between px-6 py-2.5",children:[(0,a.jsx)("div",{className:"flex items-center gap-3",children:(0,a.jsxs)(i(),{href:"/projects",className:"flex items-center gap-2",children:[(0,a.jsx)("div",{className:"w-8 h-8 rounded-md overflow-hidden bg-white flex-shrink-0",style:{boxShadow:"0 1px 4px rgba(0,0,0,0.08)"},children:(0,a.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:"Logo",width:32,height:32,className:"w-full h-full object-contain"})}),(0,a.jsx)("span",{className:"shimmer-text text-sm font-bold tracking-wide select-none",style:{background:"linear-gradient(90deg, var(--text-primary) 0%, var(--text-primary) 40%, #FFD54F 50%, var(--text-primary) 60%, var(--text-primary) 100%)",backgroundSize:"200% 100%",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent",backgroundClip:"text",animation:"shimmerText 3s ease-in-out infinite"},children:"Test Lah!"})]})}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("button",{onClick:()=>C(!0),className:"hidden md:block px-3 py-1.5 text-[11px] font-medium rounded-md border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:"My Card"}),(0,a.jsx)("div",{className:"hidden md:block w-px h-5 mx-0.5",style:{backgroundColor:"var(--border)"}}),(0,a.jsx)("div",{className:"relative z-[60]",children:(0,a.jsx)(m,{profile:n,initials:d,onSetName:u,onSetBannerColor:x,onSetAvatarUrl:h,onSetRole:p})}),(0,a.jsx)("button",{onClick:()=>{M(!0)},className:"w-8 h-8 flex items-center justify-center text-xs rounded-md border transition-colors hover:bg-[var(--bg-secondary)] hover:border-[var(--status-fail-text)]",style:{borderColor:"var(--border)",color:"var(--text-tertiary)"},title:"Logout",children:(0,a.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:(0,a.jsx)("path",{d:"M5 2H3.5A1.5 1.5 0 002 3.5v7A1.5 1.5 0 003.5 12H5M9 10l3-3-3-3M6 7h6",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]}),(0,a.jsxs)("div",{className:"relative z-10 flex items-center gap-1 px-6",children:[(0,a.jsx)(k,{label:"All Projects",href:"/projects",icon:(0,a.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 14 14",fill:"none",children:[(0,a.jsx)("rect",{x:"1",y:"1",width:"5",height:"5",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,a.jsx)("rect",{x:"8",y:"1",width:"5",height:"5",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,a.jsx)("rect",{x:"1",y:"8",width:"5",height:"5",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,a.jsx)("rect",{x:"8",y:"8",width:"5",height:"5",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"})]}),active:"projects"===A}),(0,a.jsx)(k,{label:"Integrations",href:"/integrations",icon:(0,a.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 14 14",fill:"none",children:[(0,a.jsx)("circle",{cx:"5",cy:"5",r:"2.5",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,a.jsx)("circle",{cx:"9",cy:"9",r:"2.5",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,a.jsx)("path",{d:"M7.5 5.5L6.5 8.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]}),active:"integrations"===A})]}),(0,a.jsx)(v,{open:N,onClose:()=>C(!1),profile:n,initials:d,stats:I}),S&&(0,a.jsx)("div",{className:"fixed inset-0 z-[400] flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.4)",animation:"fadeIn 150ms ease-out"},onClick:()=>M(!1),children:(0,a.jsxs)("div",{className:"w-full max-w-sm mx-4 rounded-xl border overflow-hidden",style:{backgroundColor:"var(--bg-card)",borderColor:"var(--border)",boxShadow:"var(--shadow-lg)",animation:"fadeInUp 200ms ease-out"},onClick:e=>e.stopPropagation(),children:[(0,a.jsx)("div",{className:"px-6 pt-5 pb-2 text-center border-b overflow-hidden",style:{borderColor:"var(--border)",background:"linear-gradient(135deg, #FCEAEA 0%, #F5D0D0 50%, #FCEAEA 100%)"},children:(0,a.jsx)("h3",{className:"text-sm font-semibold",style:{color:"var(--status-fail-text)"},children:"Where are you going? ծ_\xd4"})}),(0,a.jsxs)("div",{className:"px-6 pt-4 pb-4 text-center",children:[(0,a.jsx)("div",{className:"w-32 h-32 mx-auto mb-4 rounded-lg overflow-hidden",children:(0,a.jsx)("img",{src:"https://i.ytimg.com/vi/EcMlX_36gjs/mqdefault.jpg",alt:"Suspicious dog",className:"w-full h-full object-cover"})}),(0,a.jsx)("h3",{className:"text-base font-semibold mb-2",style:{color:"var(--text-primary)"},children:'Are you taking a "sick leave" again?'}),(0,a.jsx)("p",{className:"text-xs leading-relaxed",style:{color:"var(--text-tertiary)"},children:"We both know you're not coming back."})]}),(0,a.jsxs)("div",{className:"px-6 pb-3 flex gap-2",children:[(0,a.jsx)("button",{onClick:()=>M(!1),className:"flex-1 px-3 py-2.5 text-xs font-medium rounded-lg transition-opacity hover:opacity-80",style:{backgroundColor:"var(--accent)",color:"var(--bg-primary)"},children:"Cancel, I love my job"}),(0,a.jsx)("button",{onClick:()=>{M(!1),j("Logging out..."),b(),setTimeout(()=>{w("Logged out!"),g.push("/login")},500)},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(--status-fail-text)"},children:"Quit my job"})]}),(0,a.jsx)("div",{className:"px-6 pb-5 text-center",children:(0,a.jsxs)("p",{className:"text-[10px]",style:{color:"var(--text-tertiary)"},children:["Contact"," ",(0,a.jsxs)("span",{className:"relative inline-block group/nathan",children:[(0,a.jsx)("a",{href:"https://t.me/nathanaeliman",target:"_blank",rel:"noopener noreferrer",className:"underline cursor-pointer font-medium",style:{color:"var(--accent)"},children:"the best QA"}),(0,a.jsxs)("span",{className:"absolute bottom-full left-1/2 -translate-x-1/2 mb-1.5 rounded-lg overflow-hidden opacity-0 group-hover/nathan:opacity-100 transition-opacity pointer-events-none",style:{boxShadow:"0 4px 16px rgba(0,0,0,0.2)",width:120,height:120},children:[(0,a.jsx)("img",{src:"https://media.licdn.com/dms/image/v2/D5603AQHBu4wrzFWoTw/profile-displayphoto-crop_800_800/B56Zq.Sy6LKsAI-/0/1764129191465?e=1782345600&v=beta&t=79y6xLivwcpvwy53sy1TuVopK4FMp6O8uAu7QxlIxDo",alt:"Nathan",className:"w-full h-full object-cover"}),(0,a.jsx)("span",{className:"absolute top-full left-1/2 -translate-x-1/2 w-0 h-0",style:{borderLeft:"6px solid transparent",borderRight:"6px solid transparent",borderTop:"6px solid var(--bg-card)"}})]})]})," ","to do my job instead"]})})]})})]})}function k(e){let{label:t,icon:r,active:s,href:o,badge:l}=e;return(0,a.jsxs)(i(),{href:o,className:"flex items-center gap-2 px-3 py-2 text-xs font-medium rounded-t-md transition-colors relative",style:{color:s?"var(--accent)":"var(--text-tertiary)",backgroundColor:s?"var(--bg-secondary)":"transparent"},children:[r,t,l&&(0,a.jsx)("span",{className:"ml-1 px-1.5 py-0.5 text-[9px] font-semibold rounded-full leading-none",style:{backgroundColor:s?"var(--accent)":"var(--bg-secondary)",color:s?"#fff":"var(--text-tertiary)"},children:l}),s&&(0,a.jsx)("div",{className:"absolute bottom-0 left-2 right-2 h-0.5 rounded-t-full",style:{backgroundColor:"var(--accent)"}})]})}var w=r(7065);function N(e){let{children:t}=e,r=(0,o.useRouter)(),{isLoggedIn:l,loaded:n}=(0,c.A)();return((0,s.useEffect)(()=>{n&&!l&&r.replace("/login")},[n,l,r]),n)?l?(0,a.jsx)(a.Fragment,{children:t}):null:(0,a.jsx)("div",{className:"h-screen flex items-center justify-center",style:{backgroundColor:"var(--bg-primary)"},children:(0,a.jsx)("div",{className:"text-sm",style:{color:"var(--text-tertiary)"},children:"Loading..."})})}function C(){let{undo:e,redo:t,canUndo:r,canRedo:a}=(0,l.M)();return(0,s.useEffect)(()=>{let s=s=>{(s.ctrlKey||s.metaKey)&&"z"===s.key&&!s.shiftKey&&(s.preventDefault(),r&&e()),(s.ctrlKey||s.metaKey)&&("Z"===s.key||"z"===s.key&&s.shiftKey)&&(s.preventDefault(),a&&t()),(s.ctrlKey||s.metaKey)&&"y"===s.key&&(s.preventDefault(),a&&t())};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[e,t,r,a]),null}function S(e){let{children:t}=e,{dialog:r}=(0,l.M)();return(0,a.jsxs)(a.Fragment,{children:[t,(0,a.jsx)(w.q,{dialog:r})]})}function M(e){let{children:t}=e;return(0,a.jsx)(N,{children:(0,a.jsx)(l.q,{children:(0,a.jsx)(S,{children:(0,a.jsxs)("div",{className:"h-screen flex flex-col",style:{backgroundColor:"var(--bg-primary)"},children:[(0,a.jsx)(C,{}),(0,a.jsx)(j,{}),(0,a.jsx)("div",{className:"flex-1 min-h-0",children:t})]})})})})}},9715:(e,t,r)=>{Promise.resolve().then(r.bind(r,8609))}},e=>{e.O(0,[619,246,441,255,358],()=>e(e.s=9715)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[305],{63:(e,t,r)=>{"use strict";var a=r(7260);r.o(a,"useParams")&&r.d(t,{useParams:function(){return a.useParams}}),r.o(a,"usePathname")&&r.d(t,{usePathname:function(){return a.usePathname}}),r.o(a,"useRouter")&&r.d(t,{useRouter:function(){return a.useRouter}})},265:(e,t,r)=>{"use strict";r.d(t,{Vx:()=>n,p1:()=>l});var a=r(5155),s=r(2115);let o=(0,s.createContext)(null);function l(){let e=(0,s.useContext)(o);if(!e)throw Error("useProgress must be used within ProgressProvider");return e}function n(e){let{children:t}=e,[r,l]=(0,s.useState)(0),[n,i]=(0,s.useState)(""),[c,d]=(0,s.useState)(!1),u=(0,s.useRef)(null),x=(0,s.useRef)(null),h=(0,s.useCallback)(()=>{u.current&&(clearInterval(u.current),u.current=null),x.current&&(clearTimeout(x.current),x.current=null)},[]),p=(0,s.useCallback)(()=>{d(!1),l(0),i("")},[]),m=(0,s.useCallback)(e=>{h(),l(0),i(e||""),d(!0),u.current=setInterval(()=>{l(e=>e>=90?(u.current&&clearInterval(u.current),u.current=null,90):e+15*Math.random())},300),x.current=setTimeout(()=>{p()},8e3)},[h,p]),v=(0,s.useCallback)((e,t)=>{l(Math.min(95,e)),t&&i(t)},[]),b=(0,s.useCallback)(e=>{h(),l(100),e&&i(e),setTimeout(()=>{p()},500)},[h,p]),g=(0,s.useCallback)(()=>{h(),p()},[h,p]);return(0,s.useEffect)(()=>()=>h(),[h]),(0,a.jsxs)(o.Provider,{value:{startProgress:m,updateProgress:v,completeProgress:b,cancelProgress:g,isProgressing:c},children:[t,(0,a.jsxs)("div",{className:"fixed bottom-0 left-0 right-0 z-[600] transition-all duration-300 ease-out",style:{opacity:+!!c,transform:c?"translateY(0)":"translateY(100%)",pointerEvents:c?"auto":"none"},children:[(0,a.jsx)("div",{className:"h-1 w-full",style:{backgroundColor:"var(--bg-secondary)"},children:(0,a.jsx)("div",{className:"h-full transition-all duration-200 ease-out",style:{width:"".concat(r,"%"),backgroundColor:r>=100?"var(--status-pass-text)":"var(--accent)",boxShadow:r>=100?"0 0 10px var(--status-pass-text)":"none"}})}),n&&(0,a.jsxs)("div",{className:"flex items-center justify-center py-2 px-4 text-xs font-medium cursor-pointer",onClick:g,style:{backgroundColor:"var(--bg-card)",color:r>=100?"var(--status-pass-text)":"var(--text-secondary)",borderTop:"1px solid var(--border)"},children:[r>=100&&(0,a.jsx)("svg",{className:"mr-2",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:(0,a.jsx)("path",{d:"M2 6l3 3 5-5",stroke:"var(--status-pass-text)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),n]})]})]})}},854:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});var a=r(2115);let s="qa-auth";function o(e){try{sessionStorage.setItem(s,JSON.stringify(e))}catch(e){}}function l(){let[e,t]=(0,a.useState)({name:"",isLoggedIn:!1}),[r,l]=(0,a.useState)(!1);(0,a.useEffect)(()=>{t(function(){try{let e=sessionStorage.getItem(s);if(!e)return{name:"",isLoggedIn:!1};return JSON.parse(e)}catch(e){return{name:"",isLoggedIn:!1}}}()),l(!0)},[]);let n=(0,a.useCallback)(e=>{let r={name:e,isLoggedIn:!0};o(r),t(r)},[]),i=(0,a.useCallback)(()=>{let e={name:"",isLoggedIn:!1};o(e),t(e)},[]);return{...e,loaded:r,login:n,logout:i}}},8609:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>M});var a=r(5155),s=r(2115),o=r(63),l=r(4417),n=r(2619),i=r.n(n),c=r(854),d=r(8566);let u=["https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_11.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_12.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_13.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_14.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_15.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_16.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_17.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_18.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_19.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_20.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_21.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_22.png"],x=["https://i.pinimg.com/736x/ed/74/06/ed74063ade6d66fce2ca19acbe74babc.jpg","https://i.pinimg.com/736x/8c/6d/56/8c6d563311f0917d45d1f2ce5d7c1a2d.jpg","https://i.pinimg.com/736x/86/b8/be/86b8bea1c772cf5c540e6f01e6acce59.jpg","https://i.pinimg.com/736x/78/d4/b1/78d4b1787a4fd23c2a8d21e4fbbc016f.jpg","https://i.pinimg.com/1200x/87/de/e6/87dee6d33b04f1df28bc85702ee12d4b.jpg","https://i.pinimg.com/1200x/3b/e3/95/3be395c4a94705f95e0603afb04f9d56.jpg","https://media.licdn.com/dms/image/v2/D5603AQHBu4wrzFWoTw/profile-displayphoto-crop_800_800/B56Zq.Sy6LKsAI-/0/1764129191465?e=1782345600&v=beta&t=79y6xLivwcpvwy53sy1TuVopK4FMp6O8uAu7QxlIxDo"],h=["QA Engineer","QA Lead","Developer","Designer","Manager"];function p(e,t){let r=parseInt(e.replace("#",""),16),a=Math.min(255,(r>>16)+Math.round((255-(r>>16))*t)),s=Math.min(255,(r>>8&255)+Math.round((255-(r>>8&255))*t)),o=Math.min(255,(255&r)+Math.round((255-(255&r))*t));return"#".concat((a<<16|s<<8|o).toString(16).padStart(6,"0"))}function m(e){let{profile:t,initials:r,onSetName:o,onSetBannerColor:l,onSetAvatarUrl:n,onSetRole:i}=e,[c,m]=(0,s.useState)(!1),[v,b]=(0,s.useState)(!1),[g,f]=(0,s.useState)(!1),[y,j]=(0,s.useState)(t.name),[k,w]=(0,s.useState)(t.role||""),N=(0,s.useRef)(null),C=(0,s.useRef)(null),S=(0,s.useRef)(null);(0,s.useEffect)(()=>{let e=e=>{N.current&&!N.current.contains(e.target)&&m(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,s.useEffect)(()=>{v&&C.current&&C.current.focus()},[v]),(0,s.useEffect)(()=>{g&&S.current&&S.current.focus()},[g]);let M=()=>{o(y.trim()),b(!1)},L=()=>{i(k.trim()),f(!1)},I=!!t.avatarUrl;return(0,a.jsxs)("div",{className:"relative",ref:N,children:[(0,a.jsx)("button",{onClick:()=>m(!c),className:"w-9 h-9 rounded-full flex items-center justify-center text-xs font-medium overflow-hidden border-2 transition-all hover:scale-105",style:{borderColor:c?"var(--accent)":"transparent",boxShadow:c?"0 0 0 2px var(--accent), 0 2px 8px rgba(0,0,0,0.1)":"0 1px 3px rgba(0,0,0,0.08)"},children:I?(0,a.jsx)("img",{src:t.avatarUrl,alt:"Avatar",className:"w-full h-full object-cover"}):(0,a.jsx)("span",{className:"w-full h-full flex items-center justify-center",style:{backgroundColor:t.bannerColor,color:"#fff"},children:r})}),c&&(0,a.jsxs)("div",{className:"absolute right-0 top-full mt-2 w-80 border z-50 overflow-hidden",style:{backgroundColor:"var(--bg-card)",borderColor:"var(--border)",borderRadius:"var(--radius-lg)",boxShadow:"var(--shadow-xl)",animation:"fadeIn 150ms ease-out"},children:[(0,a.jsxs)("div",{className:"relative px-5 pt-5 pb-4",style:{background:"linear-gradient(135deg, ".concat(t.bannerColor," 0%, ").concat(p(t.bannerColor,.4)," 50%, ").concat(t.bannerColor," 100%)")},children:[(0,a.jsx)("div",{className:"absolute inset-0 opacity-10",style:{backgroundImage:"radial-gradient(circle at 20% 50%, white 1px, transparent 1px), radial-gradient(circle at 80% 20%, white 1px, transparent 1px)",backgroundSize:"30px 30px"}}),(0,a.jsxs)("div",{className:"relative flex items-end gap-4",children:[(0,a.jsxs)("div",{className:"relative group",children:[(0,a.jsx)("div",{className:"w-16 h-16 rounded-xl overflow-hidden border-3 flex-shrink-0",style:{borderColor:"rgba(255,255,255,0.3)",boxShadow:"0 4px 12px rgba(0,0,0,0.2)"},children:I?(0,a.jsx)("img",{src:t.avatarUrl,alt:"Avatar",className:"w-full h-full object-cover"}):(0,a.jsx)("div",{className:"w-full h-full flex items-center justify-center text-xl font-bold",style:{backgroundColor:t.bannerColor,color:"#fff"},children:r})}),(0,a.jsx)("div",{className:"absolute inset-0 rounded-xl flex items-center justify-center opacity-0 group-hover:opacity-100 cursor-pointer transition-opacity",style:{backgroundColor:"rgba(0,0,0,0.4)"},onClick:e=>{var t;e.stopPropagation(),null==(t=document.getElementById("avatar-gallery"))||t.scrollIntoView({behavior:"smooth"})},children:(0,a.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"white",children:(0,a.jsx)("path",{d:"M14 11V14H2V11H0V14C0 15.1.9 16 2 16H14C15.1 16 16 15.1 16 14V11H14ZM7 9L4.5 6.5L3 8L8 13L13 8L11.5 6.5L9 9V0H7V9Z"})})})]}),(0,a.jsxs)("div",{className:"flex-1 min-w-0 pb-1",children:[v?(0,a.jsx)("input",{ref:C,value:y,onChange:e=>j(e.target.value),onBlur:M,onKeyDown:e=>{"Enter"===e.key&&M(),"Escape"===e.key&&b(!1)},className:"w-full bg-white/20 backdrop-blur-sm outline-none text-white text-sm font-semibold px-2 py-1 rounded placeholder-white/50",placeholder:"Your name..."}):(0,a.jsx)("div",{className:"text-sm font-semibold text-white cursor-pointer hover:opacity-80 truncate",onClick:()=>{j(t.name),b(!0)},children:t.name||"Click to set name"}),(0,a.jsx)("div",{className:"text-[11px] mt-0.5 px-2 py-0.5 rounded-full inline-block cursor-pointer hover:opacity-80",style:{backgroundColor:"rgba(255,255,255,0.15)",color:"rgba(255,255,255,0.9)"},onClick:()=>{w(t.role||""),f(!0)},children:g?(0,a.jsx)("input",{ref:S,value:k,onChange:e=>w(e.target.value),onBlur:L,onKeyDown:e=>{"Enter"===e.key&&L(),"Escape"===e.key&&f(!1)},className:"bg-transparent outline-none text-white text-[11px] w-24 placeholder-white/50",placeholder:"Your role..."}):t.role||"Set role..."})]})]})]}),(0,a.jsxs)("div",{className:"px-4 pt-3 pb-2",children:[(0,a.jsx)("label",{className:"text-[10px] font-semibold uppercase tracking-wider block mb-2",style:{color:"var(--text-tertiary)"},children:"Role"}),(0,a.jsx)("div",{className:"flex flex-wrap gap-1.5",children:h.map(e=>(0,a.jsx)("button",{onClick:()=>i(e),className:"px-2 py-1 text-[10px] rounded-md border transition-colors",style:{borderColor:t.role===e?"var(--accent)":"var(--border)",color:t.role===e?"var(--accent)":"var(--text-secondary)",backgroundColor:t.role===e?"var(--accent)10":"transparent",fontWeight:t.role===e?600:400},children:e},e))})]}),(0,a.jsxs)("div",{id:"avatar-gallery",className:"px-4 pt-2 pb-3",children:[(0,a.jsx)("label",{className:"text-[10px] font-semibold uppercase tracking-wider block mb-2",style:{color:"var(--text-tertiary)"},children:"Choose Avatar"}),(0,a.jsx)("div",{className:"grid grid-cols-6 gap-2",children:u.map((e,r)=>(0,a.jsx)("button",{onClick:()=>n(e),className:"w-10 h-10 rounded-lg overflow-hidden border-2 transition-all hover:scale-110 hover:shadow-md",style:{borderColor:t.avatarUrl===e?"var(--accent)":"transparent",boxShadow:t.avatarUrl===e?"0 0 0 2px var(--accent)":"none"},children:(0,a.jsx)("img",{src:e,alt:"Avatar ".concat(r+11),className:"w-full h-full object-cover",loading:"lazy"})},e))}),(0,a.jsx)("div",{className:"grid grid-cols-6 gap-2 mt-2",children:x.map((e,r)=>(0,a.jsx)("button",{onClick:()=>n(e),className:"w-10 h-10 rounded-lg overflow-hidden border-2 transition-all hover:scale-110 hover:shadow-md",style:{borderColor:t.avatarUrl===e?"var(--accent)":"transparent",boxShadow:t.avatarUrl===e?"0 0 0 2px var(--accent)":"none"},children:(0,a.jsx)("img",{src:e,alt:"Avatar ".concat(r+23),className:"w-full h-full object-cover",loading:"lazy"})},e))})]}),(0,a.jsxs)("div",{className:"px-4 pb-4",children:[(0,a.jsx)("label",{className:"text-[10px] font-semibold uppercase tracking-wider block mb-2",style:{color:"var(--text-tertiary)"},children:"Banner Color"}),(0,a.jsx)("div",{className:"grid grid-cols-8 gap-1.5",children:d.T7.map(e=>(0,a.jsx)("button",{onClick:()=>l(e),className:"w-6 h-6 rounded-full transition-transform hover:scale-110 relative overflow-hidden",style:{background:"linear-gradient(135deg, ".concat(function(e,t){let r=parseInt(e.replace("#",""),16),a=Math.max(0,(r>>16)-Math.round((r>>16)*.3)),s=Math.max(0,(r>>8&255)-Math.round((r>>8&255)*.3)),o=Math.max(0,(255&r)-Math.round((255&r)*t));return"#".concat((a<<16|s<<8|o).toString(16).padStart(6,"0"))}(e,.3)," 0%, ").concat(e," 50%, ").concat(p(e,.3)," 100%)"),outline:t.bannerColor!==e||t.avatarUrl?"none":"2px solid var(--accent)",outlineOffset:2},children:(0,a.jsx)("div",{className:"absolute inset-0",style:{background:"linear-gradient(135deg, transparent 0%, rgba(255,255,255,0.3) 50%, transparent 100%)",animation:"shimmer 2s ease-in-out infinite"}})},e))})]}),(0,a.jsxs)("div",{className:"px-4 py-2.5 border-t flex items-center justify-between",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)"},children:[(0,a.jsx)("span",{className:"text-[10px]",style:{color:"var(--text-tertiary)"},children:"Profile data stored locally"}),(0,a.jsx)("button",{onClick:()=>m(!1),className:"text-[10px] font-medium px-2 py-0.5 rounded",style:{color:"var(--accent)"},children:"Done"})]})]})]})}function v(e){let{open:t,onClose:r,profile:o,initials:l,stats:n}=e,[i,c]=(0,s.useState)(!1),[d,u]=(0,s.useState)(!1);if(!t)return null;let x="My Test Lah!:\n".concat(n.projects," Projects | ").concat(n.testCases," Cases | ").concat(n.passRate,"% Pass Rate"),h=async()=>{if(navigator.share)try{await navigator.share({title:"Test Lah! Stats",text:x})}catch(e){}else navigator.clipboard.writeText(x)};return(0,a.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,a.jsxs)("div",{className:"w-72 mx-4",onClick:e=>e.stopPropagation(),style:{perspective:"1000px"},children:[(0,a.jsxs)("div",{className:"relative w-full",style:{transformStyle:"preserve-3d",transform:i?"rotateY(180deg)":"rotateY(0)",transition:"transform 0.5s ease",height:"380px"},children:[(0,a.jsxs)("div",{className:"absolute inset-0 rounded-xl overflow-hidden border",style:{backfaceVisibility:"hidden",borderColor:"var(--border)",boxShadow:"var(--shadow-lg)"},children:[(0,a.jsx)("div",{className:"absolute inset-0",style:{background:"linear-gradient(160deg, ".concat(function(e,t){let r=parseInt(e.replace("#",""),16),a=Math.max(0,(r>>16)-Math.round((r>>16)*.25)),s=Math.max(0,(r>>8&255)-Math.round((r>>8&255)*t)),o=Math.max(0,(255&r)-Math.round((255&r)*t));return"#".concat((a<<16|s<<8|o).toString(16).padStart(6,"0"))}(o.bannerColor,.25)," 0%, ").concat(o.bannerColor," 50%, ").concat(function(e,t){let r=parseInt(e.replace("#",""),16),a=Math.min(255,(r>>16)+Math.round((255-(r>>16))*.2)),s=Math.min(255,(r>>8&255)+Math.round((255-(r>>8&255))*t)),o=Math.min(255,(255&r)+Math.round((255-(255&r))*t));return"#".concat((a<<16|s<<8|o).toString(16).padStart(6,"0"))}(o.bannerColor,.2)," 100%)")}}),(0,a.jsxs)("div",{className:"relative h-full flex flex-col items-center justify-center px-4",children:[(0,a.jsx)("div",{className:"w-20 h-20 rounded-xl overflow-hidden border-2 mb-3",style:{borderColor:"rgba(255,255,255,0.3)"},children:o.avatarUrl?(0,a.jsx)("img",{src:o.avatarUrl,alt:"Avatar",className:"w-full h-full object-cover"}):(0,a.jsx)("div",{className:"w-full h-full flex items-center justify-center text-2xl font-bold",style:{backgroundColor:"rgba(0,0,0,0.2)",color:"#fff"},children:l})}),(0,a.jsx)("h3",{className:"text-base font-semibold text-white drop-shadow-sm",children:o.name||"Anonymous Tester"}),(0,a.jsx)("p",{className:"text-xs mt-0.5 text-white/70",children:o.role||"No role set"}),(0,a.jsxs)("div",{className:"flex items-center gap-4 mt-4",children:[(0,a.jsx)(b,{value:n.projects,label:"Projects"}),(0,a.jsx)("div",{className:"w-px h-6 bg-white/20"}),(0,a.jsx)(b,{value:n.testCases,label:"Cases"}),(0,a.jsx)("div",{className:"w-px h-6 bg-white/20"}),(0,a.jsx)(b,{value:"".concat(n.passRate,"%"),label:"Pass"})]}),(0,a.jsx)("button",{onClick:()=>c(!0),className:"mt-5 px-4 py-1.5 text-[11px] font-medium rounded-full transition-colors",style:{backgroundColor:"rgba(255,255,255,0.2)",color:"#fff"},children:"View stats"}),(0,a.jsx)("button",{onClick:()=>u(!0),className:"mt-2 px-4 py-1.5 text-[11px] font-medium rounded-full transition-colors",style:{backgroundColor:"rgba(255,255,255,0.1)",color:"rgba(255,255,255,0.7)"},children:"Get reward for my hardwork"})]})]}),(0,a.jsx)("div",{className:"absolute inset-0 rounded-xl overflow-hidden border",style:{backfaceVisibility:"hidden",transform:"rotateY(180deg)",borderColor:"var(--border)",backgroundColor:"var(--bg-card)",boxShadow:"var(--shadow-lg)"},children:(0,a.jsxs)("div",{className:"h-full flex flex-col",children:[(0,a.jsxs)("div",{className:"px-4 py-3 border-b flex items-center justify-between",style:{borderColor:"var(--border)"},children:[(0,a.jsx)("span",{className:"text-xs font-semibold",style:{color:"var(--text-primary)"},children:"Statistics"}),(0,a.jsx)("button",{onClick:()=>c(!1),className:"text-[10px] px-2 py-0.5 rounded border transition-colors hover:bg-[var(--bg-secondary)]",style:{color:"var(--text-tertiary)",borderColor:"var(--border)"},children:"Back"})]}),(0,a.jsxs)("div",{className:"flex-1 overflow-auto p-4 space-y-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,a.jsx)("span",{className:"text-[10px] uppercase tracking-wider",style:{color:"var(--text-tertiary)"},children:"Pass Rate"}),(0,a.jsxs)("span",{className:"text-sm font-semibold",style:{color:n.passRate>=80?"var(--status-pass-text)":n.passRate>=50?"var(--status-skip-text)":"var(--status-fail-text)"},children:[n.passRate,"%"]})]}),(0,a.jsx)("div",{className:"h-1.5 rounded-full overflow-hidden",style:{backgroundColor:"var(--bg-secondary)"},children:(0,a.jsx)("div",{className:"h-full rounded-full",style:{width:"".concat(n.passRate,"%"),backgroundColor:n.passRate>=80?"var(--status-pass-text)":n.passRate>=50?"var(--status-skip-text)":"var(--status-fail-text)"}})})]}),(0,a.jsxs)("div",{className:"grid grid-cols-4 gap-1.5",children:[(0,a.jsx)(g,{label:"Pass",value:n.pass,color:"var(--status-pass-text)"}),(0,a.jsx)(g,{label:"Fail",value:n.fail,color:"var(--status-fail-text)"}),(0,a.jsx)(g,{label:"Skip",value:n.skip,color:"var(--status-skip-text)"}),(0,a.jsx)(g,{label:"Blocked",value:n.blocked,color:"var(--status-blocked-text)"}),(0,a.jsx)(g,{label:"New",value:n.untested})]}),(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsx)(f,{label:"Test Cases",value:n.testCases}),(0,a.jsx)(f,{label:"Flow Nodes",value:n.nodes}),(0,a.jsx)(f,{label:"Edges",value:n.edges}),(0,a.jsx)(f,{label:"Projects",value:n.projects})]}),(0,a.jsxs)("button",{onClick:h,className:"w-full px-3 py-2 text-[11px] font-medium rounded-lg border transition-colors hover:bg-[var(--bg-secondary)] flex items-center justify-center gap-1.5",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:[(0,a.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M4 12v8a2 2 0 002 2h12a2 2 0 002-2v-8"}),(0,a.jsx)("polyline",{points:"16 6 12 2 8 6"}),(0,a.jsx)("line",{x1:"12",y1:"2",x2:"12",y2:"15"})]}),"Share"]})]})]})})]}),(0,a.jsx)("button",{onClick:r,className:"w-full mt-2 px-3 py-2 text-[11px] font-medium rounded-lg border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)",backgroundColor:"var(--bg-card)"},children:"Close"})]}),d&&(0,a.jsx)("div",{className:"fixed inset-0 z-[500] flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.4)",animation:"fadeIn 150ms ease-out"},onClick:()=>u(!1),children:(0,a.jsxs)("div",{className:"w-full max-w-sm mx-4 rounded-xl border overflow-hidden",style:{backgroundColor:"var(--bg-card)",borderColor:"var(--border)",boxShadow:"var(--shadow-lg)",animation:"fadeInUp 200ms ease-out"},onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)("div",{className:"px-6 pt-6 pb-4 text-center",children:[(0,a.jsx)("div",{className:"w-14 h-14 mx-auto mb-4 rounded-full flex items-center justify-center",style:{backgroundColor:"var(--status-skip-bg)"},children:(0,a.jsx)("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",stroke:"var(--status-skip-text)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,a.jsx)("path",{d:"M12 2L15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"})})}),(0,a.jsx)("h3",{className:"text-base font-semibold mb-2",style:{color:"var(--text-primary)"},children:"Premium Feature"}),(0,a.jsxs)("p",{className:"text-xs leading-relaxed mb-4",style:{color:"var(--text-secondary)"},children:["Getting rewards for your hardwork is only available for ",(0,a.jsx)("strong",{children:"Premium Users"}),". To upgrade, please transfer to the following VA:"]}),(0,a.jsxs)("div",{className:"px-4 py-3 rounded-lg border mb-4",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)"},children:[(0,a.jsx)("p",{className:"text-[10px] uppercase tracking-wider mb-1",style:{color:"var(--text-tertiary)"},children:"Virtual Account"}),(0,a.jsx)("p",{className:"text-sm font-mono font-semibold",style:{color:"var(--text-primary)"},children:"0895 332 333 587"}),(0,a.jsx)("p",{className:"text-[10px] mt-1",style:{color:"var(--text-tertiary)"},children:"a/n Qois Ramadhani"})]}),(0,a.jsx)("p",{className:"text-[10px] italic",style:{color:"var(--text-tertiary)"},children:"*This is a joke. Please don't actually transfer. Or do. I won't stop you."})]}),(0,a.jsx)("div",{className:"px-6 pb-5",children:(0,a.jsx)("button",{onClick:()=>u(!1),className:"w-full 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:"Fine, I'll keep working for free"})})]})})]})}function b(e){let{value:t,label:r}=e;return(0,a.jsxs)("div",{className:"text-center",children:[(0,a.jsx)("div",{className:"text-sm font-semibold text-white",children:t}),(0,a.jsx)("div",{className:"text-[9px] uppercase tracking-wider text-white/60",children:r})]})}function g(e){let{label:t,value:r,color:s}=e;return(0,a.jsxs)("div",{className:"py-2 rounded-lg text-center",style:{backgroundColor:"var(--bg-secondary)"},children:[(0,a.jsx)("div",{className:"text-sm font-medium",style:{color:null!=s?s:"var(--text-secondary)"},children:r}),(0,a.jsx)("div",{className:"text-[8px] uppercase tracking-wider",style:{color:"var(--text-tertiary)"},children:t})]})}function f(e){let{label:t,value:r}=e;return(0,a.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 rounded-lg",style:{backgroundColor:"var(--bg-secondary)"},children:[(0,a.jsx)("span",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:t}),(0,a.jsx)("span",{className:"text-xs font-medium",style:{color:"var(--text-primary)"},children:r})]})}var y=r(265);function j(){let{projects:e,activeProject:t,activeProjectId:r,profile:n,profileInitials:d,setProfileName:u,setProfileBannerColor:x,setProfileAvatarUrl:h,setProfileRole:p}=(0,l.M)(),{logout:b}=(0,c.A)(),g=(0,o.useRouter)(),f=(0,o.usePathname)(),{startProgress:j,completeProgress:w}=(0,y.p1)(),[N,C]=(0,s.useState)(!1),[S,M]=(0,s.useState)(!1),L=Object.values(e),I=(0,s.useMemo)(()=>{let e=L.flatMap(e=>Object.values(e.testCases).flat()),t=e.length,r=e.filter(e=>"pass"===e.status).length,a=e.filter(e=>"fail"===e.status).length,s=e.filter(e=>"skip"===e.status).length,o=e.filter(e=>"untested"===e.status).length,l=e.filter(e=>"blocked"===e.status).length,n=L.reduce((e,t)=>e+t.flows.length,0),i=L.reduce((e,t)=>{var r;return e+(null!=(r=t.edges)?r:[]).length},0),c=t-s,d=c>0?Math.round(r/c*100):0;return{projects:L.length,testCases:t,passRate:d,nodes:n,edges:i,pass:r,fail:a,skip:s,untested:o,blocked:l}},[L]),A=f.startsWith("/integrations")?"integrations":"projects";return(0,a.jsxs)("header",{className:"flex flex-col border-b flex-shrink-0 relative",style:{backgroundColor:"var(--bg-card)",borderColor:"var(--border)"},children:[(0,a.jsx)("div",{className:"absolute inset-0 overflow-hidden flex items-center justify-center pointer-events-none group/duck",children:(0,a.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:"h-[85%] object-contain select-none transition-all duration-300 group-hover/duck:scale-110 group-hover/duck:opacity-[0.15] cursor-pointer",style:{opacity:.09,pointerEvents:"auto"},onClick:()=>g.push("/projects"),title:"Quack! \uD83E\uDD86"})}),(0,a.jsxs)("div",{className:"relative z-10 flex items-center justify-between px-6 py-2.5",children:[(0,a.jsx)("div",{className:"flex items-center gap-3",children:(0,a.jsxs)(i(),{href:"/projects",className:"flex items-center gap-2",children:[(0,a.jsx)("div",{className:"w-8 h-8 rounded-md overflow-hidden bg-white flex-shrink-0",style:{boxShadow:"0 1px 4px rgba(0,0,0,0.08)"},children:(0,a.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:"Logo",width:32,height:32,className:"w-full h-full object-contain"})}),(0,a.jsx)("span",{className:"shimmer-text text-sm font-bold tracking-wide select-none",style:{background:"linear-gradient(90deg, var(--text-primary) 0%, var(--text-primary) 40%, #FFD54F 50%, var(--text-primary) 60%, var(--text-primary) 100%)",backgroundSize:"200% 100%",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent",backgroundClip:"text",animation:"shimmerText 3s ease-in-out infinite"},children:"Test Lah!"})]})}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("button",{onClick:()=>C(!0),className:"hidden md:block px-3 py-1.5 text-[11px] font-medium rounded-md border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:"My Card"}),(0,a.jsx)("div",{className:"hidden md:block w-px h-5 mx-0.5",style:{backgroundColor:"var(--border)"}}),(0,a.jsx)("div",{className:"relative z-[60]",children:(0,a.jsx)(m,{profile:n,initials:d,onSetName:u,onSetBannerColor:x,onSetAvatarUrl:h,onSetRole:p})}),(0,a.jsx)("button",{onClick:()=>{M(!0)},className:"w-8 h-8 flex items-center justify-center text-xs rounded-md border transition-colors hover:bg-[var(--bg-secondary)] hover:border-[var(--status-fail-text)]",style:{borderColor:"var(--border)",color:"var(--text-tertiary)"},title:"Logout",children:(0,a.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:(0,a.jsx)("path",{d:"M5 2H3.5A1.5 1.5 0 002 3.5v7A1.5 1.5 0 003.5 12H5M9 10l3-3-3-3M6 7h6",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]}),(0,a.jsxs)("div",{className:"relative z-10 flex items-center gap-1 px-6",children:[(0,a.jsx)(k,{label:"All Projects",href:"/projects",icon:(0,a.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 14 14",fill:"none",children:[(0,a.jsx)("rect",{x:"1",y:"1",width:"5",height:"5",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,a.jsx)("rect",{x:"8",y:"1",width:"5",height:"5",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,a.jsx)("rect",{x:"1",y:"8",width:"5",height:"5",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,a.jsx)("rect",{x:"8",y:"8",width:"5",height:"5",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"})]}),active:"projects"===A}),(0,a.jsx)(k,{label:"Integrations",href:"/integrations",icon:(0,a.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 14 14",fill:"none",children:[(0,a.jsx)("circle",{cx:"5",cy:"5",r:"2.5",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,a.jsx)("circle",{cx:"9",cy:"9",r:"2.5",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,a.jsx)("path",{d:"M7.5 5.5L6.5 8.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]}),active:"integrations"===A})]}),(0,a.jsx)(v,{open:N,onClose:()=>C(!1),profile:n,initials:d,stats:I}),S&&(0,a.jsx)("div",{className:"fixed inset-0 z-[400] flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.4)",animation:"fadeIn 150ms ease-out"},onClick:()=>M(!1),children:(0,a.jsxs)("div",{className:"w-full max-w-sm mx-4 rounded-xl border overflow-hidden",style:{backgroundColor:"var(--bg-card)",borderColor:"var(--border)",boxShadow:"var(--shadow-lg)",animation:"fadeInUp 200ms ease-out"},onClick:e=>e.stopPropagation(),children:[(0,a.jsx)("div",{className:"px-6 pt-5 pb-2 text-center border-b overflow-hidden",style:{borderColor:"var(--border)",background:"linear-gradient(135deg, #FCEAEA 0%, #F5D0D0 50%, #FCEAEA 100%)"},children:(0,a.jsx)("h3",{className:"text-sm font-semibold",style:{color:"var(--status-fail-text)"},children:"Where are you going? ծ_\xd4"})}),(0,a.jsxs)("div",{className:"px-6 pt-4 pb-4 text-center",children:[(0,a.jsx)("div",{className:"w-32 h-32 mx-auto mb-4 rounded-lg overflow-hidden",children:(0,a.jsx)("img",{src:"https://i.ytimg.com/vi/EcMlX_36gjs/mqdefault.jpg",alt:"Suspicious dog",className:"w-full h-full object-cover"})}),(0,a.jsx)("h3",{className:"text-base font-semibold mb-2",style:{color:"var(--text-primary)"},children:'Are you taking a "sick leave" again?'}),(0,a.jsx)("p",{className:"text-xs leading-relaxed",style:{color:"var(--text-tertiary)"},children:"We both know you're not coming back."})]}),(0,a.jsxs)("div",{className:"px-6 pb-3 flex gap-2",children:[(0,a.jsx)("button",{onClick:()=>M(!1),className:"flex-1 px-3 py-2.5 text-xs font-medium rounded-lg transition-opacity hover:opacity-80",style:{backgroundColor:"var(--accent)",color:"var(--bg-primary)"},children:"Cancel, I love my job"}),(0,a.jsx)("button",{onClick:()=>{M(!1),j("Logging out..."),b(),setTimeout(()=>{w("Logged out!"),g.push("/login")},500)},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(--status-fail-text)"},children:"Quit my job"})]}),(0,a.jsx)("div",{className:"px-6 pb-5 text-center",children:(0,a.jsxs)("p",{className:"text-[10px]",style:{color:"var(--text-tertiary)"},children:["Contact"," ",(0,a.jsxs)("span",{className:"relative inline-block group/nathan",children:[(0,a.jsx)("a",{href:"https://t.me/nathanaeliman",target:"_blank",rel:"noopener noreferrer",className:"underline cursor-pointer font-medium",style:{color:"var(--accent)"},children:"the best QA"}),(0,a.jsxs)("span",{className:"absolute bottom-full left-1/2 -translate-x-1/2 mb-1.5 rounded-lg overflow-hidden opacity-0 group-hover/nathan:opacity-100 transition-opacity pointer-events-none",style:{boxShadow:"0 4px 16px rgba(0,0,0,0.2)",width:120,height:120},children:[(0,a.jsx)("img",{src:"https://media.licdn.com/dms/image/v2/D5603AQHBu4wrzFWoTw/profile-displayphoto-crop_800_800/B56Zq.Sy6LKsAI-/0/1764129191465?e=1782345600&v=beta&t=79y6xLivwcpvwy53sy1TuVopK4FMp6O8uAu7QxlIxDo",alt:"Nathan",className:"w-full h-full object-cover"}),(0,a.jsx)("span",{className:"absolute top-full left-1/2 -translate-x-1/2 w-0 h-0",style:{borderLeft:"6px solid transparent",borderRight:"6px solid transparent",borderTop:"6px solid var(--bg-card)"}})]})]})," ","to do my job instead"]})})]})})]})}function k(e){let{label:t,icon:r,active:s,href:o,badge:l}=e;return(0,a.jsxs)(i(),{href:o,className:"flex items-center gap-2 px-3 py-2 text-xs font-medium rounded-t-md transition-colors relative",style:{color:s?"var(--accent)":"var(--text-tertiary)",backgroundColor:s?"var(--bg-secondary)":"transparent"},children:[r,t,l&&(0,a.jsx)("span",{className:"ml-1 px-1.5 py-0.5 text-[9px] font-semibold rounded-full leading-none",style:{backgroundColor:s?"var(--accent)":"var(--bg-secondary)",color:s?"#fff":"var(--text-tertiary)"},children:l}),s&&(0,a.jsx)("div",{className:"absolute bottom-0 left-2 right-2 h-0.5 rounded-t-full",style:{backgroundColor:"var(--accent)"}})]})}var w=r(7065);function N(e){let{children:t}=e,r=(0,o.useRouter)(),{isLoggedIn:l,loaded:n}=(0,c.A)();return((0,s.useEffect)(()=>{n&&!l&&r.replace("/login")},[n,l,r]),n)?l?(0,a.jsx)(a.Fragment,{children:t}):null:(0,a.jsx)("div",{className:"h-screen flex items-center justify-center",style:{backgroundColor:"var(--bg-primary)"},children:(0,a.jsx)("div",{className:"text-sm",style:{color:"var(--text-tertiary)"},children:"Loading..."})})}function C(){let{undo:e,redo:t,canUndo:r,canRedo:a}=(0,l.M)();return(0,s.useEffect)(()=>{let s=s=>{(s.ctrlKey||s.metaKey)&&"z"===s.key&&!s.shiftKey&&(s.preventDefault(),r&&e()),(s.ctrlKey||s.metaKey)&&("Z"===s.key||"z"===s.key&&s.shiftKey)&&(s.preventDefault(),a&&t()),(s.ctrlKey||s.metaKey)&&"y"===s.key&&(s.preventDefault(),a&&t())};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[e,t,r,a]),null}function S(e){let{children:t}=e,{dialog:r}=(0,l.M)();return(0,a.jsxs)(a.Fragment,{children:[t,(0,a.jsx)(w.q,{dialog:r})]})}function M(e){let{children:t}=e;return(0,a.jsx)(N,{children:(0,a.jsx)(l.q,{children:(0,a.jsx)(S,{children:(0,a.jsxs)("div",{className:"h-screen flex flex-col",style:{backgroundColor:"var(--bg-primary)"},children:[(0,a.jsx)(C,{}),(0,a.jsx)(j,{}),(0,a.jsx)("div",{className:"flex-1 min-h-0",children:t})]})})})})}},9715:(e,t,r)=>{Promise.resolve().then(r.bind(r,8609))}},e=>{e.O(0,[619,798,441,255,358],()=>e(e.s=9715)),_N_E=e.O()}]);