This commit is contained in:
2025-09-11 13:17:45 -07:00
parent a9425720e9
commit 832d815bb8
103 changed files with 663 additions and 406 deletions

View File

@@ -0,0 +1 @@
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-01793df6e574a3a4.js" defer=""></script><script src="/_next/static/chunks/framework-2c16ac744b6cdea6.js" defer=""></script><script src="/_next/static/chunks/main-6622d1cad8c103c3.js" defer=""></script><script src="/_next/static/chunks/pages/_app-96ededbbb9f1d568.js" defer=""></script><script src="/_next/static/chunks/pages/_error-76826f8ed8f41aa0.js" defer=""></script><script src="/_next/static/N57n8-UzD433oF6V8Gsgk/_buildManifest.js" defer=""></script><script src="/_next/static/N57n8-UzD433oF6V8Gsgk/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">This page could not be found<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"N57n8-UzD433oF6V8Gsgk","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>

View File

@@ -0,0 +1 @@
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>500: Internal Server Error</title><meta name="next-head-count" content="3"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-01793df6e574a3a4.js" defer=""></script><script src="/_next/static/chunks/framework-2c16ac744b6cdea6.js" defer=""></script><script src="/_next/static/chunks/main-6622d1cad8c103c3.js" defer=""></script><script src="/_next/static/chunks/pages/_app-96ededbbb9f1d568.js" defer=""></script><script src="/_next/static/chunks/pages/_error-76826f8ed8f41aa0.js" defer=""></script><script src="/_next/static/N57n8-UzD433oF6V8Gsgk/_buildManifest.js" defer=""></script><script src="/_next/static/N57n8-UzD433oF6V8Gsgk/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"N57n8-UzD433oF6V8Gsgk","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>

View File

@@ -0,0 +1 @@
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-01793df6e574a3a4.js" defer=""></script><script src="/_next/static/chunks/framework-2c16ac744b6cdea6.js" defer=""></script><script src="/_next/static/chunks/main-6622d1cad8c103c3.js" defer=""></script><script src="/_next/static/chunks/pages/_app-96ededbbb9f1d568.js" defer=""></script><script src="/_next/static/chunks/290-09ad9f8fe176a9f3.js" defer=""></script><script src="/_next/static/chunks/66-79e05164cd908d1b.js" defer=""></script><script src="/_next/static/chunks/607-d5222b1f74dc4db9.js" defer=""></script><script src="/_next/static/chunks/709-81fbe3433577737f.js" defer=""></script><script src="/_next/static/chunks/pages/Dashboard-d39af588c18345c6.js" defer=""></script><script src="/_next/static/N57n8-UzD433oF6V8Gsgk/_buildManifest.js" defer=""></script><script src="/_next/static/N57n8-UzD433oF6V8Gsgk/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div class="p-6 max-w-7xl mx-auto"><h1 class="text-3xl font-bold">Training Dashboard</h1><div class="bg-white p-6 rounded-lg shadow-md"><p class="text-gray-600">Loading dashboard data...</p></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/Dashboard","query":{},"buildId":"N57n8-UzD433oF6V8Gsgk","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>

View File

@@ -0,0 +1 @@
{"version":1,"files":["../webpack-runtime.js","../chunks/367.js","../chunks/928.js","../../../package.json"]}

View File

@@ -0,0 +1 @@
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-01793df6e574a3a4.js" defer=""></script><script src="/_next/static/chunks/framework-2c16ac744b6cdea6.js" defer=""></script><script src="/_next/static/chunks/main-6622d1cad8c103c3.js" defer=""></script><script src="/_next/static/chunks/pages/_app-96ededbbb9f1d568.js" defer=""></script><script src="/_next/static/chunks/290-09ad9f8fe176a9f3.js" defer=""></script><script src="/_next/static/chunks/664-e1c601a6730eca64.js" defer=""></script><script src="/_next/static/chunks/pages/PlanDetails-b13a72d39933ab60.js" defer=""></script><script src="/_next/static/N57n8-UzD433oF6V8Gsgk/_buildManifest.js" defer=""></script><script src="/_next/static/N57n8-UzD433oF6V8Gsgk/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div class="min-h-screen bg-gray-50 p-4 md:p-6"><div class="max-w-4xl mx-auto"><div class="p-4 space-y-4"><div class="animate-pulse space-y-4"><div class="h-6 bg-gray-200 rounded w-1/4"></div><div class="h-4 bg-gray-200 rounded w-1/2"></div><div class="space-y-2"><div class="h-12 bg-gray-100 rounded-lg"></div><div class="h-12 bg-gray-100 rounded-lg"></div><div class="h-12 bg-gray-100 rounded-lg"></div></div></div></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/PlanDetails","query":{},"buildId":"N57n8-UzD433oF6V8Gsgk","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>

View File

@@ -0,0 +1 @@
{"version":1,"files":["../webpack-runtime.js","../chunks/367.js","../chunks/674.js","../chunks/163.js","../chunks/664.js","../../../package.json"]}

View File

@@ -0,0 +1 @@
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-01793df6e574a3a4.js" defer=""></script><script src="/_next/static/chunks/framework-2c16ac744b6cdea6.js" defer=""></script><script src="/_next/static/chunks/main-6622d1cad8c103c3.js" defer=""></script><script src="/_next/static/chunks/pages/_app-96ededbbb9f1d568.js" defer=""></script><script src="/_next/static/chunks/290-09ad9f8fe176a9f3.js" defer=""></script><script src="/_next/static/chunks/66-79e05164cd908d1b.js" defer=""></script><script src="/_next/static/chunks/pages/PlanGeneration-ccc0a861f54ea5ea.js" defer=""></script><script src="/_next/static/N57n8-UzD433oF6V8Gsgk/_buildManifest.js" defer=""></script><script src="/_next/static/N57n8-UzD433oF6V8Gsgk/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div class="max-w-4xl mx-auto p-6"><div class="mb-8"><div class="flex justify-between items-center mb-2"><div class="flex items-center"><div class="w-8 h-8 rounded-full flex items-center justify-center bg-blue-600 text-white">1</div><div class="w-16 h-1 bg-gray-200"></div></div><div class="flex items-center"><div class="w-8 h-8 rounded-full flex items-center justify-center bg-gray-200 text-gray-600">2</div><div class="w-16 h-1 bg-gray-200"></div></div><div class="flex items-center"><div class="w-8 h-8 rounded-full flex items-center justify-center bg-gray-200 text-gray-600">3</div></div></div><div class="text-sm text-gray-600 text-center">Step <!-- -->1<!-- --> of <!-- -->3</div></div><div class="bg-white p-6 rounded-lg shadow-md"><h2 class="text-2xl font-bold mb-6">Select Training Goals</h2><div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-8"><button class="p-4 text-left rounded-lg border-2 transition-colors border-gray-200 hover:border-blue-200"><h3 class="font-semibold mb-2">Build Endurance</h3><p class="text-sm text-gray-600">Focus on longer rides at moderate intensity</p></button><button class="p-4 text-left rounded-lg border-2 transition-colors border-gray-200 hover:border-blue-200"><h3 class="font-semibold mb-2">Increase Power</h3><p class="text-sm text-gray-600">High-intensity intervals and strength training</p></button><button class="p-4 text-left rounded-lg border-2 transition-colors border-gray-200 hover:border-blue-200"><h3 class="font-semibold mb-2">Weight Management</h3><p class="text-sm text-gray-600">Calorie-burning rides with nutrition planning</p></button><button class="p-4 text-left rounded-lg border-2 transition-colors border-gray-200 hover:border-blue-200"><h3 class="font-semibold mb-2">Event Preparation</h3><p class="text-sm text-gray-600">Targeted training for specific competitions</p></button></div><div class="mb-6"><button class="text-blue-600 hover:text-blue-700 flex items-center"><span class="mr-2">+</span> Add Custom Goal</button></div><div class="flex justify-end"><button disabled="" class="bg-blue-600 text-white px-6 py-2 rounded-md hover:bg-blue-700 disabled:bg-gray-400">Next</button></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/PlanGeneration","query":{},"buildId":"N57n8-UzD433oF6V8Gsgk","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>

View File

@@ -0,0 +1 @@
{"version":1,"files":["../webpack-runtime.js","../chunks/367.js","../chunks/674.js","../chunks/163.js","../../../package.json"]}

View File

@@ -0,0 +1 @@
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-01793df6e574a3a4.js" defer=""></script><script src="/_next/static/chunks/framework-2c16ac744b6cdea6.js" defer=""></script><script src="/_next/static/chunks/main-6622d1cad8c103c3.js" defer=""></script><script src="/_next/static/chunks/pages/_app-96ededbbb9f1d568.js" defer=""></script><script src="/_next/static/chunks/290-09ad9f8fe176a9f3.js" defer=""></script><script src="/_next/static/chunks/66-79e05164cd908d1b.js" defer=""></script><script src="/_next/static/chunks/pages/Plans-15729ba4f970ca91.js" defer=""></script><script src="/_next/static/N57n8-UzD433oF6V8Gsgk/_buildManifest.js" defer=""></script><script src="/_next/static/N57n8-UzD433oF6V8Gsgk/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div class="p-6 max-w-7xl mx-auto"><h1 class="text-3xl font-bold mb-8">Training Plans</h1><div class="bg-white p-6 rounded-lg shadow-md"><p class="text-gray-600">Loading training plans...</p></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/Plans","query":{},"buildId":"N57n8-UzD433oF6V8Gsgk","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>

View File

@@ -0,0 +1 @@
{"version":1,"files":["../webpack-runtime.js","../chunks/367.js","../chunks/928.js","../../../package.json"]}

View File

@@ -0,0 +1 @@
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-01793df6e574a3a4.js" defer=""></script><script src="/_next/static/chunks/framework-2c16ac744b6cdea6.js" defer=""></script><script src="/_next/static/chunks/main-6622d1cad8c103c3.js" defer=""></script><script src="/_next/static/chunks/pages/_app-96ededbbb9f1d568.js" defer=""></script><script src="/_next/static/chunks/cb355538-f860d5f5936e7ba7.js" defer=""></script><script src="/_next/static/chunks/290-09ad9f8fe176a9f3.js" defer=""></script><script src="/_next/static/chunks/607-d5222b1f74dc4db9.js" defer=""></script><script src="/_next/static/chunks/120-a80b9a7bda6fa2bd.js" defer=""></script><script src="/_next/static/chunks/436-767e2150291996f3.js" defer=""></script><script src="/_next/static/chunks/pages/RoutesPage-7d2e63dfbc1cf299.js" defer=""></script><script src="/_next/static/N57n8-UzD433oF6V8Gsgk/_buildManifest.js" defer=""></script><script src="/_next/static/N57n8-UzD433oF6V8Gsgk/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div class="p-6 max-w-7xl mx-auto"><h1 class="text-3xl font-bold mb-8">Routes</h1><div class="space-y-8"><div class="bg-white p-6 rounded-lg shadow-md"><div class="grid grid-cols-1 md:grid-cols-4 gap-4 mb-6 p-4 bg-gray-50 rounded-lg"><div><label class="block text-sm font-medium text-gray-700 mb-1">Search</label><input type="text" placeholder="Search routes..." class="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500" value=""/></div><div><label class="block text-sm font-medium text-gray-700 mb-1">Min Distance (km)</label><input type="number" class="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500" value="0"/></div><div><label class="block text-sm font-medium text-gray-700 mb-1">Max Distance (km)</label><input type="number" class="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500" value="500"/></div><div><label class="block text-sm font-medium text-gray-700 mb-1">Difficulty</label><select class="w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"><option value="all" selected="">All Difficulties</option><option value="easy">Easy</option><option value="moderate">Moderate</option><option value="hard">Hard</option><option value="extreme">Extreme</option></select></div></div><div class="mb-8"><div class="border-2 border-dashed rounded-lg p-6 text-center border-gray-300"><input type="file" id="gpx-upload" class="hidden" accept=".gpx,application/gpx+xml"/><label for="gpx-upload" class="cursor-pointer"><p class="text-gray-600">Drag and drop GPX file here or<!-- --> <span class="text-blue-600 font-medium">browse files</span></p></label></div></div></div><div class="flex justify-center items-center h-screen"><div class="animate-spin rounded-full h-12 w-12 border-b-2 border-blue-500"></div></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/RoutesPage","query":{},"buildId":"N57n8-UzD433oF6V8Gsgk","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>

View File

@@ -0,0 +1 @@
{"version":1,"files":["../webpack-runtime.js","../chunks/367.js","../../../package.json"]}

View File

@@ -0,0 +1 @@
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-01793df6e574a3a4.js" defer=""></script><script src="/_next/static/chunks/framework-2c16ac744b6cdea6.js" defer=""></script><script src="/_next/static/chunks/main-6622d1cad8c103c3.js" defer=""></script><script src="/_next/static/chunks/pages/_app-96ededbbb9f1d568.js" defer=""></script><script src="/_next/static/chunks/290-09ad9f8fe176a9f3.js" defer=""></script><script src="/_next/static/chunks/66-79e05164cd908d1b.js" defer=""></script><script src="/_next/static/chunks/607-d5222b1f74dc4db9.js" defer=""></script><script src="/_next/static/chunks/120-a80b9a7bda6fa2bd.js" defer=""></script><script src="/_next/static/chunks/766-385706f56974a671.js" defer=""></script><script src="/_next/static/chunks/pages/Rules-1b051d27ec501cd8.js" defer=""></script><script src="/_next/static/N57n8-UzD433oF6V8Gsgk/_buildManifest.js" defer=""></script><script src="/_next/static/N57n8-UzD433oF6V8Gsgk/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div class="p-6 max-w-7xl mx-auto"><h1 class="text-3xl font-bold mb-6">Training Rules Management</h1><div class="flex gap-6 mb-8"><div class="flex-1"><div class="border rounded-lg p-4 bg-white shadow-sm"><div class="flex justify-between items-center mb-4"><h2 class="text-xl font-semibold">Natural Language Editor</h2><div class="relative"><button class="px-3 py-1 bg-blue-100 text-blue-800 rounded-lg hover:bg-blue-200">Templates</button></div></div><textarea id="ruleEditor" class="w-full p-3 border rounded-lg focus:ring-2 focus:ring-blue-500" placeholder="Enter your training rules in natural language..." rows="5"></textarea><div class="flex justify-between items-center mt-4"><div class="text-sm text-gray-600">0<!-- -->/5000 characters •<!-- --> <span class="text-green-600">Valid</span></div><button class="px-4 py-2 rounded-lg bg-blue-600 text-white hover:bg-blue-700">Parse Rules</button></div></div></div><div class="flex-1"><div class="border rounded-lg p-4 bg-white shadow-sm"><h2 class="text-xl font-semibold mb-4">Rule Configuration Preview</h2><div class="border rounded-lg overflow-hidden mb-4"><div class="p-4 text-gray-500">Parsed rules will appear here...</div></div><button disabled="" class="w-full py-2 rounded-lg font-medium bg-gray-200 text-gray-500 cursor-not-allowed">Save Rule Set</button></div></div></div><div class="border rounded-lg p-4 bg-white shadow-sm"><h2 class="text-xl font-semibold mb-4">Saved Rule Sets</h2><div class="text-gray-500 text-center py-4">No rule sets saved yet. Create one using the editor above.</div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/Rules","query":{},"buildId":"N57n8-UzD433oF6V8Gsgk","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>

View File

@@ -0,0 +1 @@
{"version":1,"files":["../webpack-runtime.js","../chunks/367.js","../../../package.json"]}

View File

@@ -0,0 +1 @@
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-01793df6e574a3a4.js" defer=""></script><script src="/_next/static/chunks/framework-2c16ac744b6cdea6.js" defer=""></script><script src="/_next/static/chunks/main-6622d1cad8c103c3.js" defer=""></script><script src="/_next/static/chunks/pages/_app-96ededbbb9f1d568.js" defer=""></script><script src="/_next/static/chunks/290-09ad9f8fe176a9f3.js" defer=""></script><script src="/_next/static/chunks/66-79e05164cd908d1b.js" defer=""></script><script src="/_next/static/chunks/pages/Workouts-f170f68f0e2eb4ba.js" defer=""></script><script src="/_next/static/N57n8-UzD433oF6V8Gsgk/_buildManifest.js" defer=""></script><script src="/_next/static/N57n8-UzD433oF6V8Gsgk/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div class="p-6 max-w-7xl mx-auto"><h1 class="text-3xl font-bold mb-8">Workouts</h1><div class="bg-white p-6 rounded-lg shadow-md"><p class="text-gray-600">Loading workout data...</p></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/Workouts","query":{},"buildId":"N57n8-UzD433oF6V8Gsgk","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>

View File

@@ -0,0 +1 @@
{"version":1,"files":["../webpack-runtime.js","../chunks/367.js","../../../package.json"]}

View File

@@ -0,0 +1 @@
"use strict";(()=>{var e={};e.id=888,e.ids=[888],e.modules={6745:(e,t,r)=>{function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return c}});let o=r(167),i=r(997),u=o._(r(6689)),s=r(9642);async function a(e){let{Component:t,ctx:r}=e;return{pageProps:await (0,s.loadGetInitialProps)(t,r)}}class c extends u.default.Component{render(){let{Component:e,pageProps:t}=this.props;return(0,i.jsx)(e,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach(function(t){var n,o;n=t,o=r[t],(n=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(n))in e?Object.defineProperty(e,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[n]=o}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({},t))}}c.origGetInitialProps=a,c.getInitialProps=a,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},9642:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{DecodeError:function(){return g},MiddlewareNotFoundError:function(){return P},MissingStaticPage:function(){return b},NormalizeError:function(){return m},PageNotFoundError:function(){return y},SP:function(){return d},ST:function(){return p},WEB_VITALS:function(){return r},execOnce:function(){return n},getDisplayName:function(){return a},getLocationOrigin:function(){return u},getURL:function(){return s},isAbsoluteUrl:function(){return i},isResSent:function(){return c},loadGetInitialProps:function(){return f},normalizeRepeatedSlashes:function(){return l},stringifyError:function(){return O}});let r=["CLS","FCP","FID","INP","LCP","TTFB"];function n(e){let t,r=!1;return function(){for(var n=arguments.length,o=Array(n),i=0;i<n;i++)o[i]=arguments[i];return r||(r=!0,t=e(...o)),t}}let o=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,i=e=>o.test(e);function u(){let{protocol:e,hostname:t,port:r}=window.location;return e+"//"+t+(r?":"+r:"")}function s(){let{href:e}=window.location,t=u();return e.substring(t.length)}function a(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function c(e){return e.finished||e.headersSent}function l(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?"?"+t.slice(1).join("?"):"")}async function f(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await f(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&c(r))return n;if(!n)throw Error('"'+a(e)+'.getInitialProps()" should resolve to an object. But found "'+n+'" instead.');return n}let d="undefined"!=typeof performance,p=d&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class g extends Error{}class m extends Error{}class y extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message="Cannot find module for page: "+e}}class b extends Error{constructor(e,t){super(),this.message="Failed to load static file for page: "+e+" "+t}}class P extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function O(e){return JSON.stringify({message:e.message,stack:e.stack})}},6689:e=>{e.exports=require("react")},997:e=>{e.exports=require("react/jsx-runtime")},167:(e,t)=>{t._=t._interop_require_default=function(e){return e&&e.__esModule?e:{default:e}}}};var t=require("../webpack-runtime.js");t.C(e);var r=t(t.s=6745);module.exports=r})();

View File

@@ -0,0 +1 @@
{"version":1,"files":["../../../node_modules/next/dist/pages/_app.js","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/react/cjs/react.development.js","../../../node_modules/react/cjs/react.production.min.js","../../../node_modules/react/index.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/react/package.json","../../../package.json","../../package.json","../webpack-runtime.js"]}

View File

@@ -0,0 +1 @@
"use strict";(()=>{var e={};e.id=660,e.ids=[660],e.modules={2785:e=>{e.exports=require("next/dist/compiled/next-server/pages.runtime.prod.js")},6689:e=>{e.exports=require("react")},997:e=>{e.exports=require("react/jsx-runtime")},1017:e=>{e.exports=require("path")}};var r=require("../webpack-runtime.js");r.C(e);var s=e=>r(r.s=e),t=r.X(0,[367],()=>s(8367));module.exports=t})();

View File

@@ -0,0 +1 @@
{"version":1,"files":["../../../node_modules/client-only/index.js","../../../node_modules/client-only/package.json","../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../node_modules/next/dist/compiled/next-server/pages.runtime.prod.js","../../../node_modules/next/dist/compiled/node-html-parser/index.js","../../../node_modules/next/dist/compiled/node-html-parser/package.json","../../../node_modules/next/dist/lib/semver-noop.js","../../../node_modules/next/dist/pages/_document.js","../../../node_modules/next/dist/server/lib/trace/constants.js","../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../node_modules/next/package.json","../../../node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js","../../../node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js","../../../node_modules/react-dom/cjs/react-dom-server.browser.development.js","../../../node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","../../../node_modules/react-dom/package.json","../../../node_modules/react-dom/server.browser.js","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/react/cjs/react.development.js","../../../node_modules/react/cjs/react.production.min.js","../../../node_modules/react/index.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/react/package.json","../../../node_modules/styled-jsx/dist/index/index.js","../../../node_modules/styled-jsx/index.js","../../../node_modules/styled-jsx/package.json","../../../package.json","../../package.json","../chunks/367.js","../webpack-runtime.js"]}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"version":1,"files":["../../../node_modules/client-only/index.js","../../../node_modules/client-only/package.json","../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../node_modules/next/dist/compiled/next-server/pages.runtime.prod.js","../../../node_modules/next/dist/compiled/node-html-parser/index.js","../../../node_modules/next/dist/compiled/node-html-parser/package.json","../../../node_modules/next/dist/lib/semver-noop.js","../../../node_modules/next/dist/server/lib/trace/constants.js","../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../node_modules/next/package.json","../../../node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js","../../../node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js","../../../node_modules/react-dom/cjs/react-dom-server.browser.development.js","../../../node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","../../../node_modules/react-dom/package.json","../../../node_modules/react-dom/server.browser.js","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/react/cjs/react.development.js","../../../node_modules/react/cjs/react.production.min.js","../../../node_modules/react/index.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/react/package.json","../../../node_modules/styled-jsx/dist/index/index.js","../../../node_modules/styled-jsx/index.js","../../../node_modules/styled-jsx/package.json","../../package.json","../chunks/367.js","../webpack-runtime.js"]}

View File

@@ -0,0 +1 @@
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-01793df6e574a3a4.js" defer=""></script><script src="/_next/static/chunks/framework-2c16ac744b6cdea6.js" defer=""></script><script src="/_next/static/chunks/main-6622d1cad8c103c3.js" defer=""></script><script src="/_next/static/chunks/pages/_app-96ededbbb9f1d568.js" defer=""></script><script src="/_next/static/chunks/290-09ad9f8fe176a9f3.js" defer=""></script><script src="/_next/static/chunks/664-e1c601a6730eca64.js" defer=""></script><script src="/_next/static/chunks/pages/index-21e33854ef653aba.js" defer=""></script><script src="/_next/static/N57n8-UzD433oF6V8Gsgk/_buildManifest.js" defer=""></script><script src="/_next/static/N57n8-UzD433oF6V8Gsgk/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div class="min-h-screen bg-gray-50"><nav class="bg-white shadow-sm"><div class="max-w-7xl mx-auto px-4 py-3"><div class="flex space-x-4"><a class="text-gray-700 hover:text-blue-600 px-3 py-2 rounded-md" href="/">Home</a><a class="text-gray-700 hover:text-blue-600 px-3 py-2 rounded-md" href="/dashboard">Dashboard</a><a class="text-gray-700 hover:text-blue-600 px-3 py-2 rounded-md" href="/workouts">Workouts</a><a class="text-gray-700 hover:text-blue-600 px-3 py-2 rounded-md" href="/plans">Plans</a><a class="text-gray-700 hover:text-blue-600 px-3 py-2 rounded-md" href="/rules">Rules</a><a class="text-gray-700 hover:text-blue-600 px-3 py-2 rounded-md" href="/routes">Routes</a></div></div></nav><div class="max-w-2xl mx-auto p-8"><div class="bg-white rounded-lg shadow-md p-8"><h1 class="text-3xl font-bold text-center text-gray-800 mb-6">Welcome to AI Cycling Coach</h1><p class="text-lg text-gray-600 mb-8 text-center">Your AI-powered training companion for cyclists</p><div class="bg-blue-50 p-4 rounded-lg border border-blue-200"><h2 class="text-lg font-semibold text-blue-800 mb-2">System Status</h2><div class="flex items-center"><div class="h-3 w-3 rounded-full mr-2 bg-red-500"></div><span class="text-gray-700">Backend service: <!-- -->checking...</span></div></div><p class="mt-8 text-center text-gray-500">Development in progress - more features coming soon!</p></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"N57n8-UzD433oF6V8Gsgk","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>

View File

@@ -0,0 +1 @@
{"version":1,"files":["../../../node_modules/@babel/runtime/helpers/extends.js","../../../node_modules/@babel/runtime/package.json","../../../node_modules/@emotion/cache/dist/emotion-cache.cjs.js","../../../node_modules/@emotion/cache/package.json","../../../node_modules/@emotion/hash/dist/emotion-hash.cjs.dev.js","../../../node_modules/@emotion/hash/dist/emotion-hash.cjs.js","../../../node_modules/@emotion/hash/dist/emotion-hash.cjs.prod.js","../../../node_modules/@emotion/hash/package.json","../../../node_modules/@emotion/memoize/dist/emotion-memoize.cjs.dev.js","../../../node_modules/@emotion/memoize/dist/emotion-memoize.cjs.js","../../../node_modules/@emotion/memoize/dist/emotion-memoize.cjs.prod.js","../../../node_modules/@emotion/memoize/package.json","../../../node_modules/@emotion/react/_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js","../../../node_modules/@emotion/react/_isolated-hnrs/package.json","../../../node_modules/@emotion/react/dist/emotion-element-a1829a1e.cjs.js","../../../node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js","../../../node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.cjs.mjs","../../../node_modules/@emotion/react/jsx-runtime/package.json","../../../node_modules/@emotion/react/package.json","../../../node_modules/@emotion/serialize/dist/emotion-serialize.cjs.js","../../../node_modules/@emotion/serialize/package.json","../../../node_modules/@emotion/sheet/dist/emotion-sheet.cjs.js","../../../node_modules/@emotion/sheet/package.json","../../../node_modules/@emotion/unitless/dist/emotion-unitless.cjs.js","../../../node_modules/@emotion/unitless/package.json","../../../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.cjs.js","../../../node_modules/@emotion/use-insertion-effect-with-fallbacks/package.json","../../../node_modules/@emotion/utils/dist/emotion-utils.cjs.js","../../../node_modules/@emotion/utils/package.json","../../../node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.cjs.dev.js","../../../node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.cjs.js","../../../node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.cjs.prod.js","../../../node_modules/@emotion/weak-memoize/package.json","../../../node_modules/client-only/index.js","../../../node_modules/client-only/package.json","../../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../../node_modules/hoist-non-react-statics/package.json","../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../node_modules/next/dist/compiled/next-server/pages.runtime.prod.js","../../../node_modules/next/dist/compiled/node-html-parser/index.js","../../../node_modules/next/dist/compiled/node-html-parser/package.json","../../../node_modules/next/dist/lib/semver-noop.js","../../../node_modules/next/dist/server/lib/trace/constants.js","../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../node_modules/next/package.json","../../../node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js","../../../node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js","../../../node_modules/react-dom/cjs/react-dom-server.browser.development.js","../../../node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","../../../node_modules/react-dom/package.json","../../../node_modules/react-dom/server.browser.js","../../../node_modules/react-is/cjs/react-is.development.js","../../../node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/react-is/index.js","../../../node_modules/react-is/package.json","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/react/cjs/react.development.js","../../../node_modules/react/cjs/react.production.min.js","../../../node_modules/react/index.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/react/package.json","../../../node_modules/styled-jsx/dist/index/index.js","../../../node_modules/styled-jsx/index.js","../../../node_modules/styled-jsx/package.json","../../../node_modules/stylis/dist/umd/package.json","../../../node_modules/stylis/dist/umd/stylis.js","../../../node_modules/stylis/package.json","../../../package.json","../../package.json","../chunks/367.js","../chunks/664.js","../chunks/674.js","../webpack-runtime.js"]}