dev3000 0.0.66 → 0.0.67

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 (212) hide show
  1. package/dist/cdp-monitor.d.ts +4 -1
  2. package/dist/cdp-monitor.d.ts.map +1 -1
  3. package/dist/cdp-monitor.js +35 -1
  4. package/dist/cdp-monitor.js.map +1 -1
  5. package/dist/cli.js +10 -5
  6. package/dist/cli.js.map +1 -1
  7. package/dist/dev-environment.d.ts +2 -0
  8. package/dist/dev-environment.d.ts.map +1 -1
  9. package/dist/dev-environment.js +44 -27
  10. package/dist/dev-environment.js.map +1 -1
  11. package/dist/services/parsers/log-parsers/base.d.ts +1 -1
  12. package/dist/services/parsers/log-parsers/base.d.ts.map +1 -1
  13. package/dist/src/tui-interface-impl.tsx +163 -48
  14. package/dist/tui-interface-impl.d.ts.map +1 -1
  15. package/dist/tui-interface-impl.js +72 -14
  16. package/dist/tui-interface-impl.js.map +1 -1
  17. package/dist/utils/project-name.d.ts +18 -0
  18. package/dist/utils/project-name.d.ts.map +1 -0
  19. package/dist/utils/project-name.js +114 -0
  20. package/dist/utils/project-name.js.map +1 -0
  21. package/dist/utils/timestamp.d.ts +8 -0
  22. package/dist/utils/timestamp.d.ts.map +1 -0
  23. package/dist/utils/timestamp.js +18 -0
  24. package/dist/utils/timestamp.js.map +1 -0
  25. package/mcp-server/.next/BUILD_ID +1 -1
  26. package/mcp-server/.next/app-build-manifest.json +8 -6
  27. package/mcp-server/.next/build-manifest.json +2 -2
  28. package/mcp-server/.next/cache/.tsbuildinfo +1 -1
  29. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000005.sst +0 -0
  30. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000006.sst +0 -0
  31. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000007.sst +0 -0
  32. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000008.sst +0 -0
  33. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000009.meta +0 -0
  34. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000010.meta +0 -0
  35. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000011.meta +0 -0
  36. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000013.meta +0 -0
  37. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000014.sst +0 -0
  38. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000016.sst +0 -0
  39. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000017.meta +0 -0
  40. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000018.meta +0 -0
  41. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000021.sst +0 -0
  42. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000022.sst +0 -0
  43. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000023.meta +0 -0
  44. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000025.meta +0 -0
  45. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000027.sst +0 -0
  46. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000028.sst +0 -0
  47. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000029.sst +0 -0
  48. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000030.sst +0 -0
  49. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000031.meta +0 -0
  50. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000032.meta +0 -0
  51. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000034.meta +0 -0
  52. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000035.meta +0 -0
  53. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000037.sst +0 -0
  54. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000038.sst +0 -0
  55. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000039.sst +0 -0
  56. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000040.sst +0 -0
  57. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000041.meta +0 -0
  58. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000042.meta +0 -0
  59. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000044.meta +0 -0
  60. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000045.meta +0 -0
  61. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000047.sst +0 -0
  62. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000048.sst +0 -0
  63. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000049.sst +0 -0
  64. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000050.sst +0 -0
  65. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000051.meta +0 -0
  66. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000052.meta +0 -0
  67. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000054.meta +0 -0
  68. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000055.meta +0 -0
  69. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000057.sst +0 -0
  70. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000058.sst +0 -0
  71. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000059.sst +0 -0
  72. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000060.sst +0 -0
  73. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000061.meta +0 -0
  74. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000062.meta +0 -0
  75. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000064.meta +0 -0
  76. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000065.meta +0 -0
  77. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000066.sst +0 -0
  78. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000067.meta +0 -0
  79. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000069.sst +0 -0
  80. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000070.sst +0 -0
  81. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000071.sst +0 -0
  82. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000072.sst +0 -0
  83. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000073.sst +0 -0
  84. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000074.meta +0 -0
  85. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000075.meta +0 -0
  86. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000076.meta +0 -0
  87. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000077.meta +0 -0
  88. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000078.meta +0 -0
  89. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000079.sst +0 -0
  90. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000080.sst +0 -0
  91. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000081.sst +0 -0
  92. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000082.sst +0 -0
  93. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000083.sst +0 -0
  94. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000084.meta +0 -0
  95. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000085.meta +0 -0
  96. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000086.meta +0 -0
  97. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000087.meta +0 -0
  98. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000088.meta +0 -0
  99. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000089.sst +0 -0
  100. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000090.sst +0 -0
  101. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000091.sst +0 -0
  102. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000092.sst +0 -0
  103. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000093.sst +0 -0
  104. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000094.meta +0 -0
  105. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000095.meta +0 -0
  106. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000096.meta +0 -0
  107. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000097.meta +0 -0
  108. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000098.meta +0 -0
  109. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000099.sst +0 -0
  110. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000100.sst +0 -0
  111. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000101.sst +0 -0
  112. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000102.meta +0 -0
  113. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000103.meta +0 -0
  114. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000104.meta +0 -0
  115. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000105.sst +0 -0
  116. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000106.sst +0 -0
  117. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000107.sst +0 -0
  118. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000108.meta +0 -0
  119. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000109.meta +0 -0
  120. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/00000110.meta +0 -0
  121. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/CURRENT +0 -0
  122. package/mcp-server/.next/cache/turbopack/v15.5.1-canary.28-7-gede8d1b86/LOG +230 -0
  123. package/mcp-server/.next/fallback-build-manifest.json +2 -2
  124. package/mcp-server/.next/package.json +3 -1
  125. package/mcp-server/.next/required-server-files.json +1 -0
  126. package/mcp-server/.next/server/app/_global-error.html +2 -2
  127. package/mcp-server/.next/server/app/_global-error.rsc +1 -1
  128. package/mcp-server/.next/server/app/_not-found/page/app-build-manifest.json +1 -1
  129. package/mcp-server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  130. package/mcp-server/.next/server/app/_not-found.html +1 -1
  131. package/mcp-server/.next/server/app/_not-found.rsc +2 -2
  132. package/mcp-server/.next/server/app/index.html +1 -1
  133. package/mcp-server/.next/server/app/index.rsc +3 -3
  134. package/mcp-server/.next/server/app/logs/page/app-build-manifest.json +4 -3
  135. package/mcp-server/.next/server/app/logs/page.js.nft.json +1 -1
  136. package/mcp-server/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  137. package/mcp-server/.next/server/app/mcp/route.js.nft.json +1 -1
  138. package/mcp-server/.next/server/app/page/app-build-manifest.json +3 -2
  139. package/mcp-server/.next/server/app/page.js.nft.json +1 -1
  140. package/mcp-server/.next/server/app/page_client-reference-manifest.js +1 -1
  141. package/mcp-server/.next/server/chunks/[root-of-the-server]__1b561deb._.js +1 -1
  142. package/mcp-server/.next/server/chunks/[root-of-the-server]__1b561deb._.js.map +1 -1
  143. package/mcp-server/.next/server/chunks/[root-of-the-server]__38e8baae._.js +7 -8
  144. package/mcp-server/.next/server/chunks/[root-of-the-server]__38e8baae._.js.map +1 -1
  145. package/mcp-server/.next/server/chunks/ssr/{node_modules__pnpm_4f58b96e._.js → _188bfe33._.js} +2 -2
  146. package/mcp-server/.next/server/chunks/ssr/_188bfe33._.js.map +1 -0
  147. package/mcp-server/.next/server/chunks/ssr/_9d670a6b._.js +2 -2
  148. package/mcp-server/.next/server/chunks/ssr/_9d670a6b._.js.map +1 -1
  149. package/mcp-server/.next/server/chunks/ssr/_d858c4cd._.js +1 -1
  150. package/mcp-server/.next/server/chunks/ssr/_d858c4cd._.js.map +1 -1
  151. package/mcp-server/.next/server/chunks/ssr/_dae9c1d5._.js +1 -1
  152. package/mcp-server/.next/server/chunks/ssr/_dae9c1d5._.js.map +1 -1
  153. package/mcp-server/.next/server/chunks/ssr/{node_modules__pnpm_87fb6266._.js → _f03e80a8._.js} +2 -2
  154. package/mcp-server/.next/server/chunks/ssr/_f03e80a8._.js.map +1 -0
  155. package/mcp-server/.next/server/chunks/ssr/mcp-server_app_layout_tsx_afa41767._.js +1 -1
  156. package/mcp-server/.next/server/chunks/ssr/mcp-server_app_layout_tsx_afa41767._.js.map +1 -1
  157. package/mcp-server/.next/server/pages/404.html +1 -1
  158. package/mcp-server/.next/server/pages/500.html +2 -2
  159. package/mcp-server/.next/static/chunks/5a5edc75ee7e7de4.js +1 -0
  160. package/mcp-server/.next/static/chunks/65b18bf1ede9811a.css +1 -0
  161. package/mcp-server/.next/static/chunks/909033014621484e.js +1 -0
  162. package/mcp-server/.next/static/chunks/c5f8464bc8083ee7.js +1 -0
  163. package/mcp-server/.next/trace +1 -1
  164. package/mcp-server/app/api/tools/route.ts +22 -5
  165. package/mcp-server/app/layout.tsx +4 -2
  166. package/mcp-server/app/logs/LogsClient.infinite-loop.test.tsx +127 -0
  167. package/mcp-server/app/logs/LogsClient.tsx +318 -201
  168. package/mcp-server/app/logs/page.tsx +19 -3
  169. package/mcp-server/app/logs/utils.ts +15 -3
  170. package/mcp-server/app/mcp/route.ts +75 -509
  171. package/mcp-server/app/mcp/tools.ts +747 -0
  172. package/mcp-server/app/page.tsx +244 -169
  173. package/mcp-server/next.config.ts +1 -1
  174. package/mcp-server/package.json +9 -1
  175. package/mcp-server/public/favicon-16.svg +4 -0
  176. package/mcp-server/public/favicon-180.png +0 -0
  177. package/mcp-server/public/favicon-64.svg +4 -0
  178. package/mcp-server/public/favicon-preview.html +67 -0
  179. package/mcp-server/public/favicon.ico +0 -0
  180. package/mcp-server/public/favicon.svg +4 -0
  181. package/mcp-server/public/screenshots/test.txt +1 -0
  182. package/package.json +3 -4
  183. package/src/tui-interface-impl.tsx +163 -48
  184. package/mcp-server/.next/build/chunks/[root-of-the-server]__25374c4f._.js +0 -496
  185. package/mcp-server/.next/build/chunks/[root-of-the-server]__25374c4f._.js.map +0 -11
  186. package/mcp-server/.next/build/chunks/[root-of-the-server]__4718a9dd._.js +0 -408
  187. package/mcp-server/.next/build/chunks/[root-of-the-server]__4718a9dd._.js.map +0 -7
  188. package/mcp-server/.next/build/chunks/[root-of-the-server]__c438ef56._.js +0 -205
  189. package/mcp-server/.next/build/chunks/[root-of-the-server]__c438ef56._.js.map +0 -8
  190. package/mcp-server/.next/build/chunks/[root-of-the-server]__c7ae8543._.js +0 -496
  191. package/mcp-server/.next/build/chunks/[root-of-the-server]__c7ae8543._.js.map +0 -11
  192. package/mcp-server/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_d723d216._.js +0 -13
  193. package/mcp-server/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_d723d216._.js.map +0 -5
  194. package/mcp-server/.next/build/chunks/[turbopack-node]_transforms_webpack-loaders_ts_5a40237e._.js +0 -12
  195. package/mcp-server/.next/build/chunks/[turbopack-node]_transforms_webpack-loaders_ts_5a40237e._.js.map +0 -5
  196. package/mcp-server/.next/build/chunks/[turbopack]_runtime.js +0 -770
  197. package/mcp-server/.next/build/chunks/[turbopack]_runtime.js.map +0 -10
  198. package/mcp-server/.next/build/chunks/node_modules__pnpm_806d01c0._.js +0 -6759
  199. package/mcp-server/.next/build/chunks/node_modules__pnpm_806d01c0._.js.map +0 -47
  200. package/mcp-server/.next/postcss.js +0 -6
  201. package/mcp-server/.next/postcss.js.map +0 -5
  202. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_4f58b96e._.js.map +0 -1
  203. package/mcp-server/.next/server/chunks/ssr/node_modules__pnpm_87fb6266._.js.map +0 -1
  204. package/mcp-server/.next/static/chunks/11f1b53bdf7a9af0.js +0 -1
  205. package/mcp-server/.next/static/chunks/3d4ea64f6384f2c6.js +0 -1
  206. package/mcp-server/.next/static/chunks/50335dad5c51aab8.js +0 -1
  207. package/mcp-server/.next/static/chunks/bdd0789390bc312f.css +0 -1
  208. package/mcp-server/.next/webpack-loaders.js +0 -6
  209. package/mcp-server/.next/webpack-loaders.js.map +0 -5
  210. /package/mcp-server/.next/static/{mZfouQw6OHfahPQayuVeY → KrGcHKj--hSqNUOXmnA4A}/_buildManifest.js +0 -0
  211. /package/mcp-server/.next/static/{mZfouQw6OHfahPQayuVeY → KrGcHKj--hSqNUOXmnA4A}/_clientMiddlewareManifest.json +0 -0
  212. /package/mcp-server/.next/static/{mZfouQw6OHfahPQayuVeY → KrGcHKj--hSqNUOXmnA4A}/_ssgManifest.js +0 -0
@@ -1,5 +1,5 @@
1
- module.exports=[7934,(a,b,c)=>{"use strict";function d(a){let{widthInt:b,heightInt:c,blurWidth:d,blurHeight:e,blurDataURL:f,objectFit:g}=a,h=d?40*d:b,i=e?40*e:c,j=h&&i?"viewBox='0 0 "+h+" "+i+"'":"";return"%3Csvg xmlns='http://www.w3.org/2000/svg' "+j+"%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='"+(j?"none":"contain"===g?"xMidYMid":"cover"===g?"xMidYMid slice":"none")+"' style='filter: url(%23b);' href='"+f+"'/%3E%3C/svg%3E"}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"getImageBlurSvg",{enumerable:!0,get:function(){return d}})},90428,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(c,{VALID_LOADERS:function(){return d},imageConfigDefault:function(){return e}});let d=["default","imgix","cloudinary","akamai","custom"],e={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:60,formats:["image/webp"],dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1}},47468,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"getImgProps",{enumerable:!0,get:function(){return i}}),a.r(40657);let d=a.r(7934),e=a.r(90428),f=["-moz-initial","fill","none","scale-down",void 0];function g(a){return void 0!==a.default}function h(a){return void 0===a?a:"number"==typeof a?Number.isFinite(a)?a:NaN:"string"==typeof a&&/^[0-9]+$/.test(a)?parseInt(a,10):NaN}function i(a,b){var c,i;let j,k,l,{src:m,sizes:n,unoptimized:o=!1,priority:p=!1,preload:q=!1,loading:r,className:s,quality:t,width:u,height:v,fill:w=!1,style:x,overrideSrc:y,onLoad:z,onLoadingComplete:A,placeholder:B="empty",blurDataURL:C,fetchPriority:D,decoding:E="async",layout:F,objectFit:G,objectPosition:H,lazyBoundary:I,lazyRoot:J,...K}=a,{imgConf:L,showAltText:M,blurComplete:N,defaultLoader:O}=b,P=L||e.imageConfigDefault;if("allSizes"in P)j=P;else{let a=[...P.deviceSizes,...P.imageSizes].sort((a,b)=>a-b),b=P.deviceSizes.sort((a,b)=>a-b),d=null==(c=P.qualities)?void 0:c.sort((a,b)=>a-b);j={...P,allSizes:a,deviceSizes:b,qualities:d}}if(void 0===O)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let Q=K.loader||O;delete K.loader,delete K.srcSet;let R="__next_img_default"in Q;if(R){if("custom"===j.loader)throw Object.defineProperty(Error('Image with src "'+m+'" is missing "loader" prop.\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader'),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let a=Q;Q=b=>{let{config:c,...d}=b;return a(d)}}if(F){"fill"===F&&(w=!0);let a={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[F];a&&(x={...x,...a});let b={responsive:"100vw",fill:"100vw"}[F];b&&!n&&(n=b)}let S="",T=h(u),U=h(v);if((i=m)&&"object"==typeof i&&(g(i)||void 0!==i.src)){let a=g(m)?m.default:m;if(!a.src)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received "+JSON.stringify(a)),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!a.height||!a.width)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received "+JSON.stringify(a)),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(k=a.blurWidth,l=a.blurHeight,C=C||a.blurDataURL,S=a.src,!w)if(T||U){if(T&&!U){let b=T/a.width;U=Math.round(a.height*b)}else if(!T&&U){let b=U/a.height;T=Math.round(a.width*b)}}else T=a.width,U=a.height}let V=!p&&!q&&("lazy"===r||void 0===r);(!(m="string"==typeof m?m:S)||m.startsWith("data:")||m.startsWith("blob:"))&&(o=!0,V=!1),j.unoptimized&&(o=!0),R&&!j.dangerouslyAllowSVG&&m.split("?",1)[0].endsWith(".svg")&&(o=!0);let W=h(t),X=Object.assign(w?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:G,objectPosition:H}:{},M?{}:{color:"transparent"},x),Y=N||"empty"===B?null:"blur"===B?'url("data:image/svg+xml;charset=utf-8,'+(0,d.getImageBlurSvg)({widthInt:T,heightInt:U,blurWidth:k,blurHeight:l,blurDataURL:C||"",objectFit:X.objectFit})+'")':'url("'+B+'")',Z=f.includes(X.objectFit)?"fill"===X.objectFit?"100% 100%":"cover":X.objectFit,$=Y?{backgroundSize:Z,backgroundPosition:X.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:Y}:{},_=function(a){let{config:b,src:c,unoptimized:d,width:e,quality:f,sizes:g,loader:h}=a;if(d)return{src:c,srcSet:void 0,sizes:void 0};let{widths:i,kind:j}=function(a,b,c){let{deviceSizes:d,allSizes:e}=a;if(c){let a=/(^|\s)(1?\d?\d)vw/g,b=[];for(let d;d=a.exec(c);)b.push(parseInt(d[2]));if(b.length){let a=.01*Math.min(...b);return{widths:e.filter(b=>b>=d[0]*a),kind:"w"}}return{widths:e,kind:"w"}}return"number"!=typeof b?{widths:d,kind:"w"}:{widths:[...new Set([b,2*b].map(a=>e.find(b=>b>=a)||e[e.length-1]))],kind:"x"}}(b,e,g),k=i.length-1;return{sizes:g||"w"!==j?g:"100vw",srcSet:i.map((a,d)=>h({config:b,src:c,quality:f,width:a})+" "+("w"===j?a:d+1)+j).join(", "),src:h({config:b,src:c,quality:f,width:i[k]})}}({config:j,src:m,unoptimized:o,width:T,quality:W,sizes:n,loader:Q}),aa=V?"lazy":r;return{props:{...K,loading:aa,fetchPriority:D,width:T,height:U,decoding:E,className:s,style:{...X,...$},sizes:_.sizes,srcSet:_.srcSet,src:y||_.src},meta:{unoptimized:o,preload:q||p,placeholder:B,fill:w}}}},83146,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return f}});let d=a.r(56541),e=()=>{};function f(a){var b;let{headManager:c,reduceComponentsToState:f}=a;function g(){if(c&&c.mountedInstances){let b=d.Children.toArray(Array.from(c.mountedInstances).filter(Boolean));c.updateHead(f(b,a))}}return null==c||null==(b=c.mountedInstances)||b.add(a.children),g(),e(()=>{var b;return null==c||null==(b=c.mountedInstances)||b.add(a.children),()=>{var b;null==c||null==(b=c.mountedInstances)||b.delete(a.children)}}),e(()=>(c&&(c._pendingUpdate=g),()=>{c&&(c._pendingUpdate=g)})),null}},64463,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored.contexts.AmpContext},63962,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored.contexts.HeadManagerContext},68377,(a,b,c)=>{"use strict";function d(a){let{ampFirst:b=!1,hybrid:c=!1,hasQuery:d=!1}=void 0===a?{}:a;return b||c&&d}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isInAmpMode",{enumerable:!0,get:function(){return d}})},87820,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(c,{default:function(){return p},defaultHead:function(){return l}});let d=a.r(63652),e=a.r(3988),f=a.r(66755),g=e._(a.r(56541)),h=d._(a.r(83146)),i=a.r(64463),j=a.r(63962),k=a.r(68377);function l(a){void 0===a&&(a=!1);let b=[(0,f.jsx)("meta",{charSet:"utf-8"},"charset")];return a||b.push((0,f.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),b}function m(a,b){return"string"==typeof b||"number"==typeof b?a:b.type===g.default.Fragment?a.concat(g.default.Children.toArray(b.props.children).reduce((a,b)=>"string"==typeof b||"number"==typeof b?a:a.concat(b),[])):a.concat(b)}a.r(40657);let n=["name","httpEquiv","charSet","itemProp"];function o(a,b){let{inAmpMode:c}=b;return a.reduce(m,[]).reverse().concat(l(c).reverse()).filter(function(){let a=new Set,b=new Set,c=new Set,d={};return e=>{let f=!0,g=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){g=!0;let b=e.key.slice(e.key.indexOf("$")+1);a.has(b)?f=!1:a.add(b)}switch(e.type){case"title":case"base":b.has(e.type)?f=!1:b.add(e.type);break;case"meta":for(let a=0,b=n.length;a<b;a++){let b=n[a];if(e.props.hasOwnProperty(b))if("charSet"===b)c.has(b)?f=!1:c.add(b);else{let a=e.props[b],c=d[b]||new Set;("name"!==b||!g)&&c.has(a)?f=!1:(c.add(a),d[b]=c)}}}return f}}()).reverse().map((a,b)=>{let c=a.key||b;return g.default.cloneElement(a,{key:c})})}let p=function(a){let{children:b}=a,c=(0,g.useContext)(i.AmpStateContext),d=(0,g.useContext)(j.HeadManagerContext);return(0,f.jsx)(h.default,{reduceComponentsToState:o,headManager:d,inAmpMode:(0,k.isInAmpMode)(c),children:b})};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},59259,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored.contexts.ImageConfigContext},42553,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored.contexts.RouterContext},88745,(a,b,c)=>{"use strict";function d(a,b){var c;let d=a||75;return(null==b||null==(c=b.qualities)?void 0:c.length)?b.qualities.reduce((a,b)=>Math.abs(b-d)<Math.abs(a-d)?b:a,0):d}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"findClosestQuality",{enumerable:!0,get:function(){return d}})},90802,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return f}});let d=a.r(88745);function e(a){let{config:b,src:c,width:e,quality:f}=a,g=(0,d.findClosestQuality)(f,b);return b.path+"?url="+encodeURIComponent(c)+"&w="+e+"&q="+g+(c.startsWith("/_next/static/media/"),"")}e.__next_img_default=!0;let f=e},60783,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"Image",{enumerable:!0,get:function(){return u}});let d=a.r(63652),e=a.r(3988),f=a.r(66755),g=e._(a.r(56541)),h=d._(a.r(54770)),i=d._(a.r(87820)),j=a.r(47468),k=a.r(90428),l=a.r(59259);a.r(40657);let m=a.r(42553),n=d._(a.r(90802)),o=a.r(7547),p={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function q(a,b,c,d,e,f,g){let h=null==a?void 0:a.src;a&&a["data-loaded-src"]!==h&&(a["data-loaded-src"]=h,("decode"in a?a.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(a.parentElement&&a.isConnected){if("empty"!==b&&e(!0),null==c?void 0:c.current){let b=new Event("load");Object.defineProperty(b,"target",{writable:!1,value:a});let d=!1,e=!1;c.current({...b,nativeEvent:b,currentTarget:a,target:a,isDefaultPrevented:()=>d,isPropagationStopped:()=>e,persist:()=>{},preventDefault:()=>{d=!0,b.preventDefault()},stopPropagation:()=>{e=!0,b.stopPropagation()}})}(null==d?void 0:d.current)&&d.current(a)}}))}function r(a){return g.use?{fetchPriority:a}:{fetchpriority:a}}globalThis.__NEXT_IMAGE_IMPORTED=!0;let s=(0,g.forwardRef)((a,b)=>{let{src:c,srcSet:d,sizes:e,height:h,width:i,decoding:j,className:k,style:l,fetchPriority:m,placeholder:n,loading:p,unoptimized:s,fill:t,onLoadRef:u,onLoadingCompleteRef:v,setBlurComplete:w,setShowAltText:x,sizesInput:y,onLoad:z,onError:A,...B}=a,C=(0,g.useCallback)(a=>{a&&(A&&(a.src=a.src),a.complete&&q(a,n,u,v,w,s,y))},[c,n,u,v,w,A,s,y]),D=(0,o.useMergedRef)(b,C);return(0,f.jsx)("img",{...B,...r(m),loading:p,width:i,height:h,decoding:j,"data-nimg":t?"fill":"1",className:k,style:l,sizes:e,srcSet:d,src:c,ref:D,onLoad:a=>{q(a.currentTarget,n,u,v,w,s,y)},onError:a=>{x(!0),"empty"!==n&&w(!0),A&&A(a)}})});function t(a){let{isAppRouter:b,imgAttributes:c}=a,d={as:"image",imageSrcSet:c.srcSet,imageSizes:c.sizes,crossOrigin:c.crossOrigin,referrerPolicy:c.referrerPolicy,...r(c.fetchPriority)};return b&&h.default.preload?(h.default.preload(c.src,d),null):(0,f.jsx)(i.default,{children:(0,f.jsx)("link",{rel:"preload",href:c.srcSet?void 0:c.src,...d},"__nimg-"+c.src+c.srcSet+c.sizes)})}let u=(0,g.forwardRef)((a,b)=>{let c=(0,g.useContext)(m.RouterContext),d=(0,g.useContext)(l.ImageConfigContext),e=(0,g.useMemo)(()=>{var a;let b=p||d||k.imageConfigDefault,c=[...b.deviceSizes,...b.imageSizes].sort((a,b)=>a-b),e=b.deviceSizes.sort((a,b)=>a-b),f=null==(a=b.qualities)?void 0:a.sort((a,b)=>a-b);return{...b,allSizes:c,deviceSizes:e,qualities:f}},[d]),{onLoad:h,onLoadingComplete:i}=a,o=(0,g.useRef)(h);(0,g.useEffect)(()=>{o.current=h},[h]);let q=(0,g.useRef)(i);(0,g.useEffect)(()=>{q.current=i},[i]);let[r,u]=(0,g.useState)(!1),[v,w]=(0,g.useState)(!1),{props:x,meta:y}=(0,j.getImgProps)(a,{defaultLoader:n.default,imgConf:e,blurComplete:r,showAltText:v});return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(s,{...x,unoptimized:y.unoptimized,placeholder:y.placeholder,fill:y.fill,onLoadRef:o,onLoadingCompleteRef:q,setBlurComplete:u,setShowAltText:w,sizesInput:a.sizes,ref:b}),y.preload?(0,f.jsx)(t,{isAppRouter:!c,imgAttributes:x}):null]})});("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},66540,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(c,{default:function(){return i},getImageProps:function(){return h}});let d=a.r(63652),e=a.r(47468),f=a.r(60783),g=d._(a.r(90802));function h(a){let{props:b}=(0,e.getImgProps)(a,{defaultLoader:g.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[a,c]of Object.entries(b))void 0===c&&delete b[a];return{props:b}}let i=f.Image},10711,(a,b,c)=>{b.exports=a.r(66540)},93372,(a,b,c)=>{b.exports=a.r(56532)},78506,a=>{"use strict";var b=a.i(66755),c=a.i(10711),d=a.i(93372),e=a.i(56541);let f={BROWSER:"#00CED1",SERVER:"#32CD32",NETWORK:"#4A7C7E",CONSOLE_ERROR:"#FF6B6B",CONSOLE_WARN:"#FFA500",CONSOLE_INFO:"#87CEEB",CONSOLE_LOG:"#B0B0B0",CONSOLE_DEBUG:"#9370DB",SCREENSHOT:"#FF69B4",PAGE:"#98FB98",DOM:"#DDA0DD",CDP:"#F0E68C",ERROR:"#FF6B6B",CRITICAL_ERROR:"#DC143C",DEFAULT:"#A0A0A0"};function g(a){return[f.CONSOLE_INFO,f.SCREENSHOT,f.PAGE,f.DOM,f.CDP].includes(a)?"#000":"#FFF"}function h(a){let b=/\[(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z)\] \[([^\]]+)\] /,c=[],d=a.split("\n"),e=null;for(let a of d){if(!a.trim())continue;let d=a.match(b);if(d){let b,f;e&&c.push(e);let[g,h,i]=d,j=a.substring(g.length),k=/^TAB-\d+\.\d+$/.test(i),l=i,m=j;if(k){b=i;let a=j.match(/^\[([^\]]+)\] /);if(a&&(l=a[1],(m=j.substring(a[0].length)).includes("User-Agent:"))){let a=m.match(/User-Agent: ([^,\n]+)/);a&&(f=a[1])}}let n=m.match(/\[SCREENSHOT\] ([^\s[]+)/)?.[1],o=function(a){let b=a.match(/^\[CONSOLE LOG\] (.+)$/);if(!b)return a;let c=b[1];if(!c.includes("%c"))return a;let d=c;return d=(d=(d=d.replace(/%c/g,"")).replace(/\s+color:\s*[^{}\n]*?(?=\s*[{[]|$)/g,"")).replace(/\s+/g," ").trim(),`[CONSOLE LOG] ${d}`}(m);if((o=o.replace(/ \[CHROME_EXTENSION\]$/,"")).includes("[Network.webSocketFrameSent]")||o.includes("[Network.webSocketFrameReceived]")||o.includes("[Network.webSocketFrame")||o.includes("webSocketDebuggerUrl")&&o.includes("localhost")||o.includes("[NETWORK")&&o.includes("__PAGE__")&&o.includes("refresh")){e=null;continue}e={timestamp:h,source:l,message:o,screenshot:n,original:a,tabIdentifier:b,userAgent:f}}else e&&(e.message+=`
1
+ module.exports=[7934,(a,b,c)=>{"use strict";function d(a){let{widthInt:b,heightInt:c,blurWidth:d,blurHeight:e,blurDataURL:f,objectFit:g}=a,h=d?40*d:b,i=e?40*e:c,j=h&&i?"viewBox='0 0 "+h+" "+i+"'":"";return"%3Csvg xmlns='http://www.w3.org/2000/svg' "+j+"%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='"+(j?"none":"contain"===g?"xMidYMid":"cover"===g?"xMidYMid slice":"none")+"' style='filter: url(%23b);' href='"+f+"'/%3E%3C/svg%3E"}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"getImageBlurSvg",{enumerable:!0,get:function(){return d}})},90428,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(c,{VALID_LOADERS:function(){return d},imageConfigDefault:function(){return e}});let d=["default","imgix","cloudinary","akamai","custom"],e={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:60,formats:["image/webp"],dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1}},47468,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"getImgProps",{enumerable:!0,get:function(){return i}}),a.r(40657);let d=a.r(7934),e=a.r(90428),f=["-moz-initial","fill","none","scale-down",void 0];function g(a){return void 0!==a.default}function h(a){return void 0===a?a:"number"==typeof a?Number.isFinite(a)?a:NaN:"string"==typeof a&&/^[0-9]+$/.test(a)?parseInt(a,10):NaN}function i(a,b){var c,i;let j,k,l,{src:m,sizes:n,unoptimized:o=!1,priority:p=!1,preload:q=!1,loading:r,className:s,quality:t,width:u,height:v,fill:w=!1,style:x,overrideSrc:y,onLoad:z,onLoadingComplete:A,placeholder:B="empty",blurDataURL:C,fetchPriority:D,decoding:E="async",layout:F,objectFit:G,objectPosition:H,lazyBoundary:I,lazyRoot:J,...K}=a,{imgConf:L,showAltText:M,blurComplete:N,defaultLoader:O}=b,P=L||e.imageConfigDefault;if("allSizes"in P)j=P;else{let a=[...P.deviceSizes,...P.imageSizes].sort((a,b)=>a-b),b=P.deviceSizes.sort((a,b)=>a-b),d=null==(c=P.qualities)?void 0:c.sort((a,b)=>a-b);j={...P,allSizes:a,deviceSizes:b,qualities:d}}if(void 0===O)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let Q=K.loader||O;delete K.loader,delete K.srcSet;let R="__next_img_default"in Q;if(R){if("custom"===j.loader)throw Object.defineProperty(Error('Image with src "'+m+'" is missing "loader" prop.\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader'),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let a=Q;Q=b=>{let{config:c,...d}=b;return a(d)}}if(F){"fill"===F&&(w=!0);let a={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[F];a&&(x={...x,...a});let b={responsive:"100vw",fill:"100vw"}[F];b&&!n&&(n=b)}let S="",T=h(u),U=h(v);if((i=m)&&"object"==typeof i&&(g(i)||void 0!==i.src)){let a=g(m)?m.default:m;if(!a.src)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received "+JSON.stringify(a)),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!a.height||!a.width)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received "+JSON.stringify(a)),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(k=a.blurWidth,l=a.blurHeight,C=C||a.blurDataURL,S=a.src,!w)if(T||U){if(T&&!U){let b=T/a.width;U=Math.round(a.height*b)}else if(!T&&U){let b=U/a.height;T=Math.round(a.width*b)}}else T=a.width,U=a.height}let V=!p&&!q&&("lazy"===r||void 0===r);(!(m="string"==typeof m?m:S)||m.startsWith("data:")||m.startsWith("blob:"))&&(o=!0,V=!1),j.unoptimized&&(o=!0),R&&!j.dangerouslyAllowSVG&&m.split("?",1)[0].endsWith(".svg")&&(o=!0);let W=h(t),X=Object.assign(w?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:G,objectPosition:H}:{},M?{}:{color:"transparent"},x),Y=N||"empty"===B?null:"blur"===B?'url("data:image/svg+xml;charset=utf-8,'+(0,d.getImageBlurSvg)({widthInt:T,heightInt:U,blurWidth:k,blurHeight:l,blurDataURL:C||"",objectFit:X.objectFit})+'")':'url("'+B+'")',Z=f.includes(X.objectFit)?"fill"===X.objectFit?"100% 100%":"cover":X.objectFit,$=Y?{backgroundSize:Z,backgroundPosition:X.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:Y}:{},_=function(a){let{config:b,src:c,unoptimized:d,width:e,quality:f,sizes:g,loader:h}=a;if(d)return{src:c,srcSet:void 0,sizes:void 0};let{widths:i,kind:j}=function(a,b,c){let{deviceSizes:d,allSizes:e}=a;if(c){let a=/(^|\s)(1?\d?\d)vw/g,b=[];for(let d;d=a.exec(c);)b.push(parseInt(d[2]));if(b.length){let a=.01*Math.min(...b);return{widths:e.filter(b=>b>=d[0]*a),kind:"w"}}return{widths:e,kind:"w"}}return"number"!=typeof b?{widths:d,kind:"w"}:{widths:[...new Set([b,2*b].map(a=>e.find(b=>b>=a)||e[e.length-1]))],kind:"x"}}(b,e,g),k=i.length-1;return{sizes:g||"w"!==j?g:"100vw",srcSet:i.map((a,d)=>h({config:b,src:c,quality:f,width:a})+" "+("w"===j?a:d+1)+j).join(", "),src:h({config:b,src:c,quality:f,width:i[k]})}}({config:j,src:m,unoptimized:o,width:T,quality:W,sizes:n,loader:Q}),aa=V?"lazy":r;return{props:{...K,loading:aa,fetchPriority:D,width:T,height:U,decoding:E,className:s,style:{...X,...$},sizes:_.sizes,srcSet:_.srcSet,src:y||_.src},meta:{unoptimized:o,preload:q||p,placeholder:B,fill:w}}}},83146,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return f}});let d=a.r(56541),e=()=>{};function f(a){var b;let{headManager:c,reduceComponentsToState:f}=a;function g(){if(c&&c.mountedInstances){let b=d.Children.toArray(Array.from(c.mountedInstances).filter(Boolean));c.updateHead(f(b,a))}}return null==c||null==(b=c.mountedInstances)||b.add(a.children),g(),e(()=>{var b;return null==c||null==(b=c.mountedInstances)||b.add(a.children),()=>{var b;null==c||null==(b=c.mountedInstances)||b.delete(a.children)}}),e(()=>(c&&(c._pendingUpdate=g),()=>{c&&(c._pendingUpdate=g)})),null}},64463,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored.contexts.AmpContext},63962,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored.contexts.HeadManagerContext},68377,(a,b,c)=>{"use strict";function d(a){let{ampFirst:b=!1,hybrid:c=!1,hasQuery:d=!1}=void 0===a?{}:a;return b||c&&d}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isInAmpMode",{enumerable:!0,get:function(){return d}})},87820,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(c,{default:function(){return p},defaultHead:function(){return l}});let d=a.r(63652),e=a.r(3988),f=a.r(66755),g=e._(a.r(56541)),h=d._(a.r(83146)),i=a.r(64463),j=a.r(63962),k=a.r(68377);function l(a){void 0===a&&(a=!1);let b=[(0,f.jsx)("meta",{charSet:"utf-8"},"charset")];return a||b.push((0,f.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),b}function m(a,b){return"string"==typeof b||"number"==typeof b?a:b.type===g.default.Fragment?a.concat(g.default.Children.toArray(b.props.children).reduce((a,b)=>"string"==typeof b||"number"==typeof b?a:a.concat(b),[])):a.concat(b)}a.r(40657);let n=["name","httpEquiv","charSet","itemProp"];function o(a,b){let{inAmpMode:c}=b;return a.reduce(m,[]).reverse().concat(l(c).reverse()).filter(function(){let a=new Set,b=new Set,c=new Set,d={};return e=>{let f=!0,g=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){g=!0;let b=e.key.slice(e.key.indexOf("$")+1);a.has(b)?f=!1:a.add(b)}switch(e.type){case"title":case"base":b.has(e.type)?f=!1:b.add(e.type);break;case"meta":for(let a=0,b=n.length;a<b;a++){let b=n[a];if(e.props.hasOwnProperty(b))if("charSet"===b)c.has(b)?f=!1:c.add(b);else{let a=e.props[b],c=d[b]||new Set;("name"!==b||!g)&&c.has(a)?f=!1:(c.add(a),d[b]=c)}}}return f}}()).reverse().map((a,b)=>{let c=a.key||b;return g.default.cloneElement(a,{key:c})})}let p=function(a){let{children:b}=a,c=(0,g.useContext)(i.AmpStateContext),d=(0,g.useContext)(j.HeadManagerContext);return(0,f.jsx)(h.default,{reduceComponentsToState:o,headManager:d,inAmpMode:(0,k.isInAmpMode)(c),children:b})};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},59259,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored.contexts.ImageConfigContext},42553,(a,b,c)=>{"use strict";b.exports=a.r(12988).vendored.contexts.RouterContext},88745,(a,b,c)=>{"use strict";function d(a,b){var c;let d=a||75;return(null==b||null==(c=b.qualities)?void 0:c.length)?b.qualities.reduce((a,b)=>Math.abs(b-d)<Math.abs(a-d)?b:a,0):d}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"findClosestQuality",{enumerable:!0,get:function(){return d}})},90802,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return f}});let d=a.r(88745);function e(a){let{config:b,src:c,width:e,quality:f}=a,g=(0,d.findClosestQuality)(f,b);return b.path+"?url="+encodeURIComponent(c)+"&w="+e+"&q="+g+(c.startsWith("/_next/static/media/"),"")}e.__next_img_default=!0;let f=e},60783,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"Image",{enumerable:!0,get:function(){return u}});let d=a.r(63652),e=a.r(3988),f=a.r(66755),g=e._(a.r(56541)),h=d._(a.r(54770)),i=d._(a.r(87820)),j=a.r(47468),k=a.r(90428),l=a.r(59259);a.r(40657);let m=a.r(42553),n=d._(a.r(90802)),o=a.r(7547),p={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function q(a,b,c,d,e,f,g){let h=null==a?void 0:a.src;a&&a["data-loaded-src"]!==h&&(a["data-loaded-src"]=h,("decode"in a?a.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(a.parentElement&&a.isConnected){if("empty"!==b&&e(!0),null==c?void 0:c.current){let b=new Event("load");Object.defineProperty(b,"target",{writable:!1,value:a});let d=!1,e=!1;c.current({...b,nativeEvent:b,currentTarget:a,target:a,isDefaultPrevented:()=>d,isPropagationStopped:()=>e,persist:()=>{},preventDefault:()=>{d=!0,b.preventDefault()},stopPropagation:()=>{e=!0,b.stopPropagation()}})}(null==d?void 0:d.current)&&d.current(a)}}))}function r(a){return g.use?{fetchPriority:a}:{fetchpriority:a}}globalThis.__NEXT_IMAGE_IMPORTED=!0;let s=(0,g.forwardRef)((a,b)=>{let{src:c,srcSet:d,sizes:e,height:h,width:i,decoding:j,className:k,style:l,fetchPriority:m,placeholder:n,loading:p,unoptimized:s,fill:t,onLoadRef:u,onLoadingCompleteRef:v,setBlurComplete:w,setShowAltText:x,sizesInput:y,onLoad:z,onError:A,...B}=a,C=(0,g.useCallback)(a=>{a&&(A&&(a.src=a.src),a.complete&&q(a,n,u,v,w,s,y))},[c,n,u,v,w,A,s,y]),D=(0,o.useMergedRef)(b,C);return(0,f.jsx)("img",{...B,...r(m),loading:p,width:i,height:h,decoding:j,"data-nimg":t?"fill":"1",className:k,style:l,sizes:e,srcSet:d,src:c,ref:D,onLoad:a=>{q(a.currentTarget,n,u,v,w,s,y)},onError:a=>{x(!0),"empty"!==n&&w(!0),A&&A(a)}})});function t(a){let{isAppRouter:b,imgAttributes:c}=a,d={as:"image",imageSrcSet:c.srcSet,imageSizes:c.sizes,crossOrigin:c.crossOrigin,referrerPolicy:c.referrerPolicy,...r(c.fetchPriority)};return b&&h.default.preload?(h.default.preload(c.src,d),null):(0,f.jsx)(i.default,{children:(0,f.jsx)("link",{rel:"preload",href:c.srcSet?void 0:c.src,...d},"__nimg-"+c.src+c.srcSet+c.sizes)})}let u=(0,g.forwardRef)((a,b)=>{let c=(0,g.useContext)(m.RouterContext),d=(0,g.useContext)(l.ImageConfigContext),e=(0,g.useMemo)(()=>{var a;let b=p||d||k.imageConfigDefault,c=[...b.deviceSizes,...b.imageSizes].sort((a,b)=>a-b),e=b.deviceSizes.sort((a,b)=>a-b),f=null==(a=b.qualities)?void 0:a.sort((a,b)=>a-b);return{...b,allSizes:c,deviceSizes:e,qualities:f}},[d]),{onLoad:h,onLoadingComplete:i}=a,o=(0,g.useRef)(h);(0,g.useEffect)(()=>{o.current=h},[h]);let q=(0,g.useRef)(i);(0,g.useEffect)(()=>{q.current=i},[i]);let[r,u]=(0,g.useState)(!1),[v,w]=(0,g.useState)(!1),{props:x,meta:y}=(0,j.getImgProps)(a,{defaultLoader:n.default,imgConf:e,blurComplete:r,showAltText:v});return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(s,{...x,unoptimized:y.unoptimized,placeholder:y.placeholder,fill:y.fill,onLoadRef:o,onLoadingCompleteRef:q,setBlurComplete:u,setShowAltText:w,sizesInput:a.sizes,ref:b}),y.preload?(0,f.jsx)(t,{isAppRouter:!c,imgAttributes:x}):null]})});("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},66540,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(c,{default:function(){return i},getImageProps:function(){return h}});let d=a.r(63652),e=a.r(47468),f=a.r(60783),g=d._(a.r(90802));function h(a){let{props:b}=(0,e.getImgProps)(a,{defaultLoader:g.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[a,c]of Object.entries(b))void 0===c&&delete b[a];return{props:b}}let i=f.Image},10711,(a,b,c)=>{b.exports=a.r(66540)},93372,(a,b,c)=>{b.exports=a.r(56532)},78506,a=>{"use strict";var b=a.i(66755),c=a.i(10711),d=a.i(93372),e=a.i(56541),f=a.i(87896),g=a.i(37825);let h={BROWSER:"#00CED1",SERVER:"#32CD32",NETWORK:"#4A7C7E",CONSOLE_ERROR:"#FF6B6B",CONSOLE_WARN:"#FFA500",CONSOLE_INFO:"#87CEEB",CONSOLE_LOG:"#B0B0B0",CONSOLE_DEBUG:"#9370DB",SCREENSHOT:"#FF69B4",PAGE:"#98FB98",DOM:"#DDA0DD",CDP:"#F0E68C",ERROR:"#FF6B6B",CRITICAL_ERROR:"#DC143C",DEFAULT:"#A0A0A0"};function i(a){return[h.CONSOLE_INFO,h.SCREENSHOT,h.PAGE,h.DOM,h.CDP].includes(a)?"#000":"#FFF"}function j(a){let b=/\[(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z|\d{2}:\d{2}:\d{2}\.\d{3})\] \[([^\]]+)\] /,c=[],d=a.split("\n"),e=null;for(let a of d){if(!a.trim())continue;let d=a.match(b);if(d){let b,f;e&&c.push(e);let[g,h,i]=d,j=a.substring(g.length),k=/^TAB-\d+\.\d+$/.test(i),l=i,m=j;if(k){b=i;let a=j.match(/^\[([^\]]+)\] /);if(a&&(l=a[1],(m=j.substring(a[0].length)).includes("User-Agent:"))){let a=m.match(/User-Agent: ([^,\n]+)/);a&&(f=a[1])}}let n=m.match(/\[SCREENSHOT\] ([^\s[]+)/)?.[1],o=function(a){let b=a.match(/^\[CONSOLE LOG\] (.+)$/);if(!b)return a;let c=b[1];if(!c.includes("%c"))return a;let d=c;return d=(d=(d=d.replace(/%c/g,"")).replace(/\s+color:\s*[^{}\n]*?(?=\s*[{[]|$)/g,"")).replace(/\s+/g," ").trim(),`[CONSOLE LOG] ${d}`}(m);if((o=o.replace(/ \[CHROME_EXTENSION\]$/,"")).includes("[Network.webSocketFrameSent]")||o.includes("[Network.webSocketFrameReceived]")||o.includes("[Network.webSocketFrame")||o.includes("webSocketDebuggerUrl")&&o.includes("localhost")||o.includes("[NETWORK")&&o.includes("__PAGE__")&&o.includes("refresh")){e=null;continue}let p=h;if(/^\d{2}:\d{2}:\d{2}\.\d{3}$/.test(h)){let a=new Date,[b,c,d]=h.split(":"),[e,f]=d.split(".");a.setHours(parseInt(b,10),parseInt(c,10),parseInt(e,10),parseInt(f,10)),p=a.toISOString()}e={timestamp:p,source:l,message:o,screenshot:n,original:a,tabIdentifier:b,userAgent:f}}else e&&(e.message+=`
2
2
  ${a}`,e.original+=`
3
- ${a}`)}return e&&c.push(e),c}function i({url:a,maxLength:c=60}){let[d,f]=(0,e.useState)(!1);if(a.length<=c)return(0,b.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 underline",children:a});let g=`${a.substring(0,c)}...`;return(0,b.jsx)("span",{className:"inline-block",children:d?(0,b.jsxs)("span",{children:[(0,b.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 underline",children:a}),(0,b.jsx)("button",{type:"button",onClick:()=>f(!1),className:"ml-2 text-xs text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 px-1 py-0.5 rounded hover:bg-gray-100 dark:hover:bg-gray-700",children:"[collapse]"})]}):(0,b.jsxs)("span",{children:[(0,b.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 underline",children:g}),(0,b.jsx)("button",{type:"button",onClick:()=>f(!0),className:"ml-1 text-xs text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 px-1 py-0.5 rounded hover:bg-gray-100 dark:hover:bg-gray-700",children:"[expand]"})]})})}function j({content:a}){let[c,d]=(0,e.useState)(!1);try{let e=JSON.parse(a);if(e&&"object"==typeof e&&"object"===e.type&&e.properties){let a=e.properties,f=e.description||"Object",g=e.overflow;return(0,b.jsxs)("div",{className:"inline-block",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>d(!c),className:"inline-flex items-center gap-1 text-blue-600 hover:text-blue-800 font-mono text-sm",children:[(0,b.jsx)("svg",{className:`w-3 h-3 transition-transform ${c?"rotate-90":""}`,fill:"currentColor",viewBox:"0 0 20 20",children:(0,b.jsx)("path",{fillRule:"evenodd",d:"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 111.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z",clipRule:"evenodd"})}),(0,b.jsx)("span",{className:"text-purple-600",children:f}),!c&&(0,b.jsxs)("span",{className:"text-gray-500",children:[g?"...":""," ","{",a.slice(0,3).map((a,c)=>(0,b.jsxs)("span",{children:[c>0&&", ",(0,b.jsx)("span",{className:"text-red-600",children:a.name}),":",(0,b.jsx)("span",{className:"text-blue-600",children:"string"===a.type?`"${a.value}"`:"number"===a.type?a.value:"object"===a.type?"array"===a.subtype?a.value:"{...}":a.value})]},`${a.name}-${c}`)),a.length>3&&", ...","}"]})]}),c&&(0,b.jsx)("div",{className:"mt-1 ml-4 border-l-2 border-gray-200 pl-3",children:(0,b.jsx)("div",{className:"font-mono text-sm",children:(0,b.jsxs)("div",{className:"text-gray-600",children:[f," ","{",(0,b.jsxs)("div",{className:"ml-4",children:[a.map((c,d)=>(0,b.jsxs)("div",{className:"py-0.5",children:[(0,b.jsx)("span",{className:"text-red-600",children:c.name}),(0,b.jsx)("span",{className:"text-gray-500",children:": "}),(0,b.jsx)("span",{className:"string"===c.type?"text-green-600":"number"===c.type?"text-blue-600":"object"===c.type?"text-purple-600":"text-orange-600",children:"string"===c.type?`"${String(c.value)}"`:"number"===c.type?String(c.value):"object"===c.type?"array"===c.subtype?String(c.value):"{...}":String(c.value)}),d<a.length-1&&(0,b.jsx)("span",{className:"text-gray-500",children:","})]},`${c.name}-${d}`)),g&&(0,b.jsx)("div",{className:"text-gray-500 italic",children:"... and more properties"})]}),(0,b.jsx)("div",{className:"text-gray-600",children:"}"})]})})})]})}return(0,b.jsxs)("div",{className:"inline-block",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>d(!c),className:"inline-flex items-center gap-1 text-blue-600 hover:text-blue-800 font-mono text-sm",children:[(0,b.jsx)("svg",{className:`w-3 h-3 transition-transform ${c?"rotate-90":""}`,fill:"currentColor",viewBox:"0 0 20 20",children:(0,b.jsx)("path",{fillRule:"evenodd",d:"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 111.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z",clipRule:"evenodd"})}),(0,b.jsx)("span",{className:"text-purple-600",children:"Object"}),!c&&(0,b.jsxs)("span",{className:"text-gray-500",children:["{","...","}"]})]}),c&&(0,b.jsx)("div",{className:"mt-1 ml-4 border-l-2 border-gray-200 pl-3",children:(0,b.jsx)("pre",{className:"font-mono text-sm text-gray-700 whitespace-pre-wrap",children:JSON.stringify(e,null,2)})})]})}catch(c){return(0,b.jsx)("span",{children:a})}}function k({entry:a}){var d;let e=(d=a.message).includes("[INTERACTION]")?{type:"INTERACTION",color:"bg-purple-50 dark:bg-purple-900/20 border-purple-200 dark:border-purple-800",backgroundColor:f.CONSOLE_DEBUG,textColor:g(f.CONSOLE_DEBUG)}:d.includes("[CONSOLE ERROR]")?{type:"CONSOLE ERROR",color:"bg-red-50 dark:bg-red-900/20 border-red-200 dark:border-red-800",backgroundColor:f.CONSOLE_ERROR,textColor:g(f.CONSOLE_ERROR)}:d.includes("[CONSOLE WARN]")?{type:"CONSOLE WARN",color:"bg-yellow-50 dark:bg-yellow-900/20 border-yellow-200 dark:border-yellow-800",backgroundColor:f.CONSOLE_WARN,textColor:g(f.CONSOLE_WARN)}:d.includes("[CONSOLE INFO]")?{type:"CONSOLE INFO",color:"bg-blue-50 dark:bg-blue-900/20 border-blue-200 dark:border-blue-800",backgroundColor:f.CONSOLE_INFO,textColor:g(f.CONSOLE_INFO)}:d.includes("[CONSOLE LOG]")?{type:"CONSOLE LOG",color:"bg-gray-50 dark:bg-gray-800/50 border-gray-200 dark:border-gray-700",backgroundColor:f.CONSOLE_LOG,textColor:g(f.CONSOLE_LOG)}:d.includes("[CONSOLE DEBUG]")?{type:"CONSOLE DEBUG",color:"bg-purple-50 dark:bg-purple-900/20 border-purple-200 dark:border-purple-800",backgroundColor:f.CONSOLE_DEBUG,textColor:g(f.CONSOLE_DEBUG)}:d.includes("[SCREENSHOT]")?{type:"SCREENSHOT",color:"bg-blue-50 dark:bg-blue-900/20 border-blue-200 dark:border-blue-800",backgroundColor:f.SCREENSHOT,textColor:g(f.SCREENSHOT)}:d.includes("[NAVIGATION]")||d.includes("[PAGE]")?{type:"PAGE",color:"bg-green-50 dark:bg-green-900/20 border-green-200 dark:border-green-800",backgroundColor:f.PAGE,textColor:g(f.PAGE)}:d.includes("[DOM]")?{type:"DOM",color:"bg-purple-50 dark:bg-purple-900/20 border-purple-200 dark:border-purple-800",backgroundColor:f.DOM,textColor:g(f.DOM)}:d.includes("[CDP]")?{type:"CDP",color:"bg-yellow-50 dark:bg-yellow-900/20 border-yellow-200 dark:border-yellow-800",backgroundColor:f.CDP,textColor:g(f.CDP)}:d.includes("[NETWORK]")?{type:"NETWORK",color:"bg-yellow-50 dark:bg-yellow-900/20 border-yellow-200 dark:border-yellow-800",backgroundColor:f.NETWORK,textColor:g(f.NETWORK)}:d.includes("[ERROR]")||d.includes("[PAGE ERROR]")||d.includes("[NETWORK ERROR]")?{type:"ERROR",color:"bg-red-50 dark:bg-red-900/20 border-red-200 dark:border-red-800",backgroundColor:f.ERROR,textColor:g(f.ERROR)}:d.includes("[CRITICAL ERROR]")?{type:"CRITICAL ERROR",color:"bg-red-50 dark:bg-red-900/20 border-red-200 dark:border-red-800",backgroundColor:f.CRITICAL_ERROR,textColor:g(f.CRITICAL_ERROR)}:{type:"DEFAULT",color:"border-gray-200 dark:border-gray-700",backgroundColor:f.DEFAULT,textColor:g(f.DEFAULT)};return(0,b.jsxs)("div",{className:`border-l-4 ${e.color} pl-4 py-2`,children:[(0,b.jsxs)("div",{className:"grid grid-cols-[auto_auto_1fr] gap-3 items-start",children:[(0,b.jsx)("div",{className:"text-xs text-gray-500 dark:text-gray-400 font-mono whitespace-nowrap pt-1",children:new Date(a.timestamp).toLocaleTimeString()}),(0,b.jsx)("div",{className:"px-2 py-1 rounded text-xs font-medium whitespace-nowrap",style:{backgroundColor:"SERVER"===a.source?f.SERVER:f.BROWSER,color:"#000"},children:a.source}),(0,b.jsx)("div",{className:"font-mono text-sm min-w-0 text-gray-900 dark:text-gray-100",children:(0,b.jsxs)("div",{className:"flex flex-wrap items-start gap-2",children:[(0,b.jsx)("div",{className:"flex-1 min-w-0",children:(a=>{let c,d=/\[([A-Z\s]+)\]/g,f=/\{[^{}]*(?:\{[^{}]*\}[^{}]*)*\}/g,g=/(https?:\/\/[^\s]+)/g,h=[],k=0;for(c=d.exec(a);null!==c;)c.index>k&&h.push(a.slice(k,c.index)),h.push((0,b.jsx)("span",{className:"inline-block px-1.5 py-0.5 rounded text-xs font-medium mr-1",style:{backgroundColor:e.backgroundColor,color:e.textColor},children:c[1]},c.index)),k=c.index+c[0].length,c=d.exec(a);return h.push(...((a,c)=>{let d=[...a.matchAll(f)],e=[...a.matchAll(g)],h=[...d.map(a=>({...a,type:"json"})),...e.map(a=>({...a,type:"url"}))];if(h.sort((a,b)=>(a.index??0)-(b.index??0)),0===h.length)return[a];let k=[],l=0;return h.forEach((d,e)=>{(d.index??0)>l&&k.push(a.slice(l,d.index??0)),"json"===d.type?k.push((0,b.jsx)(j,{content:d[0]},`${c}-json-${d.index}-${d[0].slice(0,20)}`)):"url"===d.type&&k.push((0,b.jsx)(i,{url:d[0]},`${c}-url-${d.index}-${d[0]}`)),l=(d.index??0)+d[0].length}),l<a.length&&k.push(a.slice(l)),k})(a.slice(k),"main")),h.length>0?h:a})(a.message)}),(0,b.jsxs)("div",{className:"flex items-center gap-1 flex-shrink-0",children:[a.tabIdentifier&&(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-gray-100 dark:bg-gray-700 text-gray-700 dark:text-gray-300",children:a.tabIdentifier}),a.userAgent&&(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-100 dark:bg-green-800 text-green-700 dark:text-green-200",children:a.userAgent.includes("Chrome")?"Chrome":a.userAgent.includes("Firefox")?"Firefox":a.userAgent.includes("Safari")?"Safari":a.userAgent.includes("Edge")?"Edge":"Browser"}),"BROWSER"===a.source&&(()=>{let c=a.message.includes("[PLAYWRIGHT]"),d=a.message.includes("[CHROME_EXTENSION]")||a.tabIdentifier;return c?(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-purple-100 dark:bg-purple-800 text-purple-700 dark:text-purple-200",children:"šŸŽ­ Playwright"}):d?(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-blue-100 dark:bg-blue-800 text-blue-700 dark:text-blue-200",children:"🧩 Extension"}):null})(),"SERVER"===a.source&&(()=>{let c=a.message.toLowerCase();if(c.includes("ready on http://localhost")||c.includes("ready in ")||c.includes("next.js")||c.includes("compiled client and server"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-black text-white",children:"ā–² Next.js"});if(c.includes("nuxt")||c.includes("nitro")&&c.includes("http://localhost")||c.includes("universal mode")||c.includes("spa mode"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-500 text-white",children:"šŸ’š Nuxt"});if(c.includes("vue-cli-service")||c.includes("vue")&&(c.includes("dev server")||c.includes("local:"))||c.includes("@vue/cli-service"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-600 text-white",children:"🟢 Vue"});if(c.includes("local:")&&c.includes("vite")||c.includes("dev server running")||c.includes("vite v"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-blue-500 text-white",children:"⚔ Vite"});if(c.includes("rails server")||c.includes("puma starting")||c.includes("use ctrl-c to stop")||c.includes("listening on tcp://")&&c.includes("3000"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-red-600 text-white",children:"šŸ’Ž Rails"});else if(c.includes("laravel development server")||c.includes("artisan serve")||c.includes("laravel")&&c.includes("127.0.0.1:8000"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-red-500 text-white",children:"šŸ…» Laravel"});else if(c.includes("express server")||c.includes("server listening on")||c.includes("app listening on port")||c.includes("node server"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-700 text-white",children:"🟩 Express"});else if(c.includes("django")||c.includes("development server")&&c.includes("127.0.0.1:8000")||c.includes("runserver"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-800 text-white",children:"šŸ Django"});else if(c.includes("flask")||c.includes("running on http://127.0.0.1:5000")||c.includes("debug mode: on"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-blue-800 text-white",children:"šŸŒ¶ļø Flask"});else if(c.includes("sveltekit")||c.includes("svelte")&&c.includes("dev")||c.includes("@sveltejs"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-orange-500 text-white",children:"šŸ”„ Svelte"});else if(c.includes("remix")||c.includes("@remix-run"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-blue-400 text-white",children:"šŸ’æ Remix"});else if(c.includes("astro")||c.includes("@astrojs"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-purple-600 text-white",children:"šŸš€ Astro"});else if(c.includes("spring boot")||c.includes("tomcat started on port")||c.includes("started application")&&c.includes("seconds"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-500 text-white",children:"šŸƒ Spring"});else if(c.includes("webpack compiled")||c.includes("compiled successfully")||c.includes("webpack-dev-server"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-blue-600 text-white",children:"āš›ļø React"});return null})()]})]})})]}),a.screenshot&&(0,b.jsx)("div",{className:"mt-2",children:(0,b.jsx)(c.default,{src:`/api/screenshots/${a.screenshot}`,alt:"Screenshot",width:0,height:0,sizes:"100vw",className:"w-full h-auto max-w-2xl border rounded shadow-sm",style:{maxHeight:"600px",objectFit:"contain"},unoptimized:!0})})]})}function l({version:a,initialData:c}){let f=(0,d.useRouter)(),g=(0,d.useSearchParams)(),[i,j]=function(){let[a,b]=(0,e.useState)(()=>!1);return(0,e.useEffect)(()=>{localStorage.setItem("dev3000-dark-mode",JSON.stringify(a)),a?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")},[a]),(0,e.useEffect)(()=>{let a=window.matchMedia("(prefers-color-scheme: dark)"),c=a=>{null===localStorage.getItem("dev3000-dark-mode")&&b(a.matches)};return a.addEventListener("change",c),()=>a.removeEventListener("change",c)},[]),[a,b]}(),[l,m]=(0,e.useState)(c?.logs||[]),[n,o]=(0,e.useState)(c?.mode||"tail");(0,e.useEffect)(()=>{let a=g.get("mode");a&&a!==n&&o(a)},[g,n]);let[p,q]=(0,e.useState)(!0),[r,s]=(0,e.useState)(!c),[t,u]=(0,e.useState)(c?.logs.length||0),[v,w]=(0,e.useState)(null),[x,y]=(0,e.useState)(c?.logFiles||[]),[z,A]=(0,e.useState)(c?.currentLogFile||""),[B,C]=(0,e.useState)(""),[D,E]=(0,e.useState)(!1),[F,G]=(0,e.useState)(!1),[H,I]=(0,e.useState)(!1),[J,K]=(0,e.useState)(!1),[L,M]=(0,e.useState)([]),[N,O]=(0,e.useState)(!1),[P,Q]=(0,e.useState)({browser:!0,server:!0,interaction:!0,screenshot:!0}),[R,S]=(0,e.useState)({}),[T,U]=(0,e.useState)([]),V=(0,e.useRef)(null),W=(0,e.useRef)(null),X=(0,e.useRef)(null),Y=(0,e.useRef)(null),Z=(0,e.useRef)(null),$=(0,e.useRef)(!1),_=(0,e.useCallback)(async()=>{try{let a=await fetch("/api/logs/list");if(a.ok){let b=await a.json();y(b.files),A(b.currentFile),C(b.projectName)}}catch(a){console.error("Error loading available logs:",a)}},[]),aa=(0,e.useCallback)(async()=>{if("tail"===n)try{let a=g.get("file"),b="",c=!0;if(a&&x.length>0){let d=x.find(b=>b.name===a);b=d?.path||z,c=d?.isCurrent!==!1}else b=z,c=!0;if(!c)return;let d=b?`/api/logs/tail?lines=50&logPath=${encodeURIComponent(b)}`:"/api/logs/tail?lines=50",e=await fetch(d);if(!e.ok)throw Error(`HTTP ${e.status}: ${e.statusText}`);let f=await e.json();if(!f.logs)return void console.warn("No logs data in response");let i=h(f.logs);if(i.length>t)if(p)w(new Date),T.length>0?(m([...l,...T,...i.slice(t)]),U([])):m(i),u(i.length),$.current||setTimeout(()=>{V.current?.scrollIntoView({behavior:"smooth"})},50);else{let a=i.slice(t);a.length>0&&(U(b=>[...b,...a]),u(i.length))}}catch(a){console.error("Error polling logs:",a)}},[n,p,g,x,z,t,T,l]);(0,e.useEffect)(()=>{if("tail"===n)return X.current=setInterval(aa,3e3),()=>{X.current&&clearInterval(X.current)};X.current&&clearInterval(X.current)},[n,aa]);let ab=(0,e.useCallback)(async()=>{s(!0),await _();try{let a=g.get("file"),b="";if(a&&x.length>0){let c=x.find(b=>b.name===a);b=c?.path||z}else b=z;let c=b?`/api/logs/${n}?lines=1000&logPath=${encodeURIComponent(b)}`:`/api/logs/${n}?lines=1000`,d=await fetch(c);if(!d.ok)throw Error(`HTTP ${d.status}: ${d.statusText}`);let e=await d.json();if(!e.logs){console.warn("No logs data in response"),m([]),s(!1);return}let f=h(e.logs);if(m(f),u(f.length),w(new Date),s(!1),"tail"===n&&!$.current){q(!0);let a=()=>{V.current?V.current.scrollIntoView({behavior:"auto"}):W.current&&(W.current.scrollTop=W.current.scrollHeight)};setTimeout(a,0),setTimeout(a,100)}}catch(a){console.error("Error loading logs:",a),m([])}},[_,g,x,z,n]);(0,e.useEffect)(()=>{g.get("mode");let a=c?.logs&&c?.logs.length>0;if(a||l.length)if(a&&0===l.length){if(m(c.logs),s(!1),"tail"===n&&!$.current){q(!0);let a=()=>{V.current?V.current.scrollIntoView({behavior:"auto"}):W.current&&(W.current.scrollTop=W.current.scrollHeight)};setTimeout(a,0),setTimeout(a,100),setTimeout(a,300)}}else"tail"===n&&p&&(s(!1),X.current=setInterval(()=>{aa()},3e3));else ab()},[n,c?.logs,p,ab,l.length,aa,g.get]),(0,e.useEffect)(()=>{l.length>0&&"tail"===n&&p&&!$.current&&setTimeout(()=>{V.current?V.current.scrollIntoView({behavior:"auto"}):W.current&&(W.current.scrollTop=W.current.scrollHeight)},0)},[l.length,n,p]),(0,e.useEffect)(()=>()=>{X.current&&clearInterval(X.current)},[]),(0,e.useEffect)(()=>{let a=a=>{Y.current&&!Y.current.contains(a.target)&&E(!1),Z.current&&!Z.current.contains(a.target)&&I(!1)};if(D||H)return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[D,H]);let ac=async()=>{if(z&&!N&&window.confirm("Clear logs and start fresh?\n\nThis will:\n• Archive the current log file\n• Start a new empty log file\n• Clear the current view\n\nThe archived logs will still be available in the dropdown.")){O(!0);try{let a=await fetch("/api/logs/rotate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({currentLogPath:z})});if(a.ok)m([]),u(0),w(null),await _(),await ab();else{let b=await a.json();console.error("Failed to rotate log:",b),alert(`Failed to rotate log: ${b.error}`)}}catch(a){console.error("Error rotating log:",a),alert("Error rotating log")}finally{O(!1)}}},ad=(0,e.useMemo)(()=>{let a=new Set;return l.forEach(b=>{"BROWSER"===b.source&&b.userAgent&&a.add(b.userAgent)}),Array.from(a).sort()},[l]);(0,e.useEffect)(()=>{ad.length>0&&S(a=>{let b={...a};return ad.forEach(a=>{a in b||(b[a]=!0)}),b})},[ad]);let ae=(0,e.useMemo)(()=>l.filter(a=>{let b=a.message.includes("[INTERACTION]"),c=a.message.includes("[SCREENSHOT]");if(b)return P.interaction;if(c)return P.screenshot;if("SERVER"===a.source)return P.server;if("BROWSER"===a.source){if(!P.browser)return!1;if(ad.length>0&&a.userAgent)return!1!==R[a.userAgent]}return!0}),[l,P,R,ad]);return(0,b.jsxs)("div",{className:"h-screen bg-gray-50 dark:bg-gray-900 flex flex-col transition-colors",children:[(0,b.jsx)("div",{className:"bg-white dark:bg-gray-800 shadow-sm border-b border-gray-200 dark:border-gray-700 flex-none z-10",children:(0,b.jsx)("div",{className:"max-w-7xl mx-auto px-4 py-3",children:(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 sm:gap-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("h1",{className:"text-xl sm:text-2xl font-bold text-gray-900 dark:text-white whitespace-nowrap",children:"dev3000"}),(0,b.jsxs)("span",{className:"text-xs text-gray-400 dark:text-gray-500 whitespace-nowrap",children:["(v",a,")"]})]}),x.length>1?(0,b.jsxs)("div",{className:"relative",ref:Y,children:[(0,b.jsxs)("button",{type:"button",onClick:()=>E(!D),className:"flex items-center gap-2 px-3 py-1 text-sm text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-white hover:bg-gray-50 dark:hover:bg-gray-700 rounded-md transition-colors",children:[(0,b.jsx)("span",{className:"font-mono text-xs whitespace-nowrap",children:r&&!z?(0,b.jsx)("div",{className:"h-4 bg-gray-200 dark:bg-gray-700 rounded animate-pulse",style:{width:"220px"}}):z?z.split("/").pop():"No log file"}),(0,b.jsx)("svg",{className:`w-4 h-4 transition-transform ${D?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),D&&x.length>1&&(0,b.jsx)("div",{className:"absolute top-full left-0 mt-1 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-600 rounded-md shadow-lg z-20 min-w-80",children:(0,b.jsxs)("div",{className:"py-1 max-h-60 overflow-y-auto",children:[(0,b.jsxs)("div",{className:"px-3 py-2 text-xs font-medium text-gray-500 dark:text-gray-400 border-b border-gray-200 dark:border-gray-600",children:[B," logs (",x.length,")"]}),x.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>{E(!1),f.push(`/logs?file=${encodeURIComponent(a.name)}&mode=${n}`)},className:`w-full text-left px-3 py-2 text-sm hover:bg-gray-50 flex items-center justify-between ${a.isCurrent?"bg-blue-50 text-blue-900":"text-gray-700"}`,children:[(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsx)("span",{className:"font-mono text-xs",children:a.name}),(0,b.jsxs)("span",{className:"text-xs text-gray-500",children:[new Date(a.mtime).toLocaleString()," • ",Math.round(a.size/1024),"KB"]})]}),a.isCurrent&&(0,b.jsx)("span",{className:"text-xs text-blue-600 font-medium",children:"current"})]},a.path))]})})]}):(0,b.jsx)("div",{className:"flex items-center gap-2",children:(0,b.jsx)("span",{className:"font-mono text-xs text-gray-600 px-3 py-1 whitespace-nowrap",children:r&&!z?(0,b.jsx)("div",{className:"h-4 bg-gray-200 rounded animate-pulse",style:{width:"220px"}}):z?z.split("/").pop():"No log file"})}),l.length>0&&(0,b.jsxs)("span",{className:"text-sm text-gray-500 hidden sm:inline",children:[l.length," entries"]}),T.length>0&&!p&&(0,b.jsxs)("span",{className:"text-xs bg-blue-100 dark:bg-blue-900 text-blue-800 dark:text-blue-200 px-2 py-1 rounded-full",children:["+",T.length," buffered"]}),z&&!r&&(0,b.jsx)("button",{type:"button",onClick:ac,disabled:N,className:"px-2 py-1 text-xs bg-orange-100 text-orange-700 hover:bg-orange-200 rounded transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:"Clear logs (rotate current log to archive and start fresh)",children:N?"...":"Clear"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[!1,(0,b.jsxs)("div",{className:"relative",ref:Z,children:[(0,b.jsxs)("button",{type:"button",onClick:()=>I(!H),className:"flex items-center gap-1 px-3 py-1 rounded text-sm font-medium transition-colors whitespace-nowrap bg-gray-100 text-gray-700 hover:bg-gray-200",children:[(0,b.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z"})}),"Filter"]}),H&&(0,b.jsx)("div",{className:"absolute top-full right-0 mt-1 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-md shadow-lg z-20 min-w-48",children:(0,b.jsxs)("div",{className:"py-2",children:[(0,b.jsx)("div",{className:"px-3 py-2 text-xs font-medium text-gray-500 dark:text-gray-400 border-b border-gray-200 dark:border-gray-700",children:"Log Types"}),(0,b.jsxs)("label",{className:"flex items-center justify-between px-3 py-2 text-sm hover:bg-gray-50 dark:hover:bg-gray-700 cursor-pointer",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:P.server,onChange:a=>Q(b=>({...b,server:a.target.checked})),className:"rounded border-gray-300 text-blue-600 focus:ring-blue-500"}),(0,b.jsx)("span",{className:"text-gray-900 dark:text-gray-100",children:"Server"})]}),(0,b.jsx)("span",{className:"text-xs text-gray-400",children:l.filter(a=>"SERVER"===a.source).length})]}),(0,b.jsxs)("label",{className:"flex items-center justify-between px-3 py-2 text-sm hover:bg-gray-50 dark:hover:bg-gray-700 cursor-pointer",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:P.browser,onChange:a=>Q(b=>({...b,browser:a.target.checked})),className:"rounded border-gray-300 text-blue-600 focus:ring-blue-500"}),(0,b.jsx)("span",{className:"text-gray-900 dark:text-gray-100",children:"Browser"})]}),(0,b.jsx)("span",{className:"text-xs text-gray-400",children:l.filter(a=>"BROWSER"===a.source).length})]}),ad.length>1&&P.browser&&(0,b.jsx)("div",{className:"ml-6 border-l border-gray-200 dark:border-gray-600 pl-2",children:ad.map(a=>{let c=a.includes("Chrome")?"Chrome":a.includes("Firefox")?"Firefox":a.includes("Safari")?"Safari":a.includes("Edge")?"Edge":"Browser";return(0,b.jsxs)("label",{className:"flex items-center justify-between px-2 py-1 text-xs hover:bg-gray-50 dark:hover:bg-gray-700 cursor-pointer",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:!1!==R[a],onChange:b=>S(c=>({...c,[a]:b.target.checked})),className:"rounded border-gray-300 text-blue-600 focus:ring-blue-500 w-3 h-3"}),(0,b.jsx)("span",{className:"text-gray-700 dark:text-gray-300",children:c})]}),(0,b.jsx)("span",{className:"text-xs text-gray-400",children:l.filter(b=>"BROWSER"===b.source&&b.userAgent===a).length})]},a)})}),(0,b.jsxs)("label",{className:"flex items-center justify-between px-3 py-2 text-sm hover:bg-gray-50 dark:hover:bg-gray-700 cursor-pointer",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:P.interaction,onChange:a=>Q(b=>({...b,interaction:a.target.checked})),className:"rounded border-gray-300 text-blue-600 focus:ring-blue-500"}),(0,b.jsx)("span",{className:"text-gray-900 dark:text-gray-100",children:"Interaction"})]}),(0,b.jsx)("span",{className:"text-xs text-gray-400",children:l.filter(a=>a.message.includes("[INTERACTION]")).length})]}),(0,b.jsxs)("label",{className:"flex items-center justify-between px-3 py-2 text-sm hover:bg-gray-50 dark:hover:bg-gray-700 cursor-pointer",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:P.screenshot,onChange:a=>Q(b=>({...b,screenshot:a.target.checked})),className:"rounded border-gray-300 text-blue-600 focus:ring-blue-500"}),(0,b.jsx)("span",{className:"text-gray-900 dark:text-gray-100",children:"Screenshot"})]}),(0,b.jsx)("span",{className:"text-xs text-gray-400",children:l.filter(a=>a.message.includes("[SCREENSHOT]")).length})]})]})})]}),(0,b.jsxs)("div",{className:"flex items-center bg-gray-100 rounded-md p-1",children:[(0,b.jsx)("button",{type:"button",onClick:()=>{let a=g.get("file");a?f.push(`/logs?file=${encodeURIComponent(a)}&mode=head`):f.push("/logs?mode=head")},className:`px-2 sm:px-3 py-1 rounded text-xs sm:text-sm font-medium transition-colors whitespace-nowrap ${"head"===n?"bg-white text-gray-900 shadow-sm":"text-gray-600 hover:text-gray-900"}`,children:"Head"}),(0,b.jsx)("button",{type:"button",onClick:()=>{let a=g.get("file");a?f.push(`/logs?file=${encodeURIComponent(a)}&mode=tail`):f.push("/logs?mode=tail")},className:`px-2 sm:px-3 py-1 rounded text-xs sm:text-sm font-medium transition-colors whitespace-nowrap ${"tail"===n?"bg-white text-gray-900 shadow-sm":"text-gray-600 hover:text-gray-900"}`,children:"Tail"})]}),(0,b.jsx)("button",{type:"button",onClick:()=>j(!i),className:"p-2 rounded-md text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-white hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors ml-2",title:i?"Switch to light mode":"Switch to dark mode",children:i?(0,b.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"})}):(0,b.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"})})})]})]})})}),(0,b.jsx)("div",{className:"flex-1 overflow-hidden",children:(0,b.jsx)("div",{ref:W,className:"max-w-7xl mx-auto px-4 py-6 h-full overflow-y-auto",onScroll:()=>{if(W.current){let{scrollTop:a,scrollHeight:b,clientHeight:c}=W.current,d=a+c>=b-10;p&&!d&&($.current=!0),q(d)}},children:r?(0,b.jsxs)("div",{className:"text-center py-12",children:[(0,b.jsx)("div",{className:"inline-block animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600"}),(0,b.jsx)("div",{className:"text-gray-500 text-sm mt-4",children:"Loading logs..."})]}):0===l.length?(0,b.jsxs)("div",{className:"text-center py-12",children:[(0,b.jsx)("div",{className:"text-gray-400 dark:text-gray-500 text-lg",children:"šŸ“ No logs yet"}),(0,b.jsx)("div",{className:"text-gray-500 dark:text-gray-400 text-sm mt-2",children:"Logs will appear here as your development server runs"})]}):0===ae.length?(0,b.jsxs)("div",{className:"text-center py-12",children:[(0,b.jsx)("div",{className:"text-gray-400 dark:text-gray-500 text-lg",children:"šŸ” No logs match current filters"}),(0,b.jsx)("div",{className:"text-gray-500 dark:text-gray-400 text-sm mt-2",children:"Try adjusting your filter settings to see more logs"})]}):(0,b.jsxs)("div",{className:"space-y-1 pb-4",children:[ae.map((a,c)=>(0,b.jsx)(k,{entry:a},`${a.timestamp}-${c}`)),(0,b.jsx)("div",{ref:V})]})})}),(0,b.jsx)("div",{className:"border-t border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 flex-none",children:(0,b.jsxs)("div",{className:"max-w-7xl mx-auto px-4 py-3 flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[v&&(0,b.jsxs)("span",{className:"text-xs text-gray-400 dark:text-gray-500 font-mono",children:["Last updated ",v.toLocaleTimeString()]}),z&&(0,b.jsx)("a",{href:`file://${z}`,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-blue-600 hover:text-blue-800 flex items-center gap-1",children:"Raw Log ↗"})]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("div",{className:`flex items-center gap-1 text-green-600 ${"tail"===n&&p?"visible":"invisible"}`,children:[(0,b.jsx)("div",{className:"w-2 h-2 bg-green-500 rounded-full animate-pulse"}),(0,b.jsx)("span",{className:"text-xs",children:"Live"})]}),(0,b.jsx)("button",{type:"button",onClick:()=>{$.current=!1,T.length>0&&(m(a=>[...a,...T]),U([]),w(new Date)),V.current?.scrollIntoView({behavior:"smooth"})},className:`absolute top-0 right-0 flex items-center gap-1 px-2 py-0.5 bg-blue-600 text-white rounded text-xs hover:bg-blue-700 whitespace-nowrap ${"tail"===n&&!p?"visible":"invisible"}`,children:"↓ Live"})]})]})})]})}a.s(["default",()=>l],78506)}];
3
+ ${a}`)}return e&&c.push(e),c}function k({url:a,maxLength:c=60}){let[d,f]=(0,e.useState)(!1);if(a.length<=c)return(0,b.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 underline",children:a});let g=`${a.substring(0,c)}...`;return(0,b.jsx)("span",{className:"inline-block",children:d?(0,b.jsxs)("span",{children:[(0,b.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 underline",children:a}),(0,b.jsx)("button",{type:"button",onClick:()=>f(!1),className:"ml-2 text-xs text-muted-foreground hover:text-foreground px-1 py-0.5 rounded hover:bg-muted",children:"[collapse]"})]}):(0,b.jsxs)("span",{children:[(0,b.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 underline",children:g}),(0,b.jsx)("button",{type:"button",onClick:()=>f(!0),className:"ml-1 text-xs text-muted-foreground hover:text-foreground px-1 py-0.5 rounded hover:bg-muted",children:"[expand]"})]})})}function l({content:a}){let[c,d]=(0,e.useState)(!1);try{let e=JSON.parse(a);if(e&&"object"==typeof e&&"object"===e.type&&e.properties){let a=e.properties,f=e.description||"Object",g=e.overflow;return(0,b.jsxs)("div",{className:"inline-block",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>d(!c),className:"inline-flex items-center gap-1 text-blue-600 hover:text-blue-800 font-mono text-sm",children:[(0,b.jsx)("svg",{className:`w-3 h-3 transition-transform ${c?"rotate-90":""}`,fill:"currentColor",viewBox:"0 0 20 20",children:(0,b.jsx)("path",{fillRule:"evenodd",d:"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 111.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z",clipRule:"evenodd"})}),(0,b.jsx)("span",{className:"text-purple-600",children:f}),!c&&(0,b.jsxs)("span",{className:"text-gray-500",children:[g?"...":""," ","{",a.slice(0,3).map((a,c)=>(0,b.jsxs)("span",{children:[c>0&&", ",(0,b.jsx)("span",{className:"text-red-600",children:a.name}),":",(0,b.jsx)("span",{className:"text-blue-600",children:"string"===a.type?`"${a.value}"`:"number"===a.type?a.value:"object"===a.type?"array"===a.subtype?a.value:"{...}":a.value})]},`${a.name}-${c}`)),a.length>3&&", ...","}"]})]}),c&&(0,b.jsx)("div",{className:"mt-1 ml-4 border-l-2 border-gray-200 pl-3",children:(0,b.jsx)("div",{className:"font-mono text-sm",children:(0,b.jsxs)("div",{className:"text-gray-600",children:[f," ","{",(0,b.jsxs)("div",{className:"ml-4",children:[a.map((c,d)=>(0,b.jsxs)("div",{className:"py-0.5",children:[(0,b.jsx)("span",{className:"text-red-600",children:c.name}),(0,b.jsx)("span",{className:"text-gray-500",children:": "}),(0,b.jsx)("span",{className:"string"===c.type?"text-green-600":"number"===c.type?"text-blue-600":"object"===c.type?"text-purple-600":"text-orange-600",children:"string"===c.type?`"${String(c.value)}"`:"number"===c.type?String(c.value):"object"===c.type?"array"===c.subtype?String(c.value):"{...}":String(c.value)}),d<a.length-1&&(0,b.jsx)("span",{className:"text-gray-500",children:","})]},`${c.name}-${d}`)),g&&(0,b.jsx)("div",{className:"text-gray-500 italic",children:"... and more properties"})]}),(0,b.jsx)("div",{className:"text-gray-600",children:"}"})]})})})]})}return(0,b.jsxs)("div",{className:"inline-block",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>d(!c),className:"inline-flex items-center gap-1 text-blue-600 hover:text-blue-800 font-mono text-sm",children:[(0,b.jsx)("svg",{className:`w-3 h-3 transition-transform ${c?"rotate-90":""}`,fill:"currentColor",viewBox:"0 0 20 20",children:(0,b.jsx)("path",{fillRule:"evenodd",d:"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 111.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z",clipRule:"evenodd"})}),(0,b.jsx)("span",{className:"text-purple-600",children:"Object"}),!c&&(0,b.jsxs)("span",{className:"text-gray-500",children:["{","...","}"]})]}),c&&(0,b.jsx)("div",{className:"mt-1 ml-4 border-l-2 border-gray-200 pl-3",children:(0,b.jsx)("pre",{className:"font-mono text-sm text-foreground whitespace-pre-wrap",children:JSON.stringify(e,null,2)})})]})}catch(c){return(0,b.jsx)("span",{children:a})}}function m({entry:a,darkMode:d}){var e;let f=(e=a.message).includes("[INTERACTION]")?{type:"INTERACTION",backgroundColor:h.CONSOLE_DEBUG,textColor:i(h.CONSOLE_DEBUG)}:e.includes("[CONSOLE ERROR]")?{type:"CONSOLE ERROR",backgroundColor:h.CONSOLE_ERROR,textColor:i(h.CONSOLE_ERROR)}:e.includes("[CONSOLE WARN]")?{type:"CONSOLE WARN",backgroundColor:h.CONSOLE_WARN,textColor:i(h.CONSOLE_WARN)}:e.includes("[CONSOLE INFO]")?{type:"CONSOLE INFO",backgroundColor:h.CONSOLE_INFO,textColor:i(h.CONSOLE_INFO)}:e.includes("[CONSOLE LOG]")?{type:"CONSOLE LOG",backgroundColor:h.CONSOLE_LOG,textColor:i(h.CONSOLE_LOG)}:e.includes("[CONSOLE DEBUG]")?{type:"CONSOLE DEBUG",backgroundColor:h.CONSOLE_DEBUG,textColor:i(h.CONSOLE_DEBUG)}:e.includes("[SCREENSHOT]")?{type:"SCREENSHOT",backgroundColor:h.SCREENSHOT,textColor:i(h.SCREENSHOT)}:e.includes("[NAVIGATION]")||e.includes("[PAGE]")?{type:"PAGE",backgroundColor:h.PAGE,textColor:i(h.PAGE)}:e.includes("[DOM]")?{type:"DOM",backgroundColor:h.DOM,textColor:i(h.DOM)}:e.includes("[CDP]")?{type:"CDP",backgroundColor:h.CDP,textColor:i(h.CDP)}:e.includes("[NETWORK]")?{type:"NETWORK",backgroundColor:h.NETWORK,textColor:i(h.NETWORK)}:e.includes("[ERROR]")||e.includes("[PAGE ERROR]")||e.includes("[NETWORK ERROR]")?{type:"ERROR",backgroundColor:h.ERROR,textColor:i(h.ERROR)}:e.includes("[CRITICAL ERROR]")?{type:"CRITICAL ERROR",backgroundColor:h.CRITICAL_ERROR,textColor:i(h.CRITICAL_ERROR)}:{type:"DEFAULT",color:"bg-gray-50 dark:bg-gray-800/50 border-gray-200 dark:border-gray-700",backgroundColor:h.DEFAULT,textColor:i(h.DEFAULT)};return(0,b.jsxs)("div",{className:`border-l-4 ${(()=>{switch(f.type){case"INTERACTION":case"CONSOLE DEBUG":case"DOM":return"border-purple-200 dark:border-purple-800";case"CONSOLE ERROR":case"ERROR":case"CRITICAL ERROR":return"border-red-200 dark:border-red-800";case"CONSOLE WARN":case"CDP":case"NETWORK":return"border-yellow-200 dark:border-yellow-800";case"CONSOLE INFO":case"SCREENSHOT":return"border-blue-200 dark:border-blue-800";case"PAGE":return"border-green-200 dark:border-green-800";default:return"border-gray-200 dark:border-gray-700"}})()} pl-4 py-2`,style:(()=>{let a=f.type;if(d)switch(a){case"INTERACTION":case"CONSOLE DEBUG":case"DOM":return{backgroundColor:"rgba(88, 28, 135, 0.3)"};case"CONSOLE ERROR":case"ERROR":case"CRITICAL ERROR":return{backgroundColor:"rgba(127, 29, 29, 0.3)"};case"CONSOLE WARN":case"CDP":case"NETWORK":return{backgroundColor:"rgba(133, 77, 14, 0.3)"};case"CONSOLE INFO":case"SCREENSHOT":return{backgroundColor:"rgba(30, 58, 138, 0.3)"};case"PAGE":return{backgroundColor:"rgba(20, 83, 45, 0.3)"};default:return{backgroundColor:"rgba(17, 24, 39, 0.3)"}}switch(a){case"INTERACTION":case"CONSOLE DEBUG":case"DOM":return{backgroundColor:"rgba(250, 245, 255, 0.5)"};case"CONSOLE ERROR":case"ERROR":case"CRITICAL ERROR":return{backgroundColor:"rgba(254, 242, 242, 0.5)"};case"CONSOLE WARN":case"CDP":case"NETWORK":return{backgroundColor:"rgba(254, 252, 232, 0.5)"};case"CONSOLE INFO":case"SCREENSHOT":return{backgroundColor:"rgba(239, 246, 255, 0.5)"};case"PAGE":return{backgroundColor:"rgba(240, 253, 244, 0.5)"};default:return{backgroundColor:"transparent"}}})(),children:[(0,b.jsxs)("div",{className:"grid grid-cols-[auto_auto_1fr] gap-3 items-start",children:[(0,b.jsx)("div",{className:"text-xs text-muted-foreground font-mono whitespace-nowrap pt-1",children:new Date(a.timestamp).toLocaleTimeString()}),(0,b.jsx)("div",{className:"px-2 py-1 rounded text-xs font-medium whitespace-nowrap",style:{backgroundColor:"SERVER"===a.source?h.SERVER:h.BROWSER,color:"#000"},children:a.source}),(0,b.jsx)("div",{className:"font-mono text-sm min-w-0 text-foreground",children:(0,b.jsxs)("div",{className:"flex flex-wrap items-start gap-2",children:[(0,b.jsx)("div",{className:"flex-1 min-w-0",children:(a=>{let c,d=/\[([A-Z\s]+)\]/g,e=/\{[^{}]*(?:\{[^{}]*\}[^{}]*)*\}/g,g=/(https?:\/\/[^\s]+)/g,h=[],i=0;for(c=d.exec(a);null!==c;)c.index>i&&h.push(a.slice(i,c.index)),h.push((0,b.jsx)("span",{className:"inline-block px-1.5 py-0.5 rounded text-xs font-medium mr-1",style:{backgroundColor:f.backgroundColor,color:f.textColor},children:c[1]},c.index)),i=c.index+c[0].length,c=d.exec(a);return h.push(...((a,c)=>{let d=[...a.matchAll(e)],f=[...a.matchAll(g)],h=[...d.map(a=>({...a,type:"json"})),...f.map(a=>({...a,type:"url"}))];if(h.sort((a,b)=>(a.index??0)-(b.index??0)),0===h.length)return[a];let i=[],j=0;return h.forEach((d,e)=>{(d.index??0)>j&&i.push(a.slice(j,d.index??0)),"json"===d.type?i.push((0,b.jsx)(l,{content:d[0]},`${c}-json-${d.index}-${d[0].slice(0,20)}`)):"url"===d.type&&i.push((0,b.jsx)(k,{url:d[0]},`${c}-url-${d.index}-${d[0]}`)),j=(d.index??0)+d[0].length}),j<a.length&&i.push(a.slice(j)),i})(a.slice(i),"main")),h.length>0?h:a})(a.message)}),(0,b.jsxs)("div",{className:"flex items-center gap-1 flex-shrink-0",children:[a.tabIdentifier&&(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-muted text-muted-foreground",children:a.tabIdentifier}),a.userAgent&&(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-100 dark:bg-green-800 text-green-700 dark:text-green-200",children:a.userAgent.includes("Chrome")?"Chrome":a.userAgent.includes("Firefox")?"Firefox":a.userAgent.includes("Safari")?"Safari":a.userAgent.includes("Edge")?"Edge":"Browser"}),"BROWSER"===a.source&&(()=>{let c=a.message.includes("[PLAYWRIGHT]"),d=a.message.includes("[CHROME_EXTENSION]")||a.tabIdentifier;return c?(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-purple-100 dark:bg-purple-800 text-purple-700 dark:text-purple-200",children:"šŸŽ­ Playwright"}):d?(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-blue-100 dark:bg-blue-800 text-blue-700 dark:text-blue-200",children:"🧩 Extension"}):null})(),"SERVER"===a.source&&(()=>{let c=a.message.toLowerCase();if(c.includes("ready on http://localhost")||c.includes("ready in ")||c.includes("next.js")||c.includes("compiled client and server"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-black text-white",children:"ā–² Next.js"});if(c.includes("nuxt")||c.includes("nitro")&&c.includes("http://localhost")||c.includes("universal mode")||c.includes("spa mode"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-500 text-white",children:"šŸ’š Nuxt"});if(c.includes("vue-cli-service")||c.includes("vue")&&(c.includes("dev server")||c.includes("local:"))||c.includes("@vue/cli-service"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-600 text-white",children:"🟢 Vue"});if(c.includes("local:")&&c.includes("vite")||c.includes("dev server running")||c.includes("vite v"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-blue-500 text-white",children:"⚔ Vite"});if(c.includes("rails server")||c.includes("puma starting")||c.includes("use ctrl-c to stop")||c.includes("listening on tcp://")&&c.includes("3000"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-red-600 text-white",children:"šŸ’Ž Rails"});else if(c.includes("laravel development server")||c.includes("artisan serve")||c.includes("laravel")&&c.includes("127.0.0.1:8000"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-red-500 text-white",children:"šŸ…» Laravel"});else if(c.includes("express server")||c.includes("server listening on")||c.includes("app listening on port")||c.includes("node server"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-700 text-white",children:"🟩 Express"});else if(c.includes("django")||c.includes("development server")&&c.includes("127.0.0.1:8000")||c.includes("runserver"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-800 text-white",children:"šŸ Django"});else if(c.includes("flask")||c.includes("running on http://127.0.0.1:5000")||c.includes("debug mode: on"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-blue-800 text-white",children:"šŸŒ¶ļø Flask"});else if(c.includes("sveltekit")||c.includes("svelte")&&c.includes("dev")||c.includes("@sveltejs"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-orange-500 text-white",children:"šŸ”„ Svelte"});else if(c.includes("remix")||c.includes("@remix-run"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-blue-400 text-white",children:"šŸ’æ Remix"});else if(c.includes("astro")||c.includes("@astrojs"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-purple-600 text-white",children:"šŸš€ Astro"});else if(c.includes("spring boot")||c.includes("tomcat started on port")||c.includes("started application")&&c.includes("seconds"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-green-500 text-white",children:"šŸƒ Spring"});else if(c.includes("webpack compiled")||c.includes("compiled successfully")||c.includes("webpack-dev-server"))return(0,b.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-blue-600 text-white",children:"āš›ļø React"});return null})()]})]})})]}),a.screenshot&&(0,b.jsx)("div",{className:"mt-2",children:(0,b.jsx)(c.default,{src:`/api/screenshots/${a.screenshot}`,alt:"Screenshot",width:0,height:0,sizes:"100vw",className:"w-full h-auto max-w-2xl border rounded shadow-sm",style:{maxHeight:"600px",objectFit:"contain"},unoptimized:!0})})]})}function n({version:a,initialData:c}){let h=(0,d.useRouter)(),i=(0,d.useSearchParams)(),[k,l]=(0,g.useDarkMode)(),[n,o]=(0,e.useState)(c?.logs||[]),[p,q]=(0,e.useState)(c?.mode||"tail");(0,e.useEffect)(()=>{let a=i.get("mode");a&&a!==p&&q(a)},[i,p]);let[r,s]=(0,e.useState)(!0),[t,u]=(0,e.useState)(!c),[v,w]=(0,e.useState)(c?.logs.length||0),[x,y]=(0,e.useState)(null),[z,A]=(0,e.useState)(c?.logFiles||[]),[B,C]=(0,e.useState)(c?.currentLogFile||""),[D,E]=(0,e.useState)(""),[F,G]=(0,e.useState)(!1),[H,I]=(0,e.useState)(!1),[J,K]=(0,e.useState)(!1),[L,M]=(0,e.useState)(!1),[N,O]=(0,e.useState)([]),[P,Q]=(0,e.useState)(!1),[R,S]=(0,e.useState)(0),[T]=(0,e.useState)(5),[U,V]=(0,e.useState)(null),[W,X]=(0,e.useState)(!1),[Y,Z]=(0,e.useState)({browser:!0,server:!0,interaction:!0,screenshot:!0}),[$,_]=(0,e.useState)({}),[aa,ab]=(0,e.useState)([]),ac=(0,e.useRef)(null),ad=(0,e.useRef)(null),ae=(0,e.useRef)(null),af=(0,e.useRef)(null),ag=(0,e.useRef)(null),ah=(0,e.useRef)(!1),ai=(0,e.useCallback)(async()=>{try{let a=await fetch("/api/logs/list");if(a.ok){let b=await a.json();return A(b.files),C(b.currentFile),E(b.projectName),!0}return!1}catch(a){return console.error("Error loading available logs:",a),!1}},[]),aj=(0,e.useCallback)(async()=>{if("tail"===p)try{let a=i.get("file"),b="",c=!0;if(a&&z.length>0){let d=z.find(b=>b.name===a);b=d?.path||B,c=d?.isCurrent!==!1}else b=B,c=!0;if(!c)return;let d=b?`/api/logs/tail?lines=50&logPath=${encodeURIComponent(b)}`:"/api/logs/tail?lines=50";if(U===d&&R>=T){console.error(`Maximum retry attempts (${T}) reached for ${d}. Stopping polling.`),ae.current&&(clearInterval(ae.current),ae.current=null);return}let e=await fetch(d);if(!e.ok)throw Error(`HTTP ${e.status}: ${e.statusText}`);(U===d||R>0)&&(S(0),V(null));let f=await e.json();if(!f.logs)return void console.warn("No logs data in response");let g=j(f.logs);if(g.length>v)if(r)y(new Date),aa.length>0?(o([...n,...aa,...g.slice(v)]),ab([])):o(g),w(g.length),ah.current||setTimeout(()=>{ac.current?.scrollIntoView({behavior:"smooth"})},50);else{let a=g.slice(v);a.length>0&&(ab(b=>[...b,...a]),w(g.length))}}catch(d){console.error("Error polling logs:",d);let a=i.get("file"),b="";if(a&&z.length>0){let c=z.find(b=>b.name===a);b=c?.path||B}else b=B;let c=b?`/api/logs/tail?lines=50&logPath=${encodeURIComponent(b)}`:"/api/logs/tail?lines=50";if(U===c){let a=R+1;S(a),a>=T&&(console.error(`Maximum retry attempts (${T}) reached for ${c}. Stopping polling.`),ae.current&&(clearInterval(ae.current),ae.current=null))}else V(c),S(1)}},[p,r,i,z,B,v,aa,n,R,U,T]);(0,e.useEffect)(()=>{if("tail"===p&&R<T)return ae.current=setInterval(aj,3e3),()=>{ae.current&&clearInterval(ae.current)};ae.current&&clearInterval(ae.current)},[p,aj,R,T]);let ak=(0,e.useCallback)(async()=>{if(R>=T)return void console.log("Max retries reached, not attempting to load");if(u(!0),!await ai())return void u(!1);try{let a=i.get("file"),b="";if(a&&z.length>0){let c=z.find(b=>b.name===a);b=c?.path||B}else b=B;let c=b?`/api/logs/${p}?lines=1000&logPath=${encodeURIComponent(b)}`:`/api/logs/${p}?lines=1000`;if(U===c&&R>=T){console.error(`Maximum retry attempts (${T}) reached for ${c}. Not attempting to load.`),o([]),u(!1);return}let d=await fetch(c);if(!d.ok)throw Error(`HTTP ${d.status}: ${d.statusText}`);(U===c||R>0)&&(S(0),V(null));let e=await d.json();if(!e.logs){console.warn("No logs data in response"),o([]),u(!1);return}let f=j(e.logs);if(o(f),w(f.length),y(new Date),u(!1),"tail"===p&&!ah.current){s(!0);let a=()=>{ac.current?ac.current.scrollIntoView({behavior:"auto"}):ad.current&&(ad.current.scrollTop=ad.current.scrollHeight)};setTimeout(a,0),setTimeout(a,100)}}catch(d){console.error("Error loading logs:",d);let a=i.get("file"),b="";if(a&&z.length>0){let c=z.find(b=>b.name===a);b=c?.path||B}else b=B;let c=b?`/api/logs/${p}?lines=1000&logPath=${encodeURIComponent(b)}`:`/api/logs/${p}?lines=1000`;if(U===c){let a=R+1;S(a),a>=T&&console.error(`Maximum retry attempts (${T}) reached for initial load of ${c}.`)}else V(c),S(1);o([])}finally{u(!1)}},[ai,i,z,B,p,R,U,T]);(0,e.useEffect)(()=>{let a=c?.logs&&c?.logs.length>0;if(W||a||n.length){if(a&&0===n.length&&(o(c.logs),u(!1),"tail"===p&&!ah.current)){s(!0);let a=()=>{ac.current?ac.current.scrollIntoView({behavior:"auto"}):ad.current&&(ad.current.scrollTop=ad.current.scrollHeight)};setTimeout(a,0),setTimeout(a,100),setTimeout(a,300)}}else X(!0),ak()},[p,c,n.length,W,ak]),(0,e.useEffect)(()=>{n.length>0&&"tail"===p&&r&&!ah.current&&setTimeout(()=>{ac.current?ac.current.scrollIntoView({behavior:"auto"}):ad.current&&(ad.current.scrollTop=ad.current.scrollHeight)},0)},[n.length,p,r]),(0,e.useEffect)(()=>()=>{ae.current&&clearInterval(ae.current)},[]),(0,e.useEffect)(()=>{let a=a=>{af.current&&!af.current.contains(a.target)&&G(!1),ag.current&&!ag.current.contains(a.target)&&K(!1)};if(F||J)return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[F,J]);let al=async()=>{if(B&&!P&&window.confirm("Clear logs and start fresh?\n\nThis will:\n• Archive the current log file\n• Start a new empty log file\n• Clear the current view\n\nThe archived logs will still be available in the dropdown.")){Q(!0);try{let a=await fetch("/api/logs/rotate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({currentLogPath:B})});if(a.ok)o([]),w(0),y(null),await ai(),await ak();else{let b=await a.json();console.error("Failed to rotate log:",b),alert(`Failed to rotate log: ${b.error}`)}}catch(a){console.error("Error rotating log:",a),alert("Error rotating log")}finally{Q(!1)}}},am=(0,e.useMemo)(()=>{let a=new Set;return n.forEach(b=>{"BROWSER"===b.source&&b.userAgent&&a.add(b.userAgent)}),Array.from(a).sort()},[n]);(0,e.useEffect)(()=>{am.length>0&&_(a=>{let b={...a};return am.forEach(a=>{a in b||(b[a]=!0)}),b})},[am]);let an=(0,e.useMemo)(()=>n.filter(a=>{let b=a.message.includes("[INTERACTION]"),c=a.message.includes("[SCREENSHOT]");if(b)return Y.interaction;if(c)return Y.screenshot;if("SERVER"===a.source)return Y.server;if("BROWSER"===a.source){if(!Y.browser)return!1;if(am.length>0&&a.userAgent)return!1!==$[a.userAgent]}return!0}),[n,Y,$,am]);return(0,b.jsxs)("div",{className:"h-screen bg-background text-foreground flex flex-col transition-colors",children:[(0,b.jsx)("div",{className:"bg-card shadow-sm border-b border-border flex-none z-10",children:(0,b.jsx)("div",{className:"max-w-7xl mx-auto px-4 py-3",children:(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 sm:gap-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("h1",{className:"text-xl sm:text-2xl font-bold whitespace-nowrap",children:"dev3000"}),(0,b.jsxs)("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:["(v",a,")"]})]}),z.length>1?(0,b.jsxs)("div",{className:"relative",ref:af,children:[(0,b.jsxs)("button",{type:"button",onClick:()=>G(!F),className:"flex items-center gap-2 px-3 py-1 text-sm text-muted-foreground hover:text-foreground hover:bg-accent rounded-md transition-colors",children:[(0,b.jsx)("span",{className:"font-mono text-xs whitespace-nowrap",children:t&&!B?(0,b.jsx)("div",{className:"h-4 bg-muted rounded animate-pulse",style:{width:"220px"}}):B?"Current":"No log file"}),(0,b.jsx)("svg",{className:`w-4 h-4 transition-transform ${F?"rotate-180":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),F&&z.length>1&&(0,b.jsx)("div",{className:"absolute top-full left-0 mt-1 bg-card border border-border rounded-md shadow-lg z-20 min-w-80",children:(0,b.jsxs)("div",{className:"py-1 max-h-60 overflow-y-auto",children:[(0,b.jsxs)("div",{className:"px-3 py-2 text-xs font-medium text-muted-foreground border-b border-border",children:[D," logs (",z.length,")"]}),z.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>{G(!1),h.push(`/logs?file=${encodeURIComponent(a.name)}&mode=${p}`)},className:`w-full text-left px-3 py-2 text-sm hover:bg-accent flex items-center justify-between ${a.isCurrent?"bg-primary/10 text-primary":"text-foreground"}`,children:[(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsx)("span",{className:"font-mono text-xs",children:a.name}),(0,b.jsxs)("span",{className:"text-xs text-muted-foreground",children:[new Date(a.mtime).toLocaleString()," • ",Math.round(a.size/1024),"KB"]})]}),a.isCurrent&&(0,b.jsx)("span",{className:"text-xs text-blue-600 font-medium",children:"current"})]},a.path))]})})]}):(0,b.jsx)("div",{className:"flex items-center gap-2",children:(0,b.jsx)("span",{className:"font-mono text-xs text-gray-600 px-3 py-1 whitespace-nowrap",children:t&&!B?(0,b.jsx)("div",{className:"h-4 bg-gray-200 rounded animate-pulse",style:{width:"220px"}}):B?B.split("/").pop():"No log file"})}),n.length>0&&(0,b.jsxs)("div",{className:"flex items-center gap-1 hidden sm:flex",children:[(0,b.jsxs)("span",{className:"text-sm text-muted-foreground",children:[n.length," entries"]}),B&&!t&&(0,b.jsx)("button",{type:"button",onClick:al,disabled:P,className:"p-0.5 text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:"Clear logs (rotate current log to archive and start fresh)",children:P?(0,b.jsx)("div",{className:"w-3 h-3 border border-current border-t-transparent rounded-full animate-spin"}):(0,b.jsx)("svg",{className:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),aa.length>0&&!r&&(0,b.jsxs)("span",{className:"text-xs bg-blue-100 dark:bg-blue-900 text-blue-800 dark:text-blue-200 px-2 py-1 rounded-full",children:["+",aa.length," buffered"]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[!1,(0,b.jsxs)("div",{className:"relative",ref:ag,children:[(0,b.jsxs)("button",{type:"button",onClick:()=>K(!J),className:"flex items-center gap-1 px-3 py-1 rounded text-sm font-medium transition-colors whitespace-nowrap bg-muted text-muted-foreground hover:bg-muted/80",children:[(0,b.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z"})}),"Filter"]}),J&&(0,b.jsx)("div",{className:"absolute top-full right-0 mt-1 bg-card border border-border rounded-md shadow-lg z-20 min-w-48",children:(0,b.jsxs)("div",{className:"py-2",children:[(0,b.jsx)("div",{className:"px-3 py-2 text-xs font-medium text-muted-foreground border-b border-border",children:"Log Types"}),(0,b.jsxs)("label",{className:"flex items-center justify-between px-3 py-2 text-sm hover:bg-accent cursor-pointer",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:Y.server,onChange:a=>Z(b=>({...b,server:a.target.checked})),className:"rounded border-input text-primary focus:ring-ring"}),(0,b.jsx)("span",{className:"text-foreground",children:"Server"})]}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:n.filter(a=>"SERVER"===a.source).length})]}),(0,b.jsxs)("label",{className:"flex items-center justify-between px-3 py-2 text-sm hover:bg-accent cursor-pointer",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:Y.browser,onChange:a=>Z(b=>({...b,browser:a.target.checked})),className:"rounded border-input text-primary focus:ring-ring"}),(0,b.jsx)("span",{className:"text-foreground",children:"Browser"})]}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:n.filter(a=>"BROWSER"===a.source).length})]}),am.length>1&&Y.browser&&(0,b.jsx)("div",{className:"ml-6 border-l border-border pl-2",children:am.map(a=>{let c=a.includes("Chrome")?"Chrome":a.includes("Firefox")?"Firefox":a.includes("Safari")?"Safari":a.includes("Edge")?"Edge":"Browser";return(0,b.jsxs)("label",{className:"flex items-center justify-between px-2 py-1 text-xs hover:bg-accent cursor-pointer",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:!1!==$[a],onChange:b=>_(c=>({...c,[a]:b.target.checked})),className:"rounded border-input text-primary focus:ring-ring w-3 h-3"}),(0,b.jsx)("span",{className:"text-foreground",children:c})]}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:n.filter(b=>"BROWSER"===b.source&&b.userAgent===a).length})]},a)})}),(0,b.jsxs)("label",{className:"flex items-center justify-between px-3 py-2 text-sm hover:bg-accent cursor-pointer",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:Y.interaction,onChange:a=>Z(b=>({...b,interaction:a.target.checked})),className:"rounded border-input text-primary focus:ring-ring"}),(0,b.jsx)("span",{className:"text-foreground",children:"Interaction"})]}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:n.filter(a=>a.message.includes("[INTERACTION]")).length})]}),(0,b.jsxs)("label",{className:"flex items-center justify-between px-3 py-2 text-sm hover:bg-accent cursor-pointer",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:Y.screenshot,onChange:a=>Z(b=>({...b,screenshot:a.target.checked})),className:"rounded border-input text-primary focus:ring-ring"}),(0,b.jsx)("span",{className:"text-foreground",children:"Screenshot"})]}),(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:n.filter(a=>a.message.includes("[SCREENSHOT]")).length})]})]})})]}),(0,b.jsx)(f.DarkModeToggle,{darkMode:k,setDarkMode:l,className:"ml-2"})]})]})})}),(0,b.jsx)("div",{className:"flex-1 overflow-hidden",children:(0,b.jsx)("div",{ref:ad,className:"max-w-7xl mx-auto px-4 py-6 h-full overflow-y-auto",onScroll:()=>{if(ad.current){let{scrollTop:a,scrollHeight:b,clientHeight:c}=ad.current,d=a+c>=b-10;r&&!d&&(ah.current=!0),s(d)}},children:t?(0,b.jsxs)("div",{className:"text-center py-12",children:[(0,b.jsx)("div",{className:"inline-block animate-spin rounded-full h-8 w-8 border-b-2 border-primary"}),(0,b.jsx)("div",{className:"text-muted-foreground text-sm mt-4",children:"Loading logs..."})]}):0===n.length?(0,b.jsxs)("div",{className:"text-center py-12",children:[(0,b.jsx)("div",{className:"text-muted-foreground text-lg",children:"šŸ“ No logs yet"}),(0,b.jsx)("div",{className:"text-muted-foreground text-sm mt-2",children:R>=T?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("p",{className:"text-red-500 mb-2",children:["Failed to load logs after ",T," attempts."]}),(0,b.jsx)("button",{type:"button",onClick:()=>{S(0),V(null),X(!1),ak()},className:"px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700 transition-colors",children:"Retry"})]}):"Logs will appear here as your development server runs"})]}):0===an.length?(0,b.jsxs)("div",{className:"text-center py-12",children:[(0,b.jsx)("div",{className:"text-muted-foreground text-lg",children:"šŸ” No logs match current filters"}),(0,b.jsx)("div",{className:"text-muted-foreground text-sm mt-2",children:"Try adjusting your filter settings to see more logs"})]}):(0,b.jsxs)("div",{className:"space-y-1 pb-4",children:[an.map((a,c)=>(0,b.jsx)(m,{entry:a,darkMode:k},`${a.timestamp}-${c}`)),(0,b.jsx)("div",{ref:ac})]})})}),(0,b.jsx)("div",{className:"border-t border-border bg-muted/50 flex-none",children:(0,b.jsxs)("div",{className:"max-w-7xl mx-auto px-4 py-3 flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[x&&(0,b.jsxs)("span",{className:"text-xs text-muted-foreground font-mono",children:["Last updated ",x.toLocaleTimeString()]}),B&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground font-mono break-all",children:B})]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("div",{className:`flex items-center gap-1 text-green-600 ${"tail"===p&&r?"visible":"invisible"}`,children:[(0,b.jsx)("div",{className:"w-2 h-2 bg-green-500 rounded-full animate-pulse"}),(0,b.jsx)("span",{className:"text-xs",children:"Live"})]}),(0,b.jsx)("button",{type:"button",onClick:()=>{ah.current=!1,aa.length>0&&(o(a=>[...a,...aa]),ab([]),y(new Date)),ac.current?.scrollIntoView({behavior:"smooth"})},className:`absolute top-0 right-0 flex items-center gap-1 px-2 py-0.5 bg-blue-600 text-white rounded text-xs hover:bg-blue-700 whitespace-nowrap ${"tail"===p&&!r?"visible":"invisible"}`,children:"↓ Live"})]})]})})]})}a.s(["default",()=>n],78506)}];
4
4
 
5
5
  //# sourceMappingURL=_9d670a6b._.js.map