22 lines
18 KiB
JavaScript
22 lines
18 KiB
JavaScript
"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/gunbuilder/page",{
|
|
|
|
/***/ "(app-pages-browser)/./components/CategoryColumn.tsx":
|
|
/*!***************************************!*\
|
|
!*** ./components/CategoryColumn.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 */ CategoryColumn: function() { return /* binding */ CategoryColumn; }\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 next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"(app-pages-browser)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var _components_PartCard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/PartCard */ \"(app-pages-browser)/./components/PartCard.tsx\");\n/* __next_internal_client_entry_do_not_use__ CategoryColumn auto */ \n\n\nfunction CategoryColumn(param) {\n let { category, parts, selectedPartId, onSelectPart } = param;\n // Show selected part if available, otherwise show placeholder\n const displayedPart = selectedPartId ? parts.find((p)=>p.id === selectedPartId) : null;\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)(\"div\", {\n className: \"mb-3\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-xs font-semibold tracking-[0.15em] text-zinc-400 uppercase\",\n children: category.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 28,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 27,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 overflow-y-auto pr-1\",\n children: [\n parts.length === 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-zinc-500\",\n children: \"No parts yet for this category.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 34,\n columnNumber: 11\n }, this),\n !displayedPart && parts.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full border border-zinc-700 rounded-md p-3 mb-2 flex items-center justify-between gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-zinc-500\",\n children: \"No part selected\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 38,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n href: \"/gunbuilder/\".concat(category.id),\n className: \"inline-flex items-center gap-2 rounded-md border border-zinc-700 bg-zinc-900/60 px-3 py-1.5 text-xs font-medium text-zinc-200 hover:bg-zinc-800 hover:border-zinc-500 transition-colors\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-4 h-4\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M12 4v16m8-8H4\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 49,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 43,\n columnNumber: 15\n }, this),\n \"Choose a Part\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 39,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 37,\n columnNumber: 11\n }, this),\n displayedPart && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_PartCard__WEBPACK_IMPORTED_MODULE_2__.PartCard, {\n part: displayedPart,\n selected: displayedPart.id === selectedPartId,\n onSelect: ()=>onSelectPart(displayedPart.id)\n }, displayedPart.id, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 61,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 32,\n columnNumber: 7\n }, this),\n parts.length > 1 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n href: \"/gunbuilder/\".concat(category.id),\n className: \"mt-2 w-full rounded-md border border-zinc-700 bg-zinc-900/50 px-3 py-2 text-xs font-medium text-zinc-300 hover:bg-zinc-800 hover:border-zinc-600 transition-colors text-center\",\n children: [\n \"View All (\",\n parts.length,\n \")\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 70,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n_c = CategoryColumn;\nvar _c;\n$RefreshReg$(_c, \"CategoryColumn\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvQ2F0ZWdvcnlDb2x1bW4udHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBRTZCO0FBRW9CO0FBUzFDLFNBQVNFLGVBQWUsS0FLVDtRQUxTLEVBQzdCQyxRQUFRLEVBQ1JDLEtBQUssRUFDTEMsY0FBYyxFQUNkQyxZQUFZLEVBQ1EsR0FMUztJQU03Qiw4REFBOEQ7SUFDOUQsTUFBTUMsZ0JBQWdCRixpQkFDbEJELE1BQU1JLElBQUksQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxFQUFFLEtBQUtMLGtCQUMzQjtJQUVKLHFCQUNFLDhEQUFDTTtRQUFJQyxXQUFVOzswQkFDYiw4REFBQ0Q7Z0JBQUlDLFdBQVU7MEJBQ2IsNEVBQUNDO29CQUFHRCxXQUFVOzhCQUNYVCxTQUFTVyxJQUFJOzs7Ozs7Ozs7OzswQkFHbEIsOERBQUNIO2dCQUFJQyxXQUFVOztvQkFDWlIsTUFBTVcsTUFBTSxLQUFLLG1CQUNoQiw4REFBQ047d0JBQUVHLFdBQVU7a0NBQXdCOzs7Ozs7b0JBRXRDLENBQUNMLGlCQUFpQkgsTUFBTVcsTUFBTSxHQUFHLG1CQUNoQyw4REFBQ0o7d0JBQUlDLFdBQVU7OzBDQUNiLDhEQUFDSDtnQ0FBRUcsV0FBVTswQ0FBd0I7Ozs7OzswQ0FDckMsOERBQUNaLGlEQUFJQTtnQ0FDSGdCLE1BQU0sZUFBMkIsT0FBWmIsU0FBU08sRUFBRTtnQ0FDaENFLFdBQVU7O2tEQUVWLDhEQUFDSzt3Q0FDQ0wsV0FBVTt3Q0FDVk0sTUFBSzt3Q0FDTEMsUUFBTzt3Q0FDUEMsU0FBUTtrREFFUiw0RUFBQ0M7NENBQ0NDLGVBQWM7NENBQ2RDLGdCQUFlOzRDQUNmQyxhQUFhOzRDQUNiQyxHQUFFOzs7Ozs7Ozs7OztvQ0FFQTs7Ozs7Ozs7Ozs7OztvQkFLWGxCLCtCQUNDLDhEQUFDTiwwREFBUUE7d0JBRVB5QixNQUFNbkI7d0JBQ05vQixVQUFVcEIsY0FBY0csRUFBRSxLQUFLTDt3QkFDL0J1QixVQUFVLElBQU10QixhQUFhQyxjQUFjRyxFQUFFO3VCQUh4Q0gsY0FBY0csRUFBRTs7Ozs7Ozs7Ozs7WUFPMUJOLE1BQU1XLE1BQU0sR0FBRyxtQkFDZCw4REFBQ2YsaURBQUlBO2dCQUNIZ0IsTUFBTSxlQUEyQixPQUFaYixTQUFTTyxFQUFFO2dCQUNoQ0UsV0FBVTs7b0JBQ1g7b0JBQ1lSLE1BQU1XLE1BQU07b0JBQUM7Ozs7Ozs7Ozs7Ozs7QUFLbEM7S0FqRWdCYiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9jb21wb25lbnRzL0NhdGVnb3J5Q29sdW1uLnRzeD85YzE4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xuXG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XG5pbXBvcnQgdHlwZSB7IENhdGVnb3J5LCBQYXJ0IH0gZnJvbSBcIkAvdHlwZXMvZ3VuYnVpbGRlclwiO1xuaW1wb3J0IHsgUGFydENhcmQgfSBmcm9tIFwiQC9jb21wb25lbnRzL1BhcnRDYXJkXCI7XG5cbmludGVyZmFjZSBDYXRlZ29yeUNvbHVtblByb3BzIHtcbiAgY2F0ZWdvcnk6IENhdGVnb3J5O1xuICBwYXJ0czogUGFydFtdO1xuICBzZWxlY3RlZFBhcnRJZD86IHN0cmluZztcbiAgb25TZWxlY3RQYXJ0OiAocGFydElkOiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDYXRlZ29yeUNvbHVtbih7XG4gIGNhdGVnb3J5LFxuICBwYXJ0cyxcbiAgc2VsZWN0ZWRQYXJ0SWQsXG4gIG9uU2VsZWN0UGFydCxcbn06IENhdGVnb3J5Q29sdW1uUHJvcHMpIHtcbiAgLy8gU2hvdyBzZWxlY3RlZCBwYXJ0IGlmIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIHNob3cgcGxhY2Vob2xkZXJcbiAgY29uc3QgZGlzcGxheWVkUGFydCA9IHNlbGVjdGVkUGFydElkXG4gICAgPyBwYXJ0cy5maW5kKChwKSA9PiBwLmlkID09PSBzZWxlY3RlZFBhcnRJZClcbiAgICA6IG51bGw7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgaC1mdWxsXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLTNcIj5cbiAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0cmFja2luZy1bMC4xNWVtXSB0ZXh0LXppbmMtNDAwIHVwcGVyY2FzZVwiPlxuICAgICAgICAgIHtjYXRlZ29yeS5uYW1lfVxuICAgICAgICA8L2gyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMSBvdmVyZmxvdy15LWF1dG8gcHItMVwiPlxuICAgICAgICB7cGFydHMubGVuZ3RoID09PSAwICYmIChcbiAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtemluYy01MDBcIj5ObyBwYXJ0cyB5ZXQgZm9yIHRoaXMgY2F0ZWdvcnkuPC9wPlxuICAgICAgICApfVxuICAgICAgICB7IWRpc3BsYXllZFBhcnQgJiYgcGFydHMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LWZ1bGwgYm9yZGVyIGJvcmRlci16aW5jLTcwMCByb3VuZGVkLW1kIHAtMyBtYi0yIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBnYXAtM1wiPlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXppbmMtNTAwXCI+Tm8gcGFydCBzZWxlY3RlZDwvcD5cbiAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgIGhyZWY9e2AvZ3VuYnVpbGRlci8ke2NhdGVnb3J5LmlkfWB9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItemluYy03MDAgYmctemluYy05MDAvNjAgcHgtMyBweS0xLjUgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LXppbmMtMjAwIGhvdmVyOmJnLXppbmMtODAwIGhvdmVyOmJvcmRlci16aW5jLTUwMCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LTQgaC00XCJcbiAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17Mn1cbiAgICAgICAgICAgICAgICAgIGQ9XCJNMTIgNHYxNm04LThINFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgIENob29zZSBhIFBhcnRcbiAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgICAge2Rpc3BsYXllZFBhcnQgJiYgKFxuICAgICAgICAgIDxQYXJ0Q2FyZFxuICAgICAgICAgICAga2V5PXtkaXNwbGF5ZWRQYXJ0LmlkfVxuICAgICAgICAgICAgcGFydD17ZGlzcGxheWVkUGFydH1cbiAgICAgICAgICAgIHNlbGVjdGVkPXtkaXNwbGF5ZWRQYXJ0LmlkID09PSBzZWxlY3RlZFBhcnRJZH1cbiAgICAgICAgICAgIG9uU2VsZWN0PXsoKSA9PiBvblNlbGVjdFBhcnQoZGlzcGxheWVkUGFydC5pZCl9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICAge3BhcnRzLmxlbmd0aCA+IDEgJiYgKFxuICAgICAgICA8TGlua1xuICAgICAgICAgIGhyZWY9e2AvZ3VuYnVpbGRlci8ke2NhdGVnb3J5LmlkfWB9XG4gICAgICAgICAgY2xhc3NOYW1lPVwibXQtMiB3LWZ1bGwgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLXppbmMtNzAwIGJnLXppbmMtOTAwLzUwIHB4LTMgcHktMiB0ZXh0LXhzIGZvbnQtbWVkaXVtIHRleHQtemluYy0zMDAgaG92ZXI6YmctemluYy04MDAgaG92ZXI6Ym9yZGVyLXppbmMtNjAwIHRyYW5zaXRpb24tY29sb3JzIHRleHQtY2VudGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIFZpZXcgQWxsICh7cGFydHMubGVuZ3RofSlcbiAgICAgICAgPC9MaW5rPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJMaW5rIiwiUGFydENhcmQiLCJDYXRlZ29yeUNvbHVtbiIsImNhdGVnb3J5IiwicGFydHMiLCJzZWxlY3RlZFBhcnRJZCIsIm9uU2VsZWN0UGFydCIsImRpc3BsYXllZFBhcnQiLCJmaW5kIiwicCIsImlkIiwiZGl2IiwiY2xhc3NOYW1lIiwiaDIiLCJuYW1lIiwibGVuZ3RoIiwiaHJlZiIsInN2ZyIsImZpbGwiLCJzdHJva2UiLCJ2aWV3Qm94IiwicGF0aCIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VMaW5lam9pbiIsInN0cm9rZVdpZHRoIiwiZCIsInBhcnQiLCJzZWxlY3RlZCIsIm9uU2VsZWN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/CategoryColumn.tsx\n"));
|
|
|
|
/***/ })
|
|
|
|
}); |