Files
taskpile/frontend/.next/server/app/page.js
Alvis f1d51b8cc8 Add side panels, task selection, graph animation, and project docs
- Foldable left panel (user profile) and right panel (task details)
- Clicking a task in the list or graph node selects it and shows details
- Both views (task list + graph) always mounted via absolute inset-0 for
  correct canvas dimensions; tabs toggle visibility with opacity
- Graph node selection animation: other nodes repel outward (charge -600),
  then selected node smoothly slides to center (500ms cubic ease-out),
  then charge restores to -120 and graph stabilizes
- Graph re-fits on tab switch and panel resize via ResizeObserver
- Fix UUID string IDs throughout (backend returns UUIDs, not integers)
- Add TaskDetailPanel, UserPanel components
- Add CLAUDE.md project documentation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 11:23:06 +00:00

271 lines
145 KiB
JavaScript

/*
* 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/page";
exports.ids = ["app/page"];
exports.modules = {
/***/ "./action-async-storage.external":
/*!****************************************************************************!*\
!*** external "next/dist/client/components/action-async-storage.external" ***!
\****************************************************************************/
/***/ ((module) => {
"use strict";
module.exports = require("next/dist/client/components/action-async-storage.external");
/***/ }),
/***/ "../../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");
/***/ }),
/***/ "./request-async-storage.external":
/*!*****************************************************************************!*\
!*** external "next/dist/client/components/request-async-storage.external" ***!
\*****************************************************************************/
/***/ ((module) => {
"use strict";
module.exports = require("next/dist/client/components/request-async-storage.external");
/***/ }),
/***/ "../../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");
/***/ }),
/***/ "./static-generation-async-storage.external":
/*!***************************************************************************************!*\
!*** external "next/dist/client/components/static-generation-async-storage.external" ***!
\***************************************************************************************/
/***/ ((module) => {
"use strict";
module.exports = require("next/dist/client/components/static-generation-async-storage.external");
/***/ }),
/***/ "../../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%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fhome%2Falvis%2Ftaskpile%2Ffrontend&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%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fhome%2Falvis%2Ftaskpile%2Ffrontend&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: ['__PAGE__', {}, {\n page: [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/page.tsx */ \"(rsc)/./src/app/page.tsx\")), \"/home/alvis/taskpile/frontend/src/app/page.tsx\"],\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\")), \"/home/alvis/taskpile/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 = [\"/home/alvis/taskpile/frontend/src/app/page.tsx\"];\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst originalPathname = \"/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: \"/page\",\n pathname: \"/\",\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIuanM/bmFtZT1hcHAlMkZwYWdlJnBhZ2U9JTJGcGFnZSZhcHBQYXRocz0lMkZwYWdlJnBhZ2VQYXRoPXByaXZhdGUtbmV4dC1hcHAtZGlyJTJGcGFnZS50c3gmYXBwRGlyPSUyRmhvbWUlMkZhbHZpcyUyRnRhc2twaWxlJTJGZnJvbnRlbmQlMkZzcmMlMkZhcHAmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZyb290RGlyPSUyRmhvbWUlMkZhbHZpcyUyRnRhc2twaWxlJTJGZnJvbnRlbmQmaXNEZXY9dHJ1ZSZ0c2NvbmZpZ1BhdGg9dHNjb25maWcuanNvbiZiYXNlUGF0aD0mYXNzZXRQcmVmaXg9Jm5leHRDb25maWdPdXRwdXQ9JnByZWZlcnJlZFJlZ2lvbj0mbWlkZGxld2FyZUNvbmZpZz1lMzAlM0QhIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxhQUFhLHNCQUFzQjtBQUNpRTtBQUNyQztBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUM7QUFDakMsdUJBQXVCLGdKQUFtRjtBQUMxRztBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQSx5QkFBeUIsb0pBQXFGO0FBQzlHLG9CQUFvQiwwTkFBZ0Y7QUFDcEc7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ3VCO0FBQzZEO0FBQ3BGLDZCQUE2QixtQkFBbUI7QUFDaEQ7QUFDTztBQUNBO0FBQ1A7QUFDQTtBQUNBO0FBQ3VEO0FBQ3ZEO0FBQ08sd0JBQXdCLDhHQUFrQjtBQUNqRDtBQUNBLGNBQWMseUVBQVM7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly90YXNrcGlsZS1mcm9udGVuZC8/Y2YyYSJdLCJzb3VyY2VzQ29udGVudCI6WyJcIlRVUkJPUEFDSyB7IHRyYW5zaXRpb246IG5leHQtc3NyIH1cIjtcbmltcG9ydCB7IEFwcFBhZ2VSb3V0ZU1vZHVsZSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2Z1dHVyZS9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL21vZHVsZS5jb21waWxlZFwiO1xuaW1wb3J0IHsgUm91dGVLaW5kIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvZnV0dXJlL3JvdXRlLWtpbmRcIjtcbi8vIFdlIGluamVjdCB0aGUgdHJlZSBhbmQgcGFnZXMgaGVyZSBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlbSBpbiB0aGUgcm91dGVcbi8vIG1vZHVsZS5cbmNvbnN0IHRyZWUgPSB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICcnLFxuICAgICAgICB7XG4gICAgICAgIGNoaWxkcmVuOiBbJ19fUEFHRV9fJywge30sIHtcbiAgICAgICAgICBwYWdlOiBbKCkgPT4gaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvaG9tZS9hbHZpcy90YXNrcGlsZS9mcm9udGVuZC9zcmMvYXBwL3BhZ2UudHN4XCIpLCBcIi9ob21lL2FsdmlzL3Rhc2twaWxlL2Zyb250ZW5kL3NyYy9hcHAvcGFnZS50c3hcIl0sXG4gICAgICAgICAgXG4gICAgICAgIH1dXG4gICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICdsYXlvdXQnOiBbKCkgPT4gaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvaG9tZS9hbHZpcy90YXNrcGlsZS9mcm9udGVuZC9zcmMvYXBwL2xheW91dC50c3hcIiksIFwiL2hvbWUvYWx2aXMvdGFza3BpbGUvZnJvbnRlbmQvc3JjL2FwcC9sYXlvdXQudHN4XCJdLFxuJ25vdC1mb3VuZCc6IFsoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9ub3QtZm91bmQtZXJyb3JcIiksIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1lcnJvclwiXSxcbiAgICAgICAgXG4gICAgICB9XG4gICAgICBdXG4gICAgICB9LmNoaWxkcmVuO1xuY29uc3QgcGFnZXMgPSBbXCIvaG9tZS9hbHZpcy90YXNrcGlsZS9mcm9udGVuZC9zcmMvYXBwL3BhZ2UudHN4XCJdO1xuZXhwb3J0IHsgdHJlZSwgcGFnZXMgfTtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR2xvYmFsRXJyb3IgfSBmcm9tIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2Vycm9yLWJvdW5kYXJ5XCI7XG5jb25zdCBfX25leHRfYXBwX3JlcXVpcmVfXyA9IF9fd2VicGFja19yZXF1aXJlX19cbmNvbnN0IF9fbmV4dF9hcHBfbG9hZF9jaHVua19fID0gKCkgPT4gUHJvbWlzZS5yZXNvbHZlKClcbmV4cG9ydCBjb25zdCBvcmlnaW5hbFBhdGhuYW1lID0gXCIvcGFnZVwiO1xuZXhwb3J0IGNvbnN0IF9fbmV4dF9hcHBfXyA9IHtcbiAgICByZXF1aXJlOiBfX25leHRfYXBwX3JlcXVpcmVfXyxcbiAgICBsb2FkQ2h1bms6IF9fbmV4dF9hcHBfbG9hZF9jaHVua19fXG59O1xuZXhwb3J0ICogZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci9lbnRyeS1iYXNlXCI7XG4vLyBDcmVhdGUgYW5kIGV4cG9ydCB0aGUgcm91dGUgbW9kdWxlIHRoYXQgd2lsbCBiZSBjb25zdW1lZC5cbmV4cG9ydCBjb25zdCByb3V0ZU1vZHVsZSA9IG5ldyBBcHBQYWdlUm91dGVNb2R1bGUoe1xuICAgIGRlZmluaXRpb246IHtcbiAgICAgICAga2luZDogUm91dGVLaW5kLkFQUF9QQUdFLFxuICAgICAgICBwYWdlOiBcIi9wYWdlXCIsXG4gICAgICAgIHBhdGhuYW1lOiBcIi9cIixcbiAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBhcmVuJ3QgdXNlZCBpbiBwcm9kdWN0aW9uLlxuICAgICAgICBidW5kbGVQYXRoOiBcIlwiLFxuICAgICAgICBmaWxlbmFtZTogXCJcIixcbiAgICAgICAgYXBwUGF0aHM6IFtdXG4gICAgfSxcbiAgICB1c2VybGFuZDoge1xuICAgICAgICBsb2FkZXJUcmVlOiB0cmVlXG4gICAgfVxufSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFwcC1wYWdlLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fhome%2Falvis%2Ftaskpile%2Ffrontend&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%22%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-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%22%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZhbHZpcyUyRnRhc2twaWxlJTJGZnJvbnRlbmQlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZhcHAtcm91dGVyLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZhbHZpcyUyRnRhc2twaWxlJTJGZnJvbnRlbmQlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZjbGllbnQtcGFnZS5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZob21lJTJGYWx2aXMlMkZ0YXNrcGlsZSUyRmZyb250ZW5kJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGZXJyb3ItYm91bmRhcnkuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGaG9tZSUyRmFsdmlzJTJGdGFza3BpbGUlMkZmcm9udGVuZCUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmxheW91dC1yb3V0ZXIuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGaG9tZSUyRmFsdmlzJTJGdGFza3BpbGUlMkZmcm9udGVuZCUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRm5vdC1mb3VuZC1ib3VuZGFyeS5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZob21lJTJGYWx2aXMlMkZ0YXNrcGlsZSUyRmZyb250ZW5kJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsa09BQXlIO0FBQ3pIO0FBQ0Esb09BQTBIO0FBQzFIO0FBQ0EsME9BQTZIO0FBQzdIO0FBQ0Esd09BQTRIO0FBQzVIO0FBQ0Esa1BBQWlJO0FBQ2pJO0FBQ0Esc1FBQTJJIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdGFza3BpbGUtZnJvbnRlbmQvPzVlMTYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvaG9tZS9hbHZpcy90YXNrcGlsZS9mcm9udGVuZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXIuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9ob21lL2FsdmlzL3Rhc2twaWxlL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvY2xpZW50LXBhZ2UuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9ob21lL2FsdmlzL3Rhc2twaWxlL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnkuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9ob21lL2FsdmlzL3Rhc2twaWxlL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbGF5b3V0LXJvdXRlci5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2hvbWUvYWx2aXMvdGFza3BpbGUvZnJvbnRlbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9ub3QtZm91bmQtYm91bmRhcnkuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9ob21lL2FsdmlzL3Rhc2twaWxlL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qc1wiKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-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%22%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fsrc%2Fapp%2Fglobals.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%22%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***!
\*******************************************************************************************************************************************************************************************************************************/
/***/ (() => {
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fsrc%2Fapp%2Fpage.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%22%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fsrc%2Fapp%2Fpage.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/page.tsx */ \"(ssr)/./src/app/page.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZhbHZpcyUyRnRhc2twaWxlJTJGZnJvbnRlbmQlMkZzcmMlMkZhcHAlMkZwYWdlLnRzeCUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsZ0pBQW1GIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdGFza3BpbGUtZnJvbnRlbmQvPzgxM2EiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvaG9tZS9hbHZpcy90YXNrcGlsZS9mcm9udGVuZC9zcmMvYXBwL3BhZ2UudHN4XCIpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n");
/***/ }),
/***/ "(ssr)/./src/app/page.tsx":
/*!**************************!*\
!*** ./src/app/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 */ HomePage)\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_dynamic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dynamic */ \"(ssr)/./node_modules/next/dist/api/app-dynamic.js\");\n/* harmony import */ var _components_AddTaskForm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/AddTaskForm */ \"(ssr)/./src/components/AddTaskForm.tsx\");\n/* harmony import */ var _components_TaskList__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/TaskList */ \"(ssr)/./src/components/TaskList.tsx\");\n/* harmony import */ var _components_TaskDetailPanel__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/TaskDetailPanel */ \"(ssr)/./src/components/TaskDetailPanel.tsx\");\n/* harmony import */ var _components_UserPanel__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../components/UserPanel */ \"(ssr)/./src/components/UserPanel.tsx\");\n/* harmony import */ var _lib_api__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../lib/api */ \"(ssr)/./src/lib/api.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\n\n\n\nconst GraphView = (0,next_dynamic__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(async ()=>{\n true && /*require.resolve*/(null /* weak dependency, without id */);\n}, {\n loadableGenerated: {\n modules: [\n \"app/page.tsx -> \" + \"../components/GraphView\"\n ]\n },\n ssr: false\n});\nfunction HomePage() {\n const [activeTab, setActiveTab] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"tasks\");\n const [tasks, setTasks] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [selectedTaskId, setSelectedTaskId] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [leftPanelOpen, setLeftPanelOpen] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const [rightPanelOpen, setRightPanelOpen] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const selectedTask = tasks.find((t)=>String(t.id) === selectedTaskId) ?? null;\n const loadTasks = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(async ()=>{\n try {\n setError(null);\n const data = await (0,_lib_api__WEBPACK_IMPORTED_MODULE_7__.getTasks)();\n setTasks(data);\n } catch (err) {\n setError(err instanceof Error ? err.message : \"Failed to load tasks\");\n } finally{\n setLoading(false);\n }\n }, []);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n loadTasks();\n }, [\n loadTasks\n ]);\n async function handleAdd(input) {\n const task = await (0,_lib_api__WEBPACK_IMPORTED_MODULE_7__.createTask)(input);\n setTasks((prev)=>[\n task,\n ...prev\n ]);\n }\n async function handleComplete(id, completed) {\n const updated = await (0,_lib_api__WEBPACK_IMPORTED_MODULE_7__.updateTask)(id, {\n completed\n });\n setTasks((prev)=>prev.map((t)=>t.id === id ? updated : t));\n }\n async function handleDelete(id) {\n await (0,_lib_api__WEBPACK_IMPORTED_MODULE_7__.deleteTask)(id);\n setTasks((prev)=>prev.filter((t)=>t.id !== id));\n if (selectedTaskId === String(id)) setSelectedTaskId(null);\n }\n function handleSelectTask(id) {\n setSelectedTaskId(id);\n setRightPanelOpen(true);\n // Switch to graph tab to show centering if we're on tasks tab\n // (don't force tab switch — user might want to stay on current tab)\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col h-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"flex-shrink-0 border-b border-gray-800 px-6 py-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-lg font-semibold tracking-tight text-gray-100\",\n children: \"taskpile\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 71,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs text-gray-500\",\n children: [\n tasks.filter((t)=>!t.completed).length,\n \" remaining\"\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 74,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 70,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 69,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-shrink-0 border-b border-gray-800 px-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-1\",\n children: [\n \"tasks\",\n \"graph\"\n ].map((tab)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setActiveTab(tab),\n \"data-testid\": `tab-${tab}`,\n className: `px-4 py-3 text-sm font-medium capitalize transition-colors border-b-2 -mb-px ${activeTab === tab ? \"border-blue-500 text-blue-400\" : \"border-transparent text-gray-500 hover:text-gray-300\"}`,\n children: tab\n }, tab, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 84,\n columnNumber: 13\n }, this))\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 82,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 81,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 flex overflow-hidden\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setLeftPanelOpen(!leftPanelOpen),\n className: \"flex-shrink-0 w-6 flex items-center justify-center border-r border-gray-800 text-gray-500 hover:text-gray-300 hover:bg-gray-800/50 transition-colors\",\n title: leftPanelOpen ? \"Collapse left panel\" : \"Expand left panel\",\n \"data-testid\": \"toggle-left-panel\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: `w-3 h-3 transition-transform ${leftPanelOpen ? \"\" : \"rotate-180\"}`,\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15 19l-7-7 7-7\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 110,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 109,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 103,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `flex-shrink-0 border-r border-gray-800 overflow-hidden transition-all duration-300 ease-in-out ${leftPanelOpen ? \"w-64\" : \"w-0\"}`,\n \"data-testid\": \"left-panel\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `w-64 h-full overflow-y-auto ${leftPanelOpen ? \"opacity-100\" : \"opacity-0\"} transition-opacity duration-200`,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_UserPanel__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 122,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 121,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 115,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 relative overflow-hidden min-w-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `absolute inset-0 overflow-y-auto px-6 py-6 transition-opacity duration-150 ${activeTab === \"tasks\" ? \"opacity-100 pointer-events-auto z-10\" : \"opacity-0 pointer-events-none z-0\"}`,\n \"data-testid\": \"task-list-area\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-3xl mx-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_AddTaskForm__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n onAdd: handleAdd\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 134,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_TaskList__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n tasks: tasks,\n loading: loading,\n error: error,\n selectedTaskId: selectedTaskId,\n onComplete: handleComplete,\n onDelete: handleDelete,\n onSelect: handleSelectTask\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 135,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 133,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 129,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `absolute inset-0 transition-opacity duration-150 ${activeTab === \"graph\" ? \"opacity-100 pointer-events-auto z-10\" : \"opacity-0 pointer-events-none z-0\"}`,\n \"data-testid\": \"graph-panel\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(GraphView, {\n selectedTaskId: selectedTaskId,\n onSelectTask: handleSelectTask,\n isVisible: activeTab === \"graph\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 152,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 148,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 127,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setRightPanelOpen(!rightPanelOpen),\n className: \"flex-shrink-0 w-6 flex items-center justify-center border-l border-gray-800 text-gray-500 hover:text-gray-300 hover:bg-gray-800/50 transition-colors\",\n title: rightPanelOpen ? \"Collapse right panel\" : \"Expand right panel\",\n \"data-testid\": \"toggle-right-panel\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: `w-3 h-3 transition-transform ${rightPanelOpen ? \"\" : \"rotate-180\"}`,\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M9 5l7 7-7 7\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 164,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 163,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 157,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `flex-shrink-0 border-l border-gray-800 overflow-hidden transition-all duration-300 ease-in-out ${rightPanelOpen ? \"w-80\" : \"w-0\"}`,\n \"data-testid\": \"right-panel\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `w-80 h-full overflow-y-auto ${rightPanelOpen ? \"opacity-100\" : \"opacity-0\"} transition-opacity duration-200`,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_TaskDetailPanel__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n task: selectedTask,\n onComplete: handleComplete,\n onDelete: handleDelete\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 176,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 175,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 169,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 101,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/page.tsx\",\n lineNumber: 67,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvYXBwL3BhZ2UudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUV5RDtBQUN0QjtBQUNpQjtBQUNOO0FBQ2M7QUFDWjtBQUUwQjtBQUUxRSxNQUFNWSxZQUFZVCx3REFBT0E7Ozs7Ozs7O0lBQTRDVSxLQUFLOztBQUkzRCxTQUFTQztJQUN0QixNQUFNLENBQUNDLFdBQVdDLGFBQWEsR0FBR2hCLCtDQUFRQSxDQUFNO0lBQ2hELE1BQU0sQ0FBQ2lCLE9BQU9DLFNBQVMsR0FBR2xCLCtDQUFRQSxDQUFTLEVBQUU7SUFDN0MsTUFBTSxDQUFDbUIsU0FBU0MsV0FBVyxHQUFHcEIsK0NBQVFBLENBQUM7SUFDdkMsTUFBTSxDQUFDcUIsT0FBT0MsU0FBUyxHQUFHdEIsK0NBQVFBLENBQWdCO0lBQ2xELE1BQU0sQ0FBQ3VCLGdCQUFnQkMsa0JBQWtCLEdBQUd4QiwrQ0FBUUEsQ0FBZ0I7SUFDcEUsTUFBTSxDQUFDeUIsZUFBZUMsaUJBQWlCLEdBQUcxQiwrQ0FBUUEsQ0FBQztJQUNuRCxNQUFNLENBQUMyQixnQkFBZ0JDLGtCQUFrQixHQUFHNUIsK0NBQVFBLENBQUM7SUFFckQsTUFBTTZCLGVBQWVaLE1BQU1hLElBQUksQ0FBQyxDQUFDQyxJQUFNQyxPQUFPRCxFQUFFRSxFQUFFLE1BQU1WLG1CQUFtQjtJQUUzRSxNQUFNVyxZQUFZaEMsa0RBQVdBLENBQUM7UUFDNUIsSUFBSTtZQUNGb0IsU0FBUztZQUNULE1BQU1hLE9BQU8sTUFBTTNCLGtEQUFRQTtZQUMzQlUsU0FBU2lCO1FBQ1gsRUFBRSxPQUFPQyxLQUFLO1lBQ1pkLFNBQVNjLGVBQWVDLFFBQVFELElBQUlFLE9BQU8sR0FBRztRQUNoRCxTQUFVO1lBQ1JsQixXQUFXO1FBQ2I7SUFDRixHQUFHLEVBQUU7SUFFTG5CLGdEQUFTQSxDQUFDO1FBQ1JpQztJQUNGLEdBQUc7UUFBQ0E7S0FBVTtJQUVkLGVBQWVLLFVBQVVDLEtBQXNCO1FBQzdDLE1BQU1DLE9BQU8sTUFBTWhDLG9EQUFVQSxDQUFDK0I7UUFDOUJ0QixTQUFTLENBQUN3QixPQUFTO2dCQUFDRDttQkFBU0M7YUFBSztJQUNwQztJQUVBLGVBQWVDLGVBQWVWLEVBQVUsRUFBRVcsU0FBa0I7UUFDMUQsTUFBTUMsVUFBVSxNQUFNbkMsb0RBQVVBLENBQUN1QixJQUFJO1lBQUVXO1FBQVU7UUFDakQxQixTQUFTLENBQUN3QixPQUFTQSxLQUFLSSxHQUFHLENBQUMsQ0FBQ2YsSUFBT0EsRUFBRUUsRUFBRSxLQUFLQSxLQUFLWSxVQUFVZDtJQUM5RDtJQUVBLGVBQWVnQixhQUFhZCxFQUFVO1FBQ3BDLE1BQU10QixvREFBVUEsQ0FBQ3NCO1FBQ2pCZixTQUFTLENBQUN3QixPQUFTQSxLQUFLTSxNQUFNLENBQUMsQ0FBQ2pCLElBQU1BLEVBQUVFLEVBQUUsS0FBS0E7UUFDL0MsSUFBSVYsbUJBQW1CUyxPQUFPQyxLQUFLVCxrQkFBa0I7SUFDdkQ7SUFFQSxTQUFTeUIsaUJBQWlCaEIsRUFBVTtRQUNsQ1Qsa0JBQWtCUztRQUNsQkwsa0JBQWtCO0lBQ2xCLDhEQUE4RDtJQUM5RCxvRUFBb0U7SUFDdEU7SUFFQSxxQkFDRSw4REFBQ3NCO1FBQUlDLFdBQVU7OzBCQUViLDhEQUFDQztnQkFBT0QsV0FBVTswQkFDaEIsNEVBQUNEO29CQUFJQyxXQUFVOztzQ0FDYiw4REFBQ0U7NEJBQUdGLFdBQVU7c0NBQXFEOzs7Ozs7c0NBR25FLDhEQUFDRzs0QkFBS0gsV0FBVTs7Z0NBQ2JsQyxNQUFNK0IsTUFBTSxDQUFDLENBQUNqQixJQUFNLENBQUNBLEVBQUVhLFNBQVMsRUFBRVcsTUFBTTtnQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQU1oRCw4REFBQ0w7Z0JBQUlDLFdBQVU7MEJBQ2IsNEVBQUNEO29CQUFJQyxXQUFVOzhCQUNaO3dCQUFFO3dCQUFTO3FCQUFRLENBQVdMLEdBQUcsQ0FBQyxDQUFDVSxvQkFDbEMsOERBQUNDOzRCQUVDQyxTQUFTLElBQU0xQyxhQUFhd0M7NEJBQzVCRyxlQUFhLENBQUMsSUFBSSxFQUFFSCxJQUFJLENBQUM7NEJBQ3pCTCxXQUFXLENBQUMsNkVBQTZFLEVBQ3ZGcEMsY0FBY3lDLE1BQ1Ysa0NBQ0EsdURBQ0wsQ0FBQztzQ0FFREE7MkJBVElBOzs7Ozs7Ozs7Ozs7Ozs7MEJBZ0JiLDhEQUFDTjtnQkFBSUMsV0FBVTs7a0NBRWIsOERBQUNNO3dCQUNDQyxTQUFTLElBQU1oQyxpQkFBaUIsQ0FBQ0Q7d0JBQ2pDMEIsV0FBVTt3QkFDVlMsT0FBT25DLGdCQUFnQix3QkFBd0I7d0JBQy9Da0MsZUFBWTtrQ0FFWiw0RUFBQ0U7NEJBQUlWLFdBQVcsQ0FBQyw2QkFBNkIsRUFBRTFCLGdCQUFnQixLQUFLLGFBQWEsQ0FBQzs0QkFBRXFDLE1BQUs7NEJBQU9DLFNBQVE7NEJBQVlDLFFBQU87NEJBQWVDLGFBQWE7c0NBQ3RKLDRFQUFDQztnQ0FBS0MsZUFBYztnQ0FBUUMsZ0JBQWU7Z0NBQVFDLEdBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7a0NBS3pELDhEQUFDbkI7d0JBQ0NDLFdBQVcsQ0FBQywrRkFBK0YsRUFDekcxQixnQkFBZ0IsU0FBUyxNQUMxQixDQUFDO3dCQUNGa0MsZUFBWTtrQ0FFWiw0RUFBQ1Q7NEJBQUlDLFdBQVcsQ0FBQyw0QkFBNEIsRUFBRTFCLGdCQUFnQixnQkFBZ0IsWUFBWSxnQ0FBZ0MsQ0FBQztzQ0FDMUgsNEVBQUNsQiw2REFBU0E7Ozs7Ozs7Ozs7Ozs7OztrQ0FLZCw4REFBQzJDO3dCQUFJQyxXQUFVOzswQ0FFYiw4REFBQ0Q7Z0NBQ0NDLFdBQVcsQ0FBQywyRUFBMkUsRUFBRXBDLGNBQWMsVUFBVSx5Q0FBeUMsb0NBQW9DLENBQUM7Z0NBQy9MNEMsZUFBWTswQ0FFWiw0RUFBQ1Q7b0NBQUlDLFdBQVU7O3NEQUNiLDhEQUFDL0MsK0RBQVdBOzRDQUFDa0UsT0FBTy9COzs7Ozs7c0RBQ3BCLDhEQUFDbEMsNERBQVFBOzRDQUNQWSxPQUFPQTs0Q0FDUEUsU0FBU0E7NENBQ1RFLE9BQU9BOzRDQUNQRSxnQkFBZ0JBOzRDQUNoQmdELFlBQVk1Qjs0Q0FDWjZCLFVBQVV6Qjs0Q0FDVjBCLFVBQVV4Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7MENBTWhCLDhEQUFDQztnQ0FDQ0MsV0FBVyxDQUFDLGlEQUFpRCxFQUFFcEMsY0FBYyxVQUFVLHlDQUF5QyxvQ0FBb0MsQ0FBQztnQ0FDcks0QyxlQUFZOzBDQUVaLDRFQUFDL0M7b0NBQVVXLGdCQUFnQkE7b0NBQWdCbUQsY0FBY3pCO29DQUFrQjBCLFdBQVc1RCxjQUFjOzs7Ozs7Ozs7Ozs7Ozs7OztrQ0FLeEcsOERBQUMwQzt3QkFDQ0MsU0FBUyxJQUFNOUIsa0JBQWtCLENBQUNEO3dCQUNsQ3dCLFdBQVU7d0JBQ1ZTLE9BQU9qQyxpQkFBaUIseUJBQXlCO3dCQUNqRGdDLGVBQVk7a0NBRVosNEVBQUNFOzRCQUFJVixXQUFXLENBQUMsNkJBQTZCLEVBQUV4QixpQkFBaUIsS0FBSyxhQUFhLENBQUM7NEJBQUVtQyxNQUFLOzRCQUFPQyxTQUFROzRCQUFZQyxRQUFPOzRCQUFlQyxhQUFhO3NDQUN2Siw0RUFBQ0M7Z0NBQUtDLGVBQWM7Z0NBQVFDLGdCQUFlO2dDQUFRQyxHQUFFOzs7Ozs7Ozs7Ozs7Ozs7O2tDQUt6RCw4REFBQ25CO3dCQUNDQyxXQUFXLENBQUMsK0ZBQStGLEVBQ3pHeEIsaUJBQWlCLFNBQVMsTUFDM0IsQ0FBQzt3QkFDRmdDLGVBQVk7a0NBRVosNEVBQUNUOzRCQUFJQyxXQUFXLENBQUMsNEJBQTRCLEVBQUV4QixpQkFBaUIsZ0JBQWdCLFlBQVksZ0NBQWdDLENBQUM7c0NBQzNILDRFQUFDckIsbUVBQWVBO2dDQUNkbUMsTUFBTVo7Z0NBQ04wQyxZQUFZNUI7Z0NBQ1o2QixVQUFVekI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPeEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly90YXNrcGlsZS1mcm9udGVuZC8uL3NyYy9hcHAvcGFnZS50c3g/ZjY4YSJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGR5bmFtaWMgZnJvbSAnbmV4dC9keW5hbWljJztcbmltcG9ydCBBZGRUYXNrRm9ybSBmcm9tICcuLi9jb21wb25lbnRzL0FkZFRhc2tGb3JtJztcbmltcG9ydCBUYXNrTGlzdCBmcm9tICcuLi9jb21wb25lbnRzL1Rhc2tMaXN0JztcbmltcG9ydCBUYXNrRGV0YWlsUGFuZWwgZnJvbSAnLi4vY29tcG9uZW50cy9UYXNrRGV0YWlsUGFuZWwnO1xuaW1wb3J0IFVzZXJQYW5lbCBmcm9tICcuLi9jb21wb25lbnRzL1VzZXJQYW5lbCc7XG5pbXBvcnQgdHlwZSB7IFRhc2ssIENyZWF0ZVRhc2tJbnB1dCB9IGZyb20gJy4uL2xpYi90eXBlcyc7XG5pbXBvcnQgeyBnZXRUYXNrcywgY3JlYXRlVGFzaywgdXBkYXRlVGFzaywgZGVsZXRlVGFzayB9IGZyb20gJy4uL2xpYi9hcGknO1xuXG5jb25zdCBHcmFwaFZpZXcgPSBkeW5hbWljKCgpID0+IGltcG9ydCgnLi4vY29tcG9uZW50cy9HcmFwaFZpZXcnKSwgeyBzc3I6IGZhbHNlIH0pO1xuXG50eXBlIFRhYiA9ICd0YXNrcycgfCAnZ3JhcGgnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBIb21lUGFnZSgpIHtcbiAgY29uc3QgW2FjdGl2ZVRhYiwgc2V0QWN0aXZlVGFiXSA9IHVzZVN0YXRlPFRhYj4oJ3Rhc2tzJyk7XG4gIGNvbnN0IFt0YXNrcywgc2V0VGFza3NdID0gdXNlU3RhdGU8VGFza1tdPihbXSk7XG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbc2VsZWN0ZWRUYXNrSWQsIHNldFNlbGVjdGVkVGFza0lkXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbbGVmdFBhbmVsT3Blbiwgc2V0TGVmdFBhbmVsT3Blbl0gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgY29uc3QgW3JpZ2h0UGFuZWxPcGVuLCBzZXRSaWdodFBhbmVsT3Blbl0gPSB1c2VTdGF0ZSh0cnVlKTtcblxuICBjb25zdCBzZWxlY3RlZFRhc2sgPSB0YXNrcy5maW5kKCh0KSA9PiBTdHJpbmcodC5pZCkgPT09IHNlbGVjdGVkVGFza0lkKSA/PyBudWxsO1xuXG4gIGNvbnN0IGxvYWRUYXNrcyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgc2V0RXJyb3IobnVsbCk7XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgZ2V0VGFza3MoKTtcbiAgICAgIHNldFRhc2tzKGRhdGEpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgc2V0RXJyb3IoZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdGYWlsZWQgdG8gbG9hZCB0YXNrcycpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICB9XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxvYWRUYXNrcygpO1xuICB9LCBbbG9hZFRhc2tzXSk7XG5cbiAgYXN5bmMgZnVuY3Rpb24gaGFuZGxlQWRkKGlucHV0OiBDcmVhdGVUYXNrSW5wdXQpIHtcbiAgICBjb25zdCB0YXNrID0gYXdhaXQgY3JlYXRlVGFzayhpbnB1dCk7XG4gICAgc2V0VGFza3MoKHByZXYpID0+IFt0YXNrLCAuLi5wcmV2XSk7XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiBoYW5kbGVDb21wbGV0ZShpZDogbnVtYmVyLCBjb21wbGV0ZWQ6IGJvb2xlYW4pIHtcbiAgICBjb25zdCB1cGRhdGVkID0gYXdhaXQgdXBkYXRlVGFzayhpZCwgeyBjb21wbGV0ZWQgfSk7XG4gICAgc2V0VGFza3MoKHByZXYpID0+IHByZXYubWFwKCh0KSA9PiAodC5pZCA9PT0gaWQgPyB1cGRhdGVkIDogdCkpKTtcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIGhhbmRsZURlbGV0ZShpZDogbnVtYmVyKSB7XG4gICAgYXdhaXQgZGVsZXRlVGFzayhpZCk7XG4gICAgc2V0VGFza3MoKHByZXYpID0+IHByZXYuZmlsdGVyKCh0KSA9PiB0LmlkICE9PSBpZCkpO1xuICAgIGlmIChzZWxlY3RlZFRhc2tJZCA9PT0gU3RyaW5nKGlkKSkgc2V0U2VsZWN0ZWRUYXNrSWQobnVsbCk7XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVTZWxlY3RUYXNrKGlkOiBzdHJpbmcpIHtcbiAgICBzZXRTZWxlY3RlZFRhc2tJZChpZCk7XG4gICAgc2V0UmlnaHRQYW5lbE9wZW4odHJ1ZSk7XG4gICAgLy8gU3dpdGNoIHRvIGdyYXBoIHRhYiB0byBzaG93IGNlbnRlcmluZyBpZiB3ZSdyZSBvbiB0YXNrcyB0YWJcbiAgICAvLyAoZG9uJ3QgZm9yY2UgdGFiIHN3aXRjaCDigJQgdXNlciBtaWdodCB3YW50IHRvIHN0YXkgb24gY3VycmVudCB0YWIpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBoLWZ1bGxcIj5cbiAgICAgIHsvKiBIZWFkZXIgKi99XG4gICAgICA8aGVhZGVyIGNsYXNzTmFtZT1cImZsZXgtc2hyaW5rLTAgYm9yZGVyLWIgYm9yZGVyLWdyYXktODAwIHB4LTYgcHktNFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgdHJhY2tpbmctdGlnaHQgdGV4dC1ncmF5LTEwMFwiPlxuICAgICAgICAgICAgdGFza3BpbGVcbiAgICAgICAgICA8L2gxPlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1ncmF5LTUwMFwiPlxuICAgICAgICAgICAge3Rhc2tzLmZpbHRlcigodCkgPT4gIXQuY29tcGxldGVkKS5sZW5ndGh9IHJlbWFpbmluZ1xuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2hlYWRlcj5cblxuICAgICAgey8qIFRhYnMgKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtc2hyaW5rLTAgYm9yZGVyLWIgYm9yZGVyLWdyYXktODAwIHB4LTZcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGdhcC0xXCI+XG4gICAgICAgICAgeyhbJ3Rhc2tzJywgJ2dyYXBoJ10gYXMgVGFiW10pLm1hcCgodGFiKSA9PiAoXG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGtleT17dGFifVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRBY3RpdmVUYWIodGFiKX1cbiAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e2B0YWItJHt0YWJ9YH1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcHgtNCBweS0zIHRleHQtc20gZm9udC1tZWRpdW0gY2FwaXRhbGl6ZSB0cmFuc2l0aW9uLWNvbG9ycyBib3JkZXItYi0yIC1tYi1weCAke1xuICAgICAgICAgICAgICAgIGFjdGl2ZVRhYiA9PT0gdGFiXG4gICAgICAgICAgICAgICAgICA/ICdib3JkZXItYmx1ZS01MDAgdGV4dC1ibHVlLTQwMCdcbiAgICAgICAgICAgICAgICAgIDogJ2JvcmRlci10cmFuc3BhcmVudCB0ZXh0LWdyYXktNTAwIGhvdmVyOnRleHQtZ3JheS0zMDAnXG4gICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7dGFifVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiBNYWluIGxheW91dDogbGVmdCBwYW5lbCB8IGNlbnRlciB8IHJpZ2h0IHBhbmVsICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgZmxleCBvdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgICAgey8qIExlZnQgcGFuZWwgdG9nZ2xlICovfVxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0TGVmdFBhbmVsT3BlbighbGVmdFBhbmVsT3Blbil9XG4gICAgICAgICAgY2xhc3NOYW1lPVwiZmxleC1zaHJpbmstMCB3LTYgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYm9yZGVyLXIgYm9yZGVyLWdyYXktODAwIHRleHQtZ3JheS01MDAgaG92ZXI6dGV4dC1ncmF5LTMwMCBob3ZlcjpiZy1ncmF5LTgwMC81MCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgdGl0bGU9e2xlZnRQYW5lbE9wZW4gPyAnQ29sbGFwc2UgbGVmdCBwYW5lbCcgOiAnRXhwYW5kIGxlZnQgcGFuZWwnfVxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwidG9nZ2xlLWxlZnQtcGFuZWxcIlxuICAgICAgICA+XG4gICAgICAgICAgPHN2ZyBjbGFzc05hbWU9e2B3LTMgaC0zIHRyYW5zaXRpb24tdHJhbnNmb3JtICR7bGVmdFBhbmVsT3BlbiA/ICcnIDogJ3JvdGF0ZS0xODAnfWB9IGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZVdpZHRoPXsyfT5cbiAgICAgICAgICAgIDxwYXRoIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIiBkPVwiTTE1IDE5bC03LTcgNy03XCIgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgey8qIExlZnQgcGFuZWwgLSBVc2VyIGluZm8gKi99XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9e2BmbGV4LXNocmluay0wIGJvcmRlci1yIGJvcmRlci1ncmF5LTgwMCBvdmVyZmxvdy1oaWRkZW4gdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwIGVhc2UtaW4tb3V0ICR7XG4gICAgICAgICAgICBsZWZ0UGFuZWxPcGVuID8gJ3ctNjQnIDogJ3ctMCdcbiAgICAgICAgICB9YH1cbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImxlZnQtcGFuZWxcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2B3LTY0IGgtZnVsbCBvdmVyZmxvdy15LWF1dG8gJHtsZWZ0UGFuZWxPcGVuID8gJ29wYWNpdHktMTAwJyA6ICdvcGFjaXR5LTAnfSB0cmFuc2l0aW9uLW9wYWNpdHkgZHVyYXRpb24tMjAwYH0+XG4gICAgICAgICAgICA8VXNlclBhbmVsIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIHsvKiBDZW50ZXIgY29udGVudDogYm90aCB2aWV3cyBhbHdheXMgbW91bnRlZCwgb25seSBvbmUgdmlzaWJsZSAqL31cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgcmVsYXRpdmUgb3ZlcmZsb3ctaGlkZGVuIG1pbi13LTBcIj5cbiAgICAgICAgICB7LyogVGFzayBsaXN0IOKAlCBzaG93biBvbiB0YXNrcyB0YWIgKi99XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgYWJzb2x1dGUgaW5zZXQtMCBvdmVyZmxvdy15LWF1dG8gcHgtNiBweS02IHRyYW5zaXRpb24tb3BhY2l0eSBkdXJhdGlvbi0xNTAgJHthY3RpdmVUYWIgPT09ICd0YXNrcycgPyAnb3BhY2l0eS0xMDAgcG9pbnRlci1ldmVudHMtYXV0byB6LTEwJyA6ICdvcGFjaXR5LTAgcG9pbnRlci1ldmVudHMtbm9uZSB6LTAnfWB9XG4gICAgICAgICAgICBkYXRhLXRlc3RpZD1cInRhc2stbGlzdC1hcmVhXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1heC13LTN4bCBteC1hdXRvXCI+XG4gICAgICAgICAgICAgIDxBZGRUYXNrRm9ybSBvbkFkZD17aGFuZGxlQWRkfSAvPlxuICAgICAgICAgICAgICA8VGFza0xpc3RcbiAgICAgICAgICAgICAgICB0YXNrcz17dGFza3N9XG4gICAgICAgICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cbiAgICAgICAgICAgICAgICBlcnJvcj17ZXJyb3J9XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRUYXNrSWQ9e3NlbGVjdGVkVGFza0lkfVxuICAgICAgICAgICAgICAgIG9uQ29tcGxldGU9e2hhbmRsZUNvbXBsZXRlfVxuICAgICAgICAgICAgICAgIG9uRGVsZXRlPXtoYW5kbGVEZWxldGV9XG4gICAgICAgICAgICAgICAgb25TZWxlY3Q9e2hhbmRsZVNlbGVjdFRhc2t9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIHsvKiBHcmFwaCDigJQgYWx3YXlzIG1vdW50ZWQgc28gc2ltdWxhdGlvbiBydW5zLCBzaG93biBvbiBncmFwaCB0YWIgKi99XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgYWJzb2x1dGUgaW5zZXQtMCB0cmFuc2l0aW9uLW9wYWNpdHkgZHVyYXRpb24tMTUwICR7YWN0aXZlVGFiID09PSAnZ3JhcGgnID8gJ29wYWNpdHktMTAwIHBvaW50ZXItZXZlbnRzLWF1dG8gei0xMCcgOiAnb3BhY2l0eS0wIHBvaW50ZXItZXZlbnRzLW5vbmUgei0wJ31gfVxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJncmFwaC1wYW5lbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEdyYXBoVmlldyBzZWxlY3RlZFRhc2tJZD17c2VsZWN0ZWRUYXNrSWR9IG9uU2VsZWN0VGFzaz17aGFuZGxlU2VsZWN0VGFza30gaXNWaXNpYmxlPXthY3RpdmVUYWIgPT09ICdncmFwaCd9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIHsvKiBSaWdodCBwYW5lbCB0b2dnbGUgKi99XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRSaWdodFBhbmVsT3BlbighcmlnaHRQYW5lbE9wZW4pfVxuICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtc2hyaW5rLTAgdy02IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJvcmRlci1sIGJvcmRlci1ncmF5LTgwMCB0ZXh0LWdyYXktNTAwIGhvdmVyOnRleHQtZ3JheS0zMDAgaG92ZXI6YmctZ3JheS04MDAvNTAgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgIHRpdGxlPXtyaWdodFBhbmVsT3BlbiA/ICdDb2xsYXBzZSByaWdodCBwYW5lbCcgOiAnRXhwYW5kIHJpZ2h0IHBhbmVsJ31cbiAgICAgICAgICBkYXRhLXRlc3RpZD1cInRvZ2dsZS1yaWdodC1wYW5lbFwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3ZnIGNsYXNzTmFtZT17YHctMyBoLTMgdHJhbnNpdGlvbi10cmFuc2Zvcm0gJHtyaWdodFBhbmVsT3BlbiA/ICcnIDogJ3JvdGF0ZS0xODAnfWB9IGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZVdpZHRoPXsyfT5cbiAgICAgICAgICAgIDxwYXRoIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIiBkPVwiTTkgNWw3IDctNyA3XCIgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgey8qIFJpZ2h0IHBhbmVsIC0gVGFzayBkZXRhaWxzICovfVxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPXtgZmxleC1zaHJpbmstMCBib3JkZXItbCBib3JkZXItZ3JheS04MDAgb3ZlcmZsb3ctaGlkZGVuIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCBlYXNlLWluLW91dCAke1xuICAgICAgICAgICAgcmlnaHRQYW5lbE9wZW4gPyAndy04MCcgOiAndy0wJ1xuICAgICAgICAgIH1gfVxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwicmlnaHQtcGFuZWxcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2B3LTgwIGgtZnVsbCBvdmVyZmxvdy15LWF1dG8gJHtyaWdodFBhbmVsT3BlbiA/ICdvcGFjaXR5LTEwMCcgOiAnb3BhY2l0eS0wJ30gdHJhbnNpdGlvbi1vcGFjaXR5IGR1cmF0aW9uLTIwMGB9PlxuICAgICAgICAgICAgPFRhc2tEZXRhaWxQYW5lbFxuICAgICAgICAgICAgICB0YXNrPXtzZWxlY3RlZFRhc2t9XG4gICAgICAgICAgICAgIG9uQ29tcGxldGU9e2hhbmRsZUNvbXBsZXRlfVxuICAgICAgICAgICAgICBvbkRlbGV0ZT17aGFuZGxlRGVsZXRlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZUNhbGxiYWNrIiwiZHluYW1pYyIsIkFkZFRhc2tGb3JtIiwiVGFza0xpc3QiLCJUYXNrRGV0YWlsUGFuZWwiLCJVc2VyUGFuZWwiLCJnZXRUYXNrcyIsImNyZWF0ZVRhc2siLCJ1cGRhdGVUYXNrIiwiZGVsZXRlVGFzayIsIkdyYXBoVmlldyIsInNzciIsIkhvbWVQYWdlIiwiYWN0aXZlVGFiIiwic2V0QWN0aXZlVGFiIiwidGFza3MiLCJzZXRUYXNrcyIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiZXJyb3IiLCJzZXRFcnJvciIsInNlbGVjdGVkVGFza0lkIiwic2V0U2VsZWN0ZWRUYXNrSWQiLCJsZWZ0UGFuZWxPcGVuIiwic2V0TGVmdFBhbmVsT3BlbiIsInJpZ2h0UGFuZWxPcGVuIiwic2V0UmlnaHRQYW5lbE9wZW4iLCJzZWxlY3RlZFRhc2siLCJmaW5kIiwidCIsIlN0cmluZyIsImlkIiwibG9hZFRhc2tzIiwiZGF0YSIsImVyciIsIkVycm9yIiwibWVzc2FnZSIsImhhbmRsZUFkZCIsImlucHV0IiwidGFzayIsInByZXYiLCJoYW5kbGVDb21wbGV0ZSIsImNvbXBsZXRlZCIsInVwZGF0ZWQiLCJtYXAiLCJoYW5kbGVEZWxldGUiLCJmaWx0ZXIiLCJoYW5kbGVTZWxlY3RUYXNrIiwiZGl2IiwiY2xhc3NOYW1lIiwiaGVhZGVyIiwiaDEiLCJzcGFuIiwibGVuZ3RoIiwidGFiIiwiYnV0dG9uIiwib25DbGljayIsImRhdGEtdGVzdGlkIiwidGl0bGUiLCJzdmciLCJmaWxsIiwidmlld0JveCIsInN0cm9rZSIsInN0cm9rZVdpZHRoIiwicGF0aCIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VMaW5lam9pbiIsImQiLCJvbkFkZCIsIm9uQ29tcGxldGUiLCJvbkRlbGV0ZSIsIm9uU2VsZWN0Iiwib25TZWxlY3RUYXNrIiwiaXNWaXNpYmxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/app/page.tsx\n");
/***/ }),
/***/ "(ssr)/./src/components/AddTaskForm.tsx":
/*!****************************************!*\
!*** ./src/components/AddTaskForm.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 */ AddTaskForm)\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__ default auto */ \n\nfunction AddTaskForm({ onAdd }) {\n const [title, setTitle] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const [description, setDescription] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const [expanded, setExpanded] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n async function handleSubmit(e) {\n e.preventDefault();\n if (!title.trim()) return;\n setLoading(true);\n setError(null);\n try {\n await onAdd({\n title: title.trim(),\n description: description.trim() || undefined\n });\n setTitle(\"\");\n setDescription(\"\");\n setExpanded(false);\n } catch (err) {\n setError(err instanceof Error ? err.message : \"Failed to add task\");\n } finally{\n setLoading(false);\n }\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: handleSubmit,\n className: \"mb-6\",\n \"data-testid\": \"add-task-form\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: title,\n onChange: (e)=>setTitle(e.target.value),\n placeholder: \"Add a new task...\",\n className: \"flex-1 bg-gray-800 border border-gray-700 rounded-lg px-4 py-2.5 text-sm text-gray-100 placeholder-gray-500 focus:outline-none focus:border-blue-500 transition-colors\",\n \"data-testid\": \"title-input\",\n disabled: loading\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/AddTaskForm.tsx\",\n lineNumber: 37,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>setExpanded((v)=>!v),\n title: \"Add description\",\n className: \"px-3 py-2.5 bg-gray-800 border border-gray-700 rounded-lg text-gray-400 hover:text-gray-200 hover:border-gray-600 transition-colors\",\n \"data-testid\": \"expand-button\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-4 h-4\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M4 6h16M4 12h16M4 18h7\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/AddTaskForm.tsx\",\n lineNumber: 54,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/AddTaskForm.tsx\",\n lineNumber: 53,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/AddTaskForm.tsx\",\n lineNumber: 46,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"submit\",\n disabled: loading || !title.trim(),\n className: \"px-4 py-2.5 bg-blue-600 hover:bg-blue-500 disabled:bg-gray-700 disabled:text-gray-500 text-white text-sm font-medium rounded-lg transition-colors\",\n \"data-testid\": \"submit-button\",\n children: loading ? \"Adding...\" : \"Add\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/AddTaskForm.tsx\",\n lineNumber: 57,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/AddTaskForm.tsx\",\n lineNumber: 36,\n columnNumber: 7\n }, this),\n expanded && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"textarea\", {\n value: description,\n onChange: (e)=>setDescription(e.target.value),\n placeholder: \"Description (optional)\",\n rows: 3,\n className: \"mt-2 w-full bg-gray-800 border border-gray-700 rounded-lg px-4 py-2.5 text-sm text-gray-100 placeholder-gray-500 focus:outline-none focus:border-blue-500 transition-colors resize-none\",\n \"data-testid\": \"description-input\",\n disabled: loading\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/AddTaskForm.tsx\",\n lineNumber: 68,\n columnNumber: 9\n }, this),\n error && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 text-xs text-red-400\",\n \"data-testid\": \"form-error\",\n children: error\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/AddTaskForm.tsx\",\n lineNumber: 80,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/AddTaskForm.tsx\",\n lineNumber: 35,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9BZGRUYXNrRm9ybS50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRWlDO0FBT2xCLFNBQVNDLFlBQVksRUFBRUMsS0FBSyxFQUFvQjtJQUM3RCxNQUFNLENBQUNDLE9BQU9DLFNBQVMsR0FBR0osK0NBQVFBLENBQUM7SUFDbkMsTUFBTSxDQUFDSyxhQUFhQyxlQUFlLEdBQUdOLCtDQUFRQSxDQUFDO0lBQy9DLE1BQU0sQ0FBQ08sVUFBVUMsWUFBWSxHQUFHUiwrQ0FBUUEsQ0FBQztJQUN6QyxNQUFNLENBQUNTLFNBQVNDLFdBQVcsR0FBR1YsK0NBQVFBLENBQUM7SUFDdkMsTUFBTSxDQUFDVyxPQUFPQyxTQUFTLEdBQUdaLCtDQUFRQSxDQUFnQjtJQUVsRCxlQUFlYSxhQUFhQyxDQUFrQjtRQUM1Q0EsRUFBRUMsY0FBYztRQUNoQixJQUFJLENBQUNaLE1BQU1hLElBQUksSUFBSTtRQUNuQk4sV0FBVztRQUNYRSxTQUFTO1FBQ1QsSUFBSTtZQUNGLE1BQU1WLE1BQU07Z0JBQUVDLE9BQU9BLE1BQU1hLElBQUk7Z0JBQUlYLGFBQWFBLFlBQVlXLElBQUksTUFBTUM7WUFBVTtZQUNoRmIsU0FBUztZQUNURSxlQUFlO1lBQ2ZFLFlBQVk7UUFDZCxFQUFFLE9BQU9VLEtBQUs7WUFDWk4sU0FBU00sZUFBZUMsUUFBUUQsSUFBSUUsT0FBTyxHQUFHO1FBQ2hELFNBQVU7WUFDUlYsV0FBVztRQUNiO0lBQ0Y7SUFFQSxxQkFDRSw4REFBQ1c7UUFBS0MsVUFBVVQ7UUFBY1UsV0FBVTtRQUFPQyxlQUFZOzswQkFDekQsOERBQUNDO2dCQUFJRixXQUFVOztrQ0FDYiw4REFBQ0c7d0JBQ0NDLE1BQUs7d0JBQ0xDLE9BQU96Qjt3QkFDUDBCLFVBQVUsQ0FBQ2YsSUFBTVYsU0FBU1UsRUFBRWdCLE1BQU0sQ0FBQ0YsS0FBSzt3QkFDeENHLGFBQVk7d0JBQ1pSLFdBQVU7d0JBQ1ZDLGVBQVk7d0JBQ1pRLFVBQVV2Qjs7Ozs7O2tDQUVaLDhEQUFDd0I7d0JBQ0NOLE1BQUs7d0JBQ0xPLFNBQVMsSUFBTTFCLFlBQVksQ0FBQzJCLElBQU0sQ0FBQ0E7d0JBQ25DaEMsT0FBTTt3QkFDTm9CLFdBQVU7d0JBQ1ZDLGVBQVk7a0NBRVosNEVBQUNZOzRCQUFJYixXQUFVOzRCQUFVYyxNQUFLOzRCQUFPQyxTQUFROzRCQUFZQyxRQUFPOzRCQUFlQyxhQUFhO3NDQUMxRiw0RUFBQ0M7Z0NBQUtDLGVBQWM7Z0NBQVFDLGdCQUFlO2dDQUFRQyxHQUFFOzs7Ozs7Ozs7Ozs7Ozs7O2tDQUd6RCw4REFBQ1g7d0JBQ0NOLE1BQUs7d0JBQ0xLLFVBQVV2QixXQUFXLENBQUNOLE1BQU1hLElBQUk7d0JBQ2hDTyxXQUFVO3dCQUNWQyxlQUFZO2tDQUVYZixVQUFVLGNBQWM7Ozs7Ozs7Ozs7OztZQUk1QkYsMEJBQ0MsOERBQUNzQztnQkFDQ2pCLE9BQU92QjtnQkFDUHdCLFVBQVUsQ0FBQ2YsSUFBTVIsZUFBZVEsRUFBRWdCLE1BQU0sQ0FBQ0YsS0FBSztnQkFDOUNHLGFBQVk7Z0JBQ1plLE1BQU07Z0JBQ052QixXQUFVO2dCQUNWQyxlQUFZO2dCQUNaUSxVQUFVdkI7Ozs7OztZQUliRSx1QkFDQyw4REFBQ29DO2dCQUFFeEIsV0FBVTtnQkFBNEJDLGVBQVk7MEJBQ2xEYjs7Ozs7Ozs7Ozs7O0FBS1giLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly90YXNrcGlsZS1mcm9udGVuZC8uL3NyYy9jb21wb25lbnRzL0FkZFRhc2tGb3JtLnRzeD85OTgyIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdHlwZSB7IENyZWF0ZVRhc2tJbnB1dCB9IGZyb20gJy4uL2xpYi90eXBlcyc7XG5cbmludGVyZmFjZSBBZGRUYXNrRm9ybVByb3BzIHtcbiAgb25BZGQ6IChpbnB1dDogQ3JlYXRlVGFza0lucHV0KSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBBZGRUYXNrRm9ybSh7IG9uQWRkIH06IEFkZFRhc2tGb3JtUHJvcHMpIHtcbiAgY29uc3QgW3RpdGxlLCBzZXRUaXRsZV0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IFtkZXNjcmlwdGlvbiwgc2V0RGVzY3JpcHRpb25dID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbZXhwYW5kZWQsIHNldEV4cGFuZGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gIGFzeW5jIGZ1bmN0aW9uIGhhbmRsZVN1Ym1pdChlOiBSZWFjdC5Gb3JtRXZlbnQpIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKCF0aXRsZS50cmltKCkpIHJldHVybjtcbiAgICBzZXRMb2FkaW5nKHRydWUpO1xuICAgIHNldEVycm9yKG51bGwpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBvbkFkZCh7IHRpdGxlOiB0aXRsZS50cmltKCksIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbi50cmltKCkgfHwgdW5kZWZpbmVkIH0pO1xuICAgICAgc2V0VGl0bGUoJycpO1xuICAgICAgc2V0RGVzY3JpcHRpb24oJycpO1xuICAgICAgc2V0RXhwYW5kZWQoZmFsc2UpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgc2V0RXJyb3IoZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdGYWlsZWQgdG8gYWRkIHRhc2snKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Zm9ybSBvblN1Ym1pdD17aGFuZGxlU3VibWl0fSBjbGFzc05hbWU9XCJtYi02XCIgZGF0YS10ZXN0aWQ9XCJhZGQtdGFzay1mb3JtXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZ2FwLTJcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIHZhbHVlPXt0aXRsZX1cbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldFRpdGxlKGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIkFkZCBhIG5ldyB0YXNrLi4uXCJcbiAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4LTEgYmctZ3JheS04MDAgYm9yZGVyIGJvcmRlci1ncmF5LTcwMCByb3VuZGVkLWxnIHB4LTQgcHktMi41IHRleHQtc20gdGV4dC1ncmF5LTEwMCBwbGFjZWhvbGRlci1ncmF5LTUwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6Ym9yZGVyLWJsdWUtNTAwIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cInRpdGxlLWlucHV0XCJcbiAgICAgICAgICBkaXNhYmxlZD17bG9hZGluZ31cbiAgICAgICAgLz5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldEV4cGFuZGVkKCh2KSA9PiAhdil9XG4gICAgICAgICAgdGl0bGU9XCJBZGQgZGVzY3JpcHRpb25cIlxuICAgICAgICAgIGNsYXNzTmFtZT1cInB4LTMgcHktMi41IGJnLWdyYXktODAwIGJvcmRlciBib3JkZXItZ3JheS03MDAgcm91bmRlZC1sZyB0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtZ3JheS0yMDAgaG92ZXI6Ym9yZGVyLWdyYXktNjAwIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImV4cGFuZC1idXR0b25cIlxuICAgICAgICA+XG4gICAgICAgICAgPHN2ZyBjbGFzc05hbWU9XCJ3LTQgaC00XCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlV2lkdGg9ezJ9PlxuICAgICAgICAgICAgPHBhdGggc3Ryb2tlTGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiIGQ9XCJNNCA2aDE2TTQgMTJoMTZNNCAxOGg3XCIgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICBkaXNhYmxlZD17bG9hZGluZyB8fCAhdGl0bGUudHJpbSgpfVxuICAgICAgICAgIGNsYXNzTmFtZT1cInB4LTQgcHktMi41IGJnLWJsdWUtNjAwIGhvdmVyOmJnLWJsdWUtNTAwIGRpc2FibGVkOmJnLWdyYXktNzAwIGRpc2FibGVkOnRleHQtZ3JheS01MDAgdGV4dC13aGl0ZSB0ZXh0LXNtIGZvbnQtbWVkaXVtIHJvdW5kZWQtbGcgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwic3VibWl0LWJ1dHRvblwiXG4gICAgICAgID5cbiAgICAgICAgICB7bG9hZGluZyA/ICdBZGRpbmcuLi4nIDogJ0FkZCd9XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHtleHBhbmRlZCAmJiAoXG4gICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgIHZhbHVlPXtkZXNjcmlwdGlvbn1cbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldERlc2NyaXB0aW9uKGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIkRlc2NyaXB0aW9uIChvcHRpb25hbClcIlxuICAgICAgICAgIHJvd3M9ezN9XG4gICAgICAgICAgY2xhc3NOYW1lPVwibXQtMiB3LWZ1bGwgYmctZ3JheS04MDAgYm9yZGVyIGJvcmRlci1ncmF5LTcwMCByb3VuZGVkLWxnIHB4LTQgcHktMi41IHRleHQtc20gdGV4dC1ncmF5LTEwMCBwbGFjZWhvbGRlci1ncmF5LTUwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6Ym9yZGVyLWJsdWUtNTAwIHRyYW5zaXRpb24tY29sb3JzIHJlc2l6ZS1ub25lXCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImRlc2NyaXB0aW9uLWlucHV0XCJcbiAgICAgICAgICBkaXNhYmxlZD17bG9hZGluZ31cbiAgICAgICAgLz5cbiAgICAgICl9XG5cbiAgICAgIHtlcnJvciAmJiAoXG4gICAgICAgIDxwIGNsYXNzTmFtZT1cIm10LTIgdGV4dC14cyB0ZXh0LXJlZC00MDBcIiBkYXRhLXRlc3RpZD1cImZvcm0tZXJyb3JcIj5cbiAgICAgICAgICB7ZXJyb3J9XG4gICAgICAgIDwvcD5cbiAgICAgICl9XG4gICAgPC9mb3JtPlxuICApO1xufVxuIl0sIm5hbWVzIjpbInVzZVN0YXRlIiwiQWRkVGFza0Zvcm0iLCJvbkFkZCIsInRpdGxlIiwic2V0VGl0bGUiLCJkZXNjcmlwdGlvbiIsInNldERlc2NyaXB0aW9uIiwiZXhwYW5kZWQiLCJzZXRFeHBhbmRlZCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiZXJyb3IiLCJzZXRFcnJvciIsImhhbmRsZVN1Ym1pdCIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInRyaW0iLCJ1bmRlZmluZWQiLCJlcnIiLCJFcnJvciIsIm1lc3NhZ2UiLCJmb3JtIiwib25TdWJtaXQiLCJjbGFzc05hbWUiLCJkYXRhLXRlc3RpZCIsImRpdiIsImlucHV0IiwidHlwZSIsInZhbHVlIiwib25DaGFuZ2UiLCJ0YXJnZXQiLCJwbGFjZWhvbGRlciIsImRpc2FibGVkIiwiYnV0dG9uIiwib25DbGljayIsInYiLCJzdmciLCJmaWxsIiwidmlld0JveCIsInN0cm9rZSIsInN0cm9rZVdpZHRoIiwicGF0aCIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VMaW5lam9pbiIsImQiLCJ0ZXh0YXJlYSIsInJvd3MiLCJwIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/AddTaskForm.tsx\n");
/***/ }),
/***/ "(ssr)/./src/components/TaskDetailPanel.tsx":
/*!********************************************!*\
!*** ./src/components/TaskDetailPanel.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 */ TaskDetailPanel)\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/* __next_internal_client_entry_do_not_use__ default auto */ \nfunction TaskDetailPanel({ task, onComplete, onDelete }) {\n if (!task) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-4 flex items-center justify-center h-full\",\n \"data-testid\": \"task-detail-empty\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-500\",\n children: \"Select a task to view details\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskDetailPanel.tsx\",\n lineNumber: 15,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskDetailPanel.tsx\",\n lineNumber: 14,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-4 space-y-4\",\n \"data-testid\": \"task-detail\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-sm font-semibold text-gray-300 uppercase tracking-wider\",\n children: \"Task Details\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskDetailPanel.tsx\",\n lineNumber: 22,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\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)(\"div\", {\n className: \"text-xs text-gray-500 mb-1\",\n children: \"Title\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskDetailPanel.tsx\",\n lineNumber: 26,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-100 font-medium\",\n children: task.title\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskDetailPanel.tsx\",\n lineNumber: 27,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskDetailPanel.tsx\",\n lineNumber: 25,\n columnNumber: 9\n }, this),\n task.description && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-gray-500 mb-1\",\n children: \"Description\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskDetailPanel.tsx\",\n lineNumber: 32,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-300 leading-relaxed\",\n children: task.description\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskDetailPanel.tsx\",\n lineNumber: 33,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskDetailPanel.tsx\",\n lineNumber: 31,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-gray-500 mb-1\",\n children: \"Status\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskDetailPanel.tsx\",\n lineNumber: 38,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: `inline-flex items-center gap-1.5 text-xs font-medium px-2 py-1 rounded-full ${task.completed ? \"bg-green-500/10 text-green-400\" : \"bg-blue-500/10 text-blue-400\"}`,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: `w-1.5 h-1.5 rounded-full ${task.completed ? \"bg-green-400\" : \"bg-blue-400\"}`\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskDetailPanel.tsx\",\n lineNumber: 46,\n columnNumber: 13\n }, this),\n task.completed ? \"Completed\" : \"Pending\"\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskDetailPanel.tsx\",\n lineNumber: 39,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskDetailPanel.tsx\",\n lineNumber: 37,\n columnNumber: 9\n }, this),\n task.created_at && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-gray-500 mb-1\",\n children: \"Created\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskDetailPanel.tsx\",\n lineNumber: 53,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-400\",\n children: new Date(task.created_at).toLocaleString()\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskDetailPanel.tsx\",\n lineNumber: 54,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskDetailPanel.tsx\",\n lineNumber: 52,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskDetailPanel.tsx\",\n lineNumber: 24,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border-t border-gray-800 pt-3 flex gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>onComplete(task.id, !task.completed),\n className: `flex-1 text-xs font-medium py-2 px-3 rounded-lg transition-colors ${task.completed ? \"bg-gray-700 hover:bg-gray-600 text-gray-300\" : \"bg-green-600 hover:bg-green-500 text-white\"}`,\n \"data-testid\": \"detail-complete-button\",\n children: task.completed ? \"Mark Incomplete\" : \"Mark Complete\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskDetailPanel.tsx\",\n lineNumber: 60,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>onDelete(task.id),\n className: \"text-xs font-medium py-2 px-3 rounded-lg bg-red-600/10 hover:bg-red-600/20 text-red-400 transition-colors\",\n \"data-testid\": \"detail-delete-button\",\n children: \"Delete\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskDetailPanel.tsx\",\n lineNumber: 71,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskDetailPanel.tsx\",\n lineNumber: 59,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskDetailPanel.tsx\",\n lineNumber: 21,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9UYXNrRGV0YWlsUGFuZWwudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFVZSxTQUFTQSxnQkFBZ0IsRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBd0I7SUFDMUYsSUFBSSxDQUFDRixNQUFNO1FBQ1QscUJBQ0UsOERBQUNHO1lBQUlDLFdBQVU7WUFBOENDLGVBQVk7c0JBQ3ZFLDRFQUFDQztnQkFBRUYsV0FBVTswQkFBd0I7Ozs7Ozs7Ozs7O0lBRzNDO0lBRUEscUJBQ0UsOERBQUNEO1FBQUlDLFdBQVU7UUFBZ0JDLGVBQVk7OzBCQUN6Qyw4REFBQ0U7Z0JBQUdILFdBQVU7MEJBQStEOzs7Ozs7MEJBRTdFLDhEQUFDRDtnQkFBSUMsV0FBVTs7a0NBQ2IsOERBQUNEOzswQ0FDQyw4REFBQ0E7Z0NBQUlDLFdBQVU7MENBQTZCOzs7Ozs7MENBQzVDLDhEQUFDRTtnQ0FBRUYsV0FBVTswQ0FBcUNKLEtBQUtRLEtBQUs7Ozs7Ozs7Ozs7OztvQkFHN0RSLEtBQUtTLFdBQVcsa0JBQ2YsOERBQUNOOzswQ0FDQyw4REFBQ0E7Z0NBQUlDLFdBQVU7MENBQTZCOzs7Ozs7MENBQzVDLDhEQUFDRTtnQ0FBRUYsV0FBVTswQ0FBeUNKLEtBQUtTLFdBQVc7Ozs7Ozs7Ozs7OztrQ0FJMUUsOERBQUNOOzswQ0FDQyw4REFBQ0E7Z0NBQUlDLFdBQVU7MENBQTZCOzs7Ozs7MENBQzVDLDhEQUFDTTtnQ0FDQ04sV0FBVyxDQUFDLDRFQUE0RSxFQUN0RkosS0FBS1csU0FBUyxHQUNWLG1DQUNBLCtCQUNMLENBQUM7O2tEQUVGLDhEQUFDRDt3Q0FBS04sV0FBVyxDQUFDLHlCQUF5QixFQUFFSixLQUFLVyxTQUFTLEdBQUcsaUJBQWlCLGNBQWMsQ0FBQzs7Ozs7O29DQUM3RlgsS0FBS1csU0FBUyxHQUFHLGNBQWM7Ozs7Ozs7Ozs7Ozs7b0JBSW5DWCxLQUFLWSxVQUFVLGtCQUNkLDhEQUFDVDs7MENBQ0MsOERBQUNBO2dDQUFJQyxXQUFVOzBDQUE2Qjs7Ozs7OzBDQUM1Qyw4REFBQ0U7Z0NBQUVGLFdBQVU7MENBQXlCLElBQUlTLEtBQUtiLEtBQUtZLFVBQVUsRUFBRUUsY0FBYzs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQUtwRiw4REFBQ1g7Z0JBQUlDLFdBQVU7O2tDQUNiLDhEQUFDVzt3QkFDQ0MsU0FBUyxJQUFNZixXQUFXRCxLQUFLaUIsRUFBRSxFQUFFLENBQUNqQixLQUFLVyxTQUFTO3dCQUNsRFAsV0FBVyxDQUFDLGtFQUFrRSxFQUM1RUosS0FBS1csU0FBUyxHQUNWLGdEQUNBLDZDQUNMLENBQUM7d0JBQ0ZOLGVBQVk7a0NBRVhMLEtBQUtXLFNBQVMsR0FBRyxvQkFBb0I7Ozs7OztrQ0FFeEMsOERBQUNJO3dCQUNDQyxTQUFTLElBQU1kLFNBQVNGLEtBQUtpQixFQUFFO3dCQUMvQmIsV0FBVTt3QkFDVkMsZUFBWTtrQ0FDYjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTVQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly90YXNrcGlsZS1mcm9udGVuZC8uL3NyYy9jb21wb25lbnRzL1Rhc2tEZXRhaWxQYW5lbC50c3g/YzZkZSJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCB0eXBlIHsgVGFzayB9IGZyb20gJy4uL2xpYi90eXBlcyc7XG5cbmludGVyZmFjZSBUYXNrRGV0YWlsUGFuZWxQcm9wcyB7XG4gIHRhc2s6IFRhc2sgfCBudWxsO1xuICBvbkNvbXBsZXRlOiAoaWQ6IG51bWJlciwgY29tcGxldGVkOiBib29sZWFuKSA9PiB2b2lkO1xuICBvbkRlbGV0ZTogKGlkOiBudW1iZXIpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFRhc2tEZXRhaWxQYW5lbCh7IHRhc2ssIG9uQ29tcGxldGUsIG9uRGVsZXRlIH06IFRhc2tEZXRhaWxQYW5lbFByb3BzKSB7XG4gIGlmICghdGFzaykge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtNCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBoLWZ1bGxcIiBkYXRhLXRlc3RpZD1cInRhc2stZGV0YWlsLWVtcHR5XCI+XG4gICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTUwMFwiPlNlbGVjdCBhIHRhc2sgdG8gdmlldyBkZXRhaWxzPC9wPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJwLTQgc3BhY2UteS00XCIgZGF0YS10ZXN0aWQ9XCJ0YXNrLWRldGFpbFwiPlxuICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktMzAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlclwiPlRhc2sgRGV0YWlsczwvaDI+XG5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS0zXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtZ3JheS01MDAgbWItMVwiPlRpdGxlPC9kaXY+XG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktMTAwIGZvbnQtbWVkaXVtXCI+e3Rhc2sudGl0bGV9PC9wPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICB7dGFzay5kZXNjcmlwdGlvbiAmJiAoXG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LWdyYXktNTAwIG1iLTFcIj5EZXNjcmlwdGlvbjwvZGl2PlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktMzAwIGxlYWRpbmctcmVsYXhlZFwiPnt0YXNrLmRlc2NyaXB0aW9ufTwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cblxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LWdyYXktNTAwIG1iLTFcIj5TdGF0dXM8L2Rpdj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjUgdGV4dC14cyBmb250LW1lZGl1bSBweC0yIHB5LTEgcm91bmRlZC1mdWxsICR7XG4gICAgICAgICAgICAgIHRhc2suY29tcGxldGVkXG4gICAgICAgICAgICAgICAgPyAnYmctZ3JlZW4tNTAwLzEwIHRleHQtZ3JlZW4tNDAwJ1xuICAgICAgICAgICAgICAgIDogJ2JnLWJsdWUtNTAwLzEwIHRleHQtYmx1ZS00MDAnXG4gICAgICAgICAgICB9YH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2B3LTEuNSBoLTEuNSByb3VuZGVkLWZ1bGwgJHt0YXNrLmNvbXBsZXRlZCA/ICdiZy1ncmVlbi00MDAnIDogJ2JnLWJsdWUtNDAwJ31gfSAvPlxuICAgICAgICAgICAge3Rhc2suY29tcGxldGVkID8gJ0NvbXBsZXRlZCcgOiAnUGVuZGluZyd9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICB7dGFzay5jcmVhdGVkX2F0ICYmIChcbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtZ3JheS01MDAgbWItMVwiPkNyZWF0ZWQ8L2Rpdj5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTQwMFwiPntuZXcgRGF0ZSh0YXNrLmNyZWF0ZWRfYXQpLnRvTG9jYWxlU3RyaW5nKCl9PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYm9yZGVyLXQgYm9yZGVyLWdyYXktODAwIHB0LTMgZmxleCBnYXAtMlwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgb25DbGljaz17KCkgPT4gb25Db21wbGV0ZSh0YXNrLmlkLCAhdGFzay5jb21wbGV0ZWQpfVxuICAgICAgICAgIGNsYXNzTmFtZT17YGZsZXgtMSB0ZXh0LXhzIGZvbnQtbWVkaXVtIHB5LTIgcHgtMyByb3VuZGVkLWxnIHRyYW5zaXRpb24tY29sb3JzICR7XG4gICAgICAgICAgICB0YXNrLmNvbXBsZXRlZFxuICAgICAgICAgICAgICA/ICdiZy1ncmF5LTcwMCBob3ZlcjpiZy1ncmF5LTYwMCB0ZXh0LWdyYXktMzAwJ1xuICAgICAgICAgICAgICA6ICdiZy1ncmVlbi02MDAgaG92ZXI6YmctZ3JlZW4tNTAwIHRleHQtd2hpdGUnXG4gICAgICAgICAgfWB9XG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJkZXRhaWwtY29tcGxldGUtYnV0dG9uXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt0YXNrLmNvbXBsZXRlZCA/ICdNYXJrIEluY29tcGxldGUnIDogJ01hcmsgQ29tcGxldGUnfVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uRGVsZXRlKHRhc2suaWQpfVxuICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1tZWRpdW0gcHktMiBweC0zIHJvdW5kZWQtbGcgYmctcmVkLTYwMC8xMCBob3ZlcjpiZy1yZWQtNjAwLzIwIHRleHQtcmVkLTQwMCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJkZXRhaWwtZGVsZXRlLWJ1dHRvblwiXG4gICAgICAgID5cbiAgICAgICAgICBEZWxldGVcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJUYXNrRGV0YWlsUGFuZWwiLCJ0YXNrIiwib25Db21wbGV0ZSIsIm9uRGVsZXRlIiwiZGl2IiwiY2xhc3NOYW1lIiwiZGF0YS10ZXN0aWQiLCJwIiwiaDIiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwic3BhbiIsImNvbXBsZXRlZCIsImNyZWF0ZWRfYXQiLCJEYXRlIiwidG9Mb2NhbGVTdHJpbmciLCJidXR0b24iLCJvbkNsaWNrIiwiaWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/components/TaskDetailPanel.tsx\n");
/***/ }),
/***/ "(ssr)/./src/components/TaskItem.tsx":
/*!*************************************!*\
!*** ./src/components/TaskItem.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 */ TaskItem)\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/* __next_internal_client_entry_do_not_use__ default auto */ \nfunction TaskItem({ task, selected, onComplete, onDelete, onSelect }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n onClick: ()=>onSelect?.(String(task.id)),\n className: `flex items-start gap-3 p-4 rounded-lg border transition-colors cursor-pointer ${selected ? \"bg-blue-500/10 border-blue-500/50\" : task.completed ? \"bg-gray-800 border-gray-700 opacity-60\" : \"bg-gray-850 border-gray-700 hover:border-gray-600\"}`,\n \"data-testid\": \"task-item\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: (e)=>{\n e.stopPropagation();\n onComplete(task.id, !task.completed);\n },\n \"aria-label\": task.completed ? \"Mark incomplete\" : \"Mark complete\",\n className: `mt-0.5 w-5 h-5 flex-shrink-0 rounded-full border-2 flex items-center justify-center transition-colors ${task.completed ? \"bg-green-500 border-green-500 text-white\" : \"border-gray-500 hover:border-green-400\"}`,\n \"data-testid\": \"complete-button\",\n children: task.completed && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-3 h-3\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\",\n strokeWidth: 3,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M5 13l4 4L19 7\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskItem.tsx\",\n lineNumber: 38,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskItem.tsx\",\n lineNumber: 37,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskItem.tsx\",\n lineNumber: 26,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 min-w-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: `text-sm font-medium leading-snug ${task.completed ? \"line-through text-gray-500\" : \"text-gray-100\"}`,\n \"data-testid\": \"task-title\",\n children: task.title\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskItem.tsx\",\n lineNumber: 44,\n columnNumber: 9\n }, this),\n task.description && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-1 text-xs text-gray-400 leading-relaxed\",\n \"data-testid\": \"task-description\",\n children: task.description\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskItem.tsx\",\n lineNumber: 53,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskItem.tsx\",\n lineNumber: 43,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: (e)=>{\n e.stopPropagation();\n onDelete(task.id);\n },\n \"aria-label\": \"Delete task\",\n className: \"flex-shrink-0 p-1 rounded text-gray-500 hover:text-red-400 hover:bg-gray-700 transition-colors\",\n \"data-testid\": \"delete-button\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-4 h-4\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6 18L18 6M6 6l12 12\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskItem.tsx\",\n lineNumber: 66,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskItem.tsx\",\n lineNumber: 65,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskItem.tsx\",\n lineNumber: 59,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskItem.tsx\",\n lineNumber: 15,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9UYXNrSXRlbS50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQVllLFNBQVNBLFNBQVMsRUFBRUMsSUFBSSxFQUFFQyxRQUFRLEVBQUVDLFVBQVUsRUFBRUMsUUFBUSxFQUFFQyxRQUFRLEVBQWlCO0lBQ2hHLHFCQUNFLDhEQUFDQztRQUNDQyxTQUFTLElBQU1GLFdBQVdHLE9BQU9QLEtBQUtRLEVBQUU7UUFDeENDLFdBQVcsQ0FBQyw4RUFBOEUsRUFDeEZSLFdBQ0ksc0NBQ0FELEtBQUtVLFNBQVMsR0FDWiwyQ0FDQSxvREFDUCxDQUFDO1FBQ0ZDLGVBQVk7OzBCQUVaLDhEQUFDQztnQkFDQ04sU0FBUyxDQUFDTztvQkFBUUEsRUFBRUMsZUFBZTtvQkFBSVosV0FBV0YsS0FBS1EsRUFBRSxFQUFFLENBQUNSLEtBQUtVLFNBQVM7Z0JBQUc7Z0JBQzdFSyxjQUFZZixLQUFLVSxTQUFTLEdBQUcsb0JBQW9CO2dCQUNqREQsV0FBVyxDQUFDLHNHQUFzRyxFQUNoSFQsS0FBS1UsU0FBUyxHQUNWLDZDQUNBLHlDQUNMLENBQUM7Z0JBQ0ZDLGVBQVk7MEJBRVhYLEtBQUtVLFNBQVMsa0JBQ2IsOERBQUNNO29CQUFJUCxXQUFVO29CQUFVUSxNQUFLO29CQUFPQyxTQUFRO29CQUFZQyxRQUFPO29CQUFlQyxhQUFhOzhCQUMxRiw0RUFBQ0M7d0JBQUtDLGVBQWM7d0JBQVFDLGdCQUFlO3dCQUFRQyxHQUFFOzs7Ozs7Ozs7Ozs7Ozs7OzBCQUszRCw4REFBQ25CO2dCQUFJSSxXQUFVOztrQ0FDYiw4REFBQ2dCO3dCQUNDaEIsV0FBVyxDQUFDLGlDQUFpQyxFQUMzQ1QsS0FBS1UsU0FBUyxHQUFHLCtCQUErQixnQkFDakQsQ0FBQzt3QkFDRkMsZUFBWTtrQ0FFWFgsS0FBSzBCLEtBQUs7Ozs7OztvQkFFWjFCLEtBQUsyQixXQUFXLGtCQUNmLDhEQUFDRjt3QkFBRWhCLFdBQVU7d0JBQTZDRSxlQUFZO2tDQUNuRVgsS0FBSzJCLFdBQVc7Ozs7Ozs7Ozs7OzswQkFLdkIsOERBQUNmO2dCQUNDTixTQUFTLENBQUNPO29CQUFRQSxFQUFFQyxlQUFlO29CQUFJWCxTQUFTSCxLQUFLUSxFQUFFO2dCQUFHO2dCQUMxRE8sY0FBVztnQkFDWE4sV0FBVTtnQkFDVkUsZUFBWTswQkFFWiw0RUFBQ0s7b0JBQUlQLFdBQVU7b0JBQVVRLE1BQUs7b0JBQU9DLFNBQVE7b0JBQVlDLFFBQU87b0JBQWVDLGFBQWE7OEJBQzFGLDRFQUFDQzt3QkFBS0MsZUFBYzt3QkFBUUMsZ0JBQWU7d0JBQVFDLEdBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLL0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly90YXNrcGlsZS1mcm9udGVuZC8uL3NyYy9jb21wb25lbnRzL1Rhc2tJdGVtLnRzeD80OGMzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IHR5cGUgeyBUYXNrIH0gZnJvbSAnLi4vbGliL3R5cGVzJztcblxuaW50ZXJmYWNlIFRhc2tJdGVtUHJvcHMge1xuICB0YXNrOiBUYXNrO1xuICBzZWxlY3RlZD86IGJvb2xlYW47XG4gIG9uQ29tcGxldGU6IChpZDogbnVtYmVyLCBjb21wbGV0ZWQ6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIG9uRGVsZXRlOiAoaWQ6IG51bWJlcikgPT4gdm9pZDtcbiAgb25TZWxlY3Q/OiAoaWQ6IHN0cmluZykgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gVGFza0l0ZW0oeyB0YXNrLCBzZWxlY3RlZCwgb25Db21wbGV0ZSwgb25EZWxldGUsIG9uU2VsZWN0IH06IFRhc2tJdGVtUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBvbkNsaWNrPXsoKSA9PiBvblNlbGVjdD8uKFN0cmluZyh0YXNrLmlkKSl9XG4gICAgICBjbGFzc05hbWU9e2BmbGV4IGl0ZW1zLXN0YXJ0IGdhcC0zIHAtNCByb3VuZGVkLWxnIGJvcmRlciB0cmFuc2l0aW9uLWNvbG9ycyBjdXJzb3ItcG9pbnRlciAke1xuICAgICAgICBzZWxlY3RlZFxuICAgICAgICAgID8gJ2JnLWJsdWUtNTAwLzEwIGJvcmRlci1ibHVlLTUwMC81MCdcbiAgICAgICAgICA6IHRhc2suY29tcGxldGVkXG4gICAgICAgICAgICA/ICdiZy1ncmF5LTgwMCBib3JkZXItZ3JheS03MDAgb3BhY2l0eS02MCdcbiAgICAgICAgICAgIDogJ2JnLWdyYXktODUwIGJvcmRlci1ncmF5LTcwMCBob3Zlcjpib3JkZXItZ3JheS02MDAnXG4gICAgICB9YH1cbiAgICAgIGRhdGEtdGVzdGlkPVwidGFzay1pdGVtXCJcbiAgICA+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7IGUuc3RvcFByb3BhZ2F0aW9uKCk7IG9uQ29tcGxldGUodGFzay5pZCwgIXRhc2suY29tcGxldGVkKTsgfX1cbiAgICAgICAgYXJpYS1sYWJlbD17dGFzay5jb21wbGV0ZWQgPyAnTWFyayBpbmNvbXBsZXRlJyA6ICdNYXJrIGNvbXBsZXRlJ31cbiAgICAgICAgY2xhc3NOYW1lPXtgbXQtMC41IHctNSBoLTUgZmxleC1zaHJpbmstMCByb3VuZGVkLWZ1bGwgYm9yZGVyLTIgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdHJhbnNpdGlvbi1jb2xvcnMgJHtcbiAgICAgICAgICB0YXNrLmNvbXBsZXRlZFxuICAgICAgICAgICAgPyAnYmctZ3JlZW4tNTAwIGJvcmRlci1ncmVlbi01MDAgdGV4dC13aGl0ZSdcbiAgICAgICAgICAgIDogJ2JvcmRlci1ncmF5LTUwMCBob3Zlcjpib3JkZXItZ3JlZW4tNDAwJ1xuICAgICAgICB9YH1cbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJjb21wbGV0ZS1idXR0b25cIlxuICAgICAgPlxuICAgICAgICB7dGFzay5jb21wbGV0ZWQgJiYgKFxuICAgICAgICAgIDxzdmcgY2xhc3NOYW1lPVwidy0zIGgtM1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZVdpZHRoPXszfT5cbiAgICAgICAgICAgIDxwYXRoIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIiBkPVwiTTUgMTNsNCA0TDE5IDdcIiAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICApfVxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIG1pbi13LTBcIj5cbiAgICAgICAgPHBcbiAgICAgICAgICBjbGFzc05hbWU9e2B0ZXh0LXNtIGZvbnQtbWVkaXVtIGxlYWRpbmctc251ZyAke1xuICAgICAgICAgICAgdGFzay5jb21wbGV0ZWQgPyAnbGluZS10aHJvdWdoIHRleHQtZ3JheS01MDAnIDogJ3RleHQtZ3JheS0xMDAnXG4gICAgICAgICAgfWB9XG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJ0YXNrLXRpdGxlXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt0YXNrLnRpdGxlfVxuICAgICAgICA8L3A+XG4gICAgICAgIHt0YXNrLmRlc2NyaXB0aW9uICYmIChcbiAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtdC0xIHRleHQteHMgdGV4dC1ncmF5LTQwMCBsZWFkaW5nLXJlbGF4ZWRcIiBkYXRhLXRlc3RpZD1cInRhc2stZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIHt0YXNrLmRlc2NyaXB0aW9ufVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8YnV0dG9uXG4gICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7IGUuc3RvcFByb3BhZ2F0aW9uKCk7IG9uRGVsZXRlKHRhc2suaWQpOyB9fVxuICAgICAgICBhcmlhLWxhYmVsPVwiRGVsZXRlIHRhc2tcIlxuICAgICAgICBjbGFzc05hbWU9XCJmbGV4LXNocmluay0wIHAtMSByb3VuZGVkIHRleHQtZ3JheS01MDAgaG92ZXI6dGV4dC1yZWQtNDAwIGhvdmVyOmJnLWdyYXktNzAwIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJkZWxldGUtYnV0dG9uXCJcbiAgICAgID5cbiAgICAgICAgPHN2ZyBjbGFzc05hbWU9XCJ3LTQgaC00XCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlV2lkdGg9ezJ9PlxuICAgICAgICAgIDxwYXRoIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIiBkPVwiTTYgMThMMTggNk02IDZsMTIgMTJcIiAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICApO1xufVxuIl0sIm5hbWVzIjpbIlRhc2tJdGVtIiwidGFzayIsInNlbGVjdGVkIiwib25Db21wbGV0ZSIsIm9uRGVsZXRlIiwib25TZWxlY3QiLCJkaXYiLCJvbkNsaWNrIiwiU3RyaW5nIiwiaWQiLCJjbGFzc05hbWUiLCJjb21wbGV0ZWQiLCJkYXRhLXRlc3RpZCIsImJ1dHRvbiIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJhcmlhLWxhYmVsIiwic3ZnIiwiZmlsbCIsInZpZXdCb3giLCJzdHJva2UiLCJzdHJva2VXaWR0aCIsInBhdGgiLCJzdHJva2VMaW5lY2FwIiwic3Ryb2tlTGluZWpvaW4iLCJkIiwicCIsInRpdGxlIiwiZGVzY3JpcHRpb24iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/components/TaskItem.tsx\n");
/***/ }),
/***/ "(ssr)/./src/components/TaskList.tsx":
/*!*************************************!*\
!*** ./src/components/TaskList.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 */ TaskList)\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 _TaskItem__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TaskItem */ \"(ssr)/./src/components/TaskItem.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\nfunction TaskList({ tasks, loading, error, selectedTaskId, onComplete, onDelete, onSelect }) {\n if (loading) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-center py-12\",\n \"data-testid\": \"task-list-loading\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-6 h-6 border-2 border-blue-500 border-t-transparent rounded-full animate-spin\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskList.tsx\",\n lineNumber: 20,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskList.tsx\",\n lineNumber: 19,\n columnNumber: 7\n }, this);\n }\n if (error) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-center py-8 text-sm text-red-400\",\n \"data-testid\": \"task-list-error\",\n children: error\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskList.tsx\",\n lineNumber: 27,\n columnNumber: 7\n }, this);\n }\n if (tasks.length === 0) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-center py-12 text-sm text-gray-500\",\n \"data-testid\": \"task-list-empty\",\n children: \"No tasks yet. Add one above.\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskList.tsx\",\n lineNumber: 35,\n columnNumber: 7\n }, this);\n }\n const pending = tasks.filter((t)=>!t.completed);\n const done = tasks.filter((t)=>t.completed);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-1\",\n \"data-testid\": \"task-list\",\n children: [\n pending.map((task)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_TaskItem__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n task: task,\n selected: String(task.id) === selectedTaskId,\n onComplete: onComplete,\n onDelete: onDelete,\n onSelect: onSelect\n }, task.id, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskList.tsx\",\n lineNumber: 47,\n columnNumber: 9\n }, this)),\n done.length > 0 && pending.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"pt-4 pb-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-gray-600 uppercase tracking-wider font-medium\",\n children: \"Completed\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskList.tsx\",\n lineNumber: 58,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskList.tsx\",\n lineNumber: 57,\n columnNumber: 9\n }, this),\n done.map((task)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_TaskItem__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n task: task,\n selected: String(task.id) === selectedTaskId,\n onComplete: onComplete,\n onDelete: onDelete,\n onSelect: onSelect\n }, task.id, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskList.tsx\",\n lineNumber: 62,\n columnNumber: 9\n }, this))\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/TaskList.tsx\",\n lineNumber: 45,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9UYXNrTGlzdC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFHa0M7QUFZbkIsU0FBU0MsU0FBUyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsS0FBSyxFQUFFQyxjQUFjLEVBQUVDLFVBQVUsRUFBRUMsUUFBUSxFQUFFQyxRQUFRLEVBQWlCO0lBQ3ZILElBQUlMLFNBQVM7UUFDWCxxQkFDRSw4REFBQ007WUFBSUMsV0FBVTtZQUE0QkMsZUFBWTtzQkFDckQsNEVBQUNGO2dCQUFJQyxXQUFVOzs7Ozs7Ozs7OztJQUdyQjtJQUVBLElBQUlOLE9BQU87UUFDVCxxQkFDRSw4REFBQ1E7WUFBRUYsV0FBVTtZQUF3Q0MsZUFBWTtzQkFDOURQOzs7Ozs7SUFHUDtJQUVBLElBQUlGLE1BQU1XLE1BQU0sS0FBSyxHQUFHO1FBQ3RCLHFCQUNFLDhEQUFDRDtZQUFFRixXQUFVO1lBQTBDQyxlQUFZO3NCQUFrQjs7Ozs7O0lBSXpGO0lBRUEsTUFBTUcsVUFBVVosTUFBTWEsTUFBTSxDQUFDLENBQUNDLElBQU0sQ0FBQ0EsRUFBRUMsU0FBUztJQUNoRCxNQUFNQyxPQUFPaEIsTUFBTWEsTUFBTSxDQUFDLENBQUNDLElBQU1BLEVBQUVDLFNBQVM7SUFFNUMscUJBQ0UsOERBQUNSO1FBQUlDLFdBQVU7UUFBWUMsZUFBWTs7WUFDcENHLFFBQVFLLEdBQUcsQ0FBQyxDQUFDQyxxQkFDWiw4REFBQ3BCLGlEQUFRQTtvQkFFUG9CLE1BQU1BO29CQUNOQyxVQUFVQyxPQUFPRixLQUFLRyxFQUFFLE1BQU1sQjtvQkFDOUJDLFlBQVlBO29CQUNaQyxVQUFVQTtvQkFDVkMsVUFBVUE7bUJBTExZLEtBQUtHLEVBQUU7Ozs7O1lBUWZMLEtBQUtMLE1BQU0sR0FBRyxLQUFLQyxRQUFRRCxNQUFNLEdBQUcsbUJBQ25DLDhEQUFDSjtnQkFBSUMsV0FBVTswQkFDYiw0RUFBQ0U7b0JBQUVGLFdBQVU7OEJBQTZEOzs7Ozs7Ozs7OztZQUc3RVEsS0FBS0MsR0FBRyxDQUFDLENBQUNDLHFCQUNULDhEQUFDcEIsaURBQVFBO29CQUVQb0IsTUFBTUE7b0JBQ05DLFVBQVVDLE9BQU9GLEtBQUtHLEVBQUUsTUFBTWxCO29CQUM5QkMsWUFBWUE7b0JBQ1pDLFVBQVVBO29CQUNWQyxVQUFVQTttQkFMTFksS0FBS0csRUFBRTs7Ozs7Ozs7Ozs7QUFVdEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly90YXNrcGlsZS1mcm9udGVuZC8uL3NyYy9jb21wb25lbnRzL1Rhc2tMaXN0LnRzeD82ZjY2Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IHR5cGUgeyBUYXNrIH0gZnJvbSAnLi4vbGliL3R5cGVzJztcbmltcG9ydCBUYXNrSXRlbSBmcm9tICcuL1Rhc2tJdGVtJztcblxuaW50ZXJmYWNlIFRhc2tMaXN0UHJvcHMge1xuICB0YXNrczogVGFza1tdO1xuICBsb2FkaW5nOiBib29sZWFuO1xuICBlcnJvcjogc3RyaW5nIHwgbnVsbDtcbiAgc2VsZWN0ZWRUYXNrSWQ/OiBzdHJpbmcgfCBudWxsO1xuICBvbkNvbXBsZXRlOiAoaWQ6IG51bWJlciwgY29tcGxldGVkOiBib29sZWFuKSA9PiB2b2lkO1xuICBvbkRlbGV0ZTogKGlkOiBudW1iZXIpID0+IHZvaWQ7XG4gIG9uU2VsZWN0PzogKGlkOiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFRhc2tMaXN0KHsgdGFza3MsIGxvYWRpbmcsIGVycm9yLCBzZWxlY3RlZFRhc2tJZCwgb25Db21wbGV0ZSwgb25EZWxldGUsIG9uU2VsZWN0IH06IFRhc2tMaXN0UHJvcHMpIHtcbiAgaWYgKGxvYWRpbmcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktY2VudGVyIHB5LTEyXCIgZGF0YS10ZXN0aWQ9XCJ0YXNrLWxpc3QtbG9hZGluZ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctNiBoLTYgYm9yZGVyLTIgYm9yZGVyLWJsdWUtNTAwIGJvcmRlci10LXRyYW5zcGFyZW50IHJvdW5kZWQtZnVsbCBhbmltYXRlLXNwaW5cIiAvPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG4gIGlmIChlcnJvcikge1xuICAgIHJldHVybiAoXG4gICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBweS04IHRleHQtc20gdGV4dC1yZWQtNDAwXCIgZGF0YS10ZXN0aWQ9XCJ0YXNrLWxpc3QtZXJyb3JcIj5cbiAgICAgICAge2Vycm9yfVxuICAgICAgPC9wPlxuICAgICk7XG4gIH1cblxuICBpZiAodGFza3MubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtY2VudGVyIHB5LTEyIHRleHQtc20gdGV4dC1ncmF5LTUwMFwiIGRhdGEtdGVzdGlkPVwidGFzay1saXN0LWVtcHR5XCI+XG4gICAgICAgIE5vIHRhc2tzIHlldC4gQWRkIG9uZSBhYm92ZS5cbiAgICAgIDwvcD5cbiAgICApO1xuICB9XG5cbiAgY29uc3QgcGVuZGluZyA9IHRhc2tzLmZpbHRlcigodCkgPT4gIXQuY29tcGxldGVkKTtcbiAgY29uc3QgZG9uZSA9IHRhc2tzLmZpbHRlcigodCkgPT4gdC5jb21wbGV0ZWQpO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTFcIiBkYXRhLXRlc3RpZD1cInRhc2stbGlzdFwiPlxuICAgICAge3BlbmRpbmcubWFwKCh0YXNrKSA9PiAoXG4gICAgICAgIDxUYXNrSXRlbVxuICAgICAgICAgIGtleT17dGFzay5pZH1cbiAgICAgICAgICB0YXNrPXt0YXNrfVxuICAgICAgICAgIHNlbGVjdGVkPXtTdHJpbmcodGFzay5pZCkgPT09IHNlbGVjdGVkVGFza0lkfVxuICAgICAgICAgIG9uQ29tcGxldGU9e29uQ29tcGxldGV9XG4gICAgICAgICAgb25EZWxldGU9e29uRGVsZXRlfVxuICAgICAgICAgIG9uU2VsZWN0PXtvblNlbGVjdH1cbiAgICAgICAgLz5cbiAgICAgICkpfVxuICAgICAge2RvbmUubGVuZ3RoID4gMCAmJiBwZW5kaW5nLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInB0LTQgcGItMlwiPlxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1ncmF5LTYwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXIgZm9udC1tZWRpdW1cIj5Db21wbGV0ZWQ8L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICAgIHtkb25lLm1hcCgodGFzaykgPT4gKFxuICAgICAgICA8VGFza0l0ZW1cbiAgICAgICAgICBrZXk9e3Rhc2suaWR9XG4gICAgICAgICAgdGFzaz17dGFza31cbiAgICAgICAgICBzZWxlY3RlZD17U3RyaW5nKHRhc2suaWQpID09PSBzZWxlY3RlZFRhc2tJZH1cbiAgICAgICAgICBvbkNvbXBsZXRlPXtvbkNvbXBsZXRlfVxuICAgICAgICAgIG9uRGVsZXRlPXtvbkRlbGV0ZX1cbiAgICAgICAgICBvblNlbGVjdD17b25TZWxlY3R9XG4gICAgICAgIC8+XG4gICAgICApKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJUYXNrSXRlbSIsIlRhc2tMaXN0IiwidGFza3MiLCJsb2FkaW5nIiwiZXJyb3IiLCJzZWxlY3RlZFRhc2tJZCIsIm9uQ29tcGxldGUiLCJvbkRlbGV0ZSIsIm9uU2VsZWN0IiwiZGl2IiwiY2xhc3NOYW1lIiwiZGF0YS10ZXN0aWQiLCJwIiwibGVuZ3RoIiwicGVuZGluZyIsImZpbHRlciIsInQiLCJjb21wbGV0ZWQiLCJkb25lIiwibWFwIiwidGFzayIsInNlbGVjdGVkIiwiU3RyaW5nIiwiaWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/components/TaskList.tsx\n");
/***/ }),
/***/ "(ssr)/./src/components/UserPanel.tsx":
/*!**************************************!*\
!*** ./src/components/UserPanel.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 */ UserPanel)\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/* __next_internal_client_entry_do_not_use__ default auto */ \nfunction UserPanel() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-4 space-y-4\",\n \"data-testid\": \"user-panel\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-sm font-semibold text-gray-300 uppercase tracking-wider\",\n children: \"Profile\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/UserPanel.tsx\",\n lineNumber: 6,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-10 h-10 rounded-full bg-blue-600 flex items-center justify-center text-white font-semibold text-sm\",\n children: \"JD\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/UserPanel.tsx\",\n lineNumber: 9,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm font-medium text-gray-100\",\n children: \"Jane Doe\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/UserPanel.tsx\",\n lineNumber: 13,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-gray-500\",\n children: \"jane@example.com\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/UserPanel.tsx\",\n lineNumber: 14,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/UserPanel.tsx\",\n lineNumber: 12,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/UserPanel.tsx\",\n lineNumber: 8,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border-t border-gray-800 pt-3 space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-gray-500\",\n children: \"Role\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/UserPanel.tsx\",\n lineNumber: 19,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-300\",\n children: \"Project Manager\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/UserPanel.tsx\",\n lineNumber: 20,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/UserPanel.tsx\",\n lineNumber: 18,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border-t border-gray-800 pt-3 space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-gray-500\",\n children: \"Team\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/UserPanel.tsx\",\n lineNumber: 24,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-gray-300\",\n children: \"Engineering\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/UserPanel.tsx\",\n lineNumber: 25,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/UserPanel.tsx\",\n lineNumber: 23,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border-t border-gray-800 pt-3 space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-gray-500\",\n children: \"Status\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/UserPanel.tsx\",\n lineNumber: 29,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"w-2 h-2 rounded-full bg-green-500\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/UserPanel.tsx\",\n lineNumber: 31,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm text-gray-300\",\n children: \"Online\"\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/UserPanel.tsx\",\n lineNumber: 32,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/UserPanel.tsx\",\n lineNumber: 30,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/UserPanel.tsx\",\n lineNumber: 28,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/alvis/taskpile/frontend/src/components/UserPanel.tsx\",\n lineNumber: 5,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9Vc2VyUGFuZWwudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFZSxTQUFTQTtJQUN0QixxQkFDRSw4REFBQ0M7UUFBSUMsV0FBVTtRQUFnQkMsZUFBWTs7MEJBQ3pDLDhEQUFDQztnQkFBR0YsV0FBVTswQkFBK0Q7Ozs7OzswQkFFN0UsOERBQUNEO2dCQUFJQyxXQUFVOztrQ0FDYiw4REFBQ0Q7d0JBQUlDLFdBQVU7a0NBQXVHOzs7Ozs7a0NBR3RILDhEQUFDRDs7MENBQ0MsOERBQUNJO2dDQUFFSCxXQUFVOzBDQUFvQzs7Ozs7OzBDQUNqRCw4REFBQ0c7Z0NBQUVILFdBQVU7MENBQXdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7MEJBSXpDLDhEQUFDRDtnQkFBSUMsV0FBVTs7a0NBQ2IsOERBQUNEO3dCQUFJQyxXQUFVO2tDQUF3Qjs7Ozs7O2tDQUN2Qyw4REFBQ0Q7d0JBQUlDLFdBQVU7a0NBQXdCOzs7Ozs7Ozs7Ozs7MEJBR3pDLDhEQUFDRDtnQkFBSUMsV0FBVTs7a0NBQ2IsOERBQUNEO3dCQUFJQyxXQUFVO2tDQUF3Qjs7Ozs7O2tDQUN2Qyw4REFBQ0Q7d0JBQUlDLFdBQVU7a0NBQXdCOzs7Ozs7Ozs7Ozs7MEJBR3pDLDhEQUFDRDtnQkFBSUMsV0FBVTs7a0NBQ2IsOERBQUNEO3dCQUFJQyxXQUFVO2tDQUF3Qjs7Ozs7O2tDQUN2Qyw4REFBQ0Q7d0JBQUlDLFdBQVU7OzBDQUNiLDhEQUFDSTtnQ0FBS0osV0FBVTs7Ozs7OzBDQUNoQiw4REFBQ0k7Z0NBQUtKLFdBQVU7MENBQXdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLbEQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly90YXNrcGlsZS1mcm9udGVuZC8uL3NyYy9jb21wb25lbnRzL1VzZXJQYW5lbC50c3g/NDJlZCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFVzZXJQYW5lbCgpIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInAtNCBzcGFjZS15LTRcIiBkYXRhLXRlc3RpZD1cInVzZXItcGFuZWxcIj5cbiAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTMwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXJcIj5Qcm9maWxlPC9oMj5cblxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctMTAgaC0xMCByb3VuZGVkLWZ1bGwgYmctYmx1ZS02MDAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdGV4dC13aGl0ZSBmb250LXNlbWlib2xkIHRleHQtc21cIj5cbiAgICAgICAgICBKRFxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS0xMDBcIj5KYW5lIERvZTwvcD5cbiAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtZ3JheS01MDBcIj5qYW5lQGV4YW1wbGUuY29tPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImJvcmRlci10IGJvcmRlci1ncmF5LTgwMCBwdC0zIHNwYWNlLXktMlwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1ncmF5LTUwMFwiPlJvbGU8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS0zMDBcIj5Qcm9qZWN0IE1hbmFnZXI8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImJvcmRlci10IGJvcmRlci1ncmF5LTgwMCBwdC0zIHNwYWNlLXktMlwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1ncmF5LTUwMFwiPlRlYW08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS0zMDBcIj5FbmdpbmVlcmluZzwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYm9yZGVyLXQgYm9yZGVyLWdyYXktODAwIHB0LTMgc3BhY2UteS0yXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LWdyYXktNTAwXCI+U3RhdHVzPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ3LTIgaC0yIHJvdW5kZWQtZnVsbCBiZy1ncmVlbi01MDBcIiAvPlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTMwMFwiPk9ubGluZTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJVc2VyUGFuZWwiLCJkaXYiLCJjbGFzc05hbWUiLCJkYXRhLXRlc3RpZCIsImgyIiwicCIsInNwYW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/components/UserPanel.tsx\n");
/***/ }),
/***/ "(ssr)/./src/lib/api.ts":
/*!************************!*\
!*** ./src/lib/api.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 */ createTask: () => (/* binding */ createTask),\n/* harmony export */ deleteTask: () => (/* binding */ deleteTask),\n/* harmony export */ getGraph: () => (/* binding */ getGraph),\n/* harmony export */ getTasks: () => (/* binding */ getTasks),\n/* harmony export */ updateTask: () => (/* binding */ updateTask)\n/* harmony export */ });\nconst BASE = \"/api\";\nasync function request(path, init) {\n const res = await fetch(`${BASE}${path}`, {\n headers: {\n \"Content-Type\": \"application/json\",\n ...init?.headers\n },\n ...init\n });\n if (!res.ok) {\n const text = await res.text().catch(()=>res.statusText);\n throw new Error(`API error ${res.status}: ${text}`);\n }\n return res.json();\n}\nasync function getTasks() {\n return request(\"/tasks\");\n}\nasync function createTask(input) {\n return request(\"/tasks\", {\n method: \"POST\",\n body: JSON.stringify(input)\n });\n}\nasync function updateTask(id, input) {\n return request(`/tasks/${id}`, {\n method: \"PATCH\",\n body: JSON.stringify(input)\n });\n}\nasync function deleteTask(id) {\n await fetch(`${BASE}/tasks/${id}`, {\n method: \"DELETE\"\n });\n}\nasync function getGraph() {\n return request(\"/graph\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvbGliL2FwaS50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUVBLE1BQU1BLE9BQU87QUFFYixlQUFlQyxRQUFXQyxJQUFZLEVBQUVDLElBQWtCO0lBQ3hELE1BQU1DLE1BQU0sTUFBTUMsTUFBTSxDQUFDLEVBQUVMLEtBQUssRUFBRUUsS0FBSyxDQUFDLEVBQUU7UUFDeENJLFNBQVM7WUFBRSxnQkFBZ0I7WUFBb0IsR0FBR0gsTUFBTUcsT0FBTztRQUFDO1FBQ2hFLEdBQUdILElBQUk7SUFDVDtJQUNBLElBQUksQ0FBQ0MsSUFBSUcsRUFBRSxFQUFFO1FBQ1gsTUFBTUMsT0FBTyxNQUFNSixJQUFJSSxJQUFJLEdBQUdDLEtBQUssQ0FBQyxJQUFNTCxJQUFJTSxVQUFVO1FBQ3hELE1BQU0sSUFBSUMsTUFBTSxDQUFDLFVBQVUsRUFBRVAsSUFBSVEsTUFBTSxDQUFDLEVBQUUsRUFBRUosS0FBSyxDQUFDO0lBQ3BEO0lBQ0EsT0FBT0osSUFBSVMsSUFBSTtBQUNqQjtBQUVPLGVBQWVDO0lBQ3BCLE9BQU9iLFFBQWdCO0FBQ3pCO0FBRU8sZUFBZWMsV0FBV0MsS0FBc0I7SUFDckQsT0FBT2YsUUFBYyxVQUFVO1FBQzdCZ0IsUUFBUTtRQUNSQyxNQUFNQyxLQUFLQyxTQUFTLENBQUNKO0lBQ3ZCO0FBQ0Y7QUFFTyxlQUFlSyxXQUFXQyxFQUFVLEVBQUVOLEtBQXNCO0lBQ2pFLE9BQU9mLFFBQWMsQ0FBQyxPQUFPLEVBQUVxQixHQUFHLENBQUMsRUFBRTtRQUNuQ0wsUUFBUTtRQUNSQyxNQUFNQyxLQUFLQyxTQUFTLENBQUNKO0lBQ3ZCO0FBQ0Y7QUFFTyxlQUFlTyxXQUFXRCxFQUFVO0lBQ3pDLE1BQU1qQixNQUFNLENBQUMsRUFBRUwsS0FBSyxPQUFPLEVBQUVzQixHQUFHLENBQUMsRUFBRTtRQUFFTCxRQUFRO0lBQVM7QUFDeEQ7QUFFTyxlQUFlTztJQUNwQixPQUFPdkIsUUFBbUI7QUFDNUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly90YXNrcGlsZS1mcm9udGVuZC8uL3NyYy9saWIvYXBpLnRzPzJmYWIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUYXNrLCBHcmFwaERhdGEsIENyZWF0ZVRhc2tJbnB1dCwgVXBkYXRlVGFza0lucHV0IH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IEJBU0UgPSAnL2FwaSc7XG5cbmFzeW5jIGZ1bmN0aW9uIHJlcXVlc3Q8VD4ocGF0aDogc3RyaW5nLCBpbml0PzogUmVxdWVzdEluaXQpOiBQcm9taXNlPFQ+IHtcbiAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goYCR7QkFTRX0ke3BhdGh9YCwge1xuICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJywgLi4uaW5pdD8uaGVhZGVycyB9LFxuICAgIC4uLmluaXQsXG4gIH0pO1xuICBpZiAoIXJlcy5vaykge1xuICAgIGNvbnN0IHRleHQgPSBhd2FpdCByZXMudGV4dCgpLmNhdGNoKCgpID0+IHJlcy5zdGF0dXNUZXh0KTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEFQSSBlcnJvciAke3Jlcy5zdGF0dXN9OiAke3RleHR9YCk7XG4gIH1cbiAgcmV0dXJuIHJlcy5qc29uKCkgYXMgUHJvbWlzZTxUPjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFRhc2tzKCk6IFByb21pc2U8VGFza1tdPiB7XG4gIHJldHVybiByZXF1ZXN0PFRhc2tbXT4oJy90YXNrcycpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVGFzayhpbnB1dDogQ3JlYXRlVGFza0lucHV0KTogUHJvbWlzZTxUYXNrPiB7XG4gIHJldHVybiByZXF1ZXN0PFRhc2s+KCcvdGFza3MnLCB7XG4gICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgYm9keTogSlNPTi5zdHJpbmdpZnkoaW5wdXQpLFxuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZVRhc2soaWQ6IG51bWJlciwgaW5wdXQ6IFVwZGF0ZVRhc2tJbnB1dCk6IFByb21pc2U8VGFzaz4ge1xuICByZXR1cm4gcmVxdWVzdDxUYXNrPihgL3Rhc2tzLyR7aWR9YCwge1xuICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICBib2R5OiBKU09OLnN0cmluZ2lmeShpbnB1dCksXG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlVGFzayhpZDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGZldGNoKGAke0JBU0V9L3Rhc2tzLyR7aWR9YCwgeyBtZXRob2Q6ICdERUxFVEUnIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0R3JhcGgoKTogUHJvbWlzZTxHcmFwaERhdGE+IHtcbiAgcmV0dXJuIHJlcXVlc3Q8R3JhcGhEYXRhPignL2dyYXBoJyk7XG59XG4iXSwibmFtZXMiOlsiQkFTRSIsInJlcXVlc3QiLCJwYXRoIiwiaW5pdCIsInJlcyIsImZldGNoIiwiaGVhZGVycyIsIm9rIiwidGV4dCIsImNhdGNoIiwic3RhdHVzVGV4dCIsIkVycm9yIiwic3RhdHVzIiwianNvbiIsImdldFRhc2tzIiwiY3JlYXRlVGFzayIsImlucHV0IiwibWV0aG9kIiwiYm9keSIsIkpTT04iLCJzdHJpbmdpZnkiLCJ1cGRhdGVUYXNrIiwiaWQiLCJkZWxldGVUYXNrIiwiZ2V0R3JhcGgiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/lib/api.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__ = (\"ea89969d973d\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2dsb2JhbHMuY3NzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpRUFBZSxjQUFjO0FBQzdCLElBQUksS0FBVSxFQUFFLEVBQXVCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdGFza3BpbGUtZnJvbnRlbmQvLi9zcmMvYXBwL2dsb2JhbHMuY3NzP2UzZjQiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCJlYTg5OTY5ZDk3M2RcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./src/app/globals.css\n");
/***/ }),
/***/ "(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 */ });\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 _globals_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./globals.css */ \"(rsc)/./src/app/globals.css\");\n\n\nconst metadata = {\n title: \"Taskpile\",\n description: \"A minimal task manager with graph view\"\n};\nfunction RootLayout({ children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"html\", {\n lang: \"en\",\n className: \"h-full\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n className: \"h-full bg-gray-950 text-gray-100 antialiased\",\n children: children\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/layout.tsx\",\n lineNumber: 12,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/home/alvis/taskpile/frontend/src/app/layout.tsx\",\n lineNumber: 11,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2xheW91dC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQ3VCO0FBRWhCLE1BQU1BLFdBQXFCO0lBQ2hDQyxPQUFPO0lBQ1BDLGFBQWE7QUFDZixFQUFFO0FBRWEsU0FBU0MsV0FBVyxFQUFFQyxRQUFRLEVBQWlDO0lBQzVFLHFCQUNFLDhEQUFDQztRQUFLQyxNQUFLO1FBQUtDLFdBQVU7a0JBQ3hCLDRFQUFDQztZQUFLRCxXQUFVO3NCQUFnREg7Ozs7Ozs7Ozs7O0FBR3RFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdGFza3BpbGUtZnJvbnRlbmQvLi9zcmMvYXBwL2xheW91dC50c3g/NTdhOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE1ldGFkYXRhIH0gZnJvbSAnbmV4dCc7XG5pbXBvcnQgJy4vZ2xvYmFscy5jc3MnO1xuXG5leHBvcnQgY29uc3QgbWV0YWRhdGE6IE1ldGFkYXRhID0ge1xuICB0aXRsZTogJ1Rhc2twaWxlJyxcbiAgZGVzY3JpcHRpb246ICdBIG1pbmltYWwgdGFzayBtYW5hZ2VyIHdpdGggZ3JhcGggdmlldycsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBSb290TGF5b3V0KHsgY2hpbGRyZW4gfTogeyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8aHRtbCBsYW5nPVwiZW5cIiBjbGFzc05hbWU9XCJoLWZ1bGxcIj5cbiAgICAgIDxib2R5IGNsYXNzTmFtZT1cImgtZnVsbCBiZy1ncmF5LTk1MCB0ZXh0LWdyYXktMTAwIGFudGlhbGlhc2VkXCI+e2NoaWxkcmVufTwvYm9keT5cbiAgICA8L2h0bWw+XG4gICk7XG59XG4iXSwibmFtZXMiOlsibWV0YWRhdGEiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiUm9vdExheW91dCIsImNoaWxkcmVuIiwiaHRtbCIsImxhbmciLCJjbGFzc05hbWUiLCJib2R5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./src/app/layout.tsx\n");
/***/ }),
/***/ "(rsc)/./src/app/page.tsx":
/*!**************************!*\
!*** ./src/app/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 */ $$typeof: () => (/* binding */ $$typeof),
/* harmony export */ __esModule: () => (/* binding */ __esModule),
/* 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");
const proxy = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/home/alvis/taskpile/frontend/src/app/page.tsx`)
// Accessing the __esModule property and exporting $$typeof are required here.
// The __esModule getter forces the proxy target to create the default export
// and the $$typeof value is for rendering logic to determine if the module
// is a client boundary.
const { __esModule, $$typeof } = proxy;
const __default__ = proxy.default;
/* 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`/home/alvis/taskpile/frontend/src/app/page.tsx#default`));
/***/ })
};
;
// 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"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2Fhome%2Falvis%2Ftaskpile%2Ffrontend%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fhome%2Falvis%2Ftaskpile%2Ffrontend&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!")));
module.exports = __webpack_exports__;
})();