prism0x2a 0.7.2 → 0.8.0

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 (526) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +1 -0
  3. package/.next/standalone/.next/build-manifest.json +6 -6
  4. package/.next/standalone/.next/required-server-files.js +335 -0
  5. package/.next/standalone/.next/required-server-files.json +1 -1
  6. package/.next/standalone/.next/routes-manifest.json +6 -0
  7. package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +3 -3
  8. package/.next/standalone/.next/server/app/_global-error/page.js +2 -2
  9. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  16. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +3 -3
  18. package/.next/standalone/.next/server/app/_not-found/page.js +6 -5
  19. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/_not-found.html +16 -1
  22. package/.next/standalone/.next/server/app/_not-found.rsc +4 -4
  23. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  24. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  25. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  26. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  27. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  28. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  29. package/.next/standalone/.next/server/app/amber/capabilities/[id]/page/build-manifest.json +3 -3
  30. package/.next/standalone/.next/server/app/amber/capabilities/[id]/page.js +6 -5
  31. package/.next/standalone/.next/server/app/amber/capabilities/[id]/page.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/amber/capabilities/[id]/page_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/amber/capabilities/page/build-manifest.json +3 -3
  34. package/.next/standalone/.next/server/app/amber/capabilities/page.js +6 -5
  35. package/.next/standalone/.next/server/app/amber/capabilities/page.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/amber/capabilities/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/amber/capabilities.html +16 -1
  38. package/.next/standalone/.next/server/app/amber/capabilities.rsc +5 -5
  39. package/.next/standalone/.next/server/app/amber/capabilities.segments/_full.segment.rsc +5 -5
  40. package/.next/standalone/.next/server/app/amber/capabilities.segments/_head.segment.rsc +1 -1
  41. package/.next/standalone/.next/server/app/amber/capabilities.segments/_index.segment.rsc +2 -2
  42. package/.next/standalone/.next/server/app/amber/capabilities.segments/_tree.segment.rsc +2 -2
  43. package/.next/standalone/.next/server/app/amber/capabilities.segments/amber/capabilities/__PAGE__.segment.rsc +2 -2
  44. package/.next/standalone/.next/server/app/amber/capabilities.segments/amber/capabilities.segment.rsc +1 -1
  45. package/.next/standalone/.next/server/app/amber/capabilities.segments/amber.segment.rsc +1 -1
  46. package/.next/standalone/.next/server/app/amber/coverage/page/build-manifest.json +3 -3
  47. package/.next/standalone/.next/server/app/amber/coverage/page.js +6 -5
  48. package/.next/standalone/.next/server/app/amber/coverage/page.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/amber/coverage/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/amber/coverage.html +16 -1
  51. package/.next/standalone/.next/server/app/amber/coverage.rsc +5 -5
  52. package/.next/standalone/.next/server/app/amber/coverage.segments/_full.segment.rsc +5 -5
  53. package/.next/standalone/.next/server/app/amber/coverage.segments/_head.segment.rsc +1 -1
  54. package/.next/standalone/.next/server/app/amber/coverage.segments/_index.segment.rsc +2 -2
  55. package/.next/standalone/.next/server/app/amber/coverage.segments/_tree.segment.rsc +2 -2
  56. package/.next/standalone/.next/server/app/amber/coverage.segments/amber/coverage/__PAGE__.segment.rsc +2 -2
  57. package/.next/standalone/.next/server/app/amber/coverage.segments/amber/coverage.segment.rsc +1 -1
  58. package/.next/standalone/.next/server/app/amber/coverage.segments/amber.segment.rsc +1 -1
  59. package/.next/standalone/.next/server/app/amber/files/page/build-manifest.json +3 -3
  60. package/.next/standalone/.next/server/app/amber/files/page.js +6 -5
  61. package/.next/standalone/.next/server/app/amber/files/page.js.nft.json +1 -1
  62. package/.next/standalone/.next/server/app/amber/files/page_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/amber/files.html +16 -1
  64. package/.next/standalone/.next/server/app/amber/files.rsc +5 -5
  65. package/.next/standalone/.next/server/app/amber/files.segments/_full.segment.rsc +5 -5
  66. package/.next/standalone/.next/server/app/amber/files.segments/_head.segment.rsc +1 -1
  67. package/.next/standalone/.next/server/app/amber/files.segments/_index.segment.rsc +2 -2
  68. package/.next/standalone/.next/server/app/amber/files.segments/_tree.segment.rsc +2 -2
  69. package/.next/standalone/.next/server/app/amber/files.segments/amber/files/__PAGE__.segment.rsc +2 -2
  70. package/.next/standalone/.next/server/app/amber/files.segments/amber/files.segment.rsc +1 -1
  71. package/.next/standalone/.next/server/app/amber/files.segments/amber.segment.rsc +1 -1
  72. package/.next/standalone/.next/server/app/amber/page/build-manifest.json +3 -3
  73. package/.next/standalone/.next/server/app/amber/page.js +6 -5
  74. package/.next/standalone/.next/server/app/amber/page.js.nft.json +1 -1
  75. package/.next/standalone/.next/server/app/amber/page_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/amber.html +16 -1
  77. package/.next/standalone/.next/server/app/amber.rsc +5 -5
  78. package/.next/standalone/.next/server/app/amber.segments/_full.segment.rsc +5 -5
  79. package/.next/standalone/.next/server/app/amber.segments/_head.segment.rsc +1 -1
  80. package/.next/standalone/.next/server/app/amber.segments/_index.segment.rsc +2 -2
  81. package/.next/standalone/.next/server/app/amber.segments/_tree.segment.rsc +2 -2
  82. package/.next/standalone/.next/server/app/amber.segments/amber/__PAGE__.segment.rsc +2 -2
  83. package/.next/standalone/.next/server/app/amber.segments/amber.segment.rsc +1 -1
  84. package/.next/standalone/.next/server/app/api/amber/scan/route.js.nft.json +1 -1
  85. package/.next/standalone/.next/server/app/api/blue/scan/route.js.nft.json +1 -1
  86. package/.next/standalone/.next/server/app/api/green/cross-layer/route.js.nft.json +1 -1
  87. package/.next/standalone/.next/server/app/api/green/queries/[id]/run/route.js.nft.json +1 -1
  88. package/.next/standalone/.next/server/app/api/monorepo/route.js.nft.json +1 -1
  89. package/.next/standalone/.next/server/app/blue/page/build-manifest.json +3 -3
  90. package/.next/standalone/.next/server/app/blue/page.js +6 -5
  91. package/.next/standalone/.next/server/app/blue/page.js.nft.json +1 -1
  92. package/.next/standalone/.next/server/app/blue/page_client-reference-manifest.js +1 -1
  93. package/.next/standalone/.next/server/app/blue/recommendations/[id]/page/build-manifest.json +3 -3
  94. package/.next/standalone/.next/server/app/blue/recommendations/[id]/page.js +6 -5
  95. package/.next/standalone/.next/server/app/blue/recommendations/[id]/page.js.nft.json +1 -1
  96. package/.next/standalone/.next/server/app/blue/recommendations/[id]/page_client-reference-manifest.js +1 -1
  97. package/.next/standalone/.next/server/app/blue/recommendations/page/build-manifest.json +3 -3
  98. package/.next/standalone/.next/server/app/blue/recommendations/page.js +6 -5
  99. package/.next/standalone/.next/server/app/blue/recommendations/page.js.nft.json +1 -1
  100. package/.next/standalone/.next/server/app/blue/recommendations/page_client-reference-manifest.js +1 -1
  101. package/.next/standalone/.next/server/app/blue/recommendations.html +16 -1
  102. package/.next/standalone/.next/server/app/blue/recommendations.rsc +5 -5
  103. package/.next/standalone/.next/server/app/blue/recommendations.segments/_full.segment.rsc +5 -5
  104. package/.next/standalone/.next/server/app/blue/recommendations.segments/_head.segment.rsc +1 -1
  105. package/.next/standalone/.next/server/app/blue/recommendations.segments/_index.segment.rsc +2 -2
  106. package/.next/standalone/.next/server/app/blue/recommendations.segments/_tree.segment.rsc +2 -2
  107. package/.next/standalone/.next/server/app/blue/recommendations.segments/blue/recommendations/__PAGE__.segment.rsc +2 -2
  108. package/.next/standalone/.next/server/app/blue/recommendations.segments/blue/recommendations.segment.rsc +1 -1
  109. package/.next/standalone/.next/server/app/blue/recommendations.segments/blue.segment.rsc +1 -1
  110. package/.next/standalone/.next/server/app/blue/sessions/[id]/page/build-manifest.json +3 -3
  111. package/.next/standalone/.next/server/app/blue/sessions/[id]/page.js +6 -5
  112. package/.next/standalone/.next/server/app/blue/sessions/[id]/page.js.nft.json +1 -1
  113. package/.next/standalone/.next/server/app/blue/sessions/[id]/page_client-reference-manifest.js +1 -1
  114. package/.next/standalone/.next/server/app/blue/sessions/page/build-manifest.json +3 -3
  115. package/.next/standalone/.next/server/app/blue/sessions/page.js +6 -5
  116. package/.next/standalone/.next/server/app/blue/sessions/page.js.nft.json +1 -1
  117. package/.next/standalone/.next/server/app/blue/sessions/page_client-reference-manifest.js +1 -1
  118. package/.next/standalone/.next/server/app/blue/sessions.html +16 -1
  119. package/.next/standalone/.next/server/app/blue/sessions.rsc +5 -5
  120. package/.next/standalone/.next/server/app/blue/sessions.segments/_full.segment.rsc +5 -5
  121. package/.next/standalone/.next/server/app/blue/sessions.segments/_head.segment.rsc +1 -1
  122. package/.next/standalone/.next/server/app/blue/sessions.segments/_index.segment.rsc +2 -2
  123. package/.next/standalone/.next/server/app/blue/sessions.segments/_tree.segment.rsc +2 -2
  124. package/.next/standalone/.next/server/app/blue/sessions.segments/blue/sessions/__PAGE__.segment.rsc +2 -2
  125. package/.next/standalone/.next/server/app/blue/sessions.segments/blue/sessions.segment.rsc +1 -1
  126. package/.next/standalone/.next/server/app/blue/sessions.segments/blue.segment.rsc +1 -1
  127. package/.next/standalone/.next/server/app/blue.html +16 -1
  128. package/.next/standalone/.next/server/app/blue.rsc +5 -5
  129. package/.next/standalone/.next/server/app/blue.segments/_full.segment.rsc +5 -5
  130. package/.next/standalone/.next/server/app/blue.segments/_head.segment.rsc +1 -1
  131. package/.next/standalone/.next/server/app/blue.segments/_index.segment.rsc +2 -2
  132. package/.next/standalone/.next/server/app/blue.segments/_tree.segment.rsc +2 -2
  133. package/.next/standalone/.next/server/app/blue.segments/blue/__PAGE__.segment.rsc +2 -2
  134. package/.next/standalone/.next/server/app/blue.segments/blue.segment.rsc +1 -1
  135. package/.next/standalone/.next/server/app/green/cross-layer/page/build-manifest.json +3 -3
  136. package/.next/standalone/.next/server/app/green/cross-layer/page.js +6 -5
  137. package/.next/standalone/.next/server/app/green/cross-layer/page.js.nft.json +1 -1
  138. package/.next/standalone/.next/server/app/green/cross-layer/page_client-reference-manifest.js +1 -1
  139. package/.next/standalone/.next/server/app/green/cross-layer.html +16 -1
  140. package/.next/standalone/.next/server/app/green/cross-layer.rsc +5 -5
  141. package/.next/standalone/.next/server/app/green/cross-layer.segments/_full.segment.rsc +5 -5
  142. package/.next/standalone/.next/server/app/green/cross-layer.segments/_head.segment.rsc +1 -1
  143. package/.next/standalone/.next/server/app/green/cross-layer.segments/_index.segment.rsc +2 -2
  144. package/.next/standalone/.next/server/app/green/cross-layer.segments/_tree.segment.rsc +2 -2
  145. package/.next/standalone/.next/server/app/green/cross-layer.segments/green/cross-layer/__PAGE__.segment.rsc +2 -2
  146. package/.next/standalone/.next/server/app/green/cross-layer.segments/green/cross-layer.segment.rsc +1 -1
  147. package/.next/standalone/.next/server/app/green/cross-layer.segments/green.segment.rsc +1 -1
  148. package/.next/standalone/.next/server/app/green/insights/[id]/page/build-manifest.json +3 -3
  149. package/.next/standalone/.next/server/app/green/insights/[id]/page.js +6 -5
  150. package/.next/standalone/.next/server/app/green/insights/[id]/page.js.nft.json +1 -1
  151. package/.next/standalone/.next/server/app/green/insights/[id]/page_client-reference-manifest.js +1 -1
  152. package/.next/standalone/.next/server/app/green/insights/page/build-manifest.json +3 -3
  153. package/.next/standalone/.next/server/app/green/insights/page.js +6 -5
  154. package/.next/standalone/.next/server/app/green/insights/page.js.nft.json +1 -1
  155. package/.next/standalone/.next/server/app/green/insights/page_client-reference-manifest.js +1 -1
  156. package/.next/standalone/.next/server/app/green/insights.html +16 -1
  157. package/.next/standalone/.next/server/app/green/insights.rsc +5 -5
  158. package/.next/standalone/.next/server/app/green/insights.segments/_full.segment.rsc +5 -5
  159. package/.next/standalone/.next/server/app/green/insights.segments/_head.segment.rsc +1 -1
  160. package/.next/standalone/.next/server/app/green/insights.segments/_index.segment.rsc +2 -2
  161. package/.next/standalone/.next/server/app/green/insights.segments/_tree.segment.rsc +2 -2
  162. package/.next/standalone/.next/server/app/green/insights.segments/green/insights/__PAGE__.segment.rsc +2 -2
  163. package/.next/standalone/.next/server/app/green/insights.segments/green/insights.segment.rsc +1 -1
  164. package/.next/standalone/.next/server/app/green/insights.segments/green.segment.rsc +1 -1
  165. package/.next/standalone/.next/server/app/green/page/build-manifest.json +3 -3
  166. package/.next/standalone/.next/server/app/green/page.js +6 -5
  167. package/.next/standalone/.next/server/app/green/page.js.nft.json +1 -1
  168. package/.next/standalone/.next/server/app/green/page_client-reference-manifest.js +1 -1
  169. package/.next/standalone/.next/server/app/green/queries/[id]/page/build-manifest.json +3 -3
  170. package/.next/standalone/.next/server/app/green/queries/[id]/page.js +6 -5
  171. package/.next/standalone/.next/server/app/green/queries/[id]/page.js.nft.json +1 -1
  172. package/.next/standalone/.next/server/app/green/queries/[id]/page_client-reference-manifest.js +1 -1
  173. package/.next/standalone/.next/server/app/green/queries/page/build-manifest.json +3 -3
  174. package/.next/standalone/.next/server/app/green/queries/page.js +6 -5
  175. package/.next/standalone/.next/server/app/green/queries/page.js.nft.json +1 -1
  176. package/.next/standalone/.next/server/app/green/queries/page_client-reference-manifest.js +1 -1
  177. package/.next/standalone/.next/server/app/green/queries.html +16 -1
  178. package/.next/standalone/.next/server/app/green/queries.rsc +5 -5
  179. package/.next/standalone/.next/server/app/green/queries.segments/_full.segment.rsc +5 -5
  180. package/.next/standalone/.next/server/app/green/queries.segments/_head.segment.rsc +1 -1
  181. package/.next/standalone/.next/server/app/green/queries.segments/_index.segment.rsc +2 -2
  182. package/.next/standalone/.next/server/app/green/queries.segments/_tree.segment.rsc +2 -2
  183. package/.next/standalone/.next/server/app/green/queries.segments/green/queries/__PAGE__.segment.rsc +2 -2
  184. package/.next/standalone/.next/server/app/green/queries.segments/green/queries.segment.rsc +1 -1
  185. package/.next/standalone/.next/server/app/green/queries.segments/green.segment.rsc +1 -1
  186. package/.next/standalone/.next/server/app/green.html +16 -1
  187. package/.next/standalone/.next/server/app/green.rsc +5 -5
  188. package/.next/standalone/.next/server/app/green.segments/_full.segment.rsc +5 -5
  189. package/.next/standalone/.next/server/app/green.segments/_head.segment.rsc +1 -1
  190. package/.next/standalone/.next/server/app/green.segments/_index.segment.rsc +2 -2
  191. package/.next/standalone/.next/server/app/green.segments/_tree.segment.rsc +2 -2
  192. package/.next/standalone/.next/server/app/green.segments/green/__PAGE__.segment.rsc +2 -2
  193. package/.next/standalone/.next/server/app/green.segments/green.segment.rsc +1 -1
  194. package/.next/standalone/.next/server/app/index.html +16 -1
  195. package/.next/standalone/.next/server/app/index.rsc +12 -15
  196. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +5 -8
  197. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +12 -15
  198. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  199. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  200. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  201. package/.next/standalone/.next/server/app/opengraph-image/route/app-paths-manifest.json +3 -0
  202. package/.next/standalone/.next/server/app/opengraph-image/route/build-manifest.json +9 -0
  203. package/.next/standalone/.next/server/app/opengraph-image/route/middleware-manifest.json +55 -0
  204. package/.next/standalone/.next/server/app/opengraph-image/route/server-reference-manifest.json +4 -0
  205. package/.next/standalone/.next/server/app/opengraph-image/route_client-reference-manifest.js +3 -0
  206. package/.next/standalone/.next/server/app/page/build-manifest.json +3 -3
  207. package/.next/standalone/.next/server/app/page.js +6 -5
  208. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  209. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  210. package/.next/standalone/.next/server/app/pricing/page/build-manifest.json +3 -3
  211. package/.next/standalone/.next/server/app/pricing/page.js +6 -5
  212. package/.next/standalone/.next/server/app/pricing/page.js.nft.json +1 -1
  213. package/.next/standalone/.next/server/app/pricing/page_client-reference-manifest.js +1 -1
  214. package/.next/standalone/.next/server/app/pricing.html +16 -1
  215. package/.next/standalone/.next/server/app/pricing.rsc +5 -5
  216. package/.next/standalone/.next/server/app/pricing.segments/_full.segment.rsc +5 -5
  217. package/.next/standalone/.next/server/app/pricing.segments/_head.segment.rsc +1 -1
  218. package/.next/standalone/.next/server/app/pricing.segments/_index.segment.rsc +2 -2
  219. package/.next/standalone/.next/server/app/pricing.segments/_tree.segment.rsc +2 -2
  220. package/.next/standalone/.next/server/app/pricing.segments/pricing/__PAGE__.segment.rsc +2 -2
  221. package/.next/standalone/.next/server/app/pricing.segments/pricing.segment.rsc +1 -1
  222. package/.next/standalone/.next/server/app/settings/page/build-manifest.json +3 -3
  223. package/.next/standalone/.next/server/app/settings/page.js +6 -5
  224. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  225. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  226. package/.next/standalone/.next/server/app/settings.html +17 -2
  227. package/.next/standalone/.next/server/app/settings.rsc +5 -5
  228. package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +5 -5
  229. package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  230. package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  231. package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  232. package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  233. package/.next/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  234. package/.next/standalone/.next/server/app-paths-manifest.json +1 -0
  235. package/.next/standalone/.next/server/chunks/[root-of-the-server]__08rxe0c._.js +1 -1
  236. package/.next/standalone/.next/server/chunks/ssr/[externals]_next_dist_compiled_@vercel_og_index_node_00__rw~.js +3 -0
  237. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0-51ive._.js +3 -0
  238. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0.z8rt5._.js +3 -0
  239. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__002bwgx._.js +3 -0
  240. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__00enkqg._.js +3 -0
  241. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__00qbgde._.js +3 -0
  242. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__00s7d9d._.js +3 -0
  243. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02d3e9i._.js +3 -0
  244. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__04pode_._.js +3 -0
  245. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__057uqov._.js +3 -0
  246. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__06nyicp._.js +3 -0
  247. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__08havup._.js +3 -0
  248. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0atb5-1._.js +3 -0
  249. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__06-2p1a._.js → [root-of-the-server]__0bctf5o._.js} +2 -2
  250. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0decy7r._.js +3 -0
  251. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0doevf2._.js +3 -0
  252. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0elipkx._.js +3 -0
  253. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0fjvfkq._.js +3 -0
  254. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0fltr-j._.js +3 -0
  255. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0gyq_dp._.js +3 -0
  256. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ibs45v._.js +3 -0
  257. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0kh9ogy._.js +3 -0
  258. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0l4tu0b._.js +3 -0
  259. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0lmh-gq._.js +16 -1
  260. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0m2fu6a._.js +3 -0
  261. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0m5k043._.js +3 -0
  262. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0n5.i5o._.js +3 -0
  263. package/.next/standalone/.next/server/chunks/ssr/{node_modules_09w7yel._.js → [root-of-the-server]__0onmgst._.js} +2 -2
  264. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qqrwlg._.js +3 -0
  265. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0rxddec._.js +3 -0
  266. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0s9.69k._.js +3 -0
  267. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0uiaixl._.js +3 -0
  268. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0uiwp54._.js +3 -0
  269. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ulh4tl._.js +3 -0
  270. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0uuf.u8._.js +3 -0
  271. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0vvnh4c._.js +3 -0
  272. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0x3tx-x._.js +3 -0
  273. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0y0_2q4._.js +3 -0
  274. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ykzml-._.js +3 -0
  275. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0z66ifv._.js +3 -0
  276. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0~~16g7._.js +3 -0
  277. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__106354b._.js +3 -0
  278. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11f30gs._.js +3 -0
  279. package/.next/standalone/.next/server/chunks/ssr/_0a2egyj._.js +1 -1
  280. package/.next/standalone/.next/server/chunks/ssr/app_settings_page_tsx_0~q~t-v._.js +1 -1
  281. package/.next/standalone/.next/server/chunks/ssr/components_0fj4wag._.js +3 -0
  282. package/.next/standalone/.next/server/chunks/ssr/{node_modules_05l396c._.js → node_modules_0_ce7g1._.js} +2 -2
  283. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_00yi7.o.js → node_modules_next_dist_esm_build_templates_app-page_05u8x5_.js} +3 -3
  284. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0o9vt1n.js → node_modules_next_dist_esm_build_templates_app-page_07.mi98.js} +3 -3
  285. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0syz6td.js → node_modules_next_dist_esm_build_templates_app-page_0_1ho0v.js} +3 -3
  286. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0sxy.f3.js → node_modules_next_dist_esm_build_templates_app-page_0af2rxr.js} +3 -3
  287. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0~ua1n5.js → node_modules_next_dist_esm_build_templates_app-page_0bu9_s4.js} +3 -3
  288. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0g87jdm.js +4 -0
  289. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0f56w9x.js → node_modules_next_dist_esm_build_templates_app-page_0g8p7kq.js} +3 -3
  290. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0s~.~pu.js → node_modules_next_dist_esm_build_templates_app-page_0h9l08z.js} +3 -3
  291. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0s3yj4m.js → node_modules_next_dist_esm_build_templates_app-page_0hk2me4.js} +3 -3
  292. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0hieuck.js → node_modules_next_dist_esm_build_templates_app-page_0ks1jqa.js} +3 -3
  293. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0d9vf7z.js → node_modules_next_dist_esm_build_templates_app-page_0mlmh3q.js} +3 -3
  294. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_11g~g_~.js → node_modules_next_dist_esm_build_templates_app-page_0r7l-mi.js} +3 -3
  295. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0sh6t-i.js → node_modules_next_dist_esm_build_templates_app-page_0x75saz.js} +3 -3
  296. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0bjxb9g.js → node_modules_next_dist_esm_build_templates_app-page_0xu.46n.js} +3 -3
  297. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0y6uuyh.js +4 -0
  298. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0zqx4_i.js → node_modules_next_dist_esm_build_templates_app-page_0yzh0tq.js} +3 -3
  299. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0z_~vy~.js +4 -0
  300. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0_em0bi.js → node_modules_next_dist_esm_build_templates_app-page_10rr-m7.js} +3 -3
  301. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_002l7yi.js → node_modules_next_dist_esm_build_templates_app-page_13sg.-w.js} +3 -3
  302. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_10.cf7n.js → node_modules_next_dist_esm_build_templates_app-page_13~6-je.js} +3 -3
  303. package/.next/standalone/.next/server/edge/assets/Geist-Regular.01xk7kbsv57y-.ttf +0 -0
  304. package/.next/standalone/.next/server/edge/chunks/[root-of-the-server]__01rmks4._.js +14 -0
  305. package/.next/standalone/.next/server/edge/chunks/_next-internal_server_app_opengraph-image_route_actions_064c5ks.js +3 -0
  306. package/.next/standalone/.next/server/edge/chunks/node_modules_next_dist_compiled_@vercel_og_11csqje._.js +57 -0
  307. package/.next/standalone/.next/server/edge/chunks/node_modules_next_dist_compiled_@vercel_og_resvg_0656eb_.wasm +0 -0
  308. package/.next/standalone/.next/server/edge/chunks/node_modules_next_dist_compiled_@vercel_og_yoga_0656eb_.wasm +0 -0
  309. package/.next/standalone/.next/server/edge/chunks/node_modules_next_dist_esm_0u5k_dj._.js +4 -0
  310. package/.next/standalone/.next/server/edge/chunks/turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_13_vdjg.js +3 -0
  311. package/.next/standalone/.next/server/functions-config-manifest.json +3 -1
  312. package/.next/standalone/.next/server/interception-route-rewrite-manifest.js +1 -0
  313. package/.next/standalone/.next/server/middleware-build-manifest.js +6 -6
  314. package/.next/standalone/.next/server/middleware-manifest.json +48 -1
  315. package/.next/standalone/.next/server/pages/404.html +16 -1
  316. package/.next/standalone/.next/server/pages/500.html +1 -1
  317. package/.next/standalone/.next/static/chunks/0.7igtsxncc6a.js +1 -0
  318. package/.next/standalone/.next/static/chunks/0.w2w5ah2z6.q.js +1 -0
  319. package/.next/standalone/.next/static/chunks/01p_~toiegft_.js +1 -0
  320. package/.next/standalone/.next/static/chunks/02xhfdxrab7xe.js +1 -0
  321. package/.next/standalone/.next/static/chunks/03q73w5t_nguc.js +1 -0
  322. package/.next/standalone/.next/static/chunks/07.a-v86njd-y.css +2 -0
  323. package/.next/standalone/.next/static/chunks/08388.3-~-vu..js +1 -0
  324. package/.next/standalone/.next/static/chunks/09jbs7lt_g7qv.js +1 -0
  325. package/.next/standalone/.next/static/chunks/0bncqww4y17ma.js +1 -0
  326. package/.next/standalone/.next/static/chunks/0fx8zd5_modzy.js +1 -0
  327. package/.next/standalone/.next/static/chunks/0gao24_l7.js7.js +1 -0
  328. package/.next/standalone/.next/static/chunks/0g~ssg1e36913.js +1 -0
  329. package/.next/standalone/.next/static/chunks/0h-chhc382nhm.js +1 -0
  330. package/.next/standalone/.next/static/chunks/0h2bh_9440gzz.js +1 -0
  331. package/.next/standalone/.next/static/chunks/0n_omxh_im__f.js +1 -0
  332. package/.next/standalone/.next/static/chunks/0nadn-uf1y1pp.js +1 -0
  333. package/.next/standalone/.next/static/chunks/0rhynaz~~pa0u.js +1 -0
  334. package/.next/standalone/.next/static/chunks/0s-dioqa7gbo2.js +1 -0
  335. package/.next/standalone/.next/static/chunks/0s7axwcs~fxqr.js +1 -0
  336. package/.next/standalone/.next/static/chunks/0u-tql6a-thc0.js +1 -0
  337. package/.next/standalone/.next/static/chunks/0u.sk-wzg-nuk.js +5 -0
  338. package/.next/standalone/.next/static/chunks/0uafdcbqw67js.js +31 -0
  339. package/.next/standalone/.next/static/chunks/{0aqr1e8db8tr2.js → 0ze_u0eafk~cr.js} +1 -1
  340. package/.next/standalone/.next/static/chunks/{turbopack-134gd3wlo5u4g.js → turbopack-06j61jyvwxc69.js} +1 -1
  341. package/.next/standalone/.next/static/static/chunks/0.7igtsxncc6a.js +1 -0
  342. package/.next/standalone/.next/static/static/chunks/0.w2w5ah2z6.q.js +1 -0
  343. package/.next/standalone/.next/static/static/chunks/01p_~toiegft_.js +1 -0
  344. package/.next/standalone/.next/static/static/chunks/02xhfdxrab7xe.js +1 -0
  345. package/.next/standalone/.next/static/static/chunks/03q73w5t_nguc.js +1 -0
  346. package/.next/standalone/.next/static/static/chunks/07.a-v86njd-y.css +2 -0
  347. package/.next/standalone/.next/static/static/chunks/08388.3-~-vu..js +1 -0
  348. package/.next/standalone/.next/static/static/chunks/09jbs7lt_g7qv.js +1 -0
  349. package/.next/standalone/.next/static/static/chunks/0bncqww4y17ma.js +1 -0
  350. package/.next/standalone/.next/static/static/chunks/0fx8zd5_modzy.js +1 -0
  351. package/.next/standalone/.next/static/static/chunks/0gao24_l7.js7.js +1 -0
  352. package/.next/standalone/.next/static/static/chunks/0g~ssg1e36913.js +1 -0
  353. package/.next/standalone/.next/static/static/chunks/0h-chhc382nhm.js +1 -0
  354. package/.next/standalone/.next/static/static/chunks/0h2bh_9440gzz.js +1 -0
  355. package/.next/standalone/.next/static/static/chunks/0n_omxh_im__f.js +1 -0
  356. package/.next/standalone/.next/static/static/chunks/0nadn-uf1y1pp.js +1 -0
  357. package/.next/standalone/.next/static/static/chunks/0rhynaz~~pa0u.js +1 -0
  358. package/.next/standalone/.next/static/static/chunks/0s-dioqa7gbo2.js +1 -0
  359. package/.next/standalone/.next/static/static/chunks/0s7axwcs~fxqr.js +1 -0
  360. package/.next/standalone/.next/static/static/chunks/0u-tql6a-thc0.js +1 -0
  361. package/.next/standalone/.next/static/static/chunks/0u.sk-wzg-nuk.js +5 -0
  362. package/.next/standalone/.next/static/static/chunks/0uafdcbqw67js.js +31 -0
  363. package/.next/{static/chunks/0aqr1e8db8tr2.js → standalone/.next/static/static/chunks/0ze_u0eafk~cr.js} +1 -1
  364. package/.next/{static/chunks/turbopack-134gd3wlo5u4g.js → standalone/.next/static/static/chunks/turbopack-06j61jyvwxc69.js} +1 -1
  365. package/.next/standalone/CHANGELOG.md +21 -0
  366. package/.next/standalone/app/layout.tsx +63 -3
  367. package/.next/standalone/app/opengraph-image.tsx +126 -0
  368. package/.next/standalone/app/page.tsx +7 -135
  369. package/.next/standalone/components/dashboard/DashboardHome.tsx +123 -0
  370. package/.next/standalone/components/landing/Footer.tsx +104 -0
  371. package/.next/standalone/components/landing/HeroVisual.tsx +139 -0
  372. package/.next/standalone/components/landing/LandingPage.tsx +719 -0
  373. package/.next/standalone/components/landing/NavBar.tsx +62 -0
  374. package/.next/standalone/node_modules/next/dist/compiled/@vercel/og/Geist-Regular.ttf +0 -0
  375. package/.next/standalone/node_modules/next/dist/compiled/@vercel/og/LICENSE +373 -0
  376. package/.next/standalone/node_modules/next/dist/compiled/@vercel/og/index.edge.js +20508 -0
  377. package/.next/standalone/node_modules/next/dist/compiled/@vercel/og/index.node.js +21548 -0
  378. package/.next/standalone/node_modules/next/dist/compiled/@vercel/og/package.json +16 -0
  379. package/.next/standalone/node_modules/next/dist/compiled/@vercel/og/resvg.wasm +0 -0
  380. package/.next/standalone/node_modules/next/dist/compiled/@vercel/og/satori/LICENSE +373 -0
  381. package/.next/standalone/node_modules/next/dist/compiled/@vercel/og/yoga.wasm +0 -0
  382. package/.next/standalone/package.json +1 -1
  383. package/.next/standalone/server.js +1 -1
  384. package/.next/standalone/tsconfig.tsbuildinfo +1 -1
  385. package/.next/static/chunks/0.7igtsxncc6a.js +1 -0
  386. package/.next/static/chunks/0.w2w5ah2z6.q.js +1 -0
  387. package/.next/static/chunks/01p_~toiegft_.js +1 -0
  388. package/.next/static/chunks/02xhfdxrab7xe.js +1 -0
  389. package/.next/static/chunks/03q73w5t_nguc.js +1 -0
  390. package/.next/static/chunks/07.a-v86njd-y.css +2 -0
  391. package/.next/static/chunks/08388.3-~-vu..js +1 -0
  392. package/.next/static/chunks/09jbs7lt_g7qv.js +1 -0
  393. package/.next/static/chunks/0bncqww4y17ma.js +1 -0
  394. package/.next/static/chunks/0fx8zd5_modzy.js +1 -0
  395. package/.next/static/chunks/0gao24_l7.js7.js +1 -0
  396. package/.next/static/chunks/0g~ssg1e36913.js +1 -0
  397. package/.next/static/chunks/0h-chhc382nhm.js +1 -0
  398. package/.next/static/chunks/0h2bh_9440gzz.js +1 -0
  399. package/.next/static/chunks/0n_omxh_im__f.js +1 -0
  400. package/.next/static/chunks/0nadn-uf1y1pp.js +1 -0
  401. package/.next/static/chunks/0rhynaz~~pa0u.js +1 -0
  402. package/.next/static/chunks/0s-dioqa7gbo2.js +1 -0
  403. package/.next/static/chunks/0s7axwcs~fxqr.js +1 -0
  404. package/.next/static/chunks/0u-tql6a-thc0.js +1 -0
  405. package/.next/static/chunks/0u.sk-wzg-nuk.js +5 -0
  406. package/.next/static/chunks/0uafdcbqw67js.js +31 -0
  407. package/.next/{standalone/.next/static/static/chunks/0aqr1e8db8tr2.js → static/chunks/0ze_u0eafk~cr.js} +1 -1
  408. package/.next/{standalone/.next/static/static/chunks/turbopack-134gd3wlo5u4g.js → static/chunks/turbopack-06j61jyvwxc69.js} +1 -1
  409. package/CHANGELOG.md +21 -0
  410. package/package.json +1 -1
  411. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__025n37g._.js +0 -3
  412. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02hi65f._.js +0 -3
  413. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02xqa5z._.js +0 -3
  414. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__03n1r1q._.js +0 -3
  415. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__07xy1qe._.js +0 -3
  416. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0aoevfd._.js +0 -3
  417. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0cc0jd2._.js +0 -3
  418. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0es1n-0._.js +0 -3
  419. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0f_22zl._.js +0 -3
  420. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0f_g6yh._.js +0 -3
  421. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ft0rpu._.js +0 -3
  422. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0i8e2c1._.js +0 -3
  423. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0kbydoz._.js +0 -3
  424. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0myb_oc._.js +0 -3
  425. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qn1~qv._.js +0 -3
  426. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0thuf0u._.js +0 -3
  427. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0vxcr9p._.js +0 -3
  428. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0xhffh~._.js +0 -3
  429. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0y7o0cg._.js +0 -3
  430. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__13leyvb._.js +0 -3
  431. package/.next/standalone/.next/server/chunks/ssr/app_amber_capabilities_[id]_page_tsx_12~.miw._.js +0 -3
  432. package/.next/standalone/.next/server/chunks/ssr/app_amber_capabilities_page_tsx_0.t9mpr._.js +0 -3
  433. package/.next/standalone/.next/server/chunks/ssr/app_amber_coverage_page_tsx_01yia_n._.js +0 -3
  434. package/.next/standalone/.next/server/chunks/ssr/app_amber_files_page_tsx_00pdkc~._.js +0 -3
  435. package/.next/standalone/.next/server/chunks/ssr/app_amber_page_tsx_0ihx6zl._.js +0 -3
  436. package/.next/standalone/.next/server/chunks/ssr/app_blue_page_tsx_0zg5eg-._.js +0 -3
  437. package/.next/standalone/.next/server/chunks/ssr/app_blue_recommendations_[id]_page_tsx_10zzlnx._.js +0 -3
  438. package/.next/standalone/.next/server/chunks/ssr/app_blue_recommendations_page_tsx_08w-50l._.js +0 -3
  439. package/.next/standalone/.next/server/chunks/ssr/app_blue_sessions_[id]_page_tsx_0_~w1xj._.js +0 -3
  440. package/.next/standalone/.next/server/chunks/ssr/app_blue_sessions_page_tsx_0kbuf.c._.js +0 -3
  441. package/.next/standalone/.next/server/chunks/ssr/app_green_cross-layer_page_tsx_0a80o-~._.js +0 -3
  442. package/.next/standalone/.next/server/chunks/ssr/app_green_insights_[id]_page_tsx_0se6uk1._.js +0 -3
  443. package/.next/standalone/.next/server/chunks/ssr/app_green_insights_page_tsx_04g8_lf._.js +0 -3
  444. package/.next/standalone/.next/server/chunks/ssr/app_green_page_tsx_10g2g6w._.js +0 -3
  445. package/.next/standalone/.next/server/chunks/ssr/app_green_queries_[id]_page_tsx_0hg.qma._.js +0 -3
  446. package/.next/standalone/.next/server/chunks/ssr/app_green_queries_page_tsx_0.p0r7z._.js +0 -3
  447. package/.next/standalone/.next/server/chunks/ssr/app_page_tsx_0es_sk2._.js +0 -3
  448. package/.next/standalone/.next/server/chunks/ssr/app_pricing_page_tsx_0uxncj9._.js +0 -3
  449. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_02suzhc.js +0 -4
  450. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09d0h78.js +0 -4
  451. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0e3kicm.js +0 -4
  452. package/.next/standalone/.next/static/chunks/0-nogwaahf00r.js +0 -1
  453. package/.next/standalone/.next/static/chunks/0-ozct-0~_~y0.js +0 -1
  454. package/.next/standalone/.next/static/chunks/0043va.q9c120.js +0 -1
  455. package/.next/standalone/.next/static/chunks/0062k_6y6ie8k.js +0 -1
  456. package/.next/standalone/.next/static/chunks/00gq-v0e07i1q.js +0 -31
  457. package/.next/standalone/.next/static/chunks/01x6uo5zvt23j.js +0 -1
  458. package/.next/standalone/.next/static/chunks/03f4g06bhu.q-.js +0 -1
  459. package/.next/standalone/.next/static/chunks/06ciexs8mfsoh.js +0 -1
  460. package/.next/standalone/.next/static/chunks/06lbhw~p794rn.js +0 -1
  461. package/.next/standalone/.next/static/chunks/0921_~z_rxr9h.js +0 -1
  462. package/.next/standalone/.next/static/chunks/0_uy4bqezjrpu.js +0 -1
  463. package/.next/standalone/.next/static/chunks/0bymg5d-lqs0o.js +0 -5
  464. package/.next/standalone/.next/static/chunks/0gtjarbzj_b0s.js +0 -1
  465. package/.next/standalone/.next/static/chunks/0i826dpus7xfj.js +0 -1
  466. package/.next/standalone/.next/static/chunks/0l.f7bl92nc~2.css +0 -2
  467. package/.next/standalone/.next/static/chunks/0mtsra7dpsxy_.js +0 -1
  468. package/.next/standalone/.next/static/chunks/0nc15zt~yfrj3.js +0 -1
  469. package/.next/standalone/.next/static/chunks/0ptkiyk6p_hgq.js +0 -1
  470. package/.next/standalone/.next/static/chunks/0vsoyv8nkj.rx.js +0 -1
  471. package/.next/standalone/.next/static/chunks/0zpu7b02c6huw.js +0 -1
  472. package/.next/standalone/.next/static/chunks/10ibvf69namr1.js +0 -1
  473. package/.next/standalone/.next/static/chunks/1655x4_8fq5li.js +0 -1
  474. package/.next/standalone/.next/static/static/chunks/0-nogwaahf00r.js +0 -1
  475. package/.next/standalone/.next/static/static/chunks/0-ozct-0~_~y0.js +0 -1
  476. package/.next/standalone/.next/static/static/chunks/0043va.q9c120.js +0 -1
  477. package/.next/standalone/.next/static/static/chunks/0062k_6y6ie8k.js +0 -1
  478. package/.next/standalone/.next/static/static/chunks/00gq-v0e07i1q.js +0 -31
  479. package/.next/standalone/.next/static/static/chunks/01x6uo5zvt23j.js +0 -1
  480. package/.next/standalone/.next/static/static/chunks/03f4g06bhu.q-.js +0 -1
  481. package/.next/standalone/.next/static/static/chunks/06ciexs8mfsoh.js +0 -1
  482. package/.next/standalone/.next/static/static/chunks/06lbhw~p794rn.js +0 -1
  483. package/.next/standalone/.next/static/static/chunks/0921_~z_rxr9h.js +0 -1
  484. package/.next/standalone/.next/static/static/chunks/0_uy4bqezjrpu.js +0 -1
  485. package/.next/standalone/.next/static/static/chunks/0bymg5d-lqs0o.js +0 -5
  486. package/.next/standalone/.next/static/static/chunks/0gtjarbzj_b0s.js +0 -1
  487. package/.next/standalone/.next/static/static/chunks/0i826dpus7xfj.js +0 -1
  488. package/.next/standalone/.next/static/static/chunks/0l.f7bl92nc~2.css +0 -2
  489. package/.next/standalone/.next/static/static/chunks/0mtsra7dpsxy_.js +0 -1
  490. package/.next/standalone/.next/static/static/chunks/0nc15zt~yfrj3.js +0 -1
  491. package/.next/standalone/.next/static/static/chunks/0ptkiyk6p_hgq.js +0 -1
  492. package/.next/standalone/.next/static/static/chunks/0vsoyv8nkj.rx.js +0 -1
  493. package/.next/standalone/.next/static/static/chunks/0zpu7b02c6huw.js +0 -1
  494. package/.next/standalone/.next/static/static/chunks/10ibvf69namr1.js +0 -1
  495. package/.next/standalone/.next/static/static/chunks/1655x4_8fq5li.js +0 -1
  496. package/.next/static/chunks/0-nogwaahf00r.js +0 -1
  497. package/.next/static/chunks/0-ozct-0~_~y0.js +0 -1
  498. package/.next/static/chunks/0043va.q9c120.js +0 -1
  499. package/.next/static/chunks/0062k_6y6ie8k.js +0 -1
  500. package/.next/static/chunks/00gq-v0e07i1q.js +0 -31
  501. package/.next/static/chunks/01x6uo5zvt23j.js +0 -1
  502. package/.next/static/chunks/03f4g06bhu.q-.js +0 -1
  503. package/.next/static/chunks/06ciexs8mfsoh.js +0 -1
  504. package/.next/static/chunks/06lbhw~p794rn.js +0 -1
  505. package/.next/static/chunks/0921_~z_rxr9h.js +0 -1
  506. package/.next/static/chunks/0_uy4bqezjrpu.js +0 -1
  507. package/.next/static/chunks/0bymg5d-lqs0o.js +0 -5
  508. package/.next/static/chunks/0gtjarbzj_b0s.js +0 -1
  509. package/.next/static/chunks/0i826dpus7xfj.js +0 -1
  510. package/.next/static/chunks/0l.f7bl92nc~2.css +0 -2
  511. package/.next/static/chunks/0mtsra7dpsxy_.js +0 -1
  512. package/.next/static/chunks/0nc15zt~yfrj3.js +0 -1
  513. package/.next/static/chunks/0ptkiyk6p_hgq.js +0 -1
  514. package/.next/static/chunks/0vsoyv8nkj.rx.js +0 -1
  515. package/.next/static/chunks/0zpu7b02c6huw.js +0 -1
  516. package/.next/static/chunks/10ibvf69namr1.js +0 -1
  517. package/.next/static/chunks/1655x4_8fq5li.js +0 -1
  518. /package/.next/standalone/.next/static/{W2AhxwlOVhsTt-b4T3Mjc → static/yOw_9uyhXSCjpd4PoOzmS}/_buildManifest.js +0 -0
  519. /package/.next/standalone/.next/static/{W2AhxwlOVhsTt-b4T3Mjc → static/yOw_9uyhXSCjpd4PoOzmS}/_clientMiddlewareManifest.js +0 -0
  520. /package/.next/standalone/.next/static/{W2AhxwlOVhsTt-b4T3Mjc → static/yOw_9uyhXSCjpd4PoOzmS}/_ssgManifest.js +0 -0
  521. /package/.next/standalone/.next/static/{static/W2AhxwlOVhsTt-b4T3Mjc → yOw_9uyhXSCjpd4PoOzmS}/_buildManifest.js +0 -0
  522. /package/.next/standalone/.next/static/{static/W2AhxwlOVhsTt-b4T3Mjc → yOw_9uyhXSCjpd4PoOzmS}/_clientMiddlewareManifest.js +0 -0
  523. /package/.next/standalone/.next/static/{static/W2AhxwlOVhsTt-b4T3Mjc → yOw_9uyhXSCjpd4PoOzmS}/_ssgManifest.js +0 -0
  524. /package/.next/static/{W2AhxwlOVhsTt-b4T3Mjc → yOw_9uyhXSCjpd4PoOzmS}/_buildManifest.js +0 -0
  525. /package/.next/static/{W2AhxwlOVhsTt-b4T3Mjc → yOw_9uyhXSCjpd4PoOzmS}/_clientMiddlewareManifest.js +0 -0
  526. /package/.next/static/{W2AhxwlOVhsTt-b4T3Mjc → yOw_9uyhXSCjpd4PoOzmS}/_ssgManifest.js +0 -0
@@ -0,0 +1,126 @@
1
+ import { ImageResponse } from "next/og";
2
+
3
+ export const runtime = "edge";
4
+ export const alt = "prism0x2A — The answer to your codebase.";
5
+ export const size = { width: 1200, height: 630 };
6
+ export const contentType = "image/png";
7
+
8
+ export default function OgImage() {
9
+ return new ImageResponse(
10
+ (
11
+ <div
12
+ style={{
13
+ background: "#020617",
14
+ width: "100%",
15
+ height: "100%",
16
+ display: "flex",
17
+ flexDirection: "column",
18
+ alignItems: "center",
19
+ justifyContent: "center",
20
+ gap: "24px",
21
+ fontFamily: "system-ui, sans-serif",
22
+ padding: "48px",
23
+ }}
24
+ >
25
+ {/* Logo */}
26
+ <div
27
+ style={{
28
+ display: "flex",
29
+ alignItems: "center",
30
+ gap: "12px",
31
+ }}
32
+ >
33
+ <span style={{ color: "rgb(56,189,248)", fontSize: "56px" }}>✦</span>
34
+ <span
35
+ style={{
36
+ fontSize: "88px",
37
+ fontWeight: 700,
38
+ color: "#f1f5f9",
39
+ letterSpacing: "-2px",
40
+ }}
41
+ >
42
+ prism
43
+ <span style={{ color: "rgb(14,165,233)", fontFamily: "monospace" }}>
44
+ 0x2A
45
+ </span>
46
+ </span>
47
+ </div>
48
+
49
+ {/* Tagline */}
50
+ <div
51
+ style={{
52
+ fontSize: "36px",
53
+ color: "#94a3b8",
54
+ fontWeight: 500,
55
+ letterSpacing: "-0.5px",
56
+ }}
57
+ >
58
+ The answer to your codebase.
59
+ </div>
60
+
61
+ {/* Sub */}
62
+ <div
63
+ style={{
64
+ fontSize: "22px",
65
+ color: "#475569",
66
+ }}
67
+ >
68
+ Local-first code intelligence · Free up to 50k LOC
69
+ </div>
70
+
71
+ {/* Badges */}
72
+ <div
73
+ style={{
74
+ display: "flex",
75
+ gap: "16px",
76
+ marginTop: "8px",
77
+ }}
78
+ >
79
+ {[
80
+ { label: "€0 to start", color: "rgb(52,211,153)", bg: "rgba(52,211,153,0.12)", border: "rgba(52,211,153,0.3)" },
81
+ { label: "MIT Engine", color: "rgb(56,189,248)", bg: "rgba(56,189,248,0.12)", border: "rgba(56,189,248,0.3)" },
82
+ { label: "No account required", color: "rgb(167,139,250)", bg: "rgba(167,139,250,0.12)", border: "rgba(167,139,250,0.3)" },
83
+ ].map(({ label, color, bg, border }) => (
84
+ <div
85
+ key={label}
86
+ style={{
87
+ background: bg,
88
+ color,
89
+ border: `1px solid ${border}`,
90
+ borderRadius: "8px",
91
+ padding: "8px 18px",
92
+ fontSize: "18px",
93
+ fontWeight: 600,
94
+ }}
95
+ >
96
+ {label}
97
+ </div>
98
+ ))}
99
+ </div>
100
+
101
+ {/* Bot spectrum */}
102
+ <div
103
+ style={{
104
+ display: "flex",
105
+ gap: "32px",
106
+ marginTop: "8px",
107
+ }}
108
+ >
109
+ {[
110
+ { label: "BLUE", color: "rgb(96,165,250)" },
111
+ { label: "AMBER", color: "rgb(251,191,36)" },
112
+ { label: "GREEN", color: "rgb(52,211,153)" },
113
+ ].map(({ label, color }) => (
114
+ <div
115
+ key={label}
116
+ style={{ color, fontSize: "16px", fontFamily: "monospace", fontWeight: 700, letterSpacing: "2px" }}
117
+ >
118
+ {label}
119
+ </div>
120
+ ))}
121
+ </div>
122
+ </div>
123
+ ),
124
+ { ...size }
125
+ );
126
+ }
@@ -1,139 +1,11 @@
1
- "use client";
2
-
3
- import { useState } from "react";
4
- import { PrismDock } from "@/components/PrismDock";
1
+ import { DashboardHome } from "@/components/dashboard/DashboardHome";
2
+ import { LandingPage } from "@/components/landing/LandingPage";
5
3
 
6
4
  export default function Home() {
7
- const [targetPath, setTargetPath] = useState(
8
- process.env.PRISM_TARGET ?? ""
9
- );
10
- const [result, setResult] = useState<string | null>(null);
11
- const [loading, setLoading] = useState(false);
12
- const [error, setError] = useState<string | null>(null);
13
-
14
- async function runCycleDetection() {
15
- if (!targetPath.trim()) return;
16
- setLoading(true);
17
- setError(null);
18
- setResult(null);
19
- try {
20
- const res = await fetch("/api/scan", {
21
- method: "POST",
22
- headers: { "Content-Type": "application/json" },
23
- body: JSON.stringify({ targetPath: targetPath.trim() }),
24
- });
25
- const data = await res.json();
26
- if (!res.ok) throw new Error(data.error ?? "Scan failed");
27
- setResult(JSON.stringify(data, null, 2));
28
- } catch (err) {
29
- setError(err instanceof Error ? err.message : String(err));
30
- } finally {
31
- setLoading(false);
32
- }
5
+ // Dashboard mode when PRISM_TARGET is set (local CLI usage).
6
+ // Marketing landing otherwise (Vercel deploy, no target).
7
+ if (process.env.PRISM_TARGET) {
8
+ return <DashboardHome />;
33
9
  }
34
-
35
- return (
36
- <div className="flex flex-col min-h-screen" style={{ background: "var(--bg-app)" }}>
37
- <PrismDock />
38
-
39
- {/* Main content */}
40
- <main
41
- className="flex-1 flex flex-col items-center justify-center px-6 gap-8"
42
- style={{ paddingTop: "var(--dock-clearance-top)" }}
43
- >
44
- {/* Header */}
45
- <div className="text-center">
46
- <h1 className="text-2xl font-semibold text-slate-100 tracking-tight">
47
- prism<span className="font-mono text-sky-500">0x2A</span>
48
- </h1>
49
- <p className="mt-1 text-sm text-slate-400">
50
- The answer to your codebase. &mdash;{" "}
51
- <span className="text-sky-400 font-mono">prismlens</span>
52
- </p>
53
- {process.env.PRISM_TARGET && (
54
- <p className="mt-1 text-xs text-slate-500 font-mono">
55
- Scanning: {process.env.PRISM_TARGET}
56
- </p>
57
- )}
58
- </div>
59
-
60
- {/* Scan card */}
61
- <div
62
- className="w-full max-w-lg rounded-xl p-6 flex flex-col gap-4"
63
- style={{
64
- background: "var(--surface-panel)",
65
- border: "1px solid var(--border-default)",
66
- boxShadow:
67
- "0 1px 2px rgba(15,23,42,.05),0 4px 16px rgba(15,23,42,.08),inset 0 1px 0 rgba(255,255,255,.04)",
68
- }}
69
- >
70
- <h2 className="text-sm font-semibold text-slate-300 uppercase tracking-widest">
71
- Scan a directory
72
- </h2>
73
- <div className="flex flex-col gap-2">
74
- <label className="text-xs text-slate-400" htmlFor="targetPath">
75
- Absolute path
76
- </label>
77
- <input
78
- id="targetPath"
79
- type="text"
80
- value={targetPath}
81
- onChange={(e) => setTargetPath(e.target.value)}
82
- placeholder="/Users/you/your-project"
83
- className="w-full rounded-lg px-3 py-2 text-sm font-mono text-slate-200 outline-none focus:ring-2 focus:ring-sky-500/50"
84
- style={{
85
- background: "rgba(2,6,23,0.6)",
86
- border: "1px solid var(--border-default)",
87
- }}
88
- onKeyDown={(e) => e.key === "Enter" && runCycleDetection()}
89
- />
90
- </div>
91
- <button
92
- onClick={runCycleDetection}
93
- disabled={loading || !targetPath.trim()}
94
- className="w-full py-2 rounded-lg text-sm font-semibold transition-all disabled:opacity-40 disabled:cursor-not-allowed"
95
- style={{
96
- background: "rgb(14,165,233)",
97
- color: "#020617",
98
- }}
99
- >
100
- {loading ? "Scanning…" : "Run cycle detection"}
101
- </button>
102
- </div>
103
-
104
- {/* Results card */}
105
- {(result || error) && (
106
- <div
107
- className="w-full max-w-lg rounded-xl p-6 flex flex-col gap-3"
108
- style={{
109
- background: "var(--surface-panel)",
110
- border: `1px solid ${error ? "rgba(239,68,68,0.3)" : "var(--border-default)"}`,
111
- }}
112
- >
113
- <h2 className="text-sm font-semibold text-slate-300 uppercase tracking-widest">
114
- Results
115
- </h2>
116
- {error && (
117
- <p className="text-sm text-red-400 font-mono">{error}</p>
118
- )}
119
- {result && (
120
- <pre
121
- className="text-xs font-mono text-slate-300 overflow-auto max-h-96 leading-relaxed"
122
- style={{ whiteSpace: "pre-wrap", wordBreak: "break-all" }}
123
- >
124
- {result}
125
- </pre>
126
- )}
127
- </div>
128
- )}
129
- </main>
130
-
131
- <footer
132
- className="text-center py-4 text-xs text-slate-600"
133
- style={{ marginBottom: "var(--infobar-clearance-bottom)" }}
134
- >
135
- prism<span className="font-mono">0x2A</span> v{process.env.NEXT_PUBLIC_PRISM_VERSION}
136
- </footer>
137
- </div>
138
- );
10
+ return <LandingPage />;
139
11
  }
@@ -0,0 +1,123 @@
1
+ "use client";
2
+
3
+ import { useState } from "react";
4
+ import { PrismDock } from "@/components/PrismDock";
5
+
6
+ export function DashboardHome() {
7
+ const [targetPath, setTargetPath] = useState(
8
+ process.env.NEXT_PUBLIC_PRISM_TARGET ?? process.env.PRISM_TARGET ?? ""
9
+ );
10
+ const [result, setResult] = useState<string | null>(null);
11
+ const [loading, setLoading] = useState(false);
12
+ const [error, setError] = useState<string | null>(null);
13
+
14
+ async function runCycleDetection() {
15
+ if (!targetPath.trim()) return;
16
+ setLoading(true);
17
+ setError(null);
18
+ setResult(null);
19
+ try {
20
+ const res = await fetch("/api/scan", {
21
+ method: "POST",
22
+ headers: { "Content-Type": "application/json" },
23
+ body: JSON.stringify({ targetPath: targetPath.trim() }),
24
+ });
25
+ const data = await res.json();
26
+ if (!res.ok) throw new Error(data.error ?? "Scan failed");
27
+ setResult(JSON.stringify(data, null, 2));
28
+ } catch (err) {
29
+ setError(err instanceof Error ? err.message : String(err));
30
+ } finally {
31
+ setLoading(false);
32
+ }
33
+ }
34
+
35
+ return (
36
+ <div className="flex flex-col min-h-screen" style={{ background: "var(--bg-app)" }}>
37
+ <PrismDock />
38
+
39
+ <main
40
+ className="flex-1 flex flex-col items-center justify-center px-6 gap-8"
41
+ style={{ paddingTop: "var(--dock-clearance-top)" }}
42
+ >
43
+ <div className="text-center">
44
+ <h1 className="text-2xl font-semibold text-slate-100 tracking-tight">
45
+ prism<span className="font-mono text-sky-500">0x2A</span>
46
+ </h1>
47
+ <p className="mt-1 text-sm text-slate-400">
48
+ The answer to your codebase. &mdash;{" "}
49
+ <span className="text-sky-400 font-mono">prismlens</span>
50
+ </p>
51
+ </div>
52
+
53
+ <div
54
+ className="w-full max-w-lg rounded-xl p-6 flex flex-col gap-4"
55
+ style={{
56
+ background: "var(--surface-panel)",
57
+ border: "1px solid var(--border-default)",
58
+ boxShadow:
59
+ "0 1px 2px rgba(15,23,42,.05),0 4px 16px rgba(15,23,42,.08),inset 0 1px 0 rgba(255,255,255,.04)",
60
+ }}
61
+ >
62
+ <h2 className="text-sm font-semibold text-slate-300 uppercase tracking-widest">
63
+ Scan a directory
64
+ </h2>
65
+ <div className="flex flex-col gap-2">
66
+ <label className="text-xs text-slate-400" htmlFor="targetPath">
67
+ Absolute path
68
+ </label>
69
+ <input
70
+ id="targetPath"
71
+ type="text"
72
+ value={targetPath}
73
+ onChange={(e) => setTargetPath(e.target.value)}
74
+ placeholder="/Users/you/your-project"
75
+ className="w-full rounded-lg px-3 py-2 text-sm font-mono text-slate-200 outline-none focus:ring-2 focus:ring-sky-500/50"
76
+ style={{
77
+ background: "rgba(2,6,23,0.6)",
78
+ border: "1px solid var(--border-default)",
79
+ }}
80
+ onKeyDown={(e) => e.key === "Enter" && runCycleDetection()}
81
+ />
82
+ </div>
83
+ <button
84
+ onClick={runCycleDetection}
85
+ disabled={loading || !targetPath.trim()}
86
+ className="w-full py-2 rounded-lg text-sm font-semibold transition-all disabled:opacity-40 disabled:cursor-not-allowed"
87
+ style={{ background: "rgb(14,165,233)", color: "#020617" }}
88
+ >
89
+ {loading ? "Scanning…" : "Run cycle detection"}
90
+ </button>
91
+ </div>
92
+
93
+ {(result || error) && (
94
+ <div
95
+ className="w-full max-w-lg rounded-xl p-6 flex flex-col gap-3"
96
+ style={{
97
+ background: "var(--surface-panel)",
98
+ border: `1px solid ${error ? "rgba(239,68,68,0.3)" : "var(--border-default)"}`,
99
+ }}
100
+ >
101
+ <h2 className="text-sm font-semibold text-slate-300 uppercase tracking-widest">
102
+ Results
103
+ </h2>
104
+ {error && <p className="text-sm text-red-400 font-mono">{error}</p>}
105
+ {result && (
106
+ <pre className="text-xs font-mono text-slate-300 overflow-auto max-h-96 leading-relaxed"
107
+ style={{ whiteSpace: "pre-wrap", wordBreak: "break-all" }}>
108
+ {result}
109
+ </pre>
110
+ )}
111
+ </div>
112
+ )}
113
+ </main>
114
+
115
+ <footer
116
+ className="text-center py-4 text-xs text-slate-600"
117
+ style={{ marginBottom: "var(--infobar-clearance-bottom)" }}
118
+ >
119
+ prism<span className="font-mono">0x2A</span> v{process.env.NEXT_PUBLIC_PRISM_VERSION}
120
+ </footer>
121
+ </div>
122
+ );
123
+ }
@@ -0,0 +1,104 @@
1
+ import Link from "next/link";
2
+
3
+ export function Footer() {
4
+ return (
5
+ <footer
6
+ className="border-t mt-24"
7
+ style={{ borderColor: "rgba(51,65,85,0.3)" }}
8
+ >
9
+ <div className="max-w-5xl mx-auto px-6 py-16 grid grid-cols-2 sm:grid-cols-4 gap-10">
10
+ {/* Brand */}
11
+ <div className="col-span-2 sm:col-span-1 flex flex-col gap-3">
12
+ <div className="flex items-center gap-1.5">
13
+ <span className="text-sky-400 text-base select-none">✦</span>
14
+ <span className="text-slate-200 text-sm font-semibold tracking-tight">
15
+ prism<span className="font-mono text-sky-500">0x2A</span>
16
+ </span>
17
+ </div>
18
+ <p className="text-xs text-slate-600 leading-relaxed">
19
+ Local-first code intelligence.<br />
20
+ Engine: <span className="font-mono text-slate-500">prismlens</span>.
21
+ </p>
22
+ <p className="text-xs text-slate-700 font-mono">0x2A = 42</p>
23
+ </div>
24
+
25
+ {/* Product */}
26
+ <div className="flex flex-col gap-3">
27
+ <h3 className="text-xs font-semibold text-slate-500 uppercase tracking-widest">Product</h3>
28
+ <nav className="flex flex-col gap-2">
29
+ <Link href="/pricing" className="text-xs text-slate-600 hover:text-slate-400 transition-colors">Pricing</Link>
30
+ <Link
31
+ href="https://github.com/dadenjo/prism0x2A"
32
+ target="_blank"
33
+ rel="noopener noreferrer"
34
+ className="text-xs text-slate-600 hover:text-slate-400 transition-colors"
35
+ >
36
+ Docs
37
+ </Link>
38
+ <Link
39
+ href="https://github.com/dadenjo/prism0x2A/blob/main/CHANGELOG.md"
40
+ target="_blank"
41
+ rel="noopener noreferrer"
42
+ className="text-xs text-slate-600 hover:text-slate-400 transition-colors"
43
+ >
44
+ Changelog
45
+ </Link>
46
+ </nav>
47
+ </div>
48
+
49
+ {/* Resources */}
50
+ <div className="flex flex-col gap-3">
51
+ <h3 className="text-xs font-semibold text-slate-500 uppercase tracking-widest">Resources</h3>
52
+ <nav className="flex flex-col gap-2">
53
+ <Link
54
+ href="https://github.com/dadenjo/prism0x2A"
55
+ target="_blank"
56
+ rel="noopener noreferrer"
57
+ className="text-xs text-slate-600 hover:text-slate-400 transition-colors"
58
+ >
59
+ GitHub — prism0x2A
60
+ </Link>
61
+ <Link
62
+ href="https://github.com/dadenjo/forge0x2B"
63
+ target="_blank"
64
+ rel="noopener noreferrer"
65
+ className="text-xs text-slate-600 hover:text-slate-400 transition-colors"
66
+ >
67
+ forge0x2B (coming soon)
68
+ </Link>
69
+ <span className="text-xs text-slate-700">Engine: prismlens</span>
70
+ </nav>
71
+ </div>
72
+
73
+ {/* Legal */}
74
+ <div className="flex flex-col gap-3">
75
+ <h3 className="text-xs font-semibold text-slate-500 uppercase tracking-widest">Legal</h3>
76
+ <nav className="flex flex-col gap-2">
77
+ <Link
78
+ href="https://github.com/dadenjo/prism0x2A/blob/main/LICENSE"
79
+ target="_blank"
80
+ rel="noopener noreferrer"
81
+ className="text-xs text-slate-600 hover:text-slate-400 transition-colors"
82
+ >
83
+ License
84
+ </Link>
85
+ <span className="text-xs text-slate-700">Terms (coming)</span>
86
+ <span className="text-xs text-slate-700">Privacy (coming)</span>
87
+ </nav>
88
+ </div>
89
+ </div>
90
+
91
+ <div
92
+ className="max-w-5xl mx-auto px-6 pb-8 flex flex-col sm:flex-row items-center justify-between gap-2 border-t"
93
+ style={{ borderColor: "rgba(51,65,85,0.2)" }}
94
+ >
95
+ <p className="text-xs text-slate-700">
96
+ Made in Germany 🇩🇪 · © 2026 prism0x2A
97
+ </p>
98
+ <p className="text-xs text-slate-700 font-mono">
99
+ The answer is 42.
100
+ </p>
101
+ </div>
102
+ </footer>
103
+ );
104
+ }
@@ -0,0 +1,139 @@
1
+ export function HeroVisual() {
2
+ return (
3
+ <svg
4
+ viewBox="0 0 600 360"
5
+ className="w-full max-w-xl"
6
+ aria-hidden="true"
7
+ role="img"
8
+ >
9
+ <defs>
10
+ <linearGradient id="prism-fill" x1="0%" y1="0%" x2="100%" y2="100%">
11
+ <stop offset="0%" stopColor="rgba(148,163,184,0.18)" />
12
+ <stop offset="40%" stopColor="rgba(226,232,240,0.07)" />
13
+ <stop offset="100%" stopColor="rgba(99,102,241,0.12)" />
14
+ </linearGradient>
15
+
16
+ <linearGradient id="chaos-fade" x1="0%" y1="0%" x2="100%" y2="0%">
17
+ <stop offset="0%" stopColor="rgba(2,6,23,0)" />
18
+ <stop offset="70%" stopColor="rgba(2,6,23,0.85)" />
19
+ <stop offset="100%" stopColor="rgba(2,6,23,1)" />
20
+ </linearGradient>
21
+
22
+ <linearGradient id="blue-ray" x1="290" y1="130" x2="432" y2="62" gradientUnits="userSpaceOnUse">
23
+ <stop offset="0%" stopColor="rgb(59,130,246)" stopOpacity="0.9" />
24
+ <stop offset="100%" stopColor="rgb(59,130,246)" stopOpacity="0.35" />
25
+ </linearGradient>
26
+ <linearGradient id="amber-ray" x1="290" y1="180" x2="430" y2="180" gradientUnits="userSpaceOnUse">
27
+ <stop offset="0%" stopColor="rgb(245,158,11)" stopOpacity="0.9" />
28
+ <stop offset="100%" stopColor="rgb(245,158,11)" stopOpacity="0.35" />
29
+ </linearGradient>
30
+ <linearGradient id="green-ray" x1="290" y1="220" x2="430" y2="295" gradientUnits="userSpaceOnUse">
31
+ <stop offset="0%" stopColor="rgb(16,185,129)" stopOpacity="0.9" />
32
+ <stop offset="100%" stopColor="rgb(16,185,129)" stopOpacity="0.35" />
33
+ </linearGradient>
34
+
35
+ <filter id="soft-glow" x="-50%" y="-50%" width="200%" height="200%">
36
+ <feGaussianBlur stdDeviation="4" result="blur" />
37
+ <feMerge>
38
+ <feMergeNode in="blur" />
39
+ <feMergeNode in="SourceGraphic" />
40
+ </feMerge>
41
+ </filter>
42
+ </defs>
43
+
44
+ {/* ── Code chaos (left) ── */}
45
+ {[
46
+ { t: "import { analyze } from './engine'", y: 28 },
47
+ { t: "TypeError: Cannot read property 'map'", y: 55 },
48
+ { t: " at Object.<anonymous> src/lib:42", y: 82 },
49
+ { t: "const deps = await scan(targetPath)", y: 109 },
50
+ { t: "// TODO: fix circular ref → api/index", y: 136 },
51
+ { t: "export default function Dashboard() {", y: 163 },
52
+ { t: "Error: ENOENT no such file or dir", y: 190 },
53
+ { t: " at /src/api/route.ts:17:9", y: 217 },
54
+ { t: "import type { Config } from '@/lib'", y: 244 },
55
+ { t: "✗ 3 import cycles detected", y: 271 },
56
+ { t: " src/api → lib/db → src/api", y: 298 },
57
+ { t: "✗ 14 uncovered branches", y: 325 },
58
+ ].map(({ t, y }, i) => (
59
+ <text key={i} x="8" y={y} fontSize="9" fontFamily="monospace"
60
+ fill={`rgba(100,116,139,${0.12 + (i % 4) * 0.04})`}>
61
+ {t}
62
+ </text>
63
+ ))}
64
+
65
+ {/* Fade overlay */}
66
+ <rect x="0" y="0" width="195" height="360" fill="url(#chaos-fade)" />
67
+
68
+ {/* ── Input beam ── */}
69
+ <line x1="0" y1="180" x2="192" y2="180"
70
+ stroke="rgba(255,255,255,0.12)" strokeWidth="1.5" strokeDasharray="5 3" />
71
+
72
+ {/* ── Prism triangle ──
73
+ apex: (192, 180) top-right: (292, 88) bottom-right: (292, 272) */}
74
+
75
+ {/* Glass fill */}
76
+ <polygon points="192,180 292,88 292,272"
77
+ fill="url(#prism-fill)"
78
+ stroke="none" />
79
+
80
+ {/* Left face highlight */}
81
+ <line x1="192" y1="180" x2="292" y2="88"
82
+ stroke="rgba(226,232,240,0.45)" strokeWidth="1.2" />
83
+ <line x1="192" y1="180" x2="292" y2="272"
84
+ stroke="rgba(148,163,184,0.3)" strokeWidth="1.2" />
85
+
86
+ {/* Right face */}
87
+ <line x1="292" y1="88" x2="292" y2="272"
88
+ stroke="rgba(226,232,240,0.5)" strokeWidth="1.5" />
89
+
90
+ {/* Internal refraction hints */}
91
+ <line x1="226" y1="172" x2="292" y2="130" stroke="rgba(255,255,255,0.05)" strokeWidth="0.7" />
92
+ <line x1="226" y1="180" x2="292" y2="180" stroke="rgba(255,255,255,0.05)" strokeWidth="0.7" />
93
+ <line x1="226" y1="188" x2="292" y2="230" stroke="rgba(255,255,255,0.05)" strokeWidth="0.7" />
94
+
95
+ {/* 0x2A engraving */}
96
+ <text x="242" y="183" fontSize="10" fontFamily="monospace"
97
+ fill="rgba(148,163,184,0.38)" textAnchor="middle" letterSpacing="0.5">
98
+ 0x2A
99
+ </text>
100
+
101
+ {/* ── Output rays ── */}
102
+ <line x1="292" y1="130" x2="432" y2="62"
103
+ stroke="url(#blue-ray)" strokeWidth="2.5" filter="url(#soft-glow)" />
104
+ <line x1="292" y1="180" x2="432" y2="180"
105
+ stroke="url(#amber-ray)" strokeWidth="2.5" filter="url(#soft-glow)" />
106
+ <line x1="292" y1="230" x2="432" y2="298"
107
+ stroke="url(#green-ray)" strokeWidth="2.5" filter="url(#soft-glow)" />
108
+
109
+ {/* ── Output cards ── */}
110
+
111
+ {/* BLUE card */}
112
+ <rect x="432" y="26" width="154" height="72" rx="7"
113
+ fill="rgba(8,16,36,0.92)" stroke="rgba(59,130,246,0.45)" strokeWidth="1" />
114
+ <rect x="432" y="26" width="154" height="3" rx="1.5" fill="rgba(59,130,246,0.7)" />
115
+ <text x="446" y="50" fontSize="10" fontFamily="monospace"
116
+ fill="rgb(96,165,250)" fontWeight="bold" letterSpacing="1">BLUE</text>
117
+ <text x="446" y="66" fontSize="8.5" fontFamily="monospace" fill="rgba(100,116,139,0.85)">Sessions · Recommendations</text>
118
+ <text x="446" y="85" fontSize="8" fontFamily="sans-serif" fill="rgba(71,85,105,0.75)">LLM-powered investigations</text>
119
+
120
+ {/* AMBER card */}
121
+ <rect x="432" y="144" width="154" height="72" rx="7"
122
+ fill="rgba(8,16,36,0.92)" stroke="rgba(245,158,11,0.45)" strokeWidth="1" />
123
+ <rect x="432" y="144" width="154" height="3" rx="1.5" fill="rgba(245,158,11,0.7)" />
124
+ <text x="446" y="168" fontSize="10" fontFamily="monospace"
125
+ fill="rgb(251,191,36)" fontWeight="bold" letterSpacing="1">AMBER</text>
126
+ <text x="446" y="184" fontSize="8.5" fontFamily="monospace" fill="rgba(100,116,139,0.85)">Coverage · Registry · Files</text>
127
+ <text x="446" y="203" fontSize="8" fontFamily="sans-serif" fill="rgba(71,85,105,0.75)">Metadata + hot-spot analysis</text>
128
+
129
+ {/* GREEN card */}
130
+ <rect x="432" y="262" width="154" height="72" rx="7"
131
+ fill="rgba(8,16,36,0.92)" stroke="rgba(16,185,129,0.45)" strokeWidth="1" />
132
+ <rect x="432" y="262" width="154" height="3" rx="1.5" fill="rgba(16,185,129,0.7)" />
133
+ <text x="446" y="286" fontSize="10" fontFamily="monospace"
134
+ fill="rgb(52,211,153)" fontWeight="bold" letterSpacing="1">GREEN</text>
135
+ <text x="446" y="302" fontSize="8.5" fontFamily="monospace" fill="rgba(100,116,139,0.85)">Insights · Queries · Cross-layer</text>
136
+ <text x="446" y="321" fontSize="8" fontFamily="sans-serif" fill="rgba(71,85,105,0.75)">Auto-discovery + pattern AI</text>
137
+ </svg>
138
+ );
139
+ }