/*
 * 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/library/page";
exports.ids = ["app/app/library/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%2Flibrary%2Fpage&page=%2Fapp%2Flibrary%2Fpage&appPaths=%2Fapp%2Flibrary%2Fpage&pagePath=private-next-app-dir%2Fapp%2Flibrary%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%2Flibrary%2Fpage&page=%2Fapp%2Flibrary%2Fpage&appPaths=%2Fapp%2Flibrary%2Fpage&pagePath=private-next-app-dir%2Fapp%2Flibrary%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        'library',\n        {\n        children: ['__PAGE__', {}, {\n          page: [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/app/library/page.tsx */ \"(rsc)/./src/app/app/library/page.tsx\")), \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\library\\\\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\\\\library\\\\page.tsx\"];\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst originalPathname = \"/app/library/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/library/page\",\n        pathname: \"/app/library\",\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%2Flibrary%2Fpage&page=%2Fapp%2Flibrary%2Fpage&appPaths=%2Fapp%2Flibrary%2Fpage&pagePath=private-next-app-dir%2Fapp%2Flibrary%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%5Clibrary%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%5Clibrary%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/library/page.tsx */ \"(ssr)/./src/app/app/library/page.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMkMlM0ElNUMlNUNVc2VycyU1QyU1Q1JheW1vbmRWZXJob2VmJTVDJTVDR2l0ZWElNUMlNUNsZWFybmluZy1wbGF0Zm9ybSU1QyU1Q2FwcCU1QyU1Q2Zyb250ZW5kJTVDJTVDc3JjJTVDJTVDYXBwJTVDJTVDYXBwJTVDJTVDbGlicmFyeSU1QyU1Q3BhZ2UudHN4JTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJnNlcnZlcj10cnVlISIsIm1hcHBpbmdzIjoiQUFBQSx3S0FBeUkiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9sZWFybmluZy1wbGF0Zm9ybS1mcm9udGVuZC8/N2M1MCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIkM6XFxcXFVzZXJzXFxcXFJheW1vbmRWZXJob2VmXFxcXEdpdGVhXFxcXGxlYXJuaW5nLXBsYXRmb3JtXFxcXGFwcFxcXFxmcm9udGVuZFxcXFxzcmNcXFxcYXBwXFxcXGFwcFxcXFxsaWJyYXJ5XFxcXHBhZ2UudHN4XCIpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\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%5Clibrary%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/library/page.tsx":
/*!**************************************!*\
  !*** ./src/app/app/library/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 */ LibraryPage)\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 _lib_hooks_usePBCollection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/hooks/usePBCollection */ \"(ssr)/./src/lib/hooks/usePBCollection.ts\");\n/* harmony import */ var _components_ui_StatusBadge__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/ui/StatusBadge */ \"(ssr)/./src/components/ui/StatusBadge.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\nfunction LibraryPage() {\n    const { items: topics, loading } = (0,_lib_hooks_usePBCollection__WEBPACK_IMPORTED_MODULE_3__.usePBCollection)(\"topics\", {\n        filter: 'status=\"published\"',\n        expand: \"theme\",\n        sort: \"theme,difficulty,title\"\n    });\n    const { items: themes } = (0,_lib_hooks_usePBCollection__WEBPACK_IMPORTED_MODULE_3__.usePBCollection)(\"themes\", {\n        filter: 'status=\"published\"',\n        sort: \"title\"\n    });\n    const [search, setSearch] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n    const [difficulty, setDifficulty] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"all\");\n    const [themeFilter, setThemeFilter] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"all\");\n    const filtered = topics.filter((t)=>{\n        const matchSearch = search === \"\" || t.title.toLowerCase().includes(search.toLowerCase()) || t.key_terms.some((k)=>k.toLowerCase().includes(search.toLowerCase()));\n        const matchDiff = difficulty === \"all\" || t.difficulty === difficulty;\n        const matchTheme = themeFilter === \"all\" || t.theme === themeFilter;\n        return matchSearch && matchDiff && matchTheme;\n    });\n    // Group by theme\n    const grouped = new Map();\n    for (const topic of filtered){\n        const list = grouped.get(topic.theme) ?? [];\n        list.push(topic);\n        grouped.set(topic.theme, list);\n    }\n    const themeMap = new Map(themes.map((t)=>[\n            t.id,\n            t\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                children: [\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n                        style: {\n                            margin: \"0 0 var(--s-2)\",\n                            fontSize: \"var(--t-h3)\",\n                            fontWeight: 700,\n                            color: \"var(--fg)\"\n                        },\n                        children: \"Library\"\n                    }, void 0, false, {\n                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\library\\\\page.tsx\",\n                        lineNumber: 48,\n                        columnNumber: 9\n                    }, this),\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n                        style: {\n                            margin: 0,\n                            fontSize: \"var(--t-body)\",\n                            color: \"var(--fg-muted)\"\n                        },\n                        children: \"Browse all published topics.\"\n                    }, void 0, false, {\n                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\library\\\\page.tsx\",\n                        lineNumber: 58,\n                        columnNumber: 9\n                    }, this)\n                ]\n            }, void 0, true, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\library\\\\page.tsx\",\n                lineNumber: 47,\n                columnNumber: 7\n            }, this),\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n                type: \"search\",\n                value: search,\n                onChange: (e)=>setSearch(e.target.value),\n                placeholder: \"Search topics or key terms…\",\n                style: {\n                    width: \"100%\",\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                    outline: \"none\",\n                    minHeight: \"44px\"\n                }\n            }, void 0, false, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\library\\\\page.tsx\",\n                lineNumber: 64,\n                columnNumber: 7\n            }, this),\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                style: {\n                    display: \"flex\",\n                    gap: \"var(--s-2)\",\n                    flexWrap: \"wrap\"\n                },\n                children: [\n                    \"all\",\n                    \"introductory\",\n                    \"intermediate\",\n                    \"advanced\"\n                ].map((d)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n                        onClick: ()=>setDifficulty(d),\n                        style: {\n                            background: difficulty === d ? \"var(--accent)\" : \"var(--bg-warm)\",\n                            color: difficulty === d ? \"var(--paper)\" : \"var(--fg)\",\n                            border: \"1.5px solid var(--cream)\",\n                            borderRadius: \"var(--r-pill)\",\n                            padding: \"var(--s-1) var(--s-3)\",\n                            fontSize: \"var(--t-small)\",\n                            fontFamily: \"var(--font-sans)\",\n                            cursor: \"pointer\",\n                            minHeight: \"36px\",\n                            textTransform: \"capitalize\",\n                            transition: \"background 150ms\"\n                        },\n                        children: d\n                    }, d, false, {\n                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\library\\\\page.tsx\",\n                        lineNumber: 86,\n                        columnNumber: 11\n                    }, this))\n            }, void 0, false, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\library\\\\page.tsx\",\n                lineNumber: 84,\n                columnNumber: 7\n            }, this),\n            themes.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n                value: themeFilter,\n                onChange: (e)=>setThemeFilter(e.target.value),\n                style: {\n                    borderRadius: \"var(--r-sm)\",\n                    border: \"1.5px solid var(--cream)\",\n                    padding: \"var(--s-2) var(--s-3)\",\n                    fontSize: \"var(--t-body)\",\n                    fontFamily: \"var(--font-sans)\",\n                    color: \"var(--fg)\",\n                    background: \"var(--bg)\",\n                    outline: \"none\",\n                    minHeight: \"44px\"\n                },\n                children: [\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n                        value: \"all\",\n                        children: \"All themes\"\n                    }, void 0, false, {\n                        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\library\\\\page.tsx\",\n                        lineNumber: 125,\n                        columnNumber: 11\n                    }, this),\n                    themes.map((t)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n                            value: t.id,\n                            children: t.title\n                        }, t.id, false, {\n                            fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\library\\\\page.tsx\",\n                            lineNumber: 127,\n                            columnNumber: 13\n                        }, this))\n                ]\n            }, void 0, true, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\library\\\\page.tsx\",\n                lineNumber: 110,\n                columnNumber: 9\n            }, this),\n            loading ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                style: {\n                    color: \"var(--fg-muted)\",\n                    fontSize: \"var(--t-body)\"\n                },\n                children: \"Loading…\"\n            }, void 0, false, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\library\\\\page.tsx\",\n                lineNumber: 135,\n                columnNumber: 9\n            }, this) : filtered.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                style: {\n                    color: \"var(--fg-muted)\",\n                    fontSize: \"var(--t-body)\",\n                    textAlign: \"center\",\n                    padding: \"var(--s-6)\"\n                },\n                children: \"No topics match your search.\"\n            }, void 0, false, {\n                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\library\\\\page.tsx\",\n                lineNumber: 137,\n                columnNumber: 9\n            }, this) : Array.from(grouped.entries()).map(([themeId, themeTopics])=>{\n                const theme = themeMap.get(themeId);\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: [\n                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n                            style: {\n                                margin: 0,\n                                fontSize: \"var(--t-small)\",\n                                fontWeight: 700,\n                                color: \"var(--fg-muted)\",\n                                textTransform: \"uppercase\",\n                                letterSpacing: \"0.05em\",\n                                fontFamily: \"var(--font-mono)\"\n                            },\n                            children: theme?.title ?? themeId\n                        }, void 0, false, {\n                            fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\library\\\\page.tsx\",\n                            lineNumber: 145,\n                            columnNumber: 15\n                        }, this),\n                        themeTopics.map((topic)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n                                href: `/app/library/${topic.id}`,\n                                style: {\n                                    textDecoration: \"none\"\n                                },\n                                children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                    style: {\n                                        background: \"var(--bg-warm)\",\n                                        borderRadius: \"var(--r-sm)\",\n                                        padding: \"var(--s-3) var(--s-4)\",\n                                        display: \"flex\",\n                                        alignItems: \"center\",\n                                        gap: \"var(--s-3)\",\n                                        minHeight: \"56px\",\n                                        transition: \"background 150ms\"\n                                    },\n                                    onMouseEnter: (e)=>{\n                                        e.currentTarget.style.background = \"var(--cream)\";\n                                    },\n                                    onMouseLeave: (e)=>{\n                                        e.currentTarget.style.background = \"var(--bg-warm)\";\n                                    },\n                                    children: [\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)(\"p\", {\n                                                    style: {\n                                                        margin: \"0 0 var(--s-1)\",\n                                                        fontWeight: 600,\n                                                        fontSize: \"var(--t-body)\",\n                                                        color: \"var(--fg)\",\n                                                        overflow: \"hidden\",\n                                                        textOverflow: \"ellipsis\",\n                                                        whiteSpace: \"nowrap\"\n                                                    },\n                                                    children: topic.title\n                                                }, void 0, false, {\n                                                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\library\\\\page.tsx\",\n                                                    lineNumber: 183,\n                                                    columnNumber: 23\n                                                }, this),\n                                                topic.key_terms.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n                                                    style: {\n                                                        margin: 0,\n                                                        fontSize: \"var(--t-small)\",\n                                                        color: \"var(--fg-muted)\",\n                                                        overflow: \"hidden\",\n                                                        textOverflow: \"ellipsis\",\n                                                        whiteSpace: \"nowrap\"\n                                                    },\n                                                    children: topic.key_terms.slice(0, 4).join(\", \")\n                                                }, void 0, false, {\n                                                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\library\\\\page.tsx\",\n                                                    lineNumber: 197,\n                                                    columnNumber: 25\n                                                }, this)\n                                            ]\n                                        }, void 0, true, {\n                                            fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\library\\\\page.tsx\",\n                                            lineNumber: 182,\n                                            columnNumber: 21\n                                        }, this),\n                                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_StatusBadge__WEBPACK_IMPORTED_MODULE_4__.StatusBadge, {\n                                            status: topic.difficulty\n                                        }, void 0, false, {\n                                            fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\library\\\\page.tsx\",\n                                            lineNumber: 211,\n                                            columnNumber: 21\n                                        }, this)\n                                    ]\n                                }, void 0, true, {\n                                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\library\\\\page.tsx\",\n                                    lineNumber: 164,\n                                    columnNumber: 19\n                                }, this)\n                            }, topic.id, false, {\n                                fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\library\\\\page.tsx\",\n                                lineNumber: 159,\n                                columnNumber: 17\n                            }, this))\n                    ]\n                }, themeId, true, {\n                    fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\library\\\\page.tsx\",\n                    lineNumber: 144,\n                    columnNumber: 13\n                }, this);\n            })\n        ]\n    }, void 0, true, {\n        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\app\\\\app\\\\library\\\\page.tsx\",\n        lineNumber: 46,\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/library/page.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/StatusBadge.tsx":
/*!*******************************************!*\
  !*** ./src/components/ui/StatusBadge.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 */   StatusBadge: () => (/* binding */ StatusBadge)\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__ StatusBadge auto */ \n\nconst STATUS_CONFIG = {\n    queued: {\n        label: \"Queued\",\n        background: \"var(--cream)\",\n        color: \"var(--fg-muted)\"\n    },\n    extracting: {\n        label: \"Extracting\",\n        background: \"#fff3cd\",\n        color: \"#856404\"\n    },\n    chunking: {\n        label: \"Chunking\",\n        background: \"#fff3cd\",\n        color: \"#856404\"\n    },\n    structuring: {\n        label: \"Structuring\",\n        background: \"#cce5ff\",\n        color: \"#004085\"\n    },\n    writing: {\n        label: \"Writing\",\n        background: \"#cce5ff\",\n        color: \"#004085\"\n    },\n    embedding: {\n        label: \"Embedding\",\n        background: \"#d4edda\",\n        color: \"#155724\"\n    },\n    done: {\n        label: \"Done\",\n        background: \"var(--success)\",\n        color: \"var(--teal-900)\"\n    },\n    failed: {\n        label: \"Failed\",\n        background: \"#f8d7da\",\n        color: \"#c0392b\"\n    },\n    processing: {\n        label: \"Processing\",\n        background: \"#fff3cd\",\n        color: \"#856404\"\n    },\n    processed: {\n        label: \"Processed\",\n        background: \"var(--success)\",\n        color: \"var(--teal-900)\"\n    },\n    draft: {\n        label: \"Draft\",\n        background: \"var(--cream)\",\n        color: \"var(--fg-muted)\"\n    },\n    published: {\n        label: \"Published\",\n        background: \"var(--success)\",\n        color: \"var(--teal-900)\"\n    },\n    rejected: {\n        label: \"Rejected\",\n        background: \"#f8d7da\",\n        color: \"#c0392b\"\n    },\n    generated: {\n        label: \"Generated\",\n        background: \"#cce5ff\",\n        color: \"#004085\"\n    },\n    active: {\n        label: \"Active\",\n        background: \"var(--success)\",\n        color: \"var(--teal-900)\"\n    },\n    superseded: {\n        label: \"Superseded\",\n        background: \"var(--cream)\",\n        color: \"var(--fg-muted)\"\n    },\n    introductory: {\n        label: \"Introductory\",\n        background: \"var(--accent-soft)\",\n        color: \"var(--teal-900)\"\n    },\n    intermediate: {\n        label: \"Intermediate\",\n        background: \"#fff3cd\",\n        color: \"#856404\"\n    },\n    advanced: {\n        label: \"Advanced\",\n        background: \"var(--peri)\",\n        color: \"var(--teal-900)\"\n    }\n};\nfunction StatusBadge({ status }) {\n    const config = STATUS_CONFIG[status] ?? {\n        label: status,\n        background: \"var(--cream)\",\n        color: \"var(--fg-muted)\"\n    };\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n        style: {\n            display: \"inline-block\",\n            padding: \"2px var(--s-2)\",\n            borderRadius: \"var(--r-pill)\",\n            fontSize: \"var(--t-label)\",\n            fontFamily: \"var(--font-mono)\",\n            fontWeight: 500,\n            textTransform: \"uppercase\",\n            letterSpacing: \"var(--label-ls)\",\n            background: config.background,\n            color: config.color\n        },\n        children: config.label\n    }, void 0, false, {\n        fileName: \"C:\\\\Users\\\\RaymondVerhoef\\\\Gitea\\\\learning-platform\\\\app\\\\frontend\\\\src\\\\components\\\\ui\\\\StatusBadge.tsx\",\n        lineNumber: 58,\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/StatusBadge.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/hooks/usePBCollection.ts":
/*!******************************************!*\
  !*** ./src/lib/hooks/usePBCollection.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 */   usePBCollection: () => (/* binding */ usePBCollection)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __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_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _lib_pocketbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/lib/pocketbase */ \"(ssr)/./src/lib/pocketbase.ts\");\n/* __next_internal_client_entry_do_not_use__ usePBCollection auto */ \n\nfunction usePBCollection(collection, options) {\n    const [items, setItems] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);\n    const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);\n    const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);\n    const [tick, setTick] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(0);\n    const refresh = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(()=>{\n        setTick((t)=>t + 1);\n    }, []);\n    (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n        let cancelled = false;\n        async function load() {\n            setLoading(true);\n            setError(null);\n            try {\n                const result = await _lib_pocketbase__WEBPACK_IMPORTED_MODULE_1__.pb.collection(collection).getFullList({\n                    ...options ?? {}\n                });\n                if (!cancelled) {\n                    setItems(result);\n                }\n            } catch (err) {\n                if (!cancelled) {\n                    setError(err instanceof Error ? err.message : \"Failed to load\");\n                }\n            } finally{\n                if (!cancelled) {\n                    setLoading(false);\n                }\n            }\n        }\n        void load();\n        return ()=>{\n            cancelled = true;\n        };\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [\n        collection,\n        tick\n    ]);\n    return {\n        items,\n        loading,\n        error,\n        refresh\n    };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvbGliL2hvb2tzL3VzZVBCQ29sbGVjdGlvbi50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7O3FFQUN3RDtBQUNuQjtBQVM5QixTQUFTSSxnQkFDZEMsVUFBa0IsRUFDbEJDLE9BQWlDO0lBRWpDLE1BQU0sQ0FBQ0MsT0FBT0MsU0FBUyxHQUFHUiwrQ0FBUUEsQ0FBTSxFQUFFO0lBQzFDLE1BQU0sQ0FBQ1MsU0FBU0MsV0FBVyxHQUFHViwrQ0FBUUEsQ0FBVTtJQUNoRCxNQUFNLENBQUNXLE9BQU9DLFNBQVMsR0FBR1osK0NBQVFBLENBQWdCO0lBQ2xELE1BQU0sQ0FBQ2EsTUFBTUMsUUFBUSxHQUFHZCwrQ0FBUUEsQ0FBUztJQUV6QyxNQUFNZSxVQUFVYixrREFBV0EsQ0FBQztRQUMxQlksUUFBUSxDQUFDRSxJQUFNQSxJQUFJO0lBQ3JCLEdBQUcsRUFBRTtJQUVMZixnREFBU0EsQ0FBQztRQUNSLElBQUlnQixZQUFZO1FBRWhCLGVBQWVDO1lBQ2JSLFdBQVc7WUFDWEUsU0FBUztZQUNULElBQUk7Z0JBQ0YsTUFBTU8sU0FBUyxNQUFNaEIsK0NBQUVBLENBQUNFLFVBQVUsQ0FBQ0EsWUFBWWUsV0FBVyxDQUFJO29CQUM1RCxHQUFJZCxXQUFXLENBQUMsQ0FBQztnQkFDbkI7Z0JBQ0EsSUFBSSxDQUFDVyxXQUFXO29CQUNkVCxTQUFTVztnQkFDWDtZQUNGLEVBQUUsT0FBT0UsS0FBSztnQkFDWixJQUFJLENBQUNKLFdBQVc7b0JBQ2RMLFNBQVNTLGVBQWVDLFFBQVFELElBQUlFLE9BQU8sR0FBRztnQkFDaEQ7WUFDRixTQUFVO2dCQUNSLElBQUksQ0FBQ04sV0FBVztvQkFDZFAsV0FBVztnQkFDYjtZQUNGO1FBQ0Y7UUFFQSxLQUFLUTtRQUNMLE9BQU87WUFDTEQsWUFBWTtRQUNkO0lBQ0EsdURBQXVEO0lBQ3pELEdBQUc7UUFBQ1o7UUFBWVE7S0FBSztJQUVyQixPQUFPO1FBQUVOO1FBQU9FO1FBQVNFO1FBQU9JO0lBQVE7QUFDMUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9sZWFybmluZy1wbGF0Zm9ybS1mcm9udGVuZC8uL3NyYy9saWIvaG9va3MvdXNlUEJDb2xsZWN0aW9uLnRzPzA2N2YiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgcGIgfSBmcm9tICdAL2xpYi9wb2NrZXRiYXNlJ1xuXG5pbnRlcmZhY2UgVXNlUEJDb2xsZWN0aW9uUmVzdWx0PFQ+IHtcbiAgaXRlbXM6IFRbXVxuICBsb2FkaW5nOiBib29sZWFuXG4gIGVycm9yOiBzdHJpbmcgfCBudWxsXG4gIHJlZnJlc2g6ICgpID0+IHZvaWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVBCQ29sbGVjdGlvbjxUPihcbiAgY29sbGVjdGlvbjogc3RyaW5nLFxuICBvcHRpb25zPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4pOiBVc2VQQkNvbGxlY3Rpb25SZXN1bHQ8VD4ge1xuICBjb25zdCBbaXRlbXMsIHNldEl0ZW1zXSA9IHVzZVN0YXRlPFRbXT4oW10pXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlPGJvb2xlYW4+KHRydWUpXG4gIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW3RpY2ssIHNldFRpY2tdID0gdXNlU3RhdGU8bnVtYmVyPigwKVxuXG4gIGNvbnN0IHJlZnJlc2ggPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VGljaygodCkgPT4gdCArIDEpXG4gIH0sIFtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGNhbmNlbGxlZCA9IGZhbHNlXG5cbiAgICBhc3luYyBmdW5jdGlvbiBsb2FkKCkge1xuICAgICAgc2V0TG9hZGluZyh0cnVlKVxuICAgICAgc2V0RXJyb3IobnVsbClcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBiLmNvbGxlY3Rpb24oY29sbGVjdGlvbikuZ2V0RnVsbExpc3Q8VD4oe1xuICAgICAgICAgIC4uLihvcHRpb25zID8/IHt9KSxcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKCFjYW5jZWxsZWQpIHtcbiAgICAgICAgICBzZXRJdGVtcyhyZXN1bHQpXG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoIWNhbmNlbGxlZCkge1xuICAgICAgICAgIHNldEVycm9yKGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnRmFpbGVkIHRvIGxvYWQnKVxuICAgICAgICB9XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBpZiAoIWNhbmNlbGxlZCkge1xuICAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB2b2lkIGxvYWQoKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWxsZWQgPSB0cnVlXG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW2NvbGxlY3Rpb24sIHRpY2tdKVxuXG4gIHJldHVybiB7IGl0ZW1zLCBsb2FkaW5nLCBlcnJvciwgcmVmcmVzaCB9XG59XG4iXSwibmFtZXMiOlsidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJ1c2VDYWxsYmFjayIsInBiIiwidXNlUEJDb2xsZWN0aW9uIiwiY29sbGVjdGlvbiIsIm9wdGlvbnMiLCJpdGVtcyIsInNldEl0ZW1zIiwibG9hZGluZyIsInNldExvYWRpbmciLCJlcnJvciIsInNldEVycm9yIiwidGljayIsInNldFRpY2siLCJyZWZyZXNoIiwidCIsImNhbmNlbGxlZCIsImxvYWQiLCJyZXN1bHQiLCJnZXRGdWxsTGlzdCIsImVyciIsIkVycm9yIiwibWVzc2FnZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/lib/hooks/usePBCollection.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");

/***/ }),

/***/ "(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/library/page.tsx":
/*!**************************************!*\
  !*** ./src/app/app/library/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\library\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/@swc","vendor-chunks/pocketbase"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fapp%2Flibrary%2Fpage&page=%2Fapp%2Flibrary%2Fpage&appPaths=%2Fapp%2Flibrary%2Fpage&pagePath=private-next-app-dir%2Fapp%2Flibrary%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__;

})();