/*
 * ATTENTION: An "eval-source-map" devtool has been used.
 * This devtool is neither made for production nor for readable output files.
 * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
 * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
 * or disable the default devtool with "devtool: false".
 * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
 */
(() => {
var exports = {};
exports.id = "app/app/profile/page";
exports.ids = ["app/app/profile/page"];
exports.modules = {

/***/ "../../client/components/action-async-storage.external":
/*!*******************************************************************************!*\
  !*** external "next/dist/client/components/action-async-storage.external.js" ***!
  \*******************************************************************************/
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/client/components/action-async-storage.external.js");

/***/ }),

/***/ "../../client/components/request-async-storage.external":
/*!********************************************************************************!*\
  !*** external "next/dist/client/components/request-async-storage.external.js" ***!
  \********************************************************************************/
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/client/components/request-async-storage.external.js");

/***/ }),

/***/ "../../client/components/static-generation-async-storage.external":
/*!******************************************************************************************!*\
  !*** external "next/dist/client/components/static-generation-async-storage.external.js" ***!
  \******************************************************************************************/
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/client/components/static-generation-async-storage.external.js");

/***/ }),

/***/ "next/dist/compiled/next-server/app-page.runtime.dev.js":
/*!*************************************************************************!*\
  !*** external "next/dist/compiled/next-server/app-page.runtime.dev.js" ***!
  \*************************************************************************/
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/compiled/next-server/app-page.runtime.dev.js");

/***/ }),

/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fapp%2Fprofile%2Fpage&page=%2Fapp%2Fprofile%2Fpage&appPaths=%2Fapp%2Fprofile%2Fpage&pagePath=private-next-app-dir%2Fapp%2Fprofile%2Fpage.tsx&appDir=C%3A%5CUsers%5CRaymondVerhoef%5CGitea%5Clearning-platform%5Capp%5Cfrontend%5Csrc%5Capp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=C%3A%5CUsers%5CRaymondVerhoef%5CGitea%5Clearning-platform%5Capp%5Cfrontend&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!":
/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fapp%2Fprofile%2Fpage&page=%2Fapp%2Fprofile%2Fpage&appPaths=%2Fapp%2Fprofile%2Fpage&pagePath=private-next-app-dir%2Fapp%2Fprofile%2Fpage.tsx&appDir=C%3A%5CUsers%5CRaymondVerhoef%5CGitea%5Clearning-platform%5Capp%5Cfrontend%5Csrc%5Capp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=C%3A%5CUsers%5CRaymondVerhoef%5CGitea%5Clearning-platform%5Capp%5Cfrontend&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D! ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   GlobalError: () => (/* reexport default from dynamic */ next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default.a),\n/* harmony export */   __next_app__: () => (/* binding */ __next_app__),\n/* harmony export */   originalPathname: () => (/* binding */ originalPathname),\n/* harmony export */   pages: () => (/* binding */ pages),\n/* harmony export */   routeModule: () => (/* binding */ routeModule),\n/* harmony export */   tree: () => (/* binding */ tree)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/app-page/module.compiled */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js?d969\");\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(rsc)/./node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/client/components/error-boundary */ \"(rsc)/./node_modules/next/dist/client/components/error-boundary.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/server/app-render/entry-base */ \"(rsc)/./node_modules/next/dist/server/app-render/entry-base.js\");\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__) if([\"default\",\"tree\",\"pages\",\"GlobalError\",\"originalPathname\",\"__next_app__\",\"routeModule\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\"TURBOPACK { transition: next-ssr }\";\n\n\n// We inject the tree and pages here so that we can use them in the route\n// module.\nconst tree = {\n        children: [\n        '',\n        {\n        children: [\n        'app',\n        {\n        children: [\n        'profile',\n        {\n        children: ['__PAGE__', {}, {\n          page: [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/app/profile/page.tsx */ \"(rsc)/./src/app/app/profile/page.tsx\")), \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\"],\n          \n        }]\n      },\n        {\n        \n        \n      }\n      ]\n      },\n        {\n        'layout': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/app/layout.tsx */ \"(rsc)/./src/app/app/layout.tsx\")), \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\layout.tsx\"],\n        \n      }\n      ]\n      },\n        {\n        'layout': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/layout.tsx */ \"(rsc)/./src/app/layout.tsx\")), \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\layout.tsx\"],\n'not-found': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/not-found-error */ \"(rsc)/./node_modules/next/dist/client/components/not-found-error.js\", 23)), \"next/dist/client/components/not-found-error\"],\n        \n      }\n      ]\n      }.children;\nconst pages = [\"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\"];\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst originalPathname = \"/app/profile/page\";\nconst __next_app__ = {\n    require: __next_app_require__,\n    loadChunk: __next_app_load_chunk__\n};\n\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({\n    definition: {\n        kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n        page: \"/app/profile/page\",\n        pathname: \"/app/profile\",\n        // The following aren't used in production.\n        bundlePath: \"\",\n        filename: \"\",\n        appPaths: []\n    },\n    userland: {\n        loaderTree: tree\n    }\n});\n\n//# sourceMappingURL=app-page.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64, \n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fapp%2Fprofile%2Fpage&page=%2Fapp%2Fprofile%2Fpage&appPaths=%2Fapp%2Fprofile%2Fpage&pagePath=private-next-app-dir%2Fapp%2Fprofile%2Fpage.tsx&appDir=C%3A%5CUsers%5CRaymondVerhoef%5CGitea%5Clearning-platform%5Capp%5Cfrontend%5Csrc%5Capp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=C%3A%5CUsers%5CRaymondVerhoef%5CGitea%5Clearning-platform%5Capp%5Cfrontend&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!\n");

/***/ }),

/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Cnode_modules%5C%5Cnext%5C%5Cdist%5C%5Cclient%5C%5Ccomponents%5C%5Capp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Cnode_modules%5C%5Cnext%5C%5Cdist%5C%5Cclient%5C%5Ccomponents%5C%5Cclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Cnode_modules%5C%5Cnext%5C%5Cdist%5C%5Cclient%5C%5Ccomponents%5C%5Cerror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Cnode_modules%5C%5Cnext%5C%5Cdist%5C%5Cclient%5C%5Ccomponents%5C%5Clayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Cnode_modules%5C%5Cnext%5C%5Cdist%5C%5Cclient%5C%5Ccomponents%5C%5Cnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Cnode_modules%5C%5Cnext%5C%5Cdist%5C%5Cclient%5C%5Ccomponents%5C%5Crender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!":
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Cnode_modules%5C%5Cnext%5C%5Cdist%5C%5Cclient%5C%5Ccomponents%5C%5Capp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Cnode_modules%5C%5Cnext%5C%5Cdist%5C%5Cclient%5C%5Ccomponents%5C%5Cclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Cnode_modules%5C%5Cnext%5C%5Cdist%5C%5Cclient%5C%5Ccomponents%5C%5Cerror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Cnode_modules%5C%5Cnext%5C%5Cdist%5C%5Cclient%5C%5Ccomponents%5C%5Clayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Cnode_modules%5C%5Cnext%5C%5Cdist%5C%5Cclient%5C%5Ccomponents%5C%5Cnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Cnode_modules%5C%5Cnext%5C%5Cdist%5C%5Cclient%5C%5Ccomponents%5C%5Crender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/app-router.js */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/client-page.js */ \"(ssr)/./node_modules/next/dist/client/components/client-page.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/error-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/error-boundary.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/layout-router.js */ \"(ssr)/./node_modules/next/dist/client/components/layout-router.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/not-found-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/render-from-template-context.js */ \"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js\", 23));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMkMlM0ElNUMlNUNVc2VycyU1QyU1Q1JheW1vbmRWZXJob2VmJTVDJTVDR2l0ZWElNUMlNUNsZWFybmluZy1wbGF0Zm9ybSU1QyU1Q2FwcCU1QyU1Q2Zyb250ZW5kJTVDJTVDbm9kZV9tb2R1bGVzJTVDJTVDbmV4dCU1QyU1Q2Rpc3QlNUMlNUNjbGllbnQlNUMlNUNjb21wb25lbnRzJTVDJTVDYXBwLXJvdXRlci5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjJDJTNBJTVDJTVDVXNlcnMlNUMlNUNSYXltb25kVmVyaG9lZiU1QyU1Q0dpdGVhJTVDJTVDbGVhcm5pbmctcGxhdGZvcm0lNUMlNUNhcHAlNUMlNUNmcm9udGVuZCU1QyU1Q25vZGVfbW9kdWxlcyU1QyU1Q25leHQlNUMlNUNkaXN0JTVDJTVDY2xpZW50JTVDJTVDY29tcG9uZW50cyU1QyU1Q2NsaWVudC1wYWdlLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMkMlM0ElNUMlNUNVc2VycyU1QyU1Q1JheW1vbmRWZXJob2VmJTVDJTVDR2l0ZWElNUMlNUNsZWFybmluZy1wbGF0Zm9ybSU1QyU1Q2FwcCU1QyU1Q2Zyb250ZW5kJTVDJTVDbm9kZV9tb2R1bGVzJTVDJTVDbmV4dCU1QyU1Q2Rpc3QlNUMlNUNjbGllbnQlNUMlNUNjb21wb25lbnRzJTVDJTVDZXJyb3ItYm91bmRhcnkuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyQyUzQSU1QyU1Q1VzZXJzJTVDJTVDUmF5bW9uZFZlcmhvZWYlNUMlNUNHaXRlYSU1QyU1Q2xlYXJuaW5nLXBsYXRmb3JtJTVDJTVDYXBwJTVDJTVDZnJvbnRlbmQlNUMlNUNub2RlX21vZHVsZXMlNUMlNUNuZXh0JTVDJTVDZGlzdCU1QyU1Q2NsaWVudCU1QyU1Q2NvbXBvbmVudHMlNUMlNUNsYXlvdXQtcm91dGVyLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMkMlM0ElNUMlNUNVc2VycyU1QyU1Q1JheW1vbmRWZXJob2VmJTVDJTVDR2l0ZWElNUMlNUNsZWFybmluZy1wbGF0Zm9ybSU1QyU1Q2FwcCU1QyU1Q2Zyb250ZW5kJTVDJTVDbm9kZV9tb2R1bGVzJTVDJTVDbmV4dCU1QyU1Q2Rpc3QlNUMlNUNjbGllbnQlNUMlNUNjb21wb25lbnRzJTVDJTVDbm90LWZvdW5kLWJvdW5kYXJ5LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMkMlM0ElNUMlNUNVc2VycyU1QyU1Q1JheW1vbmRWZXJob2VmJTVDJTVDR2l0ZWElNUMlNUNsZWFybmluZy1wbGF0Zm9ybSU1QyU1Q2FwcCU1QyU1Q2Zyb250ZW5kJTVDJTVDbm9kZV9tb2R1bGVzJTVDJTVDbmV4dCU1QyU1Q2Rpc3QlNUMlNUNjbGllbnQlNUMlNUNjb21wb25lbnRzJTVDJTVDcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsa09BQW9LO0FBQ3BLO0FBQ0Esb09BQXFLO0FBQ3JLO0FBQ0EsME9BQXdLO0FBQ3hLO0FBQ0Esd09BQXVLO0FBQ3ZLO0FBQ0Esa1BBQTRLO0FBQzVLO0FBQ0Esc1FBQXNMIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbGVhcm5pbmctcGxhdGZvcm0tZnJvbnRlbmQvPzcyOWUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJDOlxcXFxVc2Vyc1xcXFxSYXltb25kVmVyaG9lZlxcXFxHaXRlYVxcXFxsZWFybmluZy1wbGF0Zm9ybVxcXFxhcHBcXFxcZnJvbnRlbmRcXFxcbm9kZV9tb2R1bGVzXFxcXG5leHRcXFxcZGlzdFxcXFxjbGllbnRcXFxcY29tcG9uZW50c1xcXFxhcHAtcm91dGVyLmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJDOlxcXFxVc2Vyc1xcXFxSYXltb25kVmVyaG9lZlxcXFxHaXRlYVxcXFxsZWFybmluZy1wbGF0Zm9ybVxcXFxhcHBcXFxcZnJvbnRlbmRcXFxcbm9kZV9tb2R1bGVzXFxcXG5leHRcXFxcZGlzdFxcXFxjbGllbnRcXFxcY29tcG9uZW50c1xcXFxjbGllbnQtcGFnZS5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiQzpcXFxcVXNlcnNcXFxcUmF5bW9uZFZlcmhvZWZcXFxcR2l0ZWFcXFxcbGVhcm5pbmctcGxhdGZvcm1cXFxcYXBwXFxcXGZyb250ZW5kXFxcXG5vZGVfbW9kdWxlc1xcXFxuZXh0XFxcXGRpc3RcXFxcY2xpZW50XFxcXGNvbXBvbmVudHNcXFxcZXJyb3ItYm91bmRhcnkuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIkM6XFxcXFVzZXJzXFxcXFJheW1vbmRWZXJob2VmXFxcXEdpdGVhXFxcXGxlYXJuaW5nLXBsYXRmb3JtXFxcXGFwcFxcXFxmcm9udGVuZFxcXFxub2RlX21vZHVsZXNcXFxcbmV4dFxcXFxkaXN0XFxcXGNsaWVudFxcXFxjb21wb25lbnRzXFxcXGxheW91dC1yb3V0ZXIuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIkM6XFxcXFVzZXJzXFxcXFJheW1vbmRWZXJob2VmXFxcXEdpdGVhXFxcXGxlYXJuaW5nLXBsYXRmb3JtXFxcXGFwcFxcXFxmcm9udGVuZFxcXFxub2RlX21vZHVsZXNcXFxcbmV4dFxcXFxkaXN0XFxcXGNsaWVudFxcXFxjb21wb25lbnRzXFxcXG5vdC1mb3VuZC1ib3VuZGFyeS5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiQzpcXFxcVXNlcnNcXFxcUmF5bW9uZFZlcmhvZWZcXFxcR2l0ZWFcXFxcbGVhcm5pbmctcGxhdGZvcm1cXFxcYXBwXFxcXGZyb250ZW5kXFxcXG5vZGVfbW9kdWxlc1xcXFxuZXh0XFxcXGRpc3RcXFxcY2xpZW50XFxcXGNvbXBvbmVudHNcXFxccmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qc1wiKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Cnode_modules%5C%5Cnext%5C%5Cdist%5C%5Cclient%5C%5Ccomponents%5C%5Capp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Cnode_modules%5C%5Cnext%5C%5Cdist%5C%5Cclient%5C%5Ccomponents%5C%5Cclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Cnode_modules%5C%5Cnext%5C%5Cdist%5C%5Cclient%5C%5Ccomponents%5C%5Cerror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Cnode_modules%5C%5Cnext%5C%5Cdist%5C%5Cclient%5C%5Ccomponents%5C%5Clayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Cnode_modules%5C%5Cnext%5C%5Cdist%5C%5Cclient%5C%5Ccomponents%5C%5Cnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Cnode_modules%5C%5Cnext%5C%5Cdist%5C%5Cclient%5C%5Ccomponents%5C%5Crender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n");

/***/ }),

/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Csrc%5C%5Capp%5C%5Capp%5C%5Clayout.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Csrc%5C%5Capp%5C%5Capp%5C%5Clayout.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/app/layout.tsx */ \"(ssr)/./src/app/app/layout.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMkMlM0ElNUMlNUNVc2VycyU1QyU1Q1JheW1vbmRWZXJob2VmJTVDJTVDR2l0ZWElNUMlNUNsZWFybmluZy1wbGF0Zm9ybSU1QyU1Q2FwcCU1QyU1Q2Zyb250ZW5kJTVDJTVDc3JjJTVDJTVDYXBwJTVDJTVDYXBwJTVDJTVDbGF5b3V0LnRzeCUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsNEpBQWtJIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbGVhcm5pbmctcGxhdGZvcm0tZnJvbnRlbmQvPzliOTYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJDOlxcXFxVc2Vyc1xcXFxSYXltb25kVmVyaG9lZlxcXFxHaXRlYVxcXFxsZWFybmluZy1wbGF0Zm9ybVxcXFxhcHBcXFxcZnJvbnRlbmRcXFxcc3JjXFxcXGFwcFxcXFxhcHBcXFxcbGF5b3V0LnRzeFwiKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Csrc%5C%5Capp%5C%5Capp%5C%5Clayout.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n");

/***/ }),

/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Csrc%5C%5Capp%5C%5Capp%5C%5Cprofile%5C%5Cpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!":
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Csrc%5C%5Capp%5C%5Capp%5C%5Cprofile%5C%5Cpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/app/profile/page.tsx */ \"(ssr)/./src/app/app/profile/page.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMkMlM0ElNUMlNUNVc2VycyU1QyU1Q1JheW1vbmRWZXJob2VmJTVDJTVDR2l0ZWElNUMlNUNsZWFybmluZy1wbGF0Zm9ybSU1QyU1Q2FwcCU1QyU1Q2Zyb250ZW5kJTVDJTVDc3JjJTVDJTVDYXBwJTVDJTVDYXBwJTVDJTVDcHJvZmlsZSU1QyU1Q3BhZ2UudHN4JTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJnNlcnZlcj10cnVlISIsIm1hcHBpbmdzIjoiQUFBQSx3S0FBeUkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9sZWFybmluZy1wbGF0Zm9ybS1mcm9udGVuZC8/MTM3OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIkM6XFxcXFVzZXJzXFxcXFJheW1vbmRWZXJob2VmXFxcXEdpdGVhXFxcXGxlYXJuaW5nLXBsYXRmb3JtXFxcXGFwcFxcXFxmcm9udGVuZFxcXFxzcmNcXFxcYXBwXFxcXGFwcFxcXFxwcm9maWxlXFxcXHBhZ2UudHN4XCIpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Csrc%5C%5Capp%5C%5Capp%5C%5Cprofile%5C%5Cpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n");

/***/ }),

/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Cstylesheet.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Csrc%5C%5Capp%5C%5Cglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=true!":
/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Cstylesheet.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22C%3A%5C%5CUsers%5C%5CRaymondVerhoef%5C%5CGitea%5C%5Clearning-platform%5C%5Capp%5C%5Cfrontend%5C%5Csrc%5C%5Capp%5C%5Cglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ (() => {



/***/ }),

/***/ "(ssr)/./src/app/app/layout.tsx":
/*!********************************!*\
  !*** ./src/app/app/layout.tsx ***!
  \********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ AppLayout)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"(ssr)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/navigation */ \"(ssr)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var _components_r42_R42Button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/r42/R42Button */ \"(ssr)/./src/components/r42/R42Button.tsx\");\n/* harmony import */ var _components_r42_R42Drawer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/r42/R42Drawer */ \"(ssr)/./src/components/r42/R42Drawer.tsx\");\n/* harmony import */ var _components_ui_Toast__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/ui/Toast */ \"(ssr)/./src/components/ui/Toast.tsx\");\n/* harmony import */ var _lib_auth__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/lib/auth */ \"(ssr)/./src/lib/auth.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\n\n\n\nconst NAV_ITEMS = [\n    {\n        href: \"/app\",\n        label: \"Session\",\n        icon: \"▶\"\n    },\n    {\n        href: \"/app/library\",\n        label: \"Library\",\n        icon: \"\\uD83D\\uDCDA\"\n    },\n    {\n        href: \"/app/profile\",\n        label: \"Profile\",\n        icon: \"\\uD83D\\uDC64\"\n    }\n];\nfunction AppLayout({ children }) {\n    const pathname = (0,next_navigation__WEBPACK_IMPORTED_MODULE_3__.usePathname)();\n    const [r42Open, setR42Open] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n    const user = (0,_lib_auth__WEBPACK_IMPORTED_MODULE_7__.getAuthUser)();\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_Toast__WEBPACK_IMPORTED_MODULE_6__.ToastProvider, {\n        children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n            style: {\n                minHeight: \"100dvh\",\n                display: \"flex\",\n                flexDirection: \"column\",\n                background: \"var(--bg)\",\n                paddingBottom: \"var(--nav-height)\"\n            },\n            children: [\n                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n                    style: {\n                        flex: 1,\n                        padding: \"var(--s-4)\",\n                        maxWidth: \"640px\",\n                        margin: \"0 auto\",\n                        width: \"100%\"\n                    },\n                    children: children\n                }, void 0, false, {\n                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\layout.tsx\",\n                    lineNumber: 33,\n                    columnNumber: 9\n                }, this),\n                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_r42_R42Button__WEBPACK_IMPORTED_MODULE_4__.R42Button, {\n                    onClick: ()=>setR42Open(true)\n                }, void 0, false, {\n                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\layout.tsx\",\n                    lineNumber: 38,\n                    columnNumber: 9\n                }, this),\n                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_r42_R42Drawer__WEBPACK_IMPORTED_MODULE_5__.R42Drawer, {\n                    open: r42Open,\n                    onClose: ()=>setR42Open(false),\n                    userId: user?.id ?? \"\"\n                }, void 0, false, {\n                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\layout.tsx\",\n                    lineNumber: 41,\n                    columnNumber: 9\n                }, this),\n                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n                    style: {\n                        position: \"fixed\",\n                        bottom: 0,\n                        left: 0,\n                        right: 0,\n                        height: \"var(--nav-height)\",\n                        background: \"var(--bg)\",\n                        borderTop: \"1px solid var(--cream)\",\n                        display: \"flex\",\n                        zIndex: 150\n                    },\n                    children: NAV_ITEMS.map((item)=>{\n                        const active = item.href === \"/app\" ? pathname === \"/app\" || pathname === \"/app/\" : pathname.startsWith(item.href);\n                        return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n                            href: item.href,\n                            style: {\n                                flex: 1,\n                                display: \"flex\",\n                                flexDirection: \"column\",\n                                alignItems: \"center\",\n                                justifyContent: \"center\",\n                                gap: \"2px\",\n                                textDecoration: \"none\",\n                                color: active ? \"var(--accent)\" : \"var(--fg-muted)\",\n                                fontSize: \"20px\",\n                                minHeight: \"44px\",\n                                transition: \"color 150ms\"\n                            },\n                            children: [\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                                    children: item.icon\n                                }, void 0, false, {\n                                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\layout.tsx\",\n                                    lineNumber: 85,\n                                    columnNumber: 17\n                                }, this),\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                                    style: {\n                                        fontSize: \"var(--t-label)\",\n                                        fontFamily: \"var(--font-mono)\",\n                                        textTransform: \"uppercase\",\n                                        letterSpacing: \"var(--label-ls)\",\n                                        fontWeight: active ? 700 : 400\n                                    },\n                                    children: item.label\n                                }, void 0, false, {\n                                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\layout.tsx\",\n                                    lineNumber: 86,\n                                    columnNumber: 17\n                                }, this)\n                            ]\n                        }, item.href, true, {\n                            fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\layout.tsx\",\n                            lineNumber: 68,\n                            columnNumber: 15\n                        }, this);\n                    })\n                }, void 0, false, {\n                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\layout.tsx\",\n                    lineNumber: 48,\n                    columnNumber: 9\n                }, this)\n            ]\n        }, void 0, true, {\n            fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\layout.tsx\",\n            lineNumber: 23,\n            columnNumber: 7\n        }, this)\n    }, void 0, false, {\n        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\layout.tsx\",\n        lineNumber: 22,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64, \n//# sourceURL=webpack-internal:///(ssr)/./src/app/app/layout.tsx\n");

/***/ }),

/***/ "(ssr)/./src/app/app/profile/page.tsx":
/*!**************************************!*\
  !*** ./src/app/app/profile/page.tsx ***!
  \**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ProfilePage)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lib_pocketbase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/pocketbase */ \"(ssr)/./src/lib/pocketbase.ts\");\n/* harmony import */ var _lib_auth__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/auth */ \"(ssr)/./src/lib/auth.ts\");\n/* harmony import */ var _components_gamification_Heatmap__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/gamification/Heatmap */ \"(ssr)/./src/components/gamification/Heatmap.tsx\");\n/* harmony import */ var _components_gamification_BadgeGrid__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/gamification/BadgeGrid */ \"(ssr)/./src/components/gamification/BadgeGrid.tsx\");\n/* harmony import */ var _components_gamification_Leaderboard__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/gamification/Leaderboard */ \"(ssr)/./src/components/gamification/Leaderboard.tsx\");\n/* harmony import */ var _components_gamification_ActivityFeed__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/components/gamification/ActivityFeed */ \"(ssr)/./src/components/gamification/ActivityFeed.tsx\");\n/* harmony import */ var _components_ui_Button__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/components/ui/Button */ \"(ssr)/./src/components/ui/Button.tsx\");\n/* harmony import */ var _lib_services__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/lib/services */ \"(ssr)/./src/lib/services.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\n\n\n\n\n\nconst LEVEL_LABELS = {\n    intern: \"Intern\",\n    junior: \"Junior\",\n    medior: \"Medior\",\n    senior: \"Senior\",\n    staff: \"Staff\",\n    principal: \"Principal\"\n};\nfunction ProfilePage() {\n    const user = (0,_lib_auth__WEBPACK_IMPORTED_MODULE_3__.getAuthUser)();\n    const [tab, setTab] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"profile\");\n    const [gamification, setGamification] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n    const [earnedBadges, setEarnedBadges] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n    const [allBadges, setAllBadges] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n    const [completions, setCompletions] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n    const [leaderboard, setLeaderboard] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n    const [feed, setFeed] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n    const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n    (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n        if (!user) return;\n        async function load() {\n            setLoading(true);\n            try {\n                const [gamResult, badgeResult, allBadgeResult, compResult] = await Promise.allSettled([\n                    _lib_pocketbase__WEBPACK_IMPORTED_MODULE_2__.pb.collection(\"gamification_profiles\").getFullList({\n                        filter: `user=\"${user.id}\"`,\n                        expand: \"user\"\n                    }).then((r)=>r[0] ?? null),\n                    _lib_pocketbase__WEBPACK_IMPORTED_MODULE_2__.pb.collection(\"employee_badges\").getFullList({\n                        filter: `user=\"${user.id}\"`,\n                        expand: \"badge\"\n                    }),\n                    _lib_pocketbase__WEBPACK_IMPORTED_MODULE_2__.pb.collection(\"badges\").getFullList({\n                        sort: \"tier,label\"\n                    }),\n                    _lib_pocketbase__WEBPACK_IMPORTED_MODULE_2__.pb.collection(\"session_completions\").getFullList({\n                        filter: `user=\"${user.id}\"`,\n                        sort: \"-completed_at\"\n                    })\n                ]);\n                if (gamResult.status === \"fulfilled\") setGamification(gamResult.value);\n                if (badgeResult.status === \"fulfilled\") setEarnedBadges(badgeResult.value);\n                if (allBadgeResult.status === \"fulfilled\") setAllBadges(allBadgeResult.value);\n                if (compResult.status === \"fulfilled\") setCompletions(compResult.value);\n            } catch  {\n            // best-effort\n            } finally{\n                setLoading(false);\n            }\n        }\n        void load();\n    }, [\n        user?.id\n    ]);\n    (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n        if (tab === \"leaderboard\") {\n            (0,_lib_services__WEBPACK_IMPORTED_MODULE_9__.getLeaderboard)().then(setLeaderboard).catch(()=>{});\n        }\n        if (tab === \"feed\") {\n            (0,_lib_services__WEBPACK_IMPORTED_MODULE_9__.getFeed)().then(setFeed).catch(()=>{});\n        }\n    }, [\n        tab\n    ]);\n    if (!user) {\n        return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n            style: {\n                color: \"var(--fg-muted)\",\n                textAlign: \"center\",\n                padding: \"var(--s-6)\"\n            },\n            children: \"Not logged in.\"\n        }, void 0, false, {\n            fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n            lineNumber: 88,\n            columnNumber: 7\n        }, this);\n    }\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        style: {\n            display: \"flex\",\n            flexDirection: \"column\",\n            gap: \"var(--s-5)\"\n        },\n        children: [\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                style: {\n                    background: \"var(--bg-dark)\",\n                    color: \"var(--paper)\",\n                    borderRadius: \"var(--r-lg)\",\n                    padding: \"var(--s-5)\",\n                    display: \"flex\",\n                    alignItems: \"center\",\n                    gap: \"var(--s-4)\"\n                },\n                children: [\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                        style: {\n                            width: \"56px\",\n                            height: \"56px\",\n                            borderRadius: \"50%\",\n                            background: \"var(--accent)\",\n                            display: \"flex\",\n                            alignItems: \"center\",\n                            justifyContent: \"center\",\n                            fontSize: \"var(--t-h3)\",\n                            fontWeight: 700,\n                            flexShrink: 0\n                        },\n                        children: user.display_name?.[0]?.toUpperCase() ?? user.email[0]?.toUpperCase()\n                    }, void 0, false, {\n                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                        lineNumber: 108,\n                        columnNumber: 9\n                    }, this),\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                        style: {\n                            flex: 1,\n                            minWidth: 0\n                        },\n                        children: [\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n                                style: {\n                                    margin: \"0 0 var(--s-1)\",\n                                    fontSize: \"var(--t-body)\",\n                                    fontWeight: 700\n                                },\n                                children: user.display_name || user.email\n                            }, void 0, false, {\n                                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                                lineNumber: 125,\n                                columnNumber: 11\n                            }, this),\n                            gamification && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n                                style: {\n                                    margin: 0,\n                                    fontSize: \"var(--t-small)\",\n                                    opacity: 0.8\n                                },\n                                children: [\n                                    LEVEL_LABELS[gamification.current_level] ?? gamification.current_level,\n                                    \" \\xb7\",\n                                    \" \",\n                                    gamification.total_commits,\n                                    \" commits \\xb7 \",\n                                    gamification.current_streak_weeks,\n                                    \"w streak\"\n                                ]\n                            }, void 0, true, {\n                                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                                lineNumber: 135,\n                                columnNumber: 13\n                            }, this)\n                        ]\n                    }, void 0, true, {\n                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                        lineNumber: 124,\n                        columnNumber: 9\n                    }, this),\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_Button__WEBPACK_IMPORTED_MODULE_8__.Button, {\n                        variant: \"ghost\",\n                        size: \"sm\",\n                        onClick: _lib_auth__WEBPACK_IMPORTED_MODULE_3__.logout,\n                        style: {\n                            color: \"rgba(255,255,255,0.7)\",\n                            borderColor: \"rgba(255,255,255,0.25)\",\n                            flexShrink: 0\n                        },\n                        children: \"Logout\"\n                    }, void 0, false, {\n                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                        lineNumber: 147,\n                        columnNumber: 9\n                    }, this)\n                ]\n            }, void 0, true, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                lineNumber: 97,\n                columnNumber: 7\n            }, this),\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                style: {\n                    display: \"flex\",\n                    borderBottom: \"2px solid var(--cream)\"\n                },\n                children: [\n                    \"profile\",\n                    \"leaderboard\",\n                    \"feed\"\n                ].map((t)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n                        onClick: ()=>setTab(t),\n                        style: {\n                            flex: 1,\n                            background: \"none\",\n                            border: \"none\",\n                            borderBottom: `2px solid ${tab === t ? \"var(--accent)\" : \"transparent\"}`,\n                            marginBottom: \"-2px\",\n                            padding: \"var(--s-3)\",\n                            fontSize: \"var(--t-small)\",\n                            fontFamily: \"var(--font-sans)\",\n                            fontWeight: tab === t ? 700 : 400,\n                            color: tab === t ? \"var(--accent)\" : \"var(--fg-muted)\",\n                            cursor: \"pointer\",\n                            textTransform: \"capitalize\",\n                            minHeight: \"44px\",\n                            transition: \"color 150ms\"\n                        },\n                        children: t\n                    }, t, false, {\n                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                        lineNumber: 165,\n                        columnNumber: 11\n                    }, this))\n            }, void 0, false, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                lineNumber: 158,\n                columnNumber: 7\n            }, this),\n            tab === \"profile\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                style: {\n                    display: \"flex\",\n                    flexDirection: \"column\",\n                    gap: \"var(--s-6)\"\n                },\n                children: loading ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                    style: {\n                        color: \"var(--fg-muted)\"\n                    },\n                    children: \"Loading…\"\n                }, void 0, false, {\n                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                    lineNumber: 194,\n                    columnNumber: 13\n                }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n                    children: [\n                        gamification && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                            style: {\n                                display: \"grid\",\n                                gridTemplateColumns: \"repeat(2, 1fr)\",\n                                gap: \"var(--s-3)\"\n                            },\n                            children: [\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(StatCard, {\n                                    label: \"Total commits\",\n                                    value: String(gamification.total_commits)\n                                }, void 0, false, {\n                                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                                    lineNumber: 206,\n                                    columnNumber: 19\n                                }, this),\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(StatCard, {\n                                    label: \"Current streak\",\n                                    value: `${gamification.current_streak_weeks}w`\n                                }, void 0, false, {\n                                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                                    lineNumber: 207,\n                                    columnNumber: 19\n                                }, this),\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(StatCard, {\n                                    label: \"Longest streak\",\n                                    value: `${gamification.longest_streak_weeks}w`\n                                }, void 0, false, {\n                                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                                    lineNumber: 208,\n                                    columnNumber: 19\n                                }, this),\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(StatCard, {\n                                    label: \"Types explored\",\n                                    value: String(gamification.types_used.length)\n                                }, void 0, false, {\n                                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                                    lineNumber: 209,\n                                    columnNumber: 19\n                                }, this)\n                            ]\n                        }, void 0, true, {\n                            fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                            lineNumber: 199,\n                            columnNumber: 17\n                        }, this),\n                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                            children: [\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n                                    style: {\n                                        margin: \"0 0 var(--s-3)\",\n                                        fontSize: \"var(--t-small)\",\n                                        fontWeight: 700,\n                                        color: \"var(--fg)\"\n                                    },\n                                    children: \"Activity\"\n                                }, void 0, false, {\n                                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                                    lineNumber: 215,\n                                    columnNumber: 17\n                                }, this),\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_gamification_Heatmap__WEBPACK_IMPORTED_MODULE_4__.Heatmap, {\n                                    completions: completions\n                                }, void 0, false, {\n                                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                                    lineNumber: 225,\n                                    columnNumber: 17\n                                }, this)\n                            ]\n                        }, void 0, true, {\n                            fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                            lineNumber: 214,\n                            columnNumber: 15\n                        }, this),\n                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                            children: [\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n                                    style: {\n                                        margin: \"0 0 var(--s-3)\",\n                                        fontSize: \"var(--t-small)\",\n                                        fontWeight: 700,\n                                        color: \"var(--fg)\"\n                                    },\n                                    children: [\n                                        \"Badges (\",\n                                        earnedBadges.length,\n                                        \"/\",\n                                        allBadges.length,\n                                        \")\"\n                                    ]\n                                }, void 0, true, {\n                                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                                    lineNumber: 230,\n                                    columnNumber: 17\n                                }, this),\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_gamification_BadgeGrid__WEBPACK_IMPORTED_MODULE_5__.BadgeGrid, {\n                                    allBadges: allBadges,\n                                    earned: earnedBadges\n                                }, void 0, false, {\n                                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                                    lineNumber: 240,\n                                    columnNumber: 17\n                                }, this)\n                            ]\n                        }, void 0, true, {\n                            fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                            lineNumber: 229,\n                            columnNumber: 15\n                        }, this)\n                    ]\n                }, void 0, true)\n            }, void 0, false, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                lineNumber: 192,\n                columnNumber: 9\n            }, this),\n            tab === \"leaderboard\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                style: {\n                    display: \"flex\",\n                    flexDirection: \"column\",\n                    gap: \"var(--s-4)\"\n                },\n                children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_gamification_Leaderboard__WEBPACK_IMPORTED_MODULE_6__.Leaderboard, {\n                    entries: leaderboard,\n                    currentUserId: user.id\n                }, void 0, false, {\n                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                    lineNumber: 249,\n                    columnNumber: 11\n                }, this)\n            }, void 0, false, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                lineNumber: 248,\n                columnNumber: 9\n            }, this),\n            tab === \"feed\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                style: {\n                    display: \"flex\",\n                    flexDirection: \"column\",\n                    gap: \"var(--s-4)\"\n                },\n                children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_gamification_ActivityFeed__WEBPACK_IMPORTED_MODULE_7__.ActivityFeed, {\n                    entries: feed\n                }, void 0, false, {\n                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                    lineNumber: 255,\n                    columnNumber: 11\n                }, this)\n            }, void 0, false, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                lineNumber: 254,\n                columnNumber: 9\n            }, this)\n        ]\n    }, void 0, true, {\n        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n        lineNumber: 95,\n        columnNumber: 5\n    }, this);\n}\nfunction StatCard({ label, value }) {\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        style: {\n            background: \"var(--bg-warm)\",\n            borderRadius: \"var(--r-md)\",\n            padding: \"var(--s-4)\",\n            display: \"flex\",\n            flexDirection: \"column\",\n            gap: \"var(--s-1)\"\n        },\n        children: [\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                style: {\n                    fontSize: \"var(--t-label)\",\n                    fontFamily: \"var(--font-mono)\",\n                    textTransform: \"uppercase\",\n                    letterSpacing: \"var(--label-ls)\",\n                    color: \"var(--fg-muted)\"\n                },\n                children: label\n            }, void 0, false, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                lineNumber: 274,\n                columnNumber: 7\n            }, this),\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                style: {\n                    fontSize: \"var(--t-h3)\",\n                    fontWeight: 700,\n                    color: \"var(--fg)\"\n                },\n                children: value\n            }, void 0, false, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n                lineNumber: 285,\n                columnNumber: 7\n            }, this)\n        ]\n    }, void 0, true, {\n        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\profile\\\\page.tsx\",\n        lineNumber: 264,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64, \n//# sourceURL=webpack-internal:///(ssr)/./src/app/app/profile/page.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/gamification/ActivityFeed.tsx":
/*!******************************************************!*\
  !*** ./src/components/gamification/ActivityFeed.tsx ***!
  \******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ActivityFeed: () => (/* binding */ ActivityFeed)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* __next_internal_client_entry_do_not_use__ ActivityFeed auto */ \n\nfunction formatDate(iso) {\n    try {\n        return new Intl.DateTimeFormat(\"en\", {\n            month: \"short\",\n            day: \"numeric\"\n        }).format(new Date(iso));\n    } catch  {\n        return iso;\n    }\n}\nfunction ActivityFeed({ entries }) {\n    if (entries.length === 0) {\n        return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n            style: {\n                textAlign: \"center\",\n                color: \"var(--fg-muted)\",\n                padding: \"var(--s-6)\",\n                fontSize: \"var(--t-body)\"\n            },\n            children: \"No activity yet.\"\n        }, void 0, false, {\n            fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\ActivityFeed.tsx\",\n            lineNumber: 20,\n            columnNumber: 7\n        }, this);\n    }\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        style: {\n            display: \"flex\",\n            flexDirection: \"column\",\n            gap: \"var(--s-3)\"\n        },\n        children: entries.map((entry)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                style: {\n                    background: \"var(--bg-warm)\",\n                    borderRadius: \"var(--r-md)\",\n                    padding: \"var(--s-4)\",\n                    display: \"flex\",\n                    flexDirection: \"column\",\n                    gap: \"var(--s-2)\"\n                },\n                children: [\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                        style: {\n                            display: \"flex\",\n                            justifyContent: \"space-between\",\n                            alignItems: \"flex-start\"\n                        },\n                        children: [\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                                style: {\n                                    fontWeight: 600,\n                                    fontSize: \"var(--t-body)\",\n                                    color: \"var(--fg)\"\n                                },\n                                children: entry.displayName\n                            }, void 0, false, {\n                                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\ActivityFeed.tsx\",\n                                lineNumber: 48,\n                                columnNumber: 13\n                            }, this),\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                                style: {\n                                    fontSize: \"var(--t-label)\",\n                                    fontFamily: \"var(--font-mono)\",\n                                    color: \"var(--fg-subtle)\"\n                                },\n                                children: formatDate(entry.createdAt)\n                            }, void 0, false, {\n                                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\ActivityFeed.tsx\",\n                                lineNumber: 51,\n                                columnNumber: 13\n                            }, this)\n                        ]\n                    }, void 0, true, {\n                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\ActivityFeed.tsx\",\n                        lineNumber: 47,\n                        columnNumber: 11\n                    }, this),\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                        style: {\n                            display: \"flex\",\n                            gap: \"var(--s-4)\",\n                            flexWrap: \"wrap\"\n                        },\n                        children: [\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Stat, {\n                                label: \"Cycle\",\n                                value: `${entry.cycle}`\n                            }, void 0, false, {\n                                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\ActivityFeed.tsx\",\n                                lineNumber: 63,\n                                columnNumber: 13\n                            }, this),\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Stat, {\n                                label: \"Week\",\n                                value: `${entry.week}`\n                            }, void 0, false, {\n                                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\ActivityFeed.tsx\",\n                                lineNumber: 64,\n                                columnNumber: 13\n                            }, this),\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Stat, {\n                                label: \"Commits\",\n                                value: `${entry.totalCommits}`\n                            }, void 0, false, {\n                                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\ActivityFeed.tsx\",\n                                lineNumber: 65,\n                                columnNumber: 13\n                            }, this),\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Stat, {\n                                label: \"Streak\",\n                                value: `${entry.streakWeeks}w`\n                            }, void 0, false, {\n                                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\ActivityFeed.tsx\",\n                                lineNumber: 66,\n                                columnNumber: 13\n                            }, this)\n                        ]\n                    }, void 0, true, {\n                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\ActivityFeed.tsx\",\n                        lineNumber: 62,\n                        columnNumber: 11\n                    }, this),\n                    entry.badgeKeys.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                        style: {\n                            display: \"flex\",\n                            flexWrap: \"wrap\",\n                            gap: \"var(--s-1)\"\n                        },\n                        children: entry.badgeKeys.map((key)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                                style: {\n                                    fontSize: \"var(--t-label)\",\n                                    fontFamily: \"var(--font-mono)\",\n                                    textTransform: \"uppercase\",\n                                    letterSpacing: \"var(--label-ls)\",\n                                    padding: \"2px var(--s-2)\",\n                                    borderRadius: \"var(--r-pill)\",\n                                    background: \"var(--accent-soft)\",\n                                    color: \"var(--teal-900)\"\n                                },\n                                children: key\n                            }, key, false, {\n                                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\ActivityFeed.tsx\",\n                                lineNumber: 72,\n                                columnNumber: 17\n                            }, this))\n                    }, void 0, false, {\n                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\ActivityFeed.tsx\",\n                        lineNumber: 70,\n                        columnNumber: 13\n                    }, this)\n                ]\n            }, entry.id, true, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\ActivityFeed.tsx\",\n                lineNumber: 36,\n                columnNumber: 9\n            }, this))\n    }, void 0, false, {\n        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\ActivityFeed.tsx\",\n        lineNumber: 34,\n        columnNumber: 5\n    }, this);\n}\nfunction Stat({ label, value }) {\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        style: {\n            display: \"flex\",\n            flexDirection: \"column\",\n            gap: \"2px\"\n        },\n        children: [\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                style: {\n                    fontSize: \"var(--t-label)\",\n                    fontFamily: \"var(--font-mono)\",\n                    textTransform: \"uppercase\",\n                    letterSpacing: \"var(--label-ls)\",\n                    color: \"var(--fg-subtle)\"\n                },\n                children: label\n            }, void 0, false, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\ActivityFeed.tsx\",\n                lineNumber: 99,\n                columnNumber: 7\n            }, this),\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                style: {\n                    fontSize: \"var(--t-small)\",\n                    fontWeight: 600,\n                    color: \"var(--fg)\"\n                },\n                children: value\n            }, void 0, false, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\ActivityFeed.tsx\",\n                lineNumber: 110,\n                columnNumber: 7\n            }, this)\n        ]\n    }, void 0, true, {\n        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\ActivityFeed.tsx\",\n        lineNumber: 98,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64, \n//# sourceURL=webpack-internal:///(ssr)/./src/components/gamification/ActivityFeed.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/gamification/BadgeGrid.tsx":
/*!***************************************************!*\
  !*** ./src/components/gamification/BadgeGrid.tsx ***!
  \***************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   BadgeGrid: () => (/* binding */ BadgeGrid)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* __next_internal_client_entry_do_not_use__ BadgeGrid auto */ \n\nconst TIER_COLORS = {\n    bronze: {\n        bg: \"#f5e0c8\",\n        border: \"#c8914f\",\n        label: \"#7a4f2a\"\n    },\n    silver: {\n        bg: \"#ececec\",\n        border: \"#a8a8a8\",\n        label: \"#555\"\n    },\n    gold: {\n        bg: \"#fff3cc\",\n        border: \"#e6b800\",\n        label: \"#6b5000\"\n    },\n    legendary: {\n        bg: \"#ede0ff\",\n        border: \"var(--purple)\",\n        label: \"var(--purple-700)\"\n    },\n    content: {\n        bg: \"var(--bg-warm)\",\n        border: \"var(--cream)\",\n        label: \"var(--fg-muted)\"\n    }\n};\nfunction BadgeGrid({ allBadges, earned }) {\n    const earnedKeys = new Set(earned.map((e)=>e.badge));\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        style: {\n            display: \"grid\",\n            gridTemplateColumns: \"repeat(auto-fill, minmax(140px, 1fr))\",\n            gap: \"var(--s-3)\"\n        },\n        children: allBadges.map((badge)=>{\n            const isEarned = earnedKeys.has(badge.id);\n            const tier = TIER_COLORS[badge.tier];\n            return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                style: {\n                    background: isEarned ? tier.bg : \"var(--bg-warm)\",\n                    border: `2px solid ${isEarned ? tier.border : \"var(--cream)\"}`,\n                    borderRadius: \"var(--r-md)\",\n                    padding: \"var(--s-4)\",\n                    display: \"flex\",\n                    flexDirection: \"column\",\n                    alignItems: \"center\",\n                    gap: \"var(--s-2)\",\n                    textAlign: \"center\",\n                    opacity: isEarned ? 1 : 0.45,\n                    transition: \"opacity 200ms\"\n                },\n                children: [\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                        style: {\n                            fontSize: \"28px\",\n                            lineHeight: 1\n                        },\n                        children: badge.icon\n                    }, void 0, false, {\n                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\BadgeGrid.tsx\",\n                        lineNumber: 49,\n                        columnNumber: 13\n                    }, this),\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                        style: {\n                            fontSize: \"var(--t-small)\",\n                            fontWeight: 600,\n                            color: isEarned ? tier.label : \"var(--fg-muted)\",\n                            lineHeight: 1.3\n                        },\n                        children: badge.label\n                    }, void 0, false, {\n                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\BadgeGrid.tsx\",\n                        lineNumber: 50,\n                        columnNumber: 13\n                    }, this),\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                        style: {\n                            fontSize: \"var(--t-label)\",\n                            fontFamily: \"var(--font-mono)\",\n                            textTransform: \"uppercase\",\n                            letterSpacing: \"var(--label-ls)\",\n                            color: isEarned ? tier.label : \"var(--fg-subtle)\",\n                            opacity: 0.75\n                        },\n                        children: badge.tier\n                    }, void 0, false, {\n                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\BadgeGrid.tsx\",\n                        lineNumber: 60,\n                        columnNumber: 13\n                    }, this),\n                    isEarned && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                        style: {\n                            fontSize: \"var(--t-label)\",\n                            fontFamily: \"var(--font-mono)\",\n                            color: isEarned ? tier.label : \"var(--fg-subtle)\",\n                            opacity: 0.7\n                        },\n                        children: badge.description\n                    }, void 0, false, {\n                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\BadgeGrid.tsx\",\n                        lineNumber: 73,\n                        columnNumber: 15\n                    }, this)\n                ]\n            }, badge.id, true, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\BadgeGrid.tsx\",\n                lineNumber: 33,\n                columnNumber: 11\n            }, this);\n        })\n    }, void 0, false, {\n        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\BadgeGrid.tsx\",\n        lineNumber: 22,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64, \n//# sourceURL=webpack-internal:///(ssr)/./src/components/gamification/BadgeGrid.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/gamification/Heatmap.tsx":
/*!*************************************************!*\
  !*** ./src/components/gamification/Heatmap.tsx ***!
  \*************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Heatmap: () => (/* binding */ Heatmap)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* __next_internal_client_entry_do_not_use__ Heatmap auto */ \n\nfunction getHeatLevel(count) {\n    if (count === 0) return 0;\n    if (count === 1) return 1;\n    if (count <= 3) return 2;\n    return 3;\n}\nconst HEAT_COLORS = [\n    \"var(--heatmap-0)\",\n    \"var(--heatmap-1)\",\n    \"var(--heatmap-2)\",\n    \"var(--heatmap-3)\"\n];\nfunction Heatmap({ completions, totalWeeks = 26 }) {\n    const [tooltip, setTooltip] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n    // Group completions by week_number\n    const weekMap = new Map();\n    for (const c of completions){\n        weekMap.set(c.week_number, (weekMap.get(c.week_number) ?? 0) + 1);\n    }\n    const weeks = Array.from({\n        length: totalWeeks\n    }, (_, i)=>i + 1);\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        children: [\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                style: {\n                    fontSize: \"var(--t-label)\",\n                    fontFamily: \"var(--font-mono)\",\n                    textTransform: \"uppercase\",\n                    letterSpacing: \"var(--label-ls)\",\n                    color: \"var(--fg-muted)\",\n                    marginBottom: \"var(--s-3)\"\n                },\n                children: \"26-week activity\"\n            }, void 0, false, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Heatmap.tsx\",\n                lineNumber: 37,\n                columnNumber: 7\n            }, this),\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                style: {\n                    display: \"grid\",\n                    gridTemplateColumns: \"repeat(13, 1fr)\",\n                    gap: \"4px\",\n                    position: \"relative\"\n                },\n                children: weeks.map((week)=>{\n                    const count = weekMap.get(week) ?? 0;\n                    const level = getHeatLevel(count);\n                    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                        onMouseEnter: ()=>setTooltip({\n                                week,\n                                count\n                            }),\n                        onMouseLeave: ()=>setTooltip(null),\n                        onFocus: ()=>setTooltip({\n                                week,\n                                count\n                            }),\n                        onBlur: ()=>setTooltip(null),\n                        tabIndex: 0,\n                        role: \"gridcell\",\n                        \"aria-label\": `Week ${week}: ${count} completion${count !== 1 ? \"s\" : \"\"}`,\n                        style: {\n                            aspectRatio: \"1\",\n                            borderRadius: \"var(--r-sm)\",\n                            background: HEAT_COLORS[level],\n                            cursor: \"pointer\",\n                            transition: \"transform 100ms\",\n                            outline: \"none\"\n                        },\n                        onMouseDown: (e)=>{\n                            e.currentTarget.style.transform = \"scale(0.9)\";\n                        },\n                        onMouseUp: (e)=>{\n                            e.currentTarget.style.transform = \"scale(1)\";\n                        }\n                    }, week, false, {\n                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Heatmap.tsx\",\n                        lineNumber: 61,\n                        columnNumber: 13\n                    }, this);\n                })\n            }, void 0, false, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Heatmap.tsx\",\n                lineNumber: 49,\n                columnNumber: 7\n            }, this),\n            tooltip && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                style: {\n                    marginTop: \"var(--s-2)\",\n                    fontSize: \"var(--t-small)\",\n                    color: \"var(--fg-muted)\",\n                    textAlign: \"center\"\n                },\n                children: [\n                    \"Week \",\n                    tooltip.week,\n                    \": \",\n                    tooltip.count,\n                    \" completion\",\n                    tooltip.count !== 1 ? \"s\" : \"\"\n                ]\n            }, void 0, true, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Heatmap.tsx\",\n                lineNumber: 90,\n                columnNumber: 9\n            }, this),\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                style: {\n                    display: \"flex\",\n                    alignItems: \"center\",\n                    gap: \"var(--s-2)\",\n                    marginTop: \"var(--s-3)\",\n                    justifyContent: \"flex-end\"\n                },\n                children: [\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                        style: {\n                            fontSize: \"var(--t-label)\",\n                            fontFamily: \"var(--font-mono)\",\n                            color: \"var(--fg-subtle)\"\n                        },\n                        children: \"Less\"\n                    }, void 0, false, {\n                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Heatmap.tsx\",\n                        lineNumber: 111,\n                        columnNumber: 9\n                    }, this),\n                    HEAT_COLORS.map((color, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                            style: {\n                                width: \"12px\",\n                                height: \"12px\",\n                                borderRadius: \"3px\",\n                                background: color\n                            }\n                        }, i, false, {\n                            fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Heatmap.tsx\",\n                            lineNumber: 115,\n                            columnNumber: 11\n                        }, this)),\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                        style: {\n                            fontSize: \"var(--t-label)\",\n                            fontFamily: \"var(--font-mono)\",\n                            color: \"var(--fg-subtle)\"\n                        },\n                        children: \"More\"\n                    }, void 0, false, {\n                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Heatmap.tsx\",\n                        lineNumber: 125,\n                        columnNumber: 9\n                    }, this)\n                ]\n            }, void 0, true, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Heatmap.tsx\",\n                lineNumber: 102,\n                columnNumber: 7\n            }, this)\n        ]\n    }, void 0, true, {\n        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Heatmap.tsx\",\n        lineNumber: 36,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64, \n//# sourceURL=webpack-internal:///(ssr)/./src/components/gamification/Heatmap.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/gamification/Leaderboard.tsx":
/*!*****************************************************!*\
  !*** ./src/components/gamification/Leaderboard.tsx ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Leaderboard: () => (/* binding */ Leaderboard)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* __next_internal_client_entry_do_not_use__ Leaderboard auto */ \n\nconst LEVEL_EMOJI = {\n    intern: \"\\uD83C\\uDF31\",\n    junior: \"\\uD83D\\uDCD7\",\n    medior: \"\\uD83D\\uDCD8\",\n    senior: \"\\uD83D\\uDCD9\",\n    staff: \"\\uD83D\\uDD37\",\n    principal: \"\\uD83C\\uDFC6\"\n};\nfunction Leaderboard({ entries, currentUserId }) {\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        style: {\n            overflowX: \"auto\",\n            WebkitOverflowScrolling: \"touch\"\n        },\n        children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"table\", {\n            style: {\n                width: \"100%\",\n                borderCollapse: \"collapse\",\n                fontSize: \"var(--t-small)\",\n                minWidth: \"480px\"\n            },\n            children: [\n                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"thead\", {\n                    children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tr\", {\n                        children: [\n                            \"#\",\n                            \"Name\",\n                            \"Commits\",\n                            \"Streak\",\n                            \"Types\",\n                            \"Badges\",\n                            \"Level\"\n                        ].map((col)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n                                style: {\n                                    padding: \"var(--s-2) var(--s-3)\",\n                                    textAlign: col === \"#\" || col === \"Name\" ? \"left\" : \"center\",\n                                    fontSize: \"var(--t-label)\",\n                                    fontFamily: \"var(--font-mono)\",\n                                    textTransform: \"uppercase\",\n                                    letterSpacing: \"var(--label-ls)\",\n                                    color: \"var(--fg-muted)\",\n                                    borderBottom: \"2px solid var(--cream)\",\n                                    background: \"var(--bg)\",\n                                    position: col === \"Name\" ? \"sticky\" : undefined,\n                                    left: col === \"Name\" ? \"28px\" : undefined,\n                                    whiteSpace: \"nowrap\"\n                                },\n                                children: col\n                            }, col, false, {\n                                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Leaderboard.tsx\",\n                                lineNumber: 33,\n                                columnNumber: 15\n                            }, this))\n                    }, void 0, false, {\n                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Leaderboard.tsx\",\n                        lineNumber: 31,\n                        columnNumber: 11\n                    }, this)\n                }, void 0, false, {\n                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Leaderboard.tsx\",\n                    lineNumber: 30,\n                    columnNumber: 9\n                }, this),\n                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tbody\", {\n                    children: entries.map((entry, idx)=>{\n                        const isMe = entry.userId === currentUserId;\n                        return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tr\", {\n                            style: {\n                                background: isMe ? \"var(--accent-soft)\" : idx % 2 === 0 ? \"var(--bg)\" : \"var(--bg-warm)\"\n                            },\n                            children: [\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n                                    style: {\n                                        padding: \"var(--s-2) var(--s-3)\",\n                                        color: \"var(--fg-muted)\",\n                                        fontWeight: idx < 3 ? 700 : 400,\n                                        whiteSpace: \"nowrap\"\n                                    },\n                                    children: idx === 0 ? \"\\uD83E\\uDD47\" : idx === 1 ? \"\\uD83E\\uDD48\" : idx === 2 ? \"\\uD83E\\uDD49\" : idx + 1\n                                }, void 0, false, {\n                                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Leaderboard.tsx\",\n                                    lineNumber: 65,\n                                    columnNumber: 17\n                                }, this),\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n                                    style: {\n                                        padding: \"var(--s-2) var(--s-3)\",\n                                        fontWeight: isMe ? 700 : 500,\n                                        color: isMe ? \"var(--teal-900)\" : \"var(--fg)\",\n                                        position: \"sticky\",\n                                        left: \"28px\",\n                                        background: isMe ? \"var(--accent-soft)\" : idx % 2 === 0 ? \"var(--bg)\" : \"var(--bg-warm)\",\n                                        whiteSpace: \"nowrap\"\n                                    },\n                                    children: [\n                                        entry.displayName,\n                                        isMe && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                                            style: {\n                                                marginLeft: \"var(--s-2)\",\n                                                fontSize: \"var(--t-label)\",\n                                                fontFamily: \"var(--font-mono)\",\n                                                textTransform: \"uppercase\",\n                                                color: \"var(--teal-700)\"\n                                            },\n                                            children: \"you\"\n                                        }, void 0, false, {\n                                            fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Leaderboard.tsx\",\n                                            lineNumber: 88,\n                                            columnNumber: 21\n                                        }, this)\n                                    ]\n                                }, void 0, true, {\n                                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Leaderboard.tsx\",\n                                    lineNumber: 75,\n                                    columnNumber: 17\n                                }, this),\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n                                    style: {\n                                        padding: \"var(--s-2) var(--s-3)\",\n                                        textAlign: \"center\",\n                                        fontWeight: 600\n                                    },\n                                    children: entry.totalCommits\n                                }, void 0, false, {\n                                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Leaderboard.tsx\",\n                                    lineNumber: 101,\n                                    columnNumber: 17\n                                }, this),\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n                                    style: {\n                                        padding: \"var(--s-2) var(--s-3)\",\n                                        textAlign: \"center\"\n                                    },\n                                    children: [\n                                        entry.currentStreak,\n                                        \"w\"\n                                    ]\n                                }, void 0, true, {\n                                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Leaderboard.tsx\",\n                                    lineNumber: 104,\n                                    columnNumber: 17\n                                }, this),\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n                                    style: {\n                                        padding: \"var(--s-2) var(--s-3)\",\n                                        textAlign: \"center\"\n                                    },\n                                    children: entry.typesUsed\n                                }, void 0, false, {\n                                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Leaderboard.tsx\",\n                                    lineNumber: 107,\n                                    columnNumber: 17\n                                }, this),\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n                                    style: {\n                                        padding: \"var(--s-2) var(--s-3)\",\n                                        textAlign: \"center\"\n                                    },\n                                    children: entry.badgeCount\n                                }, void 0, false, {\n                                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Leaderboard.tsx\",\n                                    lineNumber: 110,\n                                    columnNumber: 17\n                                }, this),\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n                                    style: {\n                                        padding: \"var(--s-2) var(--s-3)\",\n                                        textAlign: \"center\",\n                                        whiteSpace: \"nowrap\"\n                                    },\n                                    children: [\n                                        LEVEL_EMOJI[entry.level] ?? \"\",\n                                        \" \",\n                                        entry.level\n                                    ]\n                                }, void 0, true, {\n                                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Leaderboard.tsx\",\n                                    lineNumber: 113,\n                                    columnNumber: 17\n                                }, this)\n                            ]\n                        }, entry.userId, true, {\n                            fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Leaderboard.tsx\",\n                            lineNumber: 59,\n                            columnNumber: 15\n                        }, this);\n                    })\n                }, void 0, false, {\n                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Leaderboard.tsx\",\n                    lineNumber: 55,\n                    columnNumber: 9\n                }, this)\n            ]\n        }, void 0, true, {\n            fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Leaderboard.tsx\",\n            lineNumber: 22,\n            columnNumber: 7\n        }, this)\n    }, void 0, false, {\n        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\gamification\\\\Leaderboard.tsx\",\n        lineNumber: 21,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64, \n//# sourceURL=webpack-internal:///(ssr)/./src/components/gamification/Leaderboard.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/r42/R42Button.tsx":
/*!******************************************!*\
  !*** ./src/components/r42/R42Button.tsx ***!
  \******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   R42Button: () => (/* binding */ R42Button)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* __next_internal_client_entry_do_not_use__ R42Button auto */ \n\nfunction R42Button({ onClick }) {\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n        onClick: onClick,\n        \"aria-label\": \"Open R42 assistant\",\n        style: {\n            position: \"fixed\",\n            bottom: \"calc(var(--nav-height) + 16px)\",\n            right: \"16px\",\n            width: \"var(--r42-size)\",\n            height: \"var(--r42-size)\",\n            borderRadius: \"50%\",\n            background: \"var(--accent)\",\n            border: \"none\",\n            cursor: \"pointer\",\n            display: \"flex\",\n            alignItems: \"center\",\n            justifyContent: \"center\",\n            boxShadow: \"var(--shadow-pill)\",\n            zIndex: 200,\n            transition: \"transform 150ms, box-shadow 150ms\",\n            color: \"var(--paper)\",\n            fontSize: \"22px\"\n        },\n        onMouseEnter: (e)=>{\n            e.currentTarget.style.transform = \"scale(1.08)\";\n        },\n        onMouseLeave: (e)=>{\n            e.currentTarget.style.transform = \"scale(1)\";\n        },\n        children: \"R\"\n    }, void 0, false, {\n        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Button.tsx\",\n        lineNumber: 10,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9yNDIvUjQyQnV0dG9uLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDeUI7QUFNbEIsU0FBU0MsVUFBVSxFQUFFQyxPQUFPLEVBQWtCO0lBQ25ELHFCQUNFLDhEQUFDQztRQUNDRCxTQUFTQTtRQUNURSxjQUFXO1FBQ1hDLE9BQU87WUFDTEMsVUFBVTtZQUNWQyxRQUFRO1lBQ1JDLE9BQU87WUFDUEMsT0FBTztZQUNQQyxRQUFRO1lBQ1JDLGNBQWM7WUFDZEMsWUFBWTtZQUNaQyxRQUFRO1lBQ1JDLFFBQVE7WUFDUkMsU0FBUztZQUNUQyxZQUFZO1lBQ1pDLGdCQUFnQjtZQUNoQkMsV0FBVztZQUNYQyxRQUFRO1lBQ1JDLFlBQVk7WUFDWkMsT0FBTztZQUNQQyxVQUFVO1FBQ1o7UUFDQUMsY0FBYyxDQUFDQztZQUNiQSxFQUFFQyxhQUFhLENBQUNwQixLQUFLLENBQUNxQixTQUFTLEdBQUc7UUFDcEM7UUFDQUMsY0FBYyxDQUFDSDtZQUNiQSxFQUFFQyxhQUFhLENBQUNwQixLQUFLLENBQUNxQixTQUFTLEdBQUc7UUFDcEM7a0JBQ0Q7Ozs7OztBQUlMIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbGVhcm5pbmctcGxhdGZvcm0tZnJvbnRlbmQvLi9zcmMvY29tcG9uZW50cy9yNDIvUjQyQnV0dG9uLnRzeD83MWM5Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbnRlcmZhY2UgUjQyQnV0dG9uUHJvcHMge1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBSNDJCdXR0b24oeyBvbkNsaWNrIH06IFI0MkJ1dHRvblByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGJ1dHRvblxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIGFyaWEtbGFiZWw9XCJPcGVuIFI0MiBhc3Npc3RhbnRcIlxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgICAgIGJvdHRvbTogJ2NhbGModmFyKC0tbmF2LWhlaWdodCkgKyAxNnB4KScsXG4gICAgICAgIHJpZ2h0OiAnMTZweCcsXG4gICAgICAgIHdpZHRoOiAndmFyKC0tcjQyLXNpemUpJyxcbiAgICAgICAgaGVpZ2h0OiAndmFyKC0tcjQyLXNpemUpJyxcbiAgICAgICAgYm9yZGVyUmFkaXVzOiAnNTAlJyxcbiAgICAgICAgYmFja2dyb3VuZDogJ3ZhcigtLWFjY2VudCknLFxuICAgICAgICBib3JkZXI6ICdub25lJyxcbiAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgYm94U2hhZG93OiAndmFyKC0tc2hhZG93LXBpbGwpJyxcbiAgICAgICAgekluZGV4OiAyMDAsXG4gICAgICAgIHRyYW5zaXRpb246ICd0cmFuc2Zvcm0gMTUwbXMsIGJveC1zaGFkb3cgMTUwbXMnLFxuICAgICAgICBjb2xvcjogJ3ZhcigtLXBhcGVyKScsXG4gICAgICAgIGZvbnRTaXplOiAnMjJweCcsXG4gICAgICB9fVxuICAgICAgb25Nb3VzZUVudGVyPXsoZSkgPT4ge1xuICAgICAgICBlLmN1cnJlbnRUYXJnZXQuc3R5bGUudHJhbnNmb3JtID0gJ3NjYWxlKDEuMDgpJ1xuICAgICAgfX1cbiAgICAgIG9uTW91c2VMZWF2ZT17KGUpID0+IHtcbiAgICAgICAgZS5jdXJyZW50VGFyZ2V0LnN0eWxlLnRyYW5zZm9ybSA9ICdzY2FsZSgxKSdcbiAgICAgIH19XG4gICAgPlxuICAgICAgUlxuICAgIDwvYnV0dG9uPlxuICApXG59XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJSNDJCdXR0b24iLCJvbkNsaWNrIiwiYnV0dG9uIiwiYXJpYS1sYWJlbCIsInN0eWxlIiwicG9zaXRpb24iLCJib3R0b20iLCJyaWdodCIsIndpZHRoIiwiaGVpZ2h0IiwiYm9yZGVyUmFkaXVzIiwiYmFja2dyb3VuZCIsImJvcmRlciIsImN1cnNvciIsImRpc3BsYXkiLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJib3hTaGFkb3ciLCJ6SW5kZXgiLCJ0cmFuc2l0aW9uIiwiY29sb3IiLCJmb250U2l6ZSIsIm9uTW91c2VFbnRlciIsImUiLCJjdXJyZW50VGFyZ2V0IiwidHJhbnNmb3JtIiwib25Nb3VzZUxlYXZlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/r42/R42Button.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/r42/R42Drawer.tsx":
/*!******************************************!*\
  !*** ./src/components/r42/R42Drawer.tsx ***!
  \******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   R42Drawer: () => (/* binding */ R42Drawer)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _components_ui_Button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/Button */ \"(ssr)/./src/components/ui/Button.tsx\");\n/* __next_internal_client_entry_do_not_use__ R42Drawer auto */ \n\n\nconst CHAT_URL = \"http://localhost:3004\" ?? 0;\nfunction R42Drawer({ open, onClose, userId }) {\n    const [messages, setMessages] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n    const [input, setInput] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n    const [streaming, setStreaming] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n    const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n    const bottomRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n    const abortRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n    (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n        if (open) {\n            bottomRef.current?.scrollIntoView({\n                behavior: \"smooth\"\n            });\n        }\n    }, [\n        messages,\n        open\n    ]);\n    const handleClose = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(()=>{\n        abortRef.current?.abort();\n        onClose();\n    }, [\n        onClose\n    ]);\n    async function sendMessage() {\n        const text = input.trim();\n        if (!text || streaming) return;\n        setInput(\"\");\n        setError(null);\n        const userMsg = {\n            role: \"user\",\n            text\n        };\n        setMessages((prev)=>[\n                ...prev,\n                userMsg\n            ]);\n        const ctrl = new AbortController();\n        abortRef.current = ctrl;\n        setStreaming(true);\n        let assistantText = \"\";\n        let citations = [];\n        let outOfScope = false;\n        setMessages((prev)=>[\n                ...prev,\n                {\n                    role: \"assistant\",\n                    text: \"\"\n                }\n            ]);\n        try {\n            const res = await fetch(`${CHAT_URL}/chat`, {\n                method: \"POST\",\n                headers: {\n                    \"Content-Type\": \"application/json\"\n                },\n                body: JSON.stringify({\n                    userId,\n                    message: text\n                }),\n                signal: ctrl.signal\n            });\n            if (!res.ok) {\n                throw new Error(`Chat service error: ${res.status}`);\n            }\n            const reader = res.body?.getReader();\n            if (!reader) throw new Error(\"No response body\");\n            const decoder = new TextDecoder();\n            let buffer = \"\";\n            while(true){\n                const { done, value } = await reader.read();\n                if (done) break;\n                buffer += decoder.decode(value, {\n                    stream: true\n                });\n                const lines = buffer.split(\"\\n\");\n                buffer = lines.pop() ?? \"\";\n                for (const line of lines){\n                    if (!line.startsWith(\"data: \")) continue;\n                    const raw = line.slice(6).trim();\n                    if (raw === \"[DONE]\") continue;\n                    try {\n                        const event = JSON.parse(raw);\n                        if (event.type === \"chunk\") {\n                            assistantText += event.text;\n                            setMessages((prev)=>{\n                                const copy = [\n                                    ...prev\n                                ];\n                                copy[copy.length - 1] = {\n                                    role: \"assistant\",\n                                    text: assistantText\n                                };\n                                return copy;\n                            });\n                        } else if (event.type === \"citations\") {\n                            citations = event.topics;\n                        } else if (event.type === \"out_of_scope\") {\n                            outOfScope = true;\n                            assistantText = event.text;\n                            setMessages((prev)=>{\n                                const copy = [\n                                    ...prev\n                                ];\n                                copy[copy.length - 1] = {\n                                    role: \"assistant\",\n                                    text: assistantText,\n                                    outOfScope: true\n                                };\n                                return copy;\n                            });\n                        } else if (event.type === \"done\") {\n                            setMessages((prev)=>{\n                                const copy = [\n                                    ...prev\n                                ];\n                                copy[copy.length - 1] = {\n                                    role: \"assistant\",\n                                    text: assistantText,\n                                    citations: citations.length > 0 ? citations : undefined,\n                                    outOfScope\n                                };\n                                return copy;\n                            });\n                        }\n                    } catch  {\n                    // skip malformed SSE lines\n                    }\n                }\n            }\n        } catch (err) {\n            if (err.name === \"AbortError\") return;\n            setError(err instanceof Error ? err.message : \"Failed to send message\");\n            setMessages((prev)=>prev.slice(0, -1));\n        } finally{\n            setStreaming(false);\n        }\n    }\n    function handleKeyDown(e) {\n        if (e.key === \"Enter\" && !e.shiftKey) {\n            e.preventDefault();\n            void sendMessage();\n        }\n    }\n    if (!open) return null;\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n        children: [\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                onClick: handleClose,\n                style: {\n                    position: \"fixed\",\n                    inset: 0,\n                    background: \"rgba(0,0,0,0.35)\",\n                    zIndex: 300\n                },\n                \"aria-hidden\": \"true\"\n            }, void 0, false, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Drawer.tsx\",\n                lineNumber: 152,\n                columnNumber: 7\n            }, this),\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                role: \"dialog\",\n                \"aria-label\": \"R42 Assistant\",\n                style: {\n                    position: \"fixed\",\n                    bottom: 0,\n                    left: 0,\n                    right: 0,\n                    top: \"auto\",\n                    maxHeight: \"85dvh\",\n                    background: \"var(--bg)\",\n                    borderTopLeftRadius: \"var(--r-xl)\",\n                    borderTopRightRadius: \"var(--r-xl)\",\n                    boxShadow: \"0 -8px 40px rgba(0,0,0,0.18)\",\n                    zIndex: 301,\n                    display: \"flex\",\n                    flexDirection: \"column\"\n                },\n                children: [\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                        style: {\n                            padding: \"var(--s-4) var(--s-5)\",\n                            borderBottom: \"1px solid var(--cream)\",\n                            display: \"flex\",\n                            alignItems: \"center\",\n                            justifyContent: \"space-between\",\n                            flexShrink: 0\n                        },\n                        children: [\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                style: {\n                                    display: \"flex\",\n                                    alignItems: \"center\",\n                                    gap: \"var(--s-3)\"\n                                },\n                                children: [\n                                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                        style: {\n                                            width: \"32px\",\n                                            height: \"32px\",\n                                            borderRadius: \"50%\",\n                                            background: \"var(--accent)\",\n                                            display: \"flex\",\n                                            alignItems: \"center\",\n                                            justifyContent: \"center\",\n                                            color: \"var(--paper)\",\n                                            fontWeight: 700,\n                                            fontSize: \"var(--t-small)\"\n                                        },\n                                        children: \"R\"\n                                    }, void 0, false, {\n                                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Drawer.tsx\",\n                                        lineNumber: 196,\n                                        columnNumber: 13\n                                    }, this),\n                                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                                        style: {\n                                            fontWeight: 600,\n                                            fontSize: \"var(--t-body)\",\n                                            color: \"var(--fg)\"\n                                        },\n                                        children: \"R42\"\n                                    }, void 0, false, {\n                                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Drawer.tsx\",\n                                        lineNumber: 212,\n                                        columnNumber: 13\n                                    }, this)\n                                ]\n                            }, void 0, true, {\n                                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Drawer.tsx\",\n                                lineNumber: 195,\n                                columnNumber: 11\n                            }, this),\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n                                onClick: handleClose,\n                                \"aria-label\": \"Close R42\",\n                                style: {\n                                    background: \"none\",\n                                    border: \"none\",\n                                    cursor: \"pointer\",\n                                    color: \"var(--fg-muted)\",\n                                    fontSize: \"24px\",\n                                    lineHeight: 1,\n                                    padding: \"var(--s-1)\",\n                                    minWidth: \"44px\",\n                                    minHeight: \"44px\",\n                                    display: \"flex\",\n                                    alignItems: \"center\",\n                                    justifyContent: \"center\"\n                                },\n                                children: \"\\xd7\"\n                            }, void 0, false, {\n                                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Drawer.tsx\",\n                                lineNumber: 216,\n                                columnNumber: 11\n                            }, this)\n                        ]\n                    }, void 0, true, {\n                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Drawer.tsx\",\n                        lineNumber: 185,\n                        columnNumber: 9\n                    }, this),\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                        style: {\n                            flex: 1,\n                            overflowY: \"auto\",\n                            padding: \"var(--s-4) var(--s-5)\",\n                            display: \"flex\",\n                            flexDirection: \"column\",\n                            gap: \"var(--s-4)\"\n                        },\n                        children: [\n                            messages.length === 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                style: {\n                                    textAlign: \"center\",\n                                    color: \"var(--fg-muted)\",\n                                    fontSize: \"var(--t-body)\",\n                                    marginTop: \"var(--s-6)\"\n                                },\n                                children: \"Ask R42 anything about the knowledge base.\"\n                            }, void 0, false, {\n                                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Drawer.tsx\",\n                                lineNumber: 250,\n                                columnNumber: 13\n                            }, this),\n                            messages.map((msg, idx)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                    style: {\n                                        display: \"flex\",\n                                        flexDirection: \"column\",\n                                        alignItems: msg.role === \"user\" ? \"flex-end\" : \"flex-start\",\n                                        gap: \"var(--s-2)\"\n                                    },\n                                    children: [\n                                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                            style: {\n                                                maxWidth: \"85%\",\n                                                background: msg.role === \"user\" ? \"var(--accent)\" : \"var(--bg-warm)\",\n                                                color: msg.role === \"user\" ? \"var(--paper)\" : \"var(--fg)\",\n                                                borderRadius: msg.role === \"user\" ? \"var(--r-md) var(--r-md) var(--r-sm) var(--r-md)\" : \"var(--r-md) var(--r-md) var(--r-md) var(--r-sm)\",\n                                                padding: \"var(--s-3) var(--s-4)\",\n                                                fontSize: \"var(--t-body)\",\n                                                lineHeight: 1.6,\n                                                opacity: msg.outOfScope ? 0.75 : 1\n                                            },\n                                            children: msg.text || (msg.role === \"assistant\" && streaming && idx === messages.length - 1 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(StreamingDots, {}, void 0, false, {\n                                                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Drawer.tsx\",\n                                                lineNumber: 288,\n                                                columnNumber: 19\n                                            }, this) : null)\n                                        }, void 0, false, {\n                                            fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Drawer.tsx\",\n                                            lineNumber: 272,\n                                            columnNumber: 15\n                                        }, this),\n                                        msg.citations && msg.citations.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                            style: {\n                                                display: \"flex\",\n                                                flexWrap: \"wrap\",\n                                                gap: \"var(--s-2)\",\n                                                maxWidth: \"85%\"\n                                            },\n                                            children: msg.citations.map((c)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                                                    style: {\n                                                        display: \"inline-block\",\n                                                        background: \"var(--accent-soft)\",\n                                                        color: \"var(--teal-900)\",\n                                                        borderRadius: \"var(--r-pill)\",\n                                                        fontSize: \"var(--t-small)\",\n                                                        padding: \"2px var(--s-3)\"\n                                                    },\n                                                    children: c.title\n                                                }, c.id, false, {\n                                                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Drawer.tsx\",\n                                                    lineNumber: 294,\n                                                    columnNumber: 21\n                                                }, this))\n                                        }, void 0, false, {\n                                            fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Drawer.tsx\",\n                                            lineNumber: 292,\n                                            columnNumber: 17\n                                        }, this)\n                                    ]\n                                }, idx, true, {\n                                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Drawer.tsx\",\n                                    lineNumber: 263,\n                                    columnNumber: 13\n                                }, this)),\n                            error && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                style: {\n                                    color: \"#c0392b\",\n                                    fontSize: \"var(--t-small)\",\n                                    padding: \"var(--s-2) var(--s-4)\",\n                                    background: \"#f8d7da\",\n                                    borderRadius: \"var(--r-sm)\"\n                                },\n                                children: error\n                            }, void 0, false, {\n                                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Drawer.tsx\",\n                                lineNumber: 314,\n                                columnNumber: 13\n                            }, this),\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                ref: bottomRef\n                            }, void 0, false, {\n                                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Drawer.tsx\",\n                                lineNumber: 326,\n                                columnNumber: 11\n                            }, this)\n                        ]\n                    }, void 0, true, {\n                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Drawer.tsx\",\n                        lineNumber: 239,\n                        columnNumber: 9\n                    }, this),\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                        style: {\n                            padding: \"var(--s-3) var(--s-5) var(--s-5)\",\n                            borderTop: \"1px solid var(--cream)\",\n                            display: \"flex\",\n                            gap: \"var(--s-2)\",\n                            alignItems: \"flex-end\",\n                            flexShrink: 0\n                        },\n                        children: [\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"textarea\", {\n                                value: input,\n                                onChange: (e)=>setInput(e.target.value),\n                                onKeyDown: handleKeyDown,\n                                placeholder: \"Ask anything…\",\n                                rows: 1,\n                                disabled: streaming,\n                                style: {\n                                    flex: 1,\n                                    borderRadius: \"var(--r-md)\",\n                                    border: \"1.5px solid var(--cream)\",\n                                    padding: \"var(--s-3) var(--s-4)\",\n                                    fontSize: \"var(--t-body)\",\n                                    fontFamily: \"var(--font-sans)\",\n                                    color: \"var(--fg)\",\n                                    background: \"var(--bg)\",\n                                    resize: \"none\",\n                                    outline: \"none\",\n                                    lineHeight: 1.5,\n                                    minHeight: \"44px\",\n                                    maxHeight: \"120px\",\n                                    overflowY: \"auto\"\n                                }\n                            }, void 0, false, {\n                                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Drawer.tsx\",\n                                lineNumber: 340,\n                                columnNumber: 11\n                            }, this),\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_Button__WEBPACK_IMPORTED_MODULE_2__.Button, {\n                                variant: \"primary\",\n                                size: \"md\",\n                                onClick: ()=>void sendMessage(),\n                                loading: streaming,\n                                disabled: !input.trim() || streaming,\n                                style: {\n                                    flexShrink: 0,\n                                    minWidth: \"44px\",\n                                    minHeight: \"44px\"\n                                },\n                                children: streaming ? \"\" : \"↑\"\n                            }, void 0, false, {\n                                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Drawer.tsx\",\n                                lineNumber: 364,\n                                columnNumber: 11\n                            }, this)\n                        ]\n                    }, void 0, true, {\n                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Drawer.tsx\",\n                        lineNumber: 330,\n                        columnNumber: 9\n                    }, this)\n                ]\n            }, void 0, true, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Drawer.tsx\",\n                lineNumber: 164,\n                columnNumber: 7\n            }, this),\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"style\", {\n                children: `\n        @media (min-width: 768px) {\n          [role=\"dialog\"][aria-label=\"R42 Assistant\"] {\n            right: 0;\n            left: auto;\n            top: 0;\n            bottom: 0;\n            max-height: 100dvh;\n            width: 400px;\n            border-radius: var(--r-lg) 0 0 var(--r-lg);\n          }\n        }\n      `\n            }, void 0, false, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Drawer.tsx\",\n                lineNumber: 377,\n                columnNumber: 7\n            }, this)\n        ]\n    }, void 0, true);\n}\nfunction StreamingDots() {\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n        style: {\n            display: \"inline-flex\",\n            gap: \"4px\",\n            alignItems: \"center\"\n        },\n        children: [\n            [\n                0,\n                1,\n                2\n            ].map((i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                    style: {\n                        width: \"6px\",\n                        height: \"6px\",\n                        borderRadius: \"50%\",\n                        background: \"var(--fg-muted)\",\n                        animation: `bounce 1s ${i * 0.15}s infinite`\n                    }\n                }, i, false, {\n                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Drawer.tsx\",\n                    lineNumber: 398,\n                    columnNumber: 9\n                }, this)),\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"style\", {\n                children: `\n        @keyframes bounce {\n          0%, 80%, 100% { transform: scale(0.7); opacity: 0.5; }\n          40% { transform: scale(1); opacity: 1; }\n        }\n      `\n            }, void 0, false, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Drawer.tsx\",\n                lineNumber: 409,\n                columnNumber: 7\n            }, this)\n        ]\n    }, void 0, true, {\n        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\r42\\\\R42Drawer.tsx\",\n        lineNumber: 396,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64, \n//# sourceURL=webpack-internal:///(ssr)/./src/components/r42/R42Drawer.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/ui/Button.tsx":
/*!**************************************!*\
  !*** ./src/components/ui/Button.tsx ***!
  \**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Button: () => (/* binding */ Button)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* __next_internal_client_entry_do_not_use__ Button auto */ \n\nconst variantStyles = {\n    primary: {\n        background: \"var(--accent)\",\n        color: \"var(--paper)\",\n        border: \"none\"\n    },\n    secondary: {\n        background: \"var(--bg-warm)\",\n        color: \"var(--fg)\",\n        border: \"1.5px solid var(--cream)\"\n    },\n    danger: {\n        background: \"#c0392b\",\n        color: \"var(--paper)\",\n        border: \"none\"\n    },\n    ghost: {\n        background: \"transparent\",\n        color: \"var(--fg)\",\n        border: \"1.5px solid var(--cream)\"\n    }\n};\nconst sizeStyles = {\n    sm: {\n        fontSize: \"var(--t-small)\",\n        padding: \"var(--s-2) var(--s-3)\",\n        minHeight: \"36px\",\n        borderRadius: \"var(--r-sm)\"\n    },\n    md: {\n        fontSize: \"var(--t-body)\",\n        padding: \"var(--s-2) var(--s-5)\",\n        minHeight: \"44px\",\n        borderRadius: \"var(--r-md)\"\n    },\n    lg: {\n        fontSize: \"var(--t-lead)\",\n        padding: \"var(--s-3) var(--s-6)\",\n        minHeight: \"52px\",\n        borderRadius: \"var(--r-lg)\"\n    }\n};\nfunction Button({ variant = \"primary\", size = \"md\", loading = false, disabled, children, style, ...rest }) {\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n        disabled: disabled ?? loading,\n        style: {\n            display: \"inline-flex\",\n            alignItems: \"center\",\n            justifyContent: \"center\",\n            gap: \"var(--s-2)\",\n            fontFamily: \"var(--font-sans)\",\n            fontWeight: 500,\n            cursor: disabled ?? loading ? \"not-allowed\" : \"pointer\",\n            opacity: disabled ?? loading ? 0.6 : 1,\n            transition: \"opacity 150ms, transform 100ms\",\n            ...variantStyles[variant],\n            ...sizeStyles[size],\n            ...style\n        },\n        ...rest,\n        children: loading ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n            children: [\n                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Spinner, {}, void 0, false, {\n                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\ui\\\\Button.tsx\",\n                    lineNumber: 88,\n                    columnNumber: 11\n                }, this),\n                children\n            ]\n        }, void 0, true) : children\n    }, void 0, false, {\n        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\ui\\\\Button.tsx\",\n        lineNumber: 68,\n        columnNumber: 5\n    }, this);\n}\nfunction Spinner() {\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n        style: {\n            width: \"16px\",\n            height: \"16px\",\n            border: \"2px solid currentColor\",\n            borderTopColor: \"transparent\",\n            borderRadius: \"50%\",\n            display: \"inline-block\",\n            animation: \"spin 0.7s linear infinite\"\n        }\n    }, void 0, false, {\n        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\ui\\\\Button.tsx\",\n        lineNumber: 100,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64, \n//# sourceURL=webpack-internal:///(ssr)/./src/components/ui/Button.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/ui/Toast.tsx":
/*!*************************************!*\
  !*** ./src/components/ui/Toast.tsx ***!
  \*************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ToastProvider: () => (/* binding */ ToastProvider),\n/* harmony export */   useToast: () => (/* binding */ useToast)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* __next_internal_client_entry_do_not_use__ ToastProvider,useToast auto */ \n\nconst ToastContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)(null);\nfunction ToastProvider({ children }) {\n    const [toasts, setToasts] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n    const showToast = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((message, type = \"info\")=>{\n        const id = `toast-${Date.now()}-${Math.random()}`;\n        setToasts((prev)=>[\n                ...prev,\n                {\n                    id,\n                    message,\n                    type\n                }\n            ]);\n    }, []);\n    const dismiss = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((id)=>{\n        setToasts((prev)=>prev.filter((t)=>t.id !== id));\n    }, []);\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(ToastContext.Provider, {\n        value: {\n            showToast\n        },\n        children: [\n            children,\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                style: {\n                    position: \"fixed\",\n                    bottom: \"calc(var(--nav-height) + var(--s-5))\",\n                    left: \"50%\",\n                    transform: \"translateX(-50%)\",\n                    display: \"flex\",\n                    flexDirection: \"column\",\n                    gap: \"var(--s-2)\",\n                    zIndex: 1000,\n                    width: \"min(360px, 90vw)\"\n                },\n                children: toasts.map((t)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(ToastItem, {\n                        toast: t,\n                        onDismiss: dismiss\n                    }, t.id, false, {\n                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\ui\\\\Toast.tsx\",\n                        lineNumber: 47,\n                        columnNumber: 11\n                    }, this))\n            }, void 0, false, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\ui\\\\Toast.tsx\",\n                lineNumber: 33,\n                columnNumber: 7\n            }, this)\n        ]\n    }, void 0, true, {\n        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\ui\\\\Toast.tsx\",\n        lineNumber: 31,\n        columnNumber: 5\n    }, this);\n}\nfunction ToastItem({ toast, onDismiss }) {\n    (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n        const timer = setTimeout(()=>onDismiss(toast.id), 4000);\n        return ()=>clearTimeout(timer);\n    }, [\n        toast.id,\n        onDismiss\n    ]);\n    const bgMap = {\n        success: \"var(--success)\",\n        error: \"#f8d7da\",\n        info: \"var(--bg-dark)\"\n    };\n    const colorMap = {\n        success: \"var(--teal-900)\",\n        error: \"#c0392b\",\n        info: \"var(--paper)\"\n    };\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        style: {\n            background: bgMap[toast.type],\n            color: colorMap[toast.type],\n            borderRadius: \"var(--r-md)\",\n            padding: \"var(--s-3) var(--s-4)\",\n            fontSize: \"var(--t-small)\",\n            fontFamily: \"var(--font-sans)\",\n            boxShadow: \"var(--shadow-soft)\",\n            display: \"flex\",\n            alignItems: \"center\",\n            justifyContent: \"space-between\",\n            gap: \"var(--s-3)\"\n        },\n        children: [\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                children: toast.message\n            }, void 0, false, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\ui\\\\Toast.tsx\",\n                lineNumber: 87,\n                columnNumber: 7\n            }, this),\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n                onClick: ()=>onDismiss(toast.id),\n                style: {\n                    background: \"none\",\n                    border: \"none\",\n                    cursor: \"pointer\",\n                    color: \"inherit\",\n                    fontSize: \"18px\",\n                    lineHeight: 1,\n                    padding: 0,\n                    minWidth: \"24px\",\n                    minHeight: \"24px\"\n                },\n                \"aria-label\": \"Dismiss\",\n                children: \"\\xd7\"\n            }, void 0, false, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\ui\\\\Toast.tsx\",\n                lineNumber: 88,\n                columnNumber: 7\n            }, this)\n        ]\n    }, void 0, true, {\n        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\ui\\\\Toast.tsx\",\n        lineNumber: 72,\n        columnNumber: 5\n    }, this);\n}\nfunction useToast() {\n    const ctx = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(ToastContext);\n    if (!ctx) throw new Error(\"useToast must be used within ToastProvider\");\n    return ctx;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64, \n//# sourceURL=webpack-internal:///(ssr)/./src/components/ui/Toast.tsx\n");

/***/ }),

/***/ "(ssr)/./src/lib/auth.ts":
/*!*************************!*\
  !*** ./src/lib/auth.ts ***!
  \*************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   clearAuthCookies: () => (/* binding */ clearAuthCookies),\n/* harmony export */   getAuthUser: () => (/* binding */ getAuthUser),\n/* harmony export */   logout: () => (/* binding */ logout),\n/* harmony export */   syncAuthCookies: () => (/* binding */ syncAuthCookies)\n/* harmony export */ });\n/* harmony import */ var _pocketbase__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pocketbase */ \"(ssr)/./src/lib/pocketbase.ts\");\n/* __next_internal_client_entry_do_not_use__ getAuthUser,syncAuthCookies,clearAuthCookies,logout auto */ \nconst COOKIE_TOKEN = \"pb_token\";\nconst COOKIE_ROLE = \"pb_role\";\nconst COOKIE_MAX_AGE = 60 * 60 * 24 * 14 // 14 days\n;\nfunction getAuthUser() {\n    if (!_pocketbase__WEBPACK_IMPORTED_MODULE_0__.pb.authStore.isValid) return null;\n    return _pocketbase__WEBPACK_IMPORTED_MODULE_0__.pb.authStore.model;\n}\nfunction syncAuthCookies() {\n    if (_pocketbase__WEBPACK_IMPORTED_MODULE_0__.pb.authStore.isValid && _pocketbase__WEBPACK_IMPORTED_MODULE_0__.pb.authStore.token) {\n        const user = _pocketbase__WEBPACK_IMPORTED_MODULE_0__.pb.authStore.model;\n        const role = user?.role ?? \"\";\n        document.cookie = `${COOKIE_TOKEN}=${_pocketbase__WEBPACK_IMPORTED_MODULE_0__.pb.authStore.token}; path=/; max-age=${COOKIE_MAX_AGE}; SameSite=Lax`;\n        document.cookie = `${COOKIE_ROLE}=${role}; path=/; max-age=${COOKIE_MAX_AGE}; SameSite=Lax`;\n    } else {\n        clearAuthCookies();\n    }\n}\nfunction clearAuthCookies() {\n    document.cookie = `${COOKIE_TOKEN}=; path=/; max-age=0`;\n    document.cookie = `${COOKIE_ROLE}=; path=/; max-age=0`;\n}\nfunction logout() {\n    _pocketbase__WEBPACK_IMPORTED_MODULE_0__.pb.authStore.clear();\n    clearAuthCookies();\n    window.location.href = \"/auth\";\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvbGliL2F1dGgudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7eUdBQ2lDO0FBR2pDLE1BQU1DLGVBQWU7QUFDckIsTUFBTUMsY0FBYztBQUNwQixNQUFNQyxpQkFBaUIsS0FBSyxLQUFLLEtBQUssR0FBRyxVQUFVOztBQUU1QyxTQUFTQztJQUNkLElBQUksQ0FBQ0osMkNBQUVBLENBQUNLLFNBQVMsQ0FBQ0MsT0FBTyxFQUFFLE9BQU87SUFDbEMsT0FBT04sMkNBQUVBLENBQUNLLFNBQVMsQ0FBQ0UsS0FBSztBQUMzQjtBQUVPLFNBQVNDO0lBQ2QsSUFBSVIsMkNBQUVBLENBQUNLLFNBQVMsQ0FBQ0MsT0FBTyxJQUFJTiwyQ0FBRUEsQ0FBQ0ssU0FBUyxDQUFDSSxLQUFLLEVBQUU7UUFDOUMsTUFBTUMsT0FBT1YsMkNBQUVBLENBQUNLLFNBQVMsQ0FBQ0UsS0FBSztRQUMvQixNQUFNSSxPQUFPRCxNQUFNQyxRQUFRO1FBQzNCQyxTQUFTQyxNQUFNLEdBQUcsQ0FBQyxFQUFFWixhQUFhLENBQUMsRUFBRUQsMkNBQUVBLENBQUNLLFNBQVMsQ0FBQ0ksS0FBSyxDQUFDLGtCQUFrQixFQUFFTixlQUFlLGNBQWMsQ0FBQztRQUMxR1MsU0FBU0MsTUFBTSxHQUFHLENBQUMsRUFBRVgsWUFBWSxDQUFDLEVBQUVTLEtBQUssa0JBQWtCLEVBQUVSLGVBQWUsY0FBYyxDQUFDO0lBQzdGLE9BQU87UUFDTFc7SUFDRjtBQUNGO0FBRU8sU0FBU0E7SUFDZEYsU0FBU0MsTUFBTSxHQUFHLENBQUMsRUFBRVosYUFBYSxvQkFBb0IsQ0FBQztJQUN2RFcsU0FBU0MsTUFBTSxHQUFHLENBQUMsRUFBRVgsWUFBWSxvQkFBb0IsQ0FBQztBQUN4RDtBQUVPLFNBQVNhO0lBQ2RmLDJDQUFFQSxDQUFDSyxTQUFTLENBQUNXLEtBQUs7SUFDbEJGO0lBQ0FHLE9BQU9DLFFBQVEsQ0FBQ0MsSUFBSSxHQUFHO0FBQ3pCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbGVhcm5pbmctcGxhdGZvcm0tZnJvbnRlbmQvLi9zcmMvbGliL2F1dGgudHM/NjY5MiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB7IHBiIH0gZnJvbSAnLi9wb2NrZXRiYXNlJ1xuaW1wb3J0IHR5cGUgeyBQQlVzZXIgfSBmcm9tICdAL3R5cGVzJ1xuXG5jb25zdCBDT09LSUVfVE9LRU4gPSAncGJfdG9rZW4nXG5jb25zdCBDT09LSUVfUk9MRSA9ICdwYl9yb2xlJ1xuY29uc3QgQ09PS0lFX01BWF9BR0UgPSA2MCAqIDYwICogMjQgKiAxNCAvLyAxNCBkYXlzXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBdXRoVXNlcigpOiBQQlVzZXIgfCBudWxsIHtcbiAgaWYgKCFwYi5hdXRoU3RvcmUuaXNWYWxpZCkgcmV0dXJuIG51bGxcbiAgcmV0dXJuIHBiLmF1dGhTdG9yZS5tb2RlbCBhcyBQQlVzZXIgfCBudWxsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzeW5jQXV0aENvb2tpZXMoKTogdm9pZCB7XG4gIGlmIChwYi5hdXRoU3RvcmUuaXNWYWxpZCAmJiBwYi5hdXRoU3RvcmUudG9rZW4pIHtcbiAgICBjb25zdCB1c2VyID0gcGIuYXV0aFN0b3JlLm1vZGVsIGFzIFBCVXNlciB8IG51bGxcbiAgICBjb25zdCByb2xlID0gdXNlcj8ucm9sZSA/PyAnJ1xuICAgIGRvY3VtZW50LmNvb2tpZSA9IGAke0NPT0tJRV9UT0tFTn09JHtwYi5hdXRoU3RvcmUudG9rZW59OyBwYXRoPS87IG1heC1hZ2U9JHtDT09LSUVfTUFYX0FHRX07IFNhbWVTaXRlPUxheGBcbiAgICBkb2N1bWVudC5jb29raWUgPSBgJHtDT09LSUVfUk9MRX09JHtyb2xlfTsgcGF0aD0vOyBtYXgtYWdlPSR7Q09PS0lFX01BWF9BR0V9OyBTYW1lU2l0ZT1MYXhgXG4gIH0gZWxzZSB7XG4gICAgY2xlYXJBdXRoQ29va2llcygpXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyQXV0aENvb2tpZXMoKTogdm9pZCB7XG4gIGRvY3VtZW50LmNvb2tpZSA9IGAke0NPT0tJRV9UT0tFTn09OyBwYXRoPS87IG1heC1hZ2U9MGBcbiAgZG9jdW1lbnQuY29va2llID0gYCR7Q09PS0lFX1JPTEV9PTsgcGF0aD0vOyBtYXgtYWdlPTBgXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2dvdXQoKTogdm9pZCB7XG4gIHBiLmF1dGhTdG9yZS5jbGVhcigpXG4gIGNsZWFyQXV0aENvb2tpZXMoKVxuICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvYXV0aCdcbn1cbiJdLCJuYW1lcyI6WyJwYiIsIkNPT0tJRV9UT0tFTiIsIkNPT0tJRV9ST0xFIiwiQ09PS0lFX01BWF9BR0UiLCJnZXRBdXRoVXNlciIsImF1dGhTdG9yZSIsImlzVmFsaWQiLCJtb2RlbCIsInN5bmNBdXRoQ29va2llcyIsInRva2VuIiwidXNlciIsInJvbGUiLCJkb2N1bWVudCIsImNvb2tpZSIsImNsZWFyQXV0aENvb2tpZXMiLCJsb2dvdXQiLCJjbGVhciIsIndpbmRvdyIsImxvY2F0aW9uIiwiaHJlZiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/lib/auth.ts\n");

/***/ }),

/***/ "(ssr)/./src/lib/pocketbase.ts":
/*!*******************************!*\
  !*** ./src/lib/pocketbase.ts ***!
  \*******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   pb: () => (/* binding */ pb)\n/* harmony export */ });\n/* harmony import */ var pocketbase__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! pocketbase */ \"(ssr)/./node_modules/pocketbase/dist/pocketbase.es.mjs\");\n/* __next_internal_client_entry_do_not_use__ pb auto */ \nconst pb = new pocketbase__WEBPACK_IMPORTED_MODULE_0__[\"default\"](\"http://localhost:8090\" ?? 0);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvbGliL3BvY2tldGJhc2UudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7d0RBQ21DO0FBRTVCLE1BQU1DLEtBQUssSUFBSUQsa0RBQVVBLENBQUNFLHVCQUFzQyxJQUFJLEdBQXdCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbGVhcm5pbmctcGxhdGZvcm0tZnJvbnRlbmQvLi9zcmMvbGliL3BvY2tldGJhc2UudHM/ZTY1NyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCBQb2NrZXRCYXNlIGZyb20gJ3BvY2tldGJhc2UnXG5cbmV4cG9ydCBjb25zdCBwYiA9IG5ldyBQb2NrZXRCYXNlKHByb2Nlc3MuZW52Lk5FWFRfUFVCTElDX1BPQ0tFVEJBU0VfVVJMID8/ICdodHRwOi8vbG9jYWxob3N0OjgwOTAnKVxuIl0sIm5hbWVzIjpbIlBvY2tldEJhc2UiLCJwYiIsInByb2Nlc3MiLCJlbnYiLCJORVhUX1BVQkxJQ19QT0NLRVRCQVNFX1VSTCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/lib/pocketbase.ts\n");

/***/ }),

/***/ "(ssr)/./src/lib/services.ts":
/*!*****************************!*\
  !*** ./src/lib/services.ts ***!
  \*****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   getFeed: () => (/* binding */ getFeed),\n/* harmony export */   getIngestionStatus: () => (/* binding */ getIngestionStatus),\n/* harmony export */   getLeaderboard: () => (/* binding */ getLeaderboard),\n/* harmony export */   patchCurriculumWeekOrder: () => (/* binding */ patchCurriculumWeekOrder),\n/* harmony export */   postComplete: () => (/* binding */ postComplete),\n/* harmony export */   postCurriculumConfirm: () => (/* binding */ postCurriculumConfirm),\n/* harmony export */   postGenerateAll: () => (/* binding */ postGenerateAll),\n/* harmony export */   postIngest: () => (/* binding */ postIngest)\n/* harmony export */ });\nconst INGESTION_URL = \"http://localhost:3001\" ?? 0;\nconst GENERATION_URL = \"http://localhost:3002\" ?? 0;\nconst CURRICULUM_URL = \"http://localhost:3003\" ?? 0;\nconst PROGRESS_URL = \"http://localhost:3005\" ?? 0;\nasync function handleResponse(res) {\n    if (!res.ok) {\n        const text = await res.text().catch(()=>res.statusText);\n        throw new Error(`HTTP ${res.status}: ${text}`);\n    }\n    return res.json();\n}\nasync function postIngest(payload) {\n    const res = await fetch(`${INGESTION_URL}/ingest`, {\n        method: \"POST\",\n        headers: {\n            \"Content-Type\": \"application/json\"\n        },\n        body: JSON.stringify(payload)\n    });\n    return handleResponse(res);\n}\nasync function getIngestionStatus(jobId) {\n    const res = await fetch(`${INGESTION_URL}/ingest/status/${encodeURIComponent(jobId)}`);\n    return handleResponse(res);\n}\nasync function postGenerateAll(themeId) {\n    const res = await fetch(`${GENERATION_URL}/generate`, {\n        method: \"POST\",\n        headers: {\n            \"Content-Type\": \"application/json\"\n        },\n        body: JSON.stringify({\n            themeId\n        })\n    });\n    const data = await handleResponse(res);\n    return {\n        queued: data.totalItems\n    };\n}\nasync function postComplete(payload) {\n    const res = await fetch(`${PROGRESS_URL}/complete`, {\n        method: \"POST\",\n        headers: {\n            \"Content-Type\": \"application/json\"\n        },\n        body: JSON.stringify(payload)\n    });\n    return handleResponse(res);\n}\nasync function getLeaderboard() {\n    const res = await fetch(`${PROGRESS_URL}/leaderboard`);\n    return handleResponse(res);\n}\nasync function getFeed() {\n    const res = await fetch(`${PROGRESS_URL}/feed`);\n    return handleResponse(res);\n}\nasync function postCurriculumConfirm(versionId) {\n    const res = await fetch(`${CURRICULUM_URL}/curriculum/versions/${encodeURIComponent(versionId)}/confirm`, {\n        method: \"POST\",\n        headers: {\n            \"Content-Type\": \"application/json\"\n        }\n    });\n    if (!res.ok) {\n        const text = await res.text().catch(()=>res.statusText);\n        throw new Error(`HTTP ${res.status}: ${text}`);\n    }\n}\nasync function patchCurriculumWeekOrder(weekId, position) {\n    const res = await fetch(`${CURRICULUM_URL}/curriculum/weeks/${encodeURIComponent(weekId)}/order`, {\n        method: \"PATCH\",\n        headers: {\n            \"Content-Type\": \"application/json\"\n        },\n        body: JSON.stringify({\n            position\n        })\n    });\n    if (!res.ok) {\n        const text = await res.text().catch(()=>res.statusText);\n        throw new Error(`HTTP ${res.status}: ${text}`);\n    }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64, \n//# sourceURL=webpack-internal:///(ssr)/./src/lib/services.ts\n");

/***/ }),

/***/ "(rsc)/./src/app/globals.css":
/*!*****************************!*\
  !*** ./src/app/globals.css ***!
  \*****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"a462ed02aa71\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2dsb2JhbHMuY3NzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpRUFBZSxjQUFjO0FBQzdCLElBQUksS0FBVSxFQUFFLEVBQXVCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbGVhcm5pbmctcGxhdGZvcm0tZnJvbnRlbmQvLi9zcmMvYXBwL2dsb2JhbHMuY3NzPzU5MTYiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCJhNDYyZWQwMmFhNzFcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./src/app/globals.css\n");

/***/ }),

/***/ "(rsc)/../../stylesheet.css":
/*!****************************!*\
  !*** ../../stylesheet.css ***!
  \****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"5511d51fa1af\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vc3R5bGVzaGVldC5jc3MiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGlFQUFlLGNBQWM7QUFDN0IsSUFBSSxLQUFVLEVBQUUsRUFBdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9sZWFybmluZy1wbGF0Zm9ybS1mcm9udGVuZC8uLi8uLi9zdHlsZXNoZWV0LmNzcz9mYjhjIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IFwiNTUxMWQ1MWZhMWFmXCJcbmlmIChtb2R1bGUuaG90KSB7IG1vZHVsZS5ob3QuYWNjZXB0KCkgfVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/../../stylesheet.css\n");

/***/ }),

/***/ "(rsc)/./src/app/app/layout.tsx":
/*!********************************!*\
  !*** ./src/app/app/layout.tsx ***!
  \********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js");

/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`C:\Users\RaymondVerhoef\Gitea\learning-platform\app\frontend\src\app\app\layout.tsx#default`));


/***/ }),

/***/ "(rsc)/./src/app/app/profile/page.tsx":
/*!**************************************!*\
  !*** ./src/app/app/profile/page.tsx ***!
  \**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js");

/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`C:\Users\RaymondVerhoef\Gitea\learning-platform\app\frontend\src\app\app\profile\page.tsx#default`));


/***/ }),

/***/ "(rsc)/./src/app/layout.tsx":
/*!****************************!*\
  !*** ./src/app/layout.tsx ***!
  \****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ RootLayout),\n/* harmony export */   metadata: () => (/* binding */ metadata),\n/* harmony export */   viewport: () => (/* binding */ viewport)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(rsc)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _stylesheet_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../stylesheet.css */ \"(rsc)/../../stylesheet.css\");\n/* harmony import */ var _globals_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./globals.css */ \"(rsc)/./src/app/globals.css\");\n\n\n\nconst metadata = {\n    title: \"Learning Platform\",\n    description: \"Employee knowledge and learning\",\n    manifest: \"/manifest.json\",\n    icons: {\n        icon: \"/favicon.svg\"\n    },\n    appleWebApp: {\n        capable: true,\n        statusBarStyle: \"default\",\n        title: \"Learning Platform\"\n    },\n    other: {\n        \"mobile-web-app-capable\": \"yes\"\n    }\n};\nconst viewport = {\n    themeColor: \"#1F5560\",\n    width: \"device-width\",\n    initialScale: 1,\n    maximumScale: 1\n};\nfunction RootLayout({ children }) {\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"html\", {\n        lang: \"en\",\n        suppressHydrationWarning: true,\n        children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n            children: children\n        }, void 0, false, {\n            fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\layout.tsx\",\n            lineNumber: 34,\n            columnNumber: 7\n        }, this)\n    }, void 0, false, {\n        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\layout.tsx\",\n        lineNumber: 33,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2xheW91dC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFDbUM7QUFDYjtBQUVmLE1BQU1BLFdBQXFCO0lBQ2hDQyxPQUFPO0lBQ1BDLGFBQWE7SUFDYkMsVUFBVTtJQUNWQyxPQUFPO1FBQUVDLE1BQU07SUFBZTtJQUM5QkMsYUFBYTtRQUNYQyxTQUFTO1FBQ1RDLGdCQUFnQjtRQUNoQlAsT0FBTztJQUNUO0lBQ0FRLE9BQU87UUFDTCwwQkFBMEI7SUFDNUI7QUFDRixFQUFDO0FBRU0sTUFBTUMsV0FBcUI7SUFDaENDLFlBQVk7SUFDWkMsT0FBTztJQUNQQyxjQUFjO0lBQ2RDLGNBQWM7QUFDaEIsRUFBQztBQUVjLFNBQVNDLFdBQVcsRUFDakNDLFFBQVEsRUFHVDtJQUNDLHFCQUNFLDhEQUFDQztRQUFLQyxNQUFLO1FBQUtDLHdCQUF3QjtrQkFDdEMsNEVBQUNDO3NCQUFNSjs7Ozs7Ozs7Ozs7QUFHYiIsInNvdXJjZXMiOlsid2VicGFjazovL2xlYXJuaW5nLXBsYXRmb3JtLWZyb250ZW5kLy4vc3JjL2FwcC9sYXlvdXQudHN4PzU3YTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBNZXRhZGF0YSwgVmlld3BvcnQgfSBmcm9tICduZXh0J1xuaW1wb3J0ICcuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcydcbmltcG9ydCAnLi9nbG9iYWxzLmNzcydcblxuZXhwb3J0IGNvbnN0IG1ldGFkYXRhOiBNZXRhZGF0YSA9IHtcbiAgdGl0bGU6ICdMZWFybmluZyBQbGF0Zm9ybScsXG4gIGRlc2NyaXB0aW9uOiAnRW1wbG95ZWUga25vd2xlZGdlIGFuZCBsZWFybmluZycsXG4gIG1hbmlmZXN0OiAnL21hbmlmZXN0Lmpzb24nLFxuICBpY29uczogeyBpY29uOiAnL2Zhdmljb24uc3ZnJyB9LFxuICBhcHBsZVdlYkFwcDoge1xuICAgIGNhcGFibGU6IHRydWUsXG4gICAgc3RhdHVzQmFyU3R5bGU6ICdkZWZhdWx0JyxcbiAgICB0aXRsZTogJ0xlYXJuaW5nIFBsYXRmb3JtJyxcbiAgfSxcbiAgb3RoZXI6IHtcbiAgICAnbW9iaWxlLXdlYi1hcHAtY2FwYWJsZSc6ICd5ZXMnLFxuICB9LFxufVxuXG5leHBvcnQgY29uc3Qgdmlld3BvcnQ6IFZpZXdwb3J0ID0ge1xuICB0aGVtZUNvbG9yOiAnIzFGNTU2MCcsXG4gIHdpZHRoOiAnZGV2aWNlLXdpZHRoJyxcbiAgaW5pdGlhbFNjYWxlOiAxLFxuICBtYXhpbXVtU2NhbGU6IDEsXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFJvb3RMYXlvdXQoe1xuICBjaGlsZHJlbixcbn06IHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxufSkge1xuICByZXR1cm4gKFxuICAgIDxodG1sIGxhbmc9XCJlblwiIHN1cHByZXNzSHlkcmF0aW9uV2FybmluZz5cbiAgICAgIDxib2R5PntjaGlsZHJlbn08L2JvZHk+XG4gICAgPC9odG1sPlxuICApXG59XG4iXSwibmFtZXMiOlsibWV0YWRhdGEiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwibWFuaWZlc3QiLCJpY29ucyIsImljb24iLCJhcHBsZVdlYkFwcCIsImNhcGFibGUiLCJzdGF0dXNCYXJTdHlsZSIsIm90aGVyIiwidmlld3BvcnQiLCJ0aGVtZUNvbG9yIiwid2lkdGgiLCJpbml0aWFsU2NhbGUiLCJtYXhpbXVtU2NhbGUiLCJSb290TGF5b3V0IiwiY2hpbGRyZW4iLCJodG1sIiwibGFuZyIsInN1cHByZXNzSHlkcmF0aW9uV2FybmluZyIsImJvZHkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./src/app/layout.tsx\n");

/***/ })

};
;

// load runtime
var __webpack_require__ = require("../../../webpack-runtime.js");
__webpack_require__.C(exports);
var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/pocketbase","vendor-chunks/@swc"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fapp%2Fprofile%2Fpage&page=%2Fapp%2Fprofile%2Fpage&appPaths=%2Fapp%2Fprofile%2Fpage&pagePath=private-next-app-dir%2Fapp%2Fprofile%2Fpage.tsx&appDir=C%3A%5CUsers%5CRaymondVerhoef%5CGitea%5Clearning-platform%5Capp%5Cfrontend%5Csrc%5Capp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=C%3A%5CUsers%5CRaymondVerhoef%5CGitea%5Clearning-platform%5Capp%5Cfrontend&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!")));
module.exports = __webpack_exports__;

})();