"use strict";
/*
 * 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/).
 */
self["webpackHotUpdate_N_E"]("app/page",{

/***/ "(app-pages-browser)/./components/TabNavigation.tsx":
/*!**************************************!*\
  !*** ./components/TabNavigation.tsx ***!
  \**************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {

eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ TabNavigation)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.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 */ \nvar _s = $RefreshSig$();\n\nfunction TabNavigation(param) {\n    let { tabs, defaultActiveId, onTabChange } = param;\n    var _tabs_;\n    _s();\n    const [activeTab, setActiveTab] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(defaultActiveId || ((_tabs_ = tabs[0]) === null || _tabs_ === void 0 ? void 0 : _tabs_.id));\n    const handleTabClick = (tabId)=>{\n        setActiveTab(tabId);\n        onTabChange === null || onTabChange === void 0 ? void 0 : onTabChange(tabId);\n    };\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        className: \"flex items-center gap-8\",\n        children: tabs.map((tab)=>{\n            const isActive = activeTab === tab.id;\n            return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n                onClick: ()=>handleTabClick(tab.id),\n                className: \"flex flex-col gap-2 items-start\",\n                children: [\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                        className: \"text-sm font-bold leading-[150%] \".concat(isActive ? \"text-text-primary dark:text-white\" : \"text-text-tertiary dark:text-gray-400\"),\n                        children: tab.label\n                    }, void 0, false, {\n                        fileName: \"/home/coder/myprojects/asset-dashboard-next/components/TabNavigation.tsx\",\n                        lineNumber: 38,\n                        columnNumber: 13\n                    }, this),\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                        className: \"self-stretch border-t-2 -mt-[2px] \".concat(isActive ? \"border-text-primary dark:border-white\" : \"border-transparent\")\n                    }, void 0, false, {\n                        fileName: \"/home/coder/myprojects/asset-dashboard-next/components/TabNavigation.tsx\",\n                        lineNumber: 45,\n                        columnNumber: 13\n                    }, this)\n                ]\n            }, tab.id, true, {\n                fileName: \"/home/coder/myprojects/asset-dashboard-next/components/TabNavigation.tsx\",\n                lineNumber: 33,\n                columnNumber: 11\n            }, this);\n        })\n    }, void 0, false, {\n        fileName: \"/home/coder/myprojects/asset-dashboard-next/components/TabNavigation.tsx\",\n        lineNumber: 29,\n        columnNumber: 5\n    }, this);\n}\n_s(TabNavigation, \"vDeznn21PKN4/vBb8hy9aenPm5Y=\");\n_c = TabNavigation;\nvar _c;\n$RefreshReg$(_c, \"TabNavigation\");\n\n\n;\n    // Wrapped in an IIFE to avoid polluting the global scope\n    ;\n    (function () {\n        var _a, _b;\n        // Legacy CSS implementations will `eval` browser code in a Node.js context\n        // to extract CSS. For backwards compatibility, we need to check we're in a\n        // browser context before continuing.\n        if (typeof self !== 'undefined' &&\n            // AMP / No-JS mode does not inject these helpers:\n            '$RefreshHelpers$' in self) {\n            // @ts-ignore __webpack_module__ is global\n            var currentExports = module.exports;\n            // @ts-ignore __webpack_module__ is global\n            var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n            // This cannot happen in MainTemplate because the exports mismatch between\n            // templating and execution.\n            self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n            // A module can be accepted automatically based on its exports, e.g. when\n            // it is a Refresh Boundary.\n            if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n                // Save the previous exports signature on update so we can compare the boundary\n                // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n                module.hot.dispose(function (data) {\n                    data.prevSignature =\n                        self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n                });\n                // Unconditionally accept an update to this module, we'll check if it's\n                // still a Refresh Boundary later.\n                // @ts-ignore importMeta is replaced in the loader\n                module.hot.accept();\n                // This field is set when the previous version of this module was a\n                // Refresh Boundary, letting us know we need to check for invalidation or\n                // enqueue an update.\n                if (prevSignature !== null) {\n                    // A boundary can become ineligible if its exports are incompatible\n                    // with the previous exports.\n                    //\n                    // For example, if you add/remove/change exports, we'll want to\n                    // re-execute the importing modules, and force those components to\n                    // re-render. Similarly, if you convert a class component to a\n                    // function, we want to invalidate the boundary.\n                    if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n                        module.hot.invalidate();\n                    }\n                    else {\n                        self.$RefreshHelpers$.scheduleUpdate();\n                    }\n                }\n            }\n            else {\n                // Since we just executed the code for the module, it's possible that the\n                // new exports made it ineligible for being a boundary.\n                // We only care about the case when we were _previously_ a boundary,\n                // because we already accepted this update (accidental side effect).\n                var isNoLongerABoundary = prevSignature !== null;\n                if (isNoLongerABoundary) {\n                    module.hot.invalidate();\n                }\n            }\n        }\n    })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvVGFiTmF2aWdhdGlvbi50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRWlDO0FBYWxCLFNBQVNDLGNBQWMsS0FJakI7UUFKaUIsRUFDcENDLElBQUksRUFDSkMsZUFBZSxFQUNmQyxXQUFXLEVBQ1EsR0FKaUI7UUFLMEJGOztJQUE5RCxNQUFNLENBQUNHLFdBQVdDLGFBQWEsR0FBR04sK0NBQVFBLENBQUNHLHFCQUFtQkQsU0FBQUEsSUFBSSxDQUFDLEVBQUUsY0FBUEEsNkJBQUFBLE9BQVNLLEVBQUU7SUFFekUsTUFBTUMsaUJBQWlCLENBQUNDO1FBQ3RCSCxhQUFhRztRQUNiTCx3QkFBQUEsa0NBQUFBLFlBQWNLO0lBQ2hCO0lBRUEscUJBQ0UsOERBQUNDO1FBQUlDLFdBQVU7a0JBQ1pULEtBQUtVLEdBQUcsQ0FBQyxDQUFDQztZQUNULE1BQU1DLFdBQVdULGNBQWNRLElBQUlOLEVBQUU7WUFDckMscUJBQ0UsOERBQUNRO2dCQUVDQyxTQUFTLElBQU1SLGVBQWVLLElBQUlOLEVBQUU7Z0JBQ3BDSSxXQUFVOztrQ0FFViw4REFBQ007d0JBQ0NOLFdBQVcsb0NBRVYsT0FEQ0csV0FBVyxzQ0FBc0M7a0NBR2xERCxJQUFJSyxLQUFLOzs7Ozs7a0NBRVosOERBQUNSO3dCQUNDQyxXQUFXLHFDQUVWLE9BRENHLFdBQVcsMENBQTBDOzs7Ozs7O2VBYnBERCxJQUFJTixFQUFFOzs7OztRQWtCakI7Ozs7OztBQUdOO0dBdkN3Qk47S0FBQUEiLCJzb3VyY2VzIjpbIi9ob21lL2NvZGVyL215cHJvamVjdHMvYXNzZXQtZGFzaGJvYXJkLW5leHQvY29tcG9uZW50cy9UYWJOYXZpZ2F0aW9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcblxuaW50ZXJmYWNlIFRhYiB7XG4gIGlkOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBUYWJOYXZpZ2F0aW9uUHJvcHMge1xuICB0YWJzOiBUYWJbXTtcbiAgZGVmYXVsdEFjdGl2ZUlkPzogc3RyaW5nO1xuICBvblRhYkNoYW5nZT86ICh0YWJJZDogc3RyaW5nKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBUYWJOYXZpZ2F0aW9uKHtcbiAgdGFicyxcbiAgZGVmYXVsdEFjdGl2ZUlkLFxuICBvblRhYkNoYW5nZSxcbn06IFRhYk5hdmlnYXRpb25Qcm9wcykge1xuICBjb25zdCBbYWN0aXZlVGFiLCBzZXRBY3RpdmVUYWJdID0gdXNlU3RhdGUoZGVmYXVsdEFjdGl2ZUlkIHx8IHRhYnNbMF0/LmlkKTtcblxuICBjb25zdCBoYW5kbGVUYWJDbGljayA9ICh0YWJJZDogc3RyaW5nKSA9PiB7XG4gICAgc2V0QWN0aXZlVGFiKHRhYklkKTtcbiAgICBvblRhYkNoYW5nZT8uKHRhYklkKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLThcIj5cbiAgICAgIHt0YWJzLm1hcCgodGFiKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzQWN0aXZlID0gYWN0aXZlVGFiID09PSB0YWIuaWQ7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAga2V5PXt0YWIuaWR9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVUYWJDbGljayh0YWIuaWQpfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBnYXAtMiBpdGVtcy1zdGFydFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgdGV4dC1zbSBmb250LWJvbGQgbGVhZGluZy1bMTUwJV0gJHtcbiAgICAgICAgICAgICAgICBpc0FjdGl2ZSA/IFwidGV4dC10ZXh0LXByaW1hcnkgZGFyazp0ZXh0LXdoaXRlXCIgOiBcInRleHQtdGV4dC10ZXJ0aWFyeSBkYXJrOnRleHQtZ3JheS00MDBcIlxuICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3RhYi5sYWJlbH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgc2VsZi1zdHJldGNoIGJvcmRlci10LTIgLW10LVsycHhdICR7XG4gICAgICAgICAgICAgICAgaXNBY3RpdmUgPyBcImJvcmRlci10ZXh0LXByaW1hcnkgZGFyazpib3JkZXItd2hpdGVcIiA6IFwiYm9yZGVyLXRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICApO1xuICAgICAgfSl9XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXSwibmFtZXMiOlsidXNlU3RhdGUiLCJUYWJOYXZpZ2F0aW9uIiwidGFicyIsImRlZmF1bHRBY3RpdmVJZCIsIm9uVGFiQ2hhbmdlIiwiYWN0aXZlVGFiIiwic2V0QWN0aXZlVGFiIiwiaWQiLCJoYW5kbGVUYWJDbGljayIsInRhYklkIiwiZGl2IiwiY2xhc3NOYW1lIiwibWFwIiwidGFiIiwiaXNBY3RpdmUiLCJidXR0b24iLCJvbkNsaWNrIiwic3BhbiIsImxhYmVsIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/TabNavigation.tsx\n"));

/***/ })

});