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.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-path-routes-manifest.json +1 -0
- package/.next/standalone/.next/build-manifest.json +6 -6
- package/.next/standalone/.next/required-server-files.js +335 -0
- package/.next/standalone/.next/required-server-files.json +1 -1
- package/.next/standalone/.next/routes-manifest.json +6 -0
- package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/_global-error/page.js +2 -2
- package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/_not-found/page.js +6 -5
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +16 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +4 -4
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/amber/capabilities/[id]/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/amber/capabilities/[id]/page.js +6 -5
- package/.next/standalone/.next/server/app/amber/capabilities/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/amber/capabilities/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/amber/capabilities/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/amber/capabilities/page.js +6 -5
- package/.next/standalone/.next/server/app/amber/capabilities/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/amber/capabilities/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/amber/capabilities.html +16 -1
- package/.next/standalone/.next/server/app/amber/capabilities.rsc +5 -5
- package/.next/standalone/.next/server/app/amber/capabilities.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/amber/capabilities.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/amber/capabilities.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/amber/capabilities.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/amber/capabilities.segments/amber/capabilities/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/amber/capabilities.segments/amber/capabilities.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/amber/capabilities.segments/amber.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/amber/coverage/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/amber/coverage/page.js +6 -5
- package/.next/standalone/.next/server/app/amber/coverage/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/amber/coverage/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/amber/coverage.html +16 -1
- package/.next/standalone/.next/server/app/amber/coverage.rsc +5 -5
- package/.next/standalone/.next/server/app/amber/coverage.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/amber/coverage.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/amber/coverage.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/amber/coverage.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/amber/coverage.segments/amber/coverage/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/amber/coverage.segments/amber/coverage.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/amber/coverage.segments/amber.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/amber/files/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/amber/files/page.js +6 -5
- package/.next/standalone/.next/server/app/amber/files/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/amber/files/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/amber/files.html +16 -1
- package/.next/standalone/.next/server/app/amber/files.rsc +5 -5
- package/.next/standalone/.next/server/app/amber/files.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/amber/files.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/amber/files.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/amber/files.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/amber/files.segments/amber/files/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/amber/files.segments/amber/files.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/amber/files.segments/amber.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/amber/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/amber/page.js +6 -5
- package/.next/standalone/.next/server/app/amber/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/amber/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/amber.html +16 -1
- package/.next/standalone/.next/server/app/amber.rsc +5 -5
- package/.next/standalone/.next/server/app/amber.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/amber.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/amber.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/amber.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/amber.segments/amber/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/amber.segments/amber.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/api/amber/scan/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/blue/scan/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/green/cross-layer/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/green/queries/[id]/run/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/monorepo/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/blue/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/blue/page.js +6 -5
- package/.next/standalone/.next/server/app/blue/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/blue/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/blue/recommendations/[id]/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/blue/recommendations/[id]/page.js +6 -5
- package/.next/standalone/.next/server/app/blue/recommendations/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/blue/recommendations/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/blue/recommendations/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/blue/recommendations/page.js +6 -5
- package/.next/standalone/.next/server/app/blue/recommendations/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/blue/recommendations/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/blue/recommendations.html +16 -1
- package/.next/standalone/.next/server/app/blue/recommendations.rsc +5 -5
- package/.next/standalone/.next/server/app/blue/recommendations.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/blue/recommendations.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/blue/recommendations.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/blue/recommendations.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/blue/recommendations.segments/blue/recommendations/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/blue/recommendations.segments/blue/recommendations.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/blue/recommendations.segments/blue.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/blue/sessions/[id]/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/blue/sessions/[id]/page.js +6 -5
- package/.next/standalone/.next/server/app/blue/sessions/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/blue/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/blue/sessions/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/blue/sessions/page.js +6 -5
- package/.next/standalone/.next/server/app/blue/sessions/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/blue/sessions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/blue/sessions.html +16 -1
- package/.next/standalone/.next/server/app/blue/sessions.rsc +5 -5
- package/.next/standalone/.next/server/app/blue/sessions.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/blue/sessions.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/blue/sessions.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/blue/sessions.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/blue/sessions.segments/blue/sessions/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/blue/sessions.segments/blue/sessions.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/blue/sessions.segments/blue.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/blue.html +16 -1
- package/.next/standalone/.next/server/app/blue.rsc +5 -5
- package/.next/standalone/.next/server/app/blue.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/blue.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/blue.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/blue.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/blue.segments/blue/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/blue.segments/blue.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/green/cross-layer/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/green/cross-layer/page.js +6 -5
- package/.next/standalone/.next/server/app/green/cross-layer/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/green/cross-layer/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/green/cross-layer.html +16 -1
- package/.next/standalone/.next/server/app/green/cross-layer.rsc +5 -5
- package/.next/standalone/.next/server/app/green/cross-layer.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/green/cross-layer.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/green/cross-layer.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/green/cross-layer.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/green/cross-layer.segments/green/cross-layer/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/green/cross-layer.segments/green/cross-layer.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/green/cross-layer.segments/green.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/green/insights/[id]/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/green/insights/[id]/page.js +6 -5
- package/.next/standalone/.next/server/app/green/insights/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/green/insights/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/green/insights/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/green/insights/page.js +6 -5
- package/.next/standalone/.next/server/app/green/insights/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/green/insights/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/green/insights.html +16 -1
- package/.next/standalone/.next/server/app/green/insights.rsc +5 -5
- package/.next/standalone/.next/server/app/green/insights.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/green/insights.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/green/insights.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/green/insights.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/green/insights.segments/green/insights/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/green/insights.segments/green/insights.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/green/insights.segments/green.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/green/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/green/page.js +6 -5
- package/.next/standalone/.next/server/app/green/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/green/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/green/queries/[id]/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/green/queries/[id]/page.js +6 -5
- package/.next/standalone/.next/server/app/green/queries/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/green/queries/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/green/queries/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/green/queries/page.js +6 -5
- package/.next/standalone/.next/server/app/green/queries/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/green/queries/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/green/queries.html +16 -1
- package/.next/standalone/.next/server/app/green/queries.rsc +5 -5
- package/.next/standalone/.next/server/app/green/queries.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/green/queries.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/green/queries.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/green/queries.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/green/queries.segments/green/queries/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/green/queries.segments/green/queries.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/green/queries.segments/green.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/green.html +16 -1
- package/.next/standalone/.next/server/app/green.rsc +5 -5
- package/.next/standalone/.next/server/app/green.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/green.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/green.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/green.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/green.segments/green/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/green.segments/green.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.html +16 -1
- package/.next/standalone/.next/server/app/index.rsc +12 -15
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +5 -8
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +12 -15
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/opengraph-image/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/opengraph-image/route/build-manifest.json +9 -0
- package/.next/standalone/.next/server/app/opengraph-image/route/middleware-manifest.json +55 -0
- package/.next/standalone/.next/server/app/opengraph-image/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/opengraph-image/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/page.js +6 -5
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/pricing/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/pricing/page.js +6 -5
- package/.next/standalone/.next/server/app/pricing/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/pricing/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/pricing.html +16 -1
- package/.next/standalone/.next/server/app/pricing.rsc +5 -5
- package/.next/standalone/.next/server/app/pricing.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/pricing.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/pricing.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/pricing.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/pricing.segments/pricing/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/pricing.segments/pricing.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/page/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/settings/page.js +6 -5
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings.html +17 -2
- package/.next/standalone/.next/server/app/settings.rsc +5 -5
- package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +1 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__08rxe0c._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[externals]_next_dist_compiled_@vercel_og_index_node_00__rw~.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0-51ive._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0.z8rt5._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__002bwgx._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__00enkqg._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__00qbgde._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__00s7d9d._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02d3e9i._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__04pode_._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__057uqov._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__06nyicp._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__08havup._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0atb5-1._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__06-2p1a._.js → [root-of-the-server]__0bctf5o._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0decy7r._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0doevf2._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0elipkx._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0fjvfkq._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0fltr-j._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0gyq_dp._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ibs45v._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0kh9ogy._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0l4tu0b._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0lmh-gq._.js +16 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0m2fu6a._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0m5k043._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0n5.i5o._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_09w7yel._.js → [root-of-the-server]__0onmgst._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qqrwlg._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0rxddec._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0s9.69k._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0uiaixl._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0uiwp54._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ulh4tl._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0uuf.u8._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0vvnh4c._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0x3tx-x._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0y0_2q4._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ykzml-._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0z66ifv._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0~~16g7._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__106354b._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11f30gs._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0a2egyj._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_settings_page_tsx_0~q~t-v._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/components_0fj4wag._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_05l396c._.js → node_modules_0_ce7g1._.js} +2 -2
- 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
- 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
- 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
- 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
- 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
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0g87jdm.js +4 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0y6uuyh.js +4 -0
- 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
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0z_~vy~.js +4 -0
- 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
- 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
- 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
- package/.next/standalone/.next/server/edge/assets/Geist-Regular.01xk7kbsv57y-.ttf +0 -0
- package/.next/standalone/.next/server/edge/chunks/[root-of-the-server]__01rmks4._.js +14 -0
- package/.next/standalone/.next/server/edge/chunks/_next-internal_server_app_opengraph-image_route_actions_064c5ks.js +3 -0
- package/.next/standalone/.next/server/edge/chunks/node_modules_next_dist_compiled_@vercel_og_11csqje._.js +57 -0
- package/.next/standalone/.next/server/edge/chunks/node_modules_next_dist_compiled_@vercel_og_resvg_0656eb_.wasm +0 -0
- package/.next/standalone/.next/server/edge/chunks/node_modules_next_dist_compiled_@vercel_og_yoga_0656eb_.wasm +0 -0
- package/.next/standalone/.next/server/edge/chunks/node_modules_next_dist_esm_0u5k_dj._.js +4 -0
- package/.next/standalone/.next/server/edge/chunks/turbopack-node_modules_next_dist_esm_build_templates_edge-wrapper_13_vdjg.js +3 -0
- package/.next/standalone/.next/server/functions-config-manifest.json +3 -1
- package/.next/standalone/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/.next/standalone/.next/server/middleware-build-manifest.js +6 -6
- package/.next/standalone/.next/server/middleware-manifest.json +48 -1
- package/.next/standalone/.next/server/pages/404.html +16 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/static/chunks/0.7igtsxncc6a.js +1 -0
- package/.next/standalone/.next/static/chunks/0.w2w5ah2z6.q.js +1 -0
- package/.next/standalone/.next/static/chunks/01p_~toiegft_.js +1 -0
- package/.next/standalone/.next/static/chunks/02xhfdxrab7xe.js +1 -0
- package/.next/standalone/.next/static/chunks/03q73w5t_nguc.js +1 -0
- package/.next/standalone/.next/static/chunks/07.a-v86njd-y.css +2 -0
- package/.next/standalone/.next/static/chunks/08388.3-~-vu..js +1 -0
- package/.next/standalone/.next/static/chunks/09jbs7lt_g7qv.js +1 -0
- package/.next/standalone/.next/static/chunks/0bncqww4y17ma.js +1 -0
- package/.next/standalone/.next/static/chunks/0fx8zd5_modzy.js +1 -0
- package/.next/standalone/.next/static/chunks/0gao24_l7.js7.js +1 -0
- package/.next/standalone/.next/static/chunks/0g~ssg1e36913.js +1 -0
- package/.next/standalone/.next/static/chunks/0h-chhc382nhm.js +1 -0
- package/.next/standalone/.next/static/chunks/0h2bh_9440gzz.js +1 -0
- package/.next/standalone/.next/static/chunks/0n_omxh_im__f.js +1 -0
- package/.next/standalone/.next/static/chunks/0nadn-uf1y1pp.js +1 -0
- package/.next/standalone/.next/static/chunks/0rhynaz~~pa0u.js +1 -0
- package/.next/standalone/.next/static/chunks/0s-dioqa7gbo2.js +1 -0
- package/.next/standalone/.next/static/chunks/0s7axwcs~fxqr.js +1 -0
- package/.next/standalone/.next/static/chunks/0u-tql6a-thc0.js +1 -0
- package/.next/standalone/.next/static/chunks/0u.sk-wzg-nuk.js +5 -0
- package/.next/standalone/.next/static/chunks/0uafdcbqw67js.js +31 -0
- package/.next/standalone/.next/static/chunks/{0aqr1e8db8tr2.js → 0ze_u0eafk~cr.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-134gd3wlo5u4g.js → turbopack-06j61jyvwxc69.js} +1 -1
- package/.next/standalone/.next/static/static/chunks/0.7igtsxncc6a.js +1 -0
- package/.next/standalone/.next/static/static/chunks/0.w2w5ah2z6.q.js +1 -0
- package/.next/standalone/.next/static/static/chunks/01p_~toiegft_.js +1 -0
- package/.next/standalone/.next/static/static/chunks/02xhfdxrab7xe.js +1 -0
- package/.next/standalone/.next/static/static/chunks/03q73w5t_nguc.js +1 -0
- package/.next/standalone/.next/static/static/chunks/07.a-v86njd-y.css +2 -0
- package/.next/standalone/.next/static/static/chunks/08388.3-~-vu..js +1 -0
- package/.next/standalone/.next/static/static/chunks/09jbs7lt_g7qv.js +1 -0
- package/.next/standalone/.next/static/static/chunks/0bncqww4y17ma.js +1 -0
- package/.next/standalone/.next/static/static/chunks/0fx8zd5_modzy.js +1 -0
- package/.next/standalone/.next/static/static/chunks/0gao24_l7.js7.js +1 -0
- package/.next/standalone/.next/static/static/chunks/0g~ssg1e36913.js +1 -0
- package/.next/standalone/.next/static/static/chunks/0h-chhc382nhm.js +1 -0
- package/.next/standalone/.next/static/static/chunks/0h2bh_9440gzz.js +1 -0
- package/.next/standalone/.next/static/static/chunks/0n_omxh_im__f.js +1 -0
- package/.next/standalone/.next/static/static/chunks/0nadn-uf1y1pp.js +1 -0
- package/.next/standalone/.next/static/static/chunks/0rhynaz~~pa0u.js +1 -0
- package/.next/standalone/.next/static/static/chunks/0s-dioqa7gbo2.js +1 -0
- package/.next/standalone/.next/static/static/chunks/0s7axwcs~fxqr.js +1 -0
- package/.next/standalone/.next/static/static/chunks/0u-tql6a-thc0.js +1 -0
- package/.next/standalone/.next/static/static/chunks/0u.sk-wzg-nuk.js +5 -0
- package/.next/standalone/.next/static/static/chunks/0uafdcbqw67js.js +31 -0
- package/.next/{static/chunks/0aqr1e8db8tr2.js → standalone/.next/static/static/chunks/0ze_u0eafk~cr.js} +1 -1
- package/.next/{static/chunks/turbopack-134gd3wlo5u4g.js → standalone/.next/static/static/chunks/turbopack-06j61jyvwxc69.js} +1 -1
- package/.next/standalone/CHANGELOG.md +21 -0
- package/.next/standalone/app/layout.tsx +63 -3
- package/.next/standalone/app/opengraph-image.tsx +126 -0
- package/.next/standalone/app/page.tsx +7 -135
- package/.next/standalone/components/dashboard/DashboardHome.tsx +123 -0
- package/.next/standalone/components/landing/Footer.tsx +104 -0
- package/.next/standalone/components/landing/HeroVisual.tsx +139 -0
- package/.next/standalone/components/landing/LandingPage.tsx +719 -0
- package/.next/standalone/components/landing/NavBar.tsx +62 -0
- package/.next/standalone/node_modules/next/dist/compiled/@vercel/og/Geist-Regular.ttf +0 -0
- package/.next/standalone/node_modules/next/dist/compiled/@vercel/og/LICENSE +373 -0
- package/.next/standalone/node_modules/next/dist/compiled/@vercel/og/index.edge.js +20508 -0
- package/.next/standalone/node_modules/next/dist/compiled/@vercel/og/index.node.js +21548 -0
- package/.next/standalone/node_modules/next/dist/compiled/@vercel/og/package.json +16 -0
- package/.next/standalone/node_modules/next/dist/compiled/@vercel/og/resvg.wasm +0 -0
- package/.next/standalone/node_modules/next/dist/compiled/@vercel/og/satori/LICENSE +373 -0
- package/.next/standalone/node_modules/next/dist/compiled/@vercel/og/yoga.wasm +0 -0
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/server.js +1 -1
- package/.next/standalone/tsconfig.tsbuildinfo +1 -1
- package/.next/static/chunks/0.7igtsxncc6a.js +1 -0
- package/.next/static/chunks/0.w2w5ah2z6.q.js +1 -0
- package/.next/static/chunks/01p_~toiegft_.js +1 -0
- package/.next/static/chunks/02xhfdxrab7xe.js +1 -0
- package/.next/static/chunks/03q73w5t_nguc.js +1 -0
- package/.next/static/chunks/07.a-v86njd-y.css +2 -0
- package/.next/static/chunks/08388.3-~-vu..js +1 -0
- package/.next/static/chunks/09jbs7lt_g7qv.js +1 -0
- package/.next/static/chunks/0bncqww4y17ma.js +1 -0
- package/.next/static/chunks/0fx8zd5_modzy.js +1 -0
- package/.next/static/chunks/0gao24_l7.js7.js +1 -0
- package/.next/static/chunks/0g~ssg1e36913.js +1 -0
- package/.next/static/chunks/0h-chhc382nhm.js +1 -0
- package/.next/static/chunks/0h2bh_9440gzz.js +1 -0
- package/.next/static/chunks/0n_omxh_im__f.js +1 -0
- package/.next/static/chunks/0nadn-uf1y1pp.js +1 -0
- package/.next/static/chunks/0rhynaz~~pa0u.js +1 -0
- package/.next/static/chunks/0s-dioqa7gbo2.js +1 -0
- package/.next/static/chunks/0s7axwcs~fxqr.js +1 -0
- package/.next/static/chunks/0u-tql6a-thc0.js +1 -0
- package/.next/static/chunks/0u.sk-wzg-nuk.js +5 -0
- package/.next/static/chunks/0uafdcbqw67js.js +31 -0
- package/.next/{standalone/.next/static/static/chunks/0aqr1e8db8tr2.js → static/chunks/0ze_u0eafk~cr.js} +1 -1
- package/.next/{standalone/.next/static/static/chunks/turbopack-134gd3wlo5u4g.js → static/chunks/turbopack-06j61jyvwxc69.js} +1 -1
- package/CHANGELOG.md +21 -0
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__025n37g._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02hi65f._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02xqa5z._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__03n1r1q._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__07xy1qe._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0aoevfd._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0cc0jd2._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0es1n-0._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0f_22zl._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0f_g6yh._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ft0rpu._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0i8e2c1._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0kbydoz._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0myb_oc._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qn1~qv._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0thuf0u._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0vxcr9p._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0xhffh~._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0y7o0cg._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__13leyvb._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_amber_capabilities_[id]_page_tsx_12~.miw._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_amber_capabilities_page_tsx_0.t9mpr._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_amber_coverage_page_tsx_01yia_n._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_amber_files_page_tsx_00pdkc~._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_amber_page_tsx_0ihx6zl._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_blue_page_tsx_0zg5eg-._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_blue_recommendations_[id]_page_tsx_10zzlnx._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_blue_recommendations_page_tsx_08w-50l._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_blue_sessions_[id]_page_tsx_0_~w1xj._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_blue_sessions_page_tsx_0kbuf.c._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_green_cross-layer_page_tsx_0a80o-~._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_green_insights_[id]_page_tsx_0se6uk1._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_green_insights_page_tsx_04g8_lf._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_green_page_tsx_10g2g6w._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_green_queries_[id]_page_tsx_0hg.qma._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_green_queries_page_tsx_0.p0r7z._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_page_tsx_0es_sk2._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_pricing_page_tsx_0uxncj9._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_02suzhc.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09d0h78.js +0 -4
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0e3kicm.js +0 -4
- package/.next/standalone/.next/static/chunks/0-nogwaahf00r.js +0 -1
- package/.next/standalone/.next/static/chunks/0-ozct-0~_~y0.js +0 -1
- package/.next/standalone/.next/static/chunks/0043va.q9c120.js +0 -1
- package/.next/standalone/.next/static/chunks/0062k_6y6ie8k.js +0 -1
- package/.next/standalone/.next/static/chunks/00gq-v0e07i1q.js +0 -31
- package/.next/standalone/.next/static/chunks/01x6uo5zvt23j.js +0 -1
- package/.next/standalone/.next/static/chunks/03f4g06bhu.q-.js +0 -1
- package/.next/standalone/.next/static/chunks/06ciexs8mfsoh.js +0 -1
- package/.next/standalone/.next/static/chunks/06lbhw~p794rn.js +0 -1
- package/.next/standalone/.next/static/chunks/0921_~z_rxr9h.js +0 -1
- package/.next/standalone/.next/static/chunks/0_uy4bqezjrpu.js +0 -1
- package/.next/standalone/.next/static/chunks/0bymg5d-lqs0o.js +0 -5
- package/.next/standalone/.next/static/chunks/0gtjarbzj_b0s.js +0 -1
- package/.next/standalone/.next/static/chunks/0i826dpus7xfj.js +0 -1
- package/.next/standalone/.next/static/chunks/0l.f7bl92nc~2.css +0 -2
- package/.next/standalone/.next/static/chunks/0mtsra7dpsxy_.js +0 -1
- package/.next/standalone/.next/static/chunks/0nc15zt~yfrj3.js +0 -1
- package/.next/standalone/.next/static/chunks/0ptkiyk6p_hgq.js +0 -1
- package/.next/standalone/.next/static/chunks/0vsoyv8nkj.rx.js +0 -1
- package/.next/standalone/.next/static/chunks/0zpu7b02c6huw.js +0 -1
- package/.next/standalone/.next/static/chunks/10ibvf69namr1.js +0 -1
- package/.next/standalone/.next/static/chunks/1655x4_8fq5li.js +0 -1
- package/.next/standalone/.next/static/static/chunks/0-nogwaahf00r.js +0 -1
- package/.next/standalone/.next/static/static/chunks/0-ozct-0~_~y0.js +0 -1
- package/.next/standalone/.next/static/static/chunks/0043va.q9c120.js +0 -1
- package/.next/standalone/.next/static/static/chunks/0062k_6y6ie8k.js +0 -1
- package/.next/standalone/.next/static/static/chunks/00gq-v0e07i1q.js +0 -31
- package/.next/standalone/.next/static/static/chunks/01x6uo5zvt23j.js +0 -1
- package/.next/standalone/.next/static/static/chunks/03f4g06bhu.q-.js +0 -1
- package/.next/standalone/.next/static/static/chunks/06ciexs8mfsoh.js +0 -1
- package/.next/standalone/.next/static/static/chunks/06lbhw~p794rn.js +0 -1
- package/.next/standalone/.next/static/static/chunks/0921_~z_rxr9h.js +0 -1
- package/.next/standalone/.next/static/static/chunks/0_uy4bqezjrpu.js +0 -1
- package/.next/standalone/.next/static/static/chunks/0bymg5d-lqs0o.js +0 -5
- package/.next/standalone/.next/static/static/chunks/0gtjarbzj_b0s.js +0 -1
- package/.next/standalone/.next/static/static/chunks/0i826dpus7xfj.js +0 -1
- package/.next/standalone/.next/static/static/chunks/0l.f7bl92nc~2.css +0 -2
- package/.next/standalone/.next/static/static/chunks/0mtsra7dpsxy_.js +0 -1
- package/.next/standalone/.next/static/static/chunks/0nc15zt~yfrj3.js +0 -1
- package/.next/standalone/.next/static/static/chunks/0ptkiyk6p_hgq.js +0 -1
- package/.next/standalone/.next/static/static/chunks/0vsoyv8nkj.rx.js +0 -1
- package/.next/standalone/.next/static/static/chunks/0zpu7b02c6huw.js +0 -1
- package/.next/standalone/.next/static/static/chunks/10ibvf69namr1.js +0 -1
- package/.next/standalone/.next/static/static/chunks/1655x4_8fq5li.js +0 -1
- package/.next/static/chunks/0-nogwaahf00r.js +0 -1
- package/.next/static/chunks/0-ozct-0~_~y0.js +0 -1
- package/.next/static/chunks/0043va.q9c120.js +0 -1
- package/.next/static/chunks/0062k_6y6ie8k.js +0 -1
- package/.next/static/chunks/00gq-v0e07i1q.js +0 -31
- package/.next/static/chunks/01x6uo5zvt23j.js +0 -1
- package/.next/static/chunks/03f4g06bhu.q-.js +0 -1
- package/.next/static/chunks/06ciexs8mfsoh.js +0 -1
- package/.next/static/chunks/06lbhw~p794rn.js +0 -1
- package/.next/static/chunks/0921_~z_rxr9h.js +0 -1
- package/.next/static/chunks/0_uy4bqezjrpu.js +0 -1
- package/.next/static/chunks/0bymg5d-lqs0o.js +0 -5
- package/.next/static/chunks/0gtjarbzj_b0s.js +0 -1
- package/.next/static/chunks/0i826dpus7xfj.js +0 -1
- package/.next/static/chunks/0l.f7bl92nc~2.css +0 -2
- package/.next/static/chunks/0mtsra7dpsxy_.js +0 -1
- package/.next/static/chunks/0nc15zt~yfrj3.js +0 -1
- package/.next/static/chunks/0ptkiyk6p_hgq.js +0 -1
- package/.next/static/chunks/0vsoyv8nkj.rx.js +0 -1
- package/.next/static/chunks/0zpu7b02c6huw.js +0 -1
- package/.next/static/chunks/10ibvf69namr1.js +0 -1
- package/.next/static/chunks/1655x4_8fq5li.js +0 -1
- /package/.next/standalone/.next/static/{W2AhxwlOVhsTt-b4T3Mjc → static/yOw_9uyhXSCjpd4PoOzmS}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{W2AhxwlOVhsTt-b4T3Mjc → static/yOw_9uyhXSCjpd4PoOzmS}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{W2AhxwlOVhsTt-b4T3Mjc → static/yOw_9uyhXSCjpd4PoOzmS}/_ssgManifest.js +0 -0
- /package/.next/standalone/.next/static/{static/W2AhxwlOVhsTt-b4T3Mjc → yOw_9uyhXSCjpd4PoOzmS}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{static/W2AhxwlOVhsTt-b4T3Mjc → yOw_9uyhXSCjpd4PoOzmS}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{static/W2AhxwlOVhsTt-b4T3Mjc → yOw_9uyhXSCjpd4PoOzmS}/_ssgManifest.js +0 -0
- /package/.next/static/{W2AhxwlOVhsTt-b4T3Mjc → yOw_9uyhXSCjpd4PoOzmS}/_buildManifest.js +0 -0
- /package/.next/static/{W2AhxwlOVhsTt-b4T3Mjc → yOw_9uyhXSCjpd4PoOzmS}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{W2AhxwlOVhsTt-b4T3Mjc → yOw_9uyhXSCjpd4PoOzmS}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,719 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import Link from "next/link";
|
|
5
|
+
import { NavBar } from "./NavBar";
|
|
6
|
+
import { Footer } from "./Footer";
|
|
7
|
+
import { HeroVisual } from "./HeroVisual";
|
|
8
|
+
|
|
9
|
+
// ─── Copy button ────────────────────────────────────────────────────────────
|
|
10
|
+
|
|
11
|
+
function CopyButton({ text }: { text: string }) {
|
|
12
|
+
const [copied, setCopied] = useState(false);
|
|
13
|
+
return (
|
|
14
|
+
<button
|
|
15
|
+
onClick={() => {
|
|
16
|
+
navigator.clipboard.writeText(text).catch(() => {});
|
|
17
|
+
setCopied(true);
|
|
18
|
+
setTimeout(() => setCopied(false), 2000);
|
|
19
|
+
}}
|
|
20
|
+
className="flex-shrink-0 text-xs px-2.5 py-1 rounded transition-all font-mono"
|
|
21
|
+
style={{
|
|
22
|
+
background: copied ? "rgba(52,211,153,0.15)" : "rgba(51,65,85,0.4)",
|
|
23
|
+
color: copied ? "rgb(52,211,153)" : "rgba(148,163,184,0.7)",
|
|
24
|
+
border: `1px solid ${copied ? "rgba(52,211,153,0.3)" : "rgba(51,65,85,0.4)"}`,
|
|
25
|
+
}}
|
|
26
|
+
>
|
|
27
|
+
{copied ? "✓ copied" : "copy"}
|
|
28
|
+
</button>
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// ─── Code block ─────────────────────────────────────────────────────────────
|
|
33
|
+
|
|
34
|
+
function CodeBlock({ lines, copyText }: { lines: string[]; copyText?: string }) {
|
|
35
|
+
return (
|
|
36
|
+
<div
|
|
37
|
+
className="rounded-xl overflow-hidden"
|
|
38
|
+
style={{
|
|
39
|
+
background: "rgba(2,6,23,0.8)",
|
|
40
|
+
border: "1px solid rgba(51,65,85,0.5)",
|
|
41
|
+
boxShadow: "0 4px 24px rgba(2,6,23,0.3), inset 0 1px 0 rgba(255,255,255,0.04)",
|
|
42
|
+
}}
|
|
43
|
+
>
|
|
44
|
+
<div
|
|
45
|
+
className="flex items-center justify-between px-4 py-2.5"
|
|
46
|
+
style={{ borderBottom: "1px solid rgba(51,65,85,0.3)" }}
|
|
47
|
+
>
|
|
48
|
+
<div className="flex gap-1.5">
|
|
49
|
+
<div className="w-2.5 h-2.5 rounded-full" style={{ background: "rgba(239,68,68,0.4)" }} />
|
|
50
|
+
<div className="w-2.5 h-2.5 rounded-full" style={{ background: "rgba(245,158,11,0.4)" }} />
|
|
51
|
+
<div className="w-2.5 h-2.5 rounded-full" style={{ background: "rgba(52,211,153,0.4)" }} />
|
|
52
|
+
</div>
|
|
53
|
+
{copyText && <CopyButton text={copyText} />}
|
|
54
|
+
</div>
|
|
55
|
+
<pre className="px-5 py-4 text-sm font-mono leading-loose overflow-x-auto">
|
|
56
|
+
{lines.map((line, i) => (
|
|
57
|
+
<div key={i}>
|
|
58
|
+
{line.startsWith("#") ? (
|
|
59
|
+
<span style={{ color: "rgba(71,85,105,0.7)" }}>{line}</span>
|
|
60
|
+
) : (
|
|
61
|
+
<>
|
|
62
|
+
<span style={{ color: "rgba(52,211,153,0.6)" }}>$ </span>
|
|
63
|
+
<span style={{ color: "rgb(203,213,225)" }}>{line}</span>
|
|
64
|
+
</>
|
|
65
|
+
)}
|
|
66
|
+
</div>
|
|
67
|
+
))}
|
|
68
|
+
</pre>
|
|
69
|
+
</div>
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// ─── Section wrapper ─────────────────────────────────────────────────────────
|
|
74
|
+
|
|
75
|
+
function Section({
|
|
76
|
+
id,
|
|
77
|
+
children,
|
|
78
|
+
className = "",
|
|
79
|
+
}: {
|
|
80
|
+
id?: string;
|
|
81
|
+
children: React.ReactNode;
|
|
82
|
+
className?: string;
|
|
83
|
+
}) {
|
|
84
|
+
return (
|
|
85
|
+
<section id={id} className={`w-full max-w-5xl mx-auto px-6 ${className}`}>
|
|
86
|
+
{children}
|
|
87
|
+
</section>
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// ─── Section heading ─────────────────────────────────────────────────────────
|
|
92
|
+
|
|
93
|
+
function SectionLabel({ children }: { children: React.ReactNode }) {
|
|
94
|
+
return (
|
|
95
|
+
<p className="text-xs font-semibold text-slate-500 uppercase tracking-widest mb-4">
|
|
96
|
+
{children}
|
|
97
|
+
</p>
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// ─── Bot card ────────────────────────────────────────────────────────────────
|
|
102
|
+
|
|
103
|
+
function BotCard({
|
|
104
|
+
color,
|
|
105
|
+
label,
|
|
106
|
+
title,
|
|
107
|
+
description,
|
|
108
|
+
href,
|
|
109
|
+
}: {
|
|
110
|
+
color: string;
|
|
111
|
+
label: string;
|
|
112
|
+
title: string;
|
|
113
|
+
description: string;
|
|
114
|
+
href: string;
|
|
115
|
+
}) {
|
|
116
|
+
return (
|
|
117
|
+
<div
|
|
118
|
+
className="relative flex flex-col gap-4 p-6 rounded-2xl"
|
|
119
|
+
style={{
|
|
120
|
+
background: "#0f172a",
|
|
121
|
+
border: `1px solid rgba(${color},0.25)`,
|
|
122
|
+
boxShadow: `0 0 40px rgba(${color},0.04), 0 4px 16px rgba(15,23,42,.1)`,
|
|
123
|
+
}}
|
|
124
|
+
>
|
|
125
|
+
<div
|
|
126
|
+
className="absolute top-0 left-8 right-8 h-px"
|
|
127
|
+
style={{ background: `linear-gradient(90deg, transparent, rgba(${color},0.5), transparent)` }}
|
|
128
|
+
/>
|
|
129
|
+
<div
|
|
130
|
+
className="text-xs font-bold tracking-widest font-mono"
|
|
131
|
+
style={{ color: `rgb(${color})` }}
|
|
132
|
+
>
|
|
133
|
+
{label}
|
|
134
|
+
</div>
|
|
135
|
+
<h3 className="text-base font-semibold text-slate-200">{title}</h3>
|
|
136
|
+
<p className="text-sm text-slate-500 leading-relaxed">{description}</p>
|
|
137
|
+
<Link
|
|
138
|
+
href={href}
|
|
139
|
+
className="text-xs font-semibold transition-colors mt-auto"
|
|
140
|
+
style={{ color: `rgb(${color})` }}
|
|
141
|
+
>
|
|
142
|
+
Try {label} →
|
|
143
|
+
</Link>
|
|
144
|
+
</div>
|
|
145
|
+
);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// ─── Step card ───────────────────────────────────────────────────────────────
|
|
149
|
+
|
|
150
|
+
function StepCard({
|
|
151
|
+
n,
|
|
152
|
+
title,
|
|
153
|
+
children,
|
|
154
|
+
}: {
|
|
155
|
+
n: string;
|
|
156
|
+
title: string;
|
|
157
|
+
children: React.ReactNode;
|
|
158
|
+
}) {
|
|
159
|
+
return (
|
|
160
|
+
<div
|
|
161
|
+
className="flex flex-col gap-4 p-6 rounded-2xl"
|
|
162
|
+
style={{
|
|
163
|
+
background: "#0f172a",
|
|
164
|
+
border: "1px solid rgba(51,65,85,0.4)",
|
|
165
|
+
}}
|
|
166
|
+
>
|
|
167
|
+
<div
|
|
168
|
+
className="w-8 h-8 rounded-full flex items-center justify-center text-sm font-bold"
|
|
169
|
+
style={{ background: "rgba(14,165,233,0.15)", color: "rgb(56,189,248)", border: "1px solid rgba(14,165,233,0.3)" }}
|
|
170
|
+
>
|
|
171
|
+
{n}
|
|
172
|
+
</div>
|
|
173
|
+
<h3 className="text-base font-semibold text-slate-200">{title}</h3>
|
|
174
|
+
{children}
|
|
175
|
+
</div>
|
|
176
|
+
);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// ─── Pricing mini card ────────────────────────────────────────────────────────
|
|
180
|
+
|
|
181
|
+
function MiniPriceCard({
|
|
182
|
+
name,
|
|
183
|
+
price,
|
|
184
|
+
desc,
|
|
185
|
+
features,
|
|
186
|
+
cta,
|
|
187
|
+
ctaHref,
|
|
188
|
+
accent,
|
|
189
|
+
dimCta,
|
|
190
|
+
}: {
|
|
191
|
+
name: string;
|
|
192
|
+
price: string;
|
|
193
|
+
desc: string;
|
|
194
|
+
features: string[];
|
|
195
|
+
cta: string;
|
|
196
|
+
ctaHref: string;
|
|
197
|
+
accent: string;
|
|
198
|
+
dimCta?: boolean;
|
|
199
|
+
}) {
|
|
200
|
+
return (
|
|
201
|
+
<div
|
|
202
|
+
className="flex flex-col gap-4 p-6 rounded-2xl"
|
|
203
|
+
style={{
|
|
204
|
+
background: "#0f172a",
|
|
205
|
+
border: `1px solid rgba(${accent},0.2)`,
|
|
206
|
+
}}
|
|
207
|
+
>
|
|
208
|
+
<div>
|
|
209
|
+
<p className="text-xs font-semibold text-slate-500 uppercase tracking-widest">{name}</p>
|
|
210
|
+
<p className="text-3xl font-bold text-slate-100 mt-1">{price}</p>
|
|
211
|
+
<p className="text-xs text-slate-600 mt-0.5">{desc}</p>
|
|
212
|
+
</div>
|
|
213
|
+
<ul className="flex flex-col gap-1.5">
|
|
214
|
+
{features.map((f) => (
|
|
215
|
+
<li key={f} className="text-xs text-slate-500 flex gap-1.5">
|
|
216
|
+
<span style={{ color: `rgb(${accent})` }}>✦</span>{f}
|
|
217
|
+
</li>
|
|
218
|
+
))}
|
|
219
|
+
</ul>
|
|
220
|
+
{dimCta ? (
|
|
221
|
+
<div className="text-xs text-center py-2 rounded-lg text-slate-600"
|
|
222
|
+
style={{ background: "rgba(51,65,85,0.2)", border: "1px solid rgba(51,65,85,0.3)" }}>
|
|
223
|
+
{cta}
|
|
224
|
+
</div>
|
|
225
|
+
) : (
|
|
226
|
+
<Link
|
|
227
|
+
href={ctaHref}
|
|
228
|
+
target={ctaHref.startsWith("http") ? "_blank" : undefined}
|
|
229
|
+
rel={ctaHref.startsWith("http") ? "noopener noreferrer" : undefined}
|
|
230
|
+
className="text-xs text-center py-2.5 rounded-lg font-semibold transition-all"
|
|
231
|
+
style={{
|
|
232
|
+
background: `rgba(${accent},0.12)`,
|
|
233
|
+
color: `rgb(${accent})`,
|
|
234
|
+
border: `1px solid rgba(${accent},0.3)`,
|
|
235
|
+
}}
|
|
236
|
+
>
|
|
237
|
+
{cta}
|
|
238
|
+
</Link>
|
|
239
|
+
)}
|
|
240
|
+
</div>
|
|
241
|
+
);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
// ─── FAQ item ─────────────────────────────────────────────────────────────────
|
|
245
|
+
|
|
246
|
+
const FAQ_ITEMS = [
|
|
247
|
+
{
|
|
248
|
+
q: "Is prism0x2A really local-first?",
|
|
249
|
+
a: "Yes. All code analysis happens on your machine. We never see your codebase, your prompts, or your API key. The only network calls are: (a) license validation to Lemonsqueezy (every 30 days), and (b) your own LLM calls using YOUR API key.",
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
q: "What's the LOC limit on Free?",
|
|
253
|
+
a: "50,000 lines of source code per project. Excludes node_modules, generated code, and build artifacts. Above 50k, Free shows partial analysis — Pro removes the limit entirely.",
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
q: "Do I need to bring my own LLM API key?",
|
|
257
|
+
a: "Yes. prism0x2A uses YOUR Anthropic API key (or any compatible provider). This means you control your costs and your data. Free tier doesn't use LLMs at all — static analysis only.",
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
q: "What's the difference between prism0x2A and Cursor/Copilot?",
|
|
261
|
+
a: "Cursor/Copilot generate code. prism0x2A makes you understand code (yours or AI-generated). Complementary, not competing. Use them together — let Cursor write it, let prism0x2A make you own it.",
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
q: "Why hex names?",
|
|
265
|
+
a: "0x2A is hex for 42. 0x2B is hex for 43 — and yes, '2B or not 2B' is intentional. Some easter eggs write themselves.",
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
q: "Monorepo support?",
|
|
269
|
+
a: "Yes, Pro tier. pnpm/npm/yarn workspaces, Lerna, Nx, and Turborepo are auto-detected. Each workspace gets its own scan context; aggregate insights span the full monorepo.",
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
q: "Can I cancel anytime?",
|
|
273
|
+
a: "Yes. Subscriptions are monthly or yearly. Cancel via your Lemonsqueezy customer portal. Your dashboard works for the rest of your billing period, then reverts to Free tier.",
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
q: "Is there an enterprise plan?",
|
|
277
|
+
a: "Yes. Custom pricing, self-hosted option, SLA. Contact us via GitHub or the Lemonsqueezy portal.",
|
|
278
|
+
},
|
|
279
|
+
];
|
|
280
|
+
|
|
281
|
+
// ─── Main component ───────────────────────────────────────────────────────────
|
|
282
|
+
|
|
283
|
+
export function LandingPage() {
|
|
284
|
+
return (
|
|
285
|
+
<div className="flex flex-col min-h-screen" style={{ background: "#020617" }}>
|
|
286
|
+
<NavBar />
|
|
287
|
+
|
|
288
|
+
{/* ══ HERO ═══════════════════════════════════════════════════════════ */}
|
|
289
|
+
<section className="w-full min-h-screen flex items-center pt-14">
|
|
290
|
+
<div className="w-full max-w-5xl mx-auto px-6 py-20 grid grid-cols-1 lg:grid-cols-2 gap-12 items-center">
|
|
291
|
+
|
|
292
|
+
{/* Left column */}
|
|
293
|
+
<div className="flex flex-col gap-7">
|
|
294
|
+
{/* Badge */}
|
|
295
|
+
<div className="inline-flex self-start items-center gap-2 text-xs px-3 py-1 rounded-full"
|
|
296
|
+
style={{ background: "rgba(14,165,233,0.1)", color: "rgb(56,189,248)", border: "1px solid rgba(14,165,233,0.25)" }}>
|
|
297
|
+
<span className="w-1.5 h-1.5 rounded-full bg-sky-400 inline-block animate-pulse" />
|
|
298
|
+
v{process.env.NEXT_PUBLIC_PRISM_VERSION ?? "0.8.0"} · now available
|
|
299
|
+
</div>
|
|
300
|
+
|
|
301
|
+
{/* Headline */}
|
|
302
|
+
<div>
|
|
303
|
+
<h1 className="text-5xl sm:text-6xl font-bold tracking-tight text-slate-100 leading-none">
|
|
304
|
+
prism<span className="font-mono text-sky-500">0x2A</span>
|
|
305
|
+
</h1>
|
|
306
|
+
<p className="mt-4 text-2xl font-medium text-slate-300 leading-snug">
|
|
307
|
+
The answer to your codebase.
|
|
308
|
+
</p>
|
|
309
|
+
<p className="mt-2 text-base text-slate-500 leading-relaxed">
|
|
310
|
+
Local-first code intelligence. Understand what AI just wrote.
|
|
311
|
+
</p>
|
|
312
|
+
</div>
|
|
313
|
+
|
|
314
|
+
{/* Quickstart (primary CTA) */}
|
|
315
|
+
<div id="quickstart" className="flex flex-col gap-2">
|
|
316
|
+
<p className="text-xs text-slate-600 font-mono uppercase tracking-widest">
|
|
317
|
+
Install in 10 seconds
|
|
318
|
+
</p>
|
|
319
|
+
<CodeBlock
|
|
320
|
+
lines={["npm install --save-dev prism0x2a", "npx prism dev"]}
|
|
321
|
+
copyText={"npm install --save-dev prism0x2a"}
|
|
322
|
+
/>
|
|
323
|
+
</div>
|
|
324
|
+
|
|
325
|
+
{/* CTAs */}
|
|
326
|
+
<div className="flex flex-wrap items-center gap-3">
|
|
327
|
+
<Link
|
|
328
|
+
href="#quickstart"
|
|
329
|
+
className="px-5 py-2.5 rounded-xl text-sm font-semibold transition-all"
|
|
330
|
+
style={{ background: "rgb(14,165,233)", color: "#020617" }}
|
|
331
|
+
>
|
|
332
|
+
Get Started Free →
|
|
333
|
+
</Link>
|
|
334
|
+
<Link
|
|
335
|
+
href="/pricing"
|
|
336
|
+
className="px-5 py-2.5 rounded-xl text-sm font-semibold transition-all"
|
|
337
|
+
style={{
|
|
338
|
+
background: "transparent",
|
|
339
|
+
color: "rgb(148,163,184)",
|
|
340
|
+
border: "1px solid rgba(51,65,85,0.5)",
|
|
341
|
+
}}
|
|
342
|
+
>
|
|
343
|
+
View Pricing →
|
|
344
|
+
</Link>
|
|
345
|
+
</div>
|
|
346
|
+
|
|
347
|
+
{/* Trust signals */}
|
|
348
|
+
<p className="text-xs text-slate-700 font-mono">
|
|
349
|
+
v{process.env.NEXT_PUBLIC_PRISM_VERSION ?? "0.8.0"} · MIT Engine + Source-Available Dashboard · €0 to start
|
|
350
|
+
</p>
|
|
351
|
+
</div>
|
|
352
|
+
|
|
353
|
+
{/* Right column: hero visual */}
|
|
354
|
+
<div className="flex items-center justify-center">
|
|
355
|
+
<HeroVisual />
|
|
356
|
+
</div>
|
|
357
|
+
</div>
|
|
358
|
+
</section>
|
|
359
|
+
|
|
360
|
+
{/* ══ PROBLEM ════════════════════════════════════════════════════════ */}
|
|
361
|
+
<Section className="py-24">
|
|
362
|
+
<SectionLabel>The problem</SectionLabel>
|
|
363
|
+
<h2 className="text-3xl font-bold text-slate-100 tracking-tight max-w-xl">
|
|
364
|
+
Your codebase is bigger than it was.
|
|
365
|
+
</h2>
|
|
366
|
+
<p className="mt-4 text-slate-500 max-w-lg leading-relaxed">
|
|
367
|
+
AI-generated code is great. Understanding it is harder.
|
|
368
|
+
prism0x2A makes your codebase legible to you again.
|
|
369
|
+
</p>
|
|
370
|
+
|
|
371
|
+
<div className="mt-12 grid grid-cols-1 sm:grid-cols-3 gap-4">
|
|
372
|
+
{[
|
|
373
|
+
{
|
|
374
|
+
icon: "⌨️",
|
|
375
|
+
headline: "Cursor writes it.",
|
|
376
|
+
body: "You ship fast. Features land. The AI keeps up with your ideas.",
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
icon: "🤖",
|
|
380
|
+
headline: "Claude reviews it.",
|
|
381
|
+
body: "You get the diff, the explanation, the confidence to merge.",
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
icon: "✦",
|
|
385
|
+
headline: "prism0x2A makes you own it.",
|
|
386
|
+
body: "Coverage gaps, import cycles, cross-layer context — you actually understand what's in production.",
|
|
387
|
+
accent: true,
|
|
388
|
+
},
|
|
389
|
+
].map(({ icon, headline, body, accent }) => (
|
|
390
|
+
<div
|
|
391
|
+
key={headline}
|
|
392
|
+
className="flex flex-col gap-4 p-6 rounded-2xl"
|
|
393
|
+
style={{
|
|
394
|
+
background: accent ? "rgba(14,165,233,0.06)" : "#0f172a",
|
|
395
|
+
border: accent ? "1px solid rgba(14,165,233,0.2)" : "1px solid rgba(51,65,85,0.4)",
|
|
396
|
+
}}
|
|
397
|
+
>
|
|
398
|
+
<span className="text-2xl">{icon}</span>
|
|
399
|
+
<h3 className="text-base font-semibold text-slate-200">{headline}</h3>
|
|
400
|
+
<p className="text-sm text-slate-500 leading-relaxed">{body}</p>
|
|
401
|
+
</div>
|
|
402
|
+
))}
|
|
403
|
+
</div>
|
|
404
|
+
</Section>
|
|
405
|
+
|
|
406
|
+
{/* ══ HOW IT WORKS ═══════════════════════════════════════════════════ */}
|
|
407
|
+
<Section id="features" className="py-24">
|
|
408
|
+
<SectionLabel>How it works</SectionLabel>
|
|
409
|
+
<h2 className="text-3xl font-bold text-slate-100 tracking-tight">
|
|
410
|
+
Three steps to clarity.
|
|
411
|
+
</h2>
|
|
412
|
+
|
|
413
|
+
<div className="mt-12 grid grid-cols-1 sm:grid-cols-3 gap-4">
|
|
414
|
+
<StepCard n="1" title="Install in seconds">
|
|
415
|
+
<CodeBlock
|
|
416
|
+
lines={["npm install --save-dev prism0x2a"]}
|
|
417
|
+
copyText="npm install --save-dev prism0x2a"
|
|
418
|
+
/>
|
|
419
|
+
<p className="text-sm text-slate-500">No cloud. No account. One package.</p>
|
|
420
|
+
</StepCard>
|
|
421
|
+
|
|
422
|
+
<StepCard n="2" title="Scan your codebase">
|
|
423
|
+
<CodeBlock lines={["npx prism dev"]} copyText="npx prism dev" />
|
|
424
|
+
<p className="text-sm text-slate-500">
|
|
425
|
+
Dashboard opens at localhost:3001. Cycles, coverage, imports — instantly.
|
|
426
|
+
</p>
|
|
427
|
+
</StepCard>
|
|
428
|
+
|
|
429
|
+
<StepCard n="3" title="Get answers">
|
|
430
|
+
<div
|
|
431
|
+
className="rounded-lg px-4 py-3 text-xs font-mono text-slate-400"
|
|
432
|
+
style={{ background: "rgba(2,6,23,0.6)", border: "1px solid rgba(51,65,85,0.4)" }}
|
|
433
|
+
>
|
|
434
|
+
<div style={{ color: "rgb(52,211,153)" }}>✓ 0 import cycles</div>
|
|
435
|
+
<div style={{ color: "rgb(251,191,36)" }}>⚠ 14 uncovered branches</div>
|
|
436
|
+
<div style={{ color: "rgb(96,165,250)" }}>✦ 3 AI insights ready</div>
|
|
437
|
+
</div>
|
|
438
|
+
<p className="text-sm text-slate-500">
|
|
439
|
+
Activate Pro for LLM-powered insights, monorepo support, and custom queries.
|
|
440
|
+
</p>
|
|
441
|
+
</StepCard>
|
|
442
|
+
</div>
|
|
443
|
+
|
|
444
|
+
<p className="mt-8 text-sm text-slate-600 text-center font-mono">
|
|
445
|
+
All local. All offline-capable. No data leaves your machine.
|
|
446
|
+
</p>
|
|
447
|
+
</Section>
|
|
448
|
+
|
|
449
|
+
{/* ══ FEATURES (Bot Family) ══════════════════════════════════════════ */}
|
|
450
|
+
<Section className="py-24">
|
|
451
|
+
<SectionLabel>The full spectrum</SectionLabel>
|
|
452
|
+
<h2 className="text-3xl font-bold text-slate-100 tracking-tight">
|
|
453
|
+
Code intelligence, all three frequencies.
|
|
454
|
+
</h2>
|
|
455
|
+
|
|
456
|
+
<div className="mt-12 grid grid-cols-1 sm:grid-cols-3 gap-4">
|
|
457
|
+
<BotCard
|
|
458
|
+
color="59,130,246"
|
|
459
|
+
label="BLUE"
|
|
460
|
+
title="Sessions + Recommendations"
|
|
461
|
+
description="LLM-driven code investigations. Ask questions about your architecture, get answers, track decisions over time. Like a senior engineer in your terminal."
|
|
462
|
+
href="/blue"
|
|
463
|
+
/>
|
|
464
|
+
<BotCard
|
|
465
|
+
color="245,158,11"
|
|
466
|
+
label="AMBER"
|
|
467
|
+
title="Coverage + Registry + Files"
|
|
468
|
+
description="See what's tested, what's not, and where your business logic lives. File metadata, coverage hot-spots, capability registry — know your blind spots."
|
|
469
|
+
href="/amber"
|
|
470
|
+
/>
|
|
471
|
+
<BotCard
|
|
472
|
+
color="16,185,129"
|
|
473
|
+
label="GREEN"
|
|
474
|
+
title="Insights + Cross-Layer + Queries"
|
|
475
|
+
description="Auto-discover patterns across your codebase. Write custom queries. Get cross-layer insights that span sessions, coverage, and structure simultaneously."
|
|
476
|
+
href="/green"
|
|
477
|
+
/>
|
|
478
|
+
</div>
|
|
479
|
+
</Section>
|
|
480
|
+
|
|
481
|
+
{/* ══ forge0x2B COMING SOON ══════════════════════════════════════════ */}
|
|
482
|
+
<Section className="py-24">
|
|
483
|
+
<div
|
|
484
|
+
className="relative rounded-2xl p-8 sm:p-12 overflow-hidden"
|
|
485
|
+
style={{
|
|
486
|
+
background: "linear-gradient(135deg, rgba(204,102,51,0.06), rgba(232,72,153,0.04))",
|
|
487
|
+
border: "1px solid rgba(204,102,51,0.2)",
|
|
488
|
+
}}
|
|
489
|
+
>
|
|
490
|
+
<div
|
|
491
|
+
className="absolute top-0 left-1/4 right-1/4 h-px"
|
|
492
|
+
style={{ background: "linear-gradient(90deg, transparent, rgba(204,102,51,0.5), transparent)" }}
|
|
493
|
+
/>
|
|
494
|
+
|
|
495
|
+
<div className="flex flex-col sm:flex-row gap-8 items-start">
|
|
496
|
+
<div className="flex flex-col gap-5 flex-1">
|
|
497
|
+
<div>
|
|
498
|
+
<span
|
|
499
|
+
className="text-xs font-semibold px-2.5 py-1 rounded-full"
|
|
500
|
+
style={{ background: "rgba(204,102,51,0.15)", color: "rgb(251,146,60)", border: "1px solid rgba(204,102,51,0.3)" }}
|
|
501
|
+
>
|
|
502
|
+
Early Access — Coming Soon
|
|
503
|
+
</span>
|
|
504
|
+
</div>
|
|
505
|
+
<h2 className="text-3xl font-bold text-slate-100 tracking-tight">
|
|
506
|
+
Coming Soon: forge<span className="font-mono">0x2B</span>
|
|
507
|
+
</h2>
|
|
508
|
+
<p className="text-lg text-slate-400 leading-relaxed">
|
|
509
|
+
An architect AND a marketing department, in a box.
|
|
510
|
+
</p>
|
|
511
|
+
<p className="text-sm text-slate-500 leading-relaxed italic font-mono">
|
|
512
|
+
2B or not 2B.
|
|
513
|
+
</p>
|
|
514
|
+
|
|
515
|
+
<ul className="flex flex-col gap-2.5">
|
|
516
|
+
{[
|
|
517
|
+
"Auto-generated release notes from your prism0x2A sessions",
|
|
518
|
+
"Blog posts from technical changes",
|
|
519
|
+
"Social copy from feature ships",
|
|
520
|
+
"Internal updates from code-health trends",
|
|
521
|
+
].map((item) => (
|
|
522
|
+
<li key={item} className="flex items-start gap-2 text-sm text-slate-400">
|
|
523
|
+
<span style={{ color: "rgb(251,146,60)" }}>→</span>
|
|
524
|
+
{item}
|
|
525
|
+
</li>
|
|
526
|
+
))}
|
|
527
|
+
</ul>
|
|
528
|
+
|
|
529
|
+
<p className="text-sm text-slate-500 leading-relaxed">
|
|
530
|
+
Use prism0x2A to understand your code. Use forge0x2B to tell the story.
|
|
531
|
+
</p>
|
|
532
|
+
|
|
533
|
+
<Link
|
|
534
|
+
href="https://github.com/dadenjo/forge0x2B"
|
|
535
|
+
target="_blank"
|
|
536
|
+
rel="noopener noreferrer"
|
|
537
|
+
className="self-start text-sm font-semibold px-4 py-2.5 rounded-xl transition-all"
|
|
538
|
+
style={{
|
|
539
|
+
background: "rgba(204,102,51,0.12)",
|
|
540
|
+
color: "rgb(251,146,60)",
|
|
541
|
+
border: "1px solid rgba(204,102,51,0.3)",
|
|
542
|
+
}}
|
|
543
|
+
>
|
|
544
|
+
Watch on GitHub →
|
|
545
|
+
</Link>
|
|
546
|
+
</div>
|
|
547
|
+
|
|
548
|
+
{/* Bundle teaser */}
|
|
549
|
+
<div
|
|
550
|
+
className="flex-shrink-0 w-full sm:w-64 rounded-xl p-5 flex flex-col gap-4"
|
|
551
|
+
style={{
|
|
552
|
+
background: "rgba(8,16,36,0.6)",
|
|
553
|
+
border: "1px solid rgba(167,139,250,0.25)",
|
|
554
|
+
}}
|
|
555
|
+
>
|
|
556
|
+
<div>
|
|
557
|
+
<p className="text-xs font-semibold text-violet-400 uppercase tracking-widest">Spectrum 0x55 Bundle</p>
|
|
558
|
+
<p className="text-2xl font-bold text-slate-100 mt-1">€49<span className="text-sm font-normal text-slate-500">/mo</span></p>
|
|
559
|
+
<p className="text-xs text-slate-600 mt-0.5">save €19/mo vs separate</p>
|
|
560
|
+
</div>
|
|
561
|
+
<ul className="flex flex-col gap-1.5 text-xs text-slate-500">
|
|
562
|
+
<li className="flex gap-1.5"><span className="text-violet-400">✦</span>prism0x2A Pro — now</li>
|
|
563
|
+
<li className="flex gap-1.5"><span className="text-orange-400">✦</span>forge0x2B — unlocks at GA</li>
|
|
564
|
+
<li className="flex gap-1.5"><span className="text-emerald-400">✦</span>Early access pricing locked</li>
|
|
565
|
+
</ul>
|
|
566
|
+
<Link
|
|
567
|
+
href="https://prism0x2a.lemonsqueezy.com/checkout/buy/64d25b45-7c4a-410d-b4aa-7504f98ab5f7"
|
|
568
|
+
target="_blank"
|
|
569
|
+
rel="noopener noreferrer"
|
|
570
|
+
className="text-xs text-center py-2 rounded-lg font-semibold"
|
|
571
|
+
style={{
|
|
572
|
+
background: "rgba(99,102,241,0.15)",
|
|
573
|
+
color: "rgb(167,139,250)",
|
|
574
|
+
border: "1px solid rgba(167,139,250,0.3)",
|
|
575
|
+
}}
|
|
576
|
+
>
|
|
577
|
+
Get Spectrum 0x55 →
|
|
578
|
+
</Link>
|
|
579
|
+
</div>
|
|
580
|
+
</div>
|
|
581
|
+
</div>
|
|
582
|
+
</Section>
|
|
583
|
+
|
|
584
|
+
{/* ══ PRICING SNIPPET ════════════════════════════════════════════════ */}
|
|
585
|
+
<Section className="py-24">
|
|
586
|
+
<SectionLabel>Pricing</SectionLabel>
|
|
587
|
+
<h2 className="text-3xl font-bold text-slate-100 tracking-tight">
|
|
588
|
+
Pricing that respects your wallet.
|
|
589
|
+
</h2>
|
|
590
|
+
<p className="mt-2 text-slate-500">
|
|
591
|
+
If you can afford Cursor or Claude Max, you can afford to know what your code does.
|
|
592
|
+
</p>
|
|
593
|
+
|
|
594
|
+
<div className="mt-12 grid grid-cols-1 sm:grid-cols-3 gap-4">
|
|
595
|
+
<MiniPriceCard
|
|
596
|
+
name="Free"
|
|
597
|
+
price="€0"
|
|
598
|
+
desc="forever"
|
|
599
|
+
features={["Up to 50k LOC", "Static analysis", "Import cycles", "1 project"]}
|
|
600
|
+
cta="Start Free"
|
|
601
|
+
ctaHref="#quickstart"
|
|
602
|
+
accent="148,163,184"
|
|
603
|
+
/>
|
|
604
|
+
<MiniPriceCard
|
|
605
|
+
name="Pro"
|
|
606
|
+
price="€39"
|
|
607
|
+
desc="/mo · save 17% yearly"
|
|
608
|
+
features={["Unlimited LOC", "LLM insights", "Monorepo support", "Custom queries"]}
|
|
609
|
+
cta="Get Pro"
|
|
610
|
+
ctaHref="https://prism0x2a.lemonsqueezy.com/checkout/buy/a9097951-5d54-438c-89ef-3e093d88f6c6"
|
|
611
|
+
accent="59,130,246"
|
|
612
|
+
/>
|
|
613
|
+
<MiniPriceCard
|
|
614
|
+
name="Spectrum 0x55"
|
|
615
|
+
price="€49"
|
|
616
|
+
desc="/mo · Pro + forge0x2B"
|
|
617
|
+
features={["Everything in Pro", "forge0x2B when GA", "Best value bundle", "Early access pricing"]}
|
|
618
|
+
cta="Get Spectrum"
|
|
619
|
+
ctaHref="https://prism0x2a.lemonsqueezy.com/checkout/buy/64d25b45-7c4a-410d-b4aa-7504f98ab5f7"
|
|
620
|
+
accent="167,139,250"
|
|
621
|
+
/>
|
|
622
|
+
</div>
|
|
623
|
+
|
|
624
|
+
<div className="mt-8 flex flex-col sm:flex-row items-center justify-between gap-4">
|
|
625
|
+
<Link href="/pricing" className="text-sm text-indigo-400 hover:text-indigo-300 transition-colors">
|
|
626
|
+
View full pricing + Team plan →
|
|
627
|
+
</Link>
|
|
628
|
+
<div className="flex items-center gap-4 text-xs text-slate-700">
|
|
629
|
+
<span>Powered by Lemon Squeezy</span>
|
|
630
|
+
<span>EU VAT compliant</span>
|
|
631
|
+
<span>Cancel anytime</span>
|
|
632
|
+
</div>
|
|
633
|
+
</div>
|
|
634
|
+
</Section>
|
|
635
|
+
|
|
636
|
+
{/* ══ FAQ ════════════════════════════════════════════════════════════ */}
|
|
637
|
+
<Section className="py-24">
|
|
638
|
+
<SectionLabel>FAQ</SectionLabel>
|
|
639
|
+
<h2 className="text-3xl font-bold text-slate-100 tracking-tight mb-8">
|
|
640
|
+
Frequently asked questions.
|
|
641
|
+
</h2>
|
|
642
|
+
<div className="flex flex-col gap-3 max-w-2xl">
|
|
643
|
+
{FAQ_ITEMS.map(({ q, a }) => (
|
|
644
|
+
<details
|
|
645
|
+
key={q}
|
|
646
|
+
className="group rounded-xl px-6 py-4"
|
|
647
|
+
style={{
|
|
648
|
+
background: "#0f172a",
|
|
649
|
+
border: "1px solid rgba(51,65,85,0.4)",
|
|
650
|
+
}}
|
|
651
|
+
>
|
|
652
|
+
<summary className="text-sm font-medium text-slate-300 cursor-pointer list-none flex items-center justify-between gap-3">
|
|
653
|
+
{q}
|
|
654
|
+
<span className="text-slate-600 group-open:rotate-180 transition-transform flex-shrink-0 text-xs">
|
|
655
|
+
▼
|
|
656
|
+
</span>
|
|
657
|
+
</summary>
|
|
658
|
+
<p className="mt-3 text-sm text-slate-500 leading-relaxed">{a}</p>
|
|
659
|
+
</details>
|
|
660
|
+
))}
|
|
661
|
+
</div>
|
|
662
|
+
</Section>
|
|
663
|
+
|
|
664
|
+
{/* ══ FINAL CTA ══════════════════════════════════════════════════════ */}
|
|
665
|
+
<Section className="py-24">
|
|
666
|
+
<div
|
|
667
|
+
className="rounded-2xl p-10 sm:p-16 text-center flex flex-col items-center gap-8"
|
|
668
|
+
style={{
|
|
669
|
+
background: "linear-gradient(135deg, rgba(14,165,233,0.06), rgba(99,102,241,0.04))",
|
|
670
|
+
border: "1px solid rgba(14,165,233,0.15)",
|
|
671
|
+
}}
|
|
672
|
+
>
|
|
673
|
+
<h2 className="text-3xl sm:text-4xl font-bold text-slate-100 tracking-tight">
|
|
674
|
+
Get started in 60 seconds.
|
|
675
|
+
</h2>
|
|
676
|
+
<div className="w-full max-w-lg">
|
|
677
|
+
<CodeBlock
|
|
678
|
+
lines={[
|
|
679
|
+
"# In your TypeScript / React project root:",
|
|
680
|
+
"npm install --save-dev prism0x2a",
|
|
681
|
+
"npx prism init",
|
|
682
|
+
"npm run prism",
|
|
683
|
+
]}
|
|
684
|
+
copyText={"npm install --save-dev prism0x2a"}
|
|
685
|
+
/>
|
|
686
|
+
<p className="mt-3 text-xs text-slate-600 font-mono">
|
|
687
|
+
Dashboard opens at http://localhost:3001 scanning your project.
|
|
688
|
+
</p>
|
|
689
|
+
</div>
|
|
690
|
+
|
|
691
|
+
<div className="flex flex-wrap justify-center gap-4">
|
|
692
|
+
<Link
|
|
693
|
+
href="https://github.com/dadenjo/prism0x2A"
|
|
694
|
+
target="_blank"
|
|
695
|
+
rel="noopener noreferrer"
|
|
696
|
+
className="text-sm font-medium text-slate-400 hover:text-slate-200 transition-colors"
|
|
697
|
+
>
|
|
698
|
+
Read the docs →
|
|
699
|
+
</Link>
|
|
700
|
+
<Link
|
|
701
|
+
href="https://github.com/dadenjo/prism0x2A"
|
|
702
|
+
target="_blank"
|
|
703
|
+
rel="noopener noreferrer"
|
|
704
|
+
className="text-sm font-medium text-slate-400 hover:text-slate-200 transition-colors"
|
|
705
|
+
>
|
|
706
|
+
View on GitHub →
|
|
707
|
+
</Link>
|
|
708
|
+
</div>
|
|
709
|
+
|
|
710
|
+
<p className="text-xs text-slate-700 font-mono">
|
|
711
|
+
Built on a 42nd birthday. 0x2A = 42. The answer to all questions.
|
|
712
|
+
</p>
|
|
713
|
+
</div>
|
|
714
|
+
</Section>
|
|
715
|
+
|
|
716
|
+
<Footer />
|
|
717
|
+
</div>
|
|
718
|
+
);
|
|
719
|
+
}
|