"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/bottles/[id]/page",{

/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/flask-conical.js":
/*!*******************************************************************!*\
  !*** ./node_modules/lucide-react/dist/esm/icons/flask-conical.js ***!
  \*******************************************************************/
/***/ (function(__unused_webpack_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\": function() { return /* binding */ FlaskConical; }\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.300.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst FlaskConical = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"FlaskConical\", [\n    [\n        \"path\",\n        {\n            d: \"M10 2v7.527a2 2 0 0 1-.211.896L4.72 20.55a1 1 0 0 0 .9 1.45h12.76a1 1 0 0 0 .9-1.45l-5.069-10.127A2 2 0 0 1 14 9.527V2\",\n            key: \"pzvekw\"\n        }\n    ],\n    [\n        \"path\",\n        {\n            d: \"M8.5 2h7\",\n            key: \"csnxdl\"\n        }\n    ],\n    [\n        \"path\",\n        {\n            d: \"M7 16h10\",\n            key: \"wp8him\"\n        }\n    ]\n]);\n //# sourceMappingURL=flask-conical.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvZmxhc2stY29uaWNhbC5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7OztDQUtDLEdBRXFEO0FBRXRELE1BQU1DLGVBQWVELGdFQUFnQkEsQ0FBQyxnQkFBZ0I7SUFDcEQ7UUFDRTtRQUNBO1lBQ0VFLEdBQUc7WUFDSEMsS0FBSztRQUNQO0tBQ0Q7SUFDRDtRQUFDO1FBQVE7WUFBRUQsR0FBRztZQUFZQyxLQUFLO1FBQVM7S0FBRTtJQUMxQztRQUFDO1FBQVE7WUFBRUQsR0FBRztZQUFZQyxLQUFLO1FBQVM7S0FBRTtDQUMzQztBQUVrQyxDQUNuQyx5Q0FBeUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL2x1Y2lkZS1yZWFjdC9kaXN0L2VzbS9pY29ucy9mbGFzay1jb25pY2FsLmpzPzc1NjgiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZSBsdWNpZGUtcmVhY3QgdjAuMzAwLjAgLSBJU0NcbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBJU0MgbGljZW5zZS5cbiAqIFNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbmltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24uanMnO1xuXG5jb25zdCBGbGFza0NvbmljYWwgPSBjcmVhdGVMdWNpZGVJY29uKFwiRmxhc2tDb25pY2FsXCIsIFtcbiAgW1xuICAgIFwicGF0aFwiLFxuICAgIHtcbiAgICAgIGQ6IFwiTTEwIDJ2Ny41MjdhMiAyIDAgMCAxLS4yMTEuODk2TDQuNzIgMjAuNTVhMSAxIDAgMCAwIC45IDEuNDVoMTIuNzZhMSAxIDAgMCAwIC45LTEuNDVsLTUuMDY5LTEwLjEyN0EyIDIgMCAwIDEgMTQgOS41MjdWMlwiLFxuICAgICAga2V5OiBcInB6dmVrd1wiXG4gICAgfVxuICBdLFxuICBbXCJwYXRoXCIsIHsgZDogXCJNOC41IDJoN1wiLCBrZXk6IFwiY3NueGRsXCIgfV0sXG4gIFtcInBhdGhcIiwgeyBkOiBcIk03IDE2aDEwXCIsIGtleTogXCJ3cDhoaW1cIiB9XVxuXSk7XG5cbmV4cG9ydCB7IEZsYXNrQ29uaWNhbCBhcyBkZWZhdWx0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1mbGFzay1jb25pY2FsLmpzLm1hcFxuIl0sIm5hbWVzIjpbImNyZWF0ZUx1Y2lkZUljb24iLCJGbGFza0NvbmljYWwiLCJkIiwia2V5IiwiZGVmYXVsdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/flask-conical.js\n"));

/***/ }),

/***/ "(app-pages-browser)/./src/components/StatusSwitcher.tsx":
/*!*******************************************!*\
  !*** ./src/components/StatusSwitcher.tsx ***!
  \*******************************************/
/***/ (function(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\": function() { return /* binding */ StatusSwitcher; }\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/* harmony import */ var _services_update_bottle_status__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/services/update-bottle-status */ \"(app-pages-browser)/./src/services/update-bottle-status.ts\");\n/* harmony import */ var _barrel_optimize_names_CheckCircle_FlaskConical_Loader2_Package_Play_lucide_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircle,FlaskConical,Loader2,Package,Play!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/package.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircle_FlaskConical_Loader2_Package_Play_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircle,FlaskConical,Loader2,Package,Play!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/play.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircle_FlaskConical_Loader2_Package_Play_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircle,FlaskConical,Loader2,Package,Play!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/flask-conical.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircle_FlaskConical_Loader2_Package_Play_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircle,FlaskConical,Loader2,Package,Play!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/check-circle.js\");\n/* harmony import */ var _barrel_optimize_names_CheckCircle_FlaskConical_Loader2_Package_Play_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=CheckCircle,FlaskConical,Loader2,Package,Play!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/loader-2.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\nfunction StatusSwitcher(param) {\n    let { bottleId, currentStatus } = param;\n    _s();\n    const [status, setStatus] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(currentStatus);\n    const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n    const handleStatusChange = async (newStatus)=>{\n        if (newStatus === status || loading) return;\n        setLoading(true);\n        try {\n            const result = await (0,_services_update_bottle_status__WEBPACK_IMPORTED_MODULE_2__.updateBottleStatus)(bottleId, newStatus);\n            if (result.success) {\n                setStatus(newStatus);\n            } else {\n                alert(result.error || \"Fehler beim Aktualisieren des Status\");\n            }\n        } catch (err) {\n            alert(\"Ein unerwarteter Fehler ist aufgetreten\");\n        } finally{\n            setLoading(false);\n        }\n    };\n    const options = [\n        {\n            id: \"sealed\",\n            label: \"Versiegelt\",\n            icon: _barrel_optimize_names_CheckCircle_FlaskConical_Loader2_Package_Play_lucide_react__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n            color: \"hover:bg-blue-500\"\n        },\n        {\n            id: \"open\",\n            label: \"Offen\",\n            icon: _barrel_optimize_names_CheckCircle_FlaskConical_Loader2_Package_Play_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n            color: \"hover:bg-amber-500\"\n        },\n        {\n            id: \"sampled\",\n            label: \"Sampled\",\n            icon: _barrel_optimize_names_CheckCircle_FlaskConical_Loader2_Package_Play_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n            color: \"hover:bg-purple-500\"\n        },\n        {\n            id: \"empty\",\n            label: \"Leer\",\n            icon: _barrel_optimize_names_CheckCircle_FlaskConical_Loader2_Package_Play_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n            color: \"hover:bg-zinc-500\"\n        }\n    ];\n    return /*#__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                className: \"flex items-center justify-between\",\n                children: [\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n                        className: \"text-xs font-bold text-zinc-400 uppercase tracking-tighter\",\n                        children: \"Status\"\n                    }, void 0, false, {\n                        fileName: \"/home/robin/AI/Coding/Whisky/src/components/StatusSwitcher.tsx\",\n                        lineNumber: 44,\n                        columnNumber: 17\n                    }, this),\n                    loading && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_CheckCircle_FlaskConical_Loader2_Package_Play_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n                        className: \"animate-spin text-amber-600\",\n                        size: 14\n                    }, void 0, false, {\n                        fileName: \"/home/robin/AI/Coding/Whisky/src/components/StatusSwitcher.tsx\",\n                        lineNumber: 45,\n                        columnNumber: 29\n                    }, this)\n                ]\n            }, void 0, true, {\n                fileName: \"/home/robin/AI/Coding/Whisky/src/components/StatusSwitcher.tsx\",\n                lineNumber: 43,\n                columnNumber: 13\n            }, this),\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                className: \"grid grid-cols-3 gap-2 p-1 bg-zinc-100 dark:bg-zinc-800 rounded-xl relative\",\n                children: options.map((opt)=>{\n                    const Icon = opt.icon;\n                    const isActive = status === opt.id;\n                    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n                        type: \"button\",\n                        disabled: loading,\n                        onClick: ()=>handleStatusChange(opt.id),\n                        className: \"flex flex-col items-center gap-1.5 py-3 px-2 rounded-lg text-[10px] font-black uppercase transition-all border-2 \".concat(isActive ? \"bg-white dark:bg-zinc-700 border-amber-500 text-amber-600 shadow-sm\" : \"border-transparent text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-200\"),\n                        children: [\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Icon, {\n                                size: 18,\n                                className: isActive ? \"text-amber-500\" : \"text-zinc-400\"\n                            }, void 0, false, {\n                                fileName: \"/home/robin/AI/Coding/Whisky/src/components/StatusSwitcher.tsx\",\n                                lineNumber: 62,\n                                columnNumber: 29\n                            }, this),\n                            opt.label\n                        ]\n                    }, opt.id, true, {\n                        fileName: \"/home/robin/AI/Coding/Whisky/src/components/StatusSwitcher.tsx\",\n                        lineNumber: 52,\n                        columnNumber: 25\n                    }, this);\n                })\n            }, void 0, false, {\n                fileName: \"/home/robin/AI/Coding/Whisky/src/components/StatusSwitcher.tsx\",\n                lineNumber: 47,\n                columnNumber: 13\n            }, this)\n        ]\n    }, void 0, true, {\n        fileName: \"/home/robin/AI/Coding/Whisky/src/components/StatusSwitcher.tsx\",\n        lineNumber: 42,\n        columnNumber: 9\n    }, this);\n}\n_s(StatusSwitcher, \"tE+66EWeKlCwlpeKHRRoTdTN8ys=\");\n_c = StatusSwitcher;\nvar _c;\n$RefreshReg$(_c, \"StatusSwitcher\");\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,[encoded data, 6708 characters]\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/components/StatusSwitcher.tsx\n"));

/***/ })

});