/*
 * 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/gunbuilder/page";
exports.ids = ["app/gunbuilder/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%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&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%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D! ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   GlobalError: () => (/* reexport default from dynamic */ next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default.a),\n/* harmony export */   __next_app__: () => (/* binding */ __next_app__),\n/* harmony export */   originalPathname: () => (/* binding */ originalPathname),\n/* harmony export */   pages: () => (/* binding */ pages),\n/* harmony export */   routeModule: () => (/* binding */ routeModule),\n/* harmony export */   tree: () => (/* binding */ tree)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/app-page/module.compiled */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js?d969\");\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(rsc)/./node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/client/components/error-boundary */ \"(rsc)/./node_modules/next/dist/client/components/error-boundary.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/server/app-render/entry-base */ \"(rsc)/./node_modules/next/dist/server/app-render/entry-base.js\");\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__) if([\"default\",\"tree\",\"pages\",\"GlobalError\",\"originalPathname\",\"__next_app__\",\"routeModule\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\"TURBOPACK { transition: next-ssr }\";\n\n\n// We inject the tree and pages here so that we can use them in the route\n// module.\nconst tree = {\n        children: [\n        '',\n        {\n        children: [\n        'gunbuilder',\n        {\n        children: ['__PAGE__', {}, {\n          page: [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/gunbuilder/page.tsx */ \"(rsc)/./app/gunbuilder/page.tsx\")), \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\"],\n          \n        }]\n      },\n        {\n        \n        \n      }\n      ]\n      },\n        {\n        'layout': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/layout.tsx */ \"(rsc)/./app/layout.tsx\")), \"/Users/sean/Dev/gunbuilder-prototype/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 = [\"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\"];\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst originalPathname = \"/gunbuilder/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: \"/gunbuilder/page\",\n        pathname: \"/gunbuilder\",\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,[encoded data, 4312 characters]\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&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%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fcomponents%2FTopNav.tsx%22%2C%22ids%22%3A%5B%22TopNav%22%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fcontext%2FAuthContext.tsx%22%2C%22ids%22%3A%5B%22AuthProvider%22%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Ffont%2Fgoogle%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22app%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22Inter%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22subsets%5C%22%3A%5B%5C%22latin%5C%22%5D%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22inter%5C%22%7D%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%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fcomponents%2FTopNav.tsx%22%2C%22ids%22%3A%5B%22TopNav%22%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fcontext%2FAuthContext.tsx%22%2C%22ids%22%3A%5B%22AuthProvider%22%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Ffont%2Fgoogle%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22app%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22Inter%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22subsets%5C%22%3A%5B%5C%22latin%5C%22%5D%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22inter%5C%22%7D%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__, /*! ./components/TopNav.tsx */ \"(ssr)/./components/TopNav.tsx\"));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./context/AuthContext.tsx */ \"(ssr)/./context/AuthContext.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJTJGYXBwJTJGZ2xvYmFscy5jc3MlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZzZWFuJTJGRGV2JTJGZ3VuYnVpbGRlci1wcm90b3R5cGUlMkZjb21wb25lbnRzJTJGVG9wTmF2LnRzeCUyMiUyQyUyMmlkcyUyMiUzQSU1QiUyMlRvcE5hdiUyMiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRnNlYW4lMkZEZXYlMkZndW5idWlsZGVyLXByb3RvdHlwZSUyRmNvbnRleHQlMkZBdXRoQ29udGV4dC50c3glMjIlMkMlMjJpZHMlMjIlM0ElNUIlMjJBdXRoUHJvdmlkZXIlMjIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZzZWFuJTJGRGV2JTJGZ3VuYnVpbGRlci1wcm90b3R5cGUlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZm9udCUyRmdvb2dsZSUyRnRhcmdldC5jc3MlM0YlN0IlNUMlMjJwYXRoJTVDJTIyJTNBJTVDJTIyYXBwJTJGbGF5b3V0LnRzeCU1QyUyMiUyQyU1QyUyMmltcG9ydCU1QyUyMiUzQSU1QyUyMkludGVyJTVDJTIyJTJDJTVDJTIyYXJndW1lbnRzJTVDJTIyJTNBJTVCJTdCJTVDJTIyc3Vic2V0cyU1QyUyMiUzQSU1QiU1QyUyMmxhdGluJTVDJTIyJTVEJTdEJTVEJTJDJTVDJTIydmFyaWFibGVOYW1lJTVDJTIyJTNBJTVDJTIyaW50ZXIlNUMlMjIlN0QlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0Qmc2VydmVyPXRydWUhIiwibWFwcGluZ3MiOiJBQUFBLDBKQUEySDtBQUMzSDtBQUNBLDhKQUFtSSIsInNvdXJjZXMiOlsid2VicGFjazovL2d1bmJ1aWxkZXItcHJvdG90eXBlLz9kZmY4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiLCB3ZWJwYWNrRXhwb3J0czogW1wiVG9wTmF2XCJdICovIFwiL1VzZXJzL3NlYW4vRGV2L2d1bmJ1aWxkZXItcHJvdG90eXBlL2NvbXBvbmVudHMvVG9wTmF2LnRzeFwiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiLCB3ZWJwYWNrRXhwb3J0czogW1wiQXV0aFByb3ZpZGVyXCJdICovIFwiL1VzZXJzL3NlYW4vRGV2L2d1bmJ1aWxkZXItcHJvdG90eXBlL2NvbnRleHQvQXV0aENvbnRleHQudHN4XCIpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fcomponents%2FTopNav.tsx%22%2C%22ids%22%3A%5B%22TopNav%22%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fcontext%2FAuthContext.tsx%22%2C%22ids%22%3A%5B%22AuthProvider%22%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Ffont%2Fgoogle%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22app%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22Inter%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22subsets%5C%22%3A%5B%5C%22latin%5C%22%5D%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22inter%5C%22%7D%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%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%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%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%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__, /*! ./app/gunbuilder/page.tsx */ \"(ssr)/./app/gunbuilder/page.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJTJGYXBwJTJGZ3VuYnVpbGRlciUyRnBhZ2UudHN4JTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJnNlcnZlcj10cnVlISIsIm1hcHBpbmdzIjoiQUFBQSw4SkFBaUciLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9ndW5idWlsZGVyLXByb3RvdHlwZS8/N2FkYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9zZWFuL0Rldi9ndW5idWlsZGVyLXByb3RvdHlwZS9hcHAvZ3VuYnVpbGRlci9wYWdlLnRzeFwiKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n");

/***/ }),

/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%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%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGYXBwLXJvdXRlci5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRnNlYW4lMkZEZXYlMkZndW5idWlsZGVyLXByb3RvdHlwZSUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmNsaWVudC1wYWdlLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGZXJyb3ItYm91bmRhcnkuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZzZWFuJTJGRGV2JTJGZ3VuYnVpbGRlci1wcm90b3R5cGUlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZsYXlvdXQtcm91dGVyLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbm90LWZvdW5kLWJvdW5kYXJ5LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsa09BQWdJO0FBQ2hJO0FBQ0Esb09BQWlJO0FBQ2pJO0FBQ0EsME9BQW9JO0FBQ3BJO0FBQ0Esd09BQW1JO0FBQ25JO0FBQ0Esa1BBQXdJO0FBQ3hJO0FBQ0Esc1FBQWtKIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZ3VuYnVpbGRlci1wcm90b3R5cGUvPzdiMjUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvc2Vhbi9EZXYvZ3VuYnVpbGRlci1wcm90b3R5cGUvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvc2Vhbi9EZXYvZ3VuYnVpbGRlci1wcm90b3R5cGUvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9jbGllbnQtcGFnZS5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3NlYW4vRGV2L2d1bmJ1aWxkZXItcHJvdG90eXBlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnkuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9zZWFuL0Rldi9ndW5idWlsZGVyLXByb3RvdHlwZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2xheW91dC1yb3V0ZXIuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9zZWFuL0Rldi9ndW5idWlsZGVyLXByb3RvdHlwZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1ib3VuZGFyeS5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3NlYW4vRGV2L2d1bmJ1aWxkZXItcHJvdG90eXBlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qc1wiKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n");

/***/ }),

/***/ "(ssr)/./app/gunbuilder/page.tsx":
/*!*********************************!*\
  !*** ./app/gunbuilder/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 */ GunbuilderPage)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"(ssr)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/navigation */ \"(ssr)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/data/gunbuilderParts */ \"(ssr)/./data/gunbuilderParts.ts\");\n/* harmony import */ var _data_partRoleMappings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/data/partRoleMappings */ \"(ssr)/./data/partRoleMappings.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\n\nconst API_BASE_URL = process.env.NEXT_PUBLIC_API_BASE_URL ?? \"http://localhost:8080\";\nconst STORAGE_KEY = \"gunbuilder-build-state\";\n// Category groups for the main grid\nconst CATEGORY_GROUPS = [\n    {\n        id: \"lower-group\",\n        label: \"Lower Receiver Parts\",\n        description: \"Everything from the serialized lower to small parts, fire control, and core controls.\",\n        categoryIds: [\n            \"lower\",\n            \"completeLower\",\n            \"lowerParts\",\n            \"trigger\",\n            \"grip\",\n            \"safety\",\n            \"buffer\",\n            \"stock\"\n        ]\n    },\n    {\n        id: \"upper-group\",\n        label: \"Upper Receiver Parts\",\n        description: \"Barrel, upper, gas system, and the parts that keep the rifle cycling.\",\n        categoryIds: [\n            \"upper\",\n            \"completeUpper\",\n            \"bcg\",\n            \"barrel\",\n            \"gasBlock\",\n            \"gasTube\",\n            \"muzzleDevice\",\n            \"suppressor\",\n            \"handguard\",\n            \"chargingHandle\",\n            \"sights\",\n            \"optic\"\n        ]\n    }\n];\nfunction GunbuilderPage() {\n    const searchParams = (0,next_navigation__WEBPACK_IMPORTED_MODULE_3__.useSearchParams)();\n    const router = (0,next_navigation__WEBPACK_IMPORTED_MODULE_3__.useRouter)();\n    const [parts, setParts] = (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 [build, setBuild] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(()=>{\n        if (false) {}\n        return {};\n    });\n    const [shareStatus, setShareStatus] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n    const [shareUrl, setShareUrl] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n    (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n        const controller = new AbortController();\n        async function fetchProducts() {\n            try {\n                setLoading(true);\n                setError(null);\n                const res = await fetch(`${API_BASE_URL}/api/products/gunbuilder?platform=AR-15`, {\n                    signal: controller.signal\n                });\n                if (!res.ok) {\n                    throw new Error(`Failed to load products (${res.status})`);\n                }\n                const data = await res.json();\n                const normalized = data.map((p)=>{\n                    const categoryId = _data_partRoleMappings__WEBPACK_IMPORTED_MODULE_5__.PART_ROLE_TO_CATEGORY[p.partRole];\n                    if (!categoryId) {\n                        // Skip any parts we don't know how to map yet\n                        return null;\n                    }\n                    return {\n                        id: String(p.id),\n                        categoryId,\n                        name: p.name,\n                        brand: p.brand,\n                        price: p.price ?? 0,\n                        imageUrl: p.mainImageUrl ?? undefined,\n                        url: p.buyUrl ?? undefined,\n                        notes: undefined\n                    };\n                }).filter((p)=>p !== null);\n                setParts(normalized);\n            } catch (err) {\n                if (err.name === \"AbortError\") return;\n                setError(err.message ?? \"Failed to load products\");\n            } finally{\n                setLoading(false);\n            }\n        }\n        fetchProducts();\n        return ()=>controller.abort();\n    }, []);\n    // Handle URL query parameter for part selection (?select=upper:165)\n    (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n        const selectParam = searchParams.get(\"select\");\n        if (selectParam) {\n            const [categoryId, partId] = selectParam.split(\":\");\n            if (categoryId && partId && _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES.some((c)=>c.id === categoryId)) {\n                setBuild((prev)=>{\n                    const updated = {\n                        ...prev,\n                        [categoryId]: partId\n                    };\n                    if (false) {}\n                    return updated;\n                });\n                router.replace(\"/gunbuilder\", {\n                    scroll: false\n                });\n            }\n        }\n    }, [\n        searchParams,\n        router\n    ]);\n    // Persist build state to localStorage whenever it changes\n    (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n        if (false) {}\n    }, [\n        build\n    ]);\n    const partsByCategory = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n        const grouped = {};\n        for (const category of _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES){\n            grouped[category.id] = parts.filter((p)=>p.categoryId === category.id);\n        }\n        return grouped;\n    }, [\n        parts\n    ]);\n    const selectedParts = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n        return Object.entries(build).map(([categoryId, partId])=>parts.find((p)=>p.id === partId && p.categoryId === categoryId)).filter(Boolean);\n    }, [\n        build,\n        parts\n    ]);\n    const totalPrice = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>selectedParts.reduce((sum, p)=>sum + p.price, 0), [\n        selectedParts\n    ]);\n    (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n        if (true) return;\n        // If no parts selected, clear the share URL\n        if (Object.keys(build).length === 0) {\n            setShareUrl(\"\");\n            return;\n        }\n        try {\n            const payload = JSON.stringify(build);\n            const encoded = window.btoa(payload);\n            const origin = window.location?.origin ?? \"\";\n            const url = `${origin}/gunbuilder/build?build=${encodeURIComponent(encoded)}`;\n            setShareUrl(url);\n        } catch  {\n            setShareUrl(\"\");\n        }\n    }, [\n        build\n    ]);\n    const handleSelectPart = (categoryId, partId)=>{\n        setBuild((prev)=>({\n                ...prev,\n                [categoryId]: partId\n            }));\n    };\n    // Use group ordering for the summary as well\n    const summaryCategoryOrder = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>CATEGORY_GROUPS.flatMap((group)=>group.categoryIds).filter((id)=>_data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES.some((c)=>c.id === id)), []);\n    const handleShare = async ()=>{\n        if (selectedParts.length === 0) {\n            setShareStatus(\"Add a few parts before sharing your build.\");\n            return;\n        }\n        const lines = [];\n        lines.push(\"Shadow Standard — The Armory Build\");\n        lines.push(\"\");\n        lines.push(`Total: $${totalPrice.toFixed(2)}`);\n        lines.push(\"\");\n        summaryCategoryOrder.forEach((categoryId)=>{\n            const cat = _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES.find((c)=>c.id === categoryId);\n            if (!cat) return;\n            const selectedPartId = build[cat.id];\n            const part = parts.find((p)=>p.id === selectedPartId && p.categoryId === cat.id);\n            if (part) {\n                lines.push(`${cat.name}: ${part.brand} — ${part.name} ($${part.price.toFixed(2)})`);\n            } else {\n                lines.push(`${cat.name}: [Not selected]`);\n            }\n        });\n        const text = lines.join(\"\\n\");\n        try {\n            await navigator.clipboard.writeText(text);\n            setShareStatus(\"Build summary copied to clipboard.\");\n        } catch  {\n            setShareStatus(\"Could not access clipboard. You can copy from the build summary page.\");\n        }\n    };\n    const handleCopyLink = async ()=>{\n        if (!shareUrl) {\n            setShareStatus(\"No shareable link available yet.\");\n            return;\n        }\n        try {\n            await navigator.clipboard.writeText(shareUrl);\n            setShareStatus(\"Shareable link copied to clipboard.\");\n        } catch  {\n            setShareStatus(\"Could not copy link to clipboard.\");\n        }\n    };\n    const handleNativeShare = async ()=>{\n        if (!shareUrl) {\n            setShareStatus(\"No shareable link available yet.\");\n            return;\n        }\n        if (navigator.share) {\n            try {\n                await navigator.share({\n                    title: \"Shadow Standard — The Armory Build\",\n                    text: \"Check out my Shadow Standard Armory build.\",\n                    url: shareUrl\n                });\n                setShareStatus(\"Share dialog opened.\");\n            } catch  {\n                // User canceled or share failed; keep it quiet but let them know\n                setShareStatus(\"Share canceled or unavailable. You can copy the link instead.\");\n            }\n        } else {\n            // Fallback to copying the link\n            await handleCopyLink();\n        }\n    };\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n        className: \"min-h-screen bg-black text-zinc-50\",\n        children: [\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                className: \"border-b border-amber-500/20 bg-amber-500/5\",\n                children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                    className: \"mx-auto flex max-w-6xl flex-col gap-1 px-4 py-2 text-[0.75rem] text-amber-100 md:flex-row md:items-center md:justify-between\",\n                    children: [\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: \"rounded-sm bg-amber-500/20 px-2 py-0.5 text-[0.65rem] font-semibold uppercase tracking-[0.18em] text-amber-300\",\n                                    children: \"Early Access Beta\"\n                                }, void 0, false, {\n                                    fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                    lineNumber: 333,\n                                    columnNumber: 13\n                                }, this),\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                                    className: \"hidden text-amber-100/90 md:inline\",\n                                    children: \"You're using an early-access prototype of The Armory. Data, pricing, and available parts are still evolving.\"\n                                }, void 0, false, {\n                                    fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                    lineNumber: 336,\n                                    columnNumber: 13\n                                }, this)\n                            ]\n                        }, void 0, true, {\n                            fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                            lineNumber: 332,\n                            columnNumber: 11\n                        }, this),\n                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                            className: \"text-amber-100/90 md:hidden\",\n                            children: \"Early-access prototype. Data and pricing may change.\"\n                        }, void 0, false, {\n                            fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                            lineNumber: 341,\n                            columnNumber: 11\n                        }, this)\n                    ]\n                }, void 0, true, {\n                    fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                    lineNumber: 331,\n                    columnNumber: 9\n                }, this)\n            }, void 0, false, {\n                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                lineNumber: 330,\n                columnNumber: 7\n            }, this),\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n                children: [\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n                        className: \"mb-6\",\n                        children: /*#__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-xs font-semibold tracking-[0.2em] uppercase text-zinc-500\",\n                                    children: \"Shadow Standard Co.\"\n                                }, void 0, false, {\n                                    fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                    lineNumber: 350,\n                                    columnNumber: 13\n                                }, this),\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n                                    className: \"mt-1 text-2xl md:text-3xl font-semibold tracking-tight\",\n                                    children: [\n                                        \"The Build Bench: \",\n                                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                                            className: \"text-amber-300\",\n                                            children: \"Early Access\"\n                                        }, void 0, false, {\n                                            fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                            lineNumber: 354,\n                                            columnNumber: 32\n                                        }, this)\n                                    ]\n                                }, void 0, true, {\n                                    fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                    lineNumber: 353,\n                                    columnNumber: 13\n                                }, this),\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n                                    className: \"mt-2 text-sm text-zinc-400 max-w-xl\",\n                                    children: \"Explore components from trusted brands, choose one part per category, track live prices, and watch your total build cost update as you go. This early-access builder keeps your setup saved locally so you can come back and refine it anytime.\"\n                                }, void 0, false, {\n                                    fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                    lineNumber: 356,\n                                    columnNumber: 13\n                                }, this)\n                            ]\n                        }, void 0, true, {\n                            fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                            lineNumber: 349,\n                            columnNumber: 11\n                        }, this)\n                    }, void 0, false, {\n                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                        lineNumber: 348,\n                        columnNumber: 9\n                    }, this),\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n                        className: \"mb-6 rounded-lg border border-zinc-800 bg-zinc-950/80 p-3 md:p-4 flex flex-col gap-3 md:flex-row md:items-start md:justify-between\",\n                        children: [\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                className: \"flex flex-col gap-2\",\n                                children: [\n                                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n                                        className: \"text-xs font-semibold uppercase tracking-[0.16em] text-amber-300\",\n                                        children: \"My Build Breakdown\"\n                                    }, void 0, false, {\n                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                        lineNumber: 369,\n                                        columnNumber: 13\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-zinc-400\",\n                                                children: \"Current build total\"\n                                            }, void 0, false, {\n                                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                lineNumber: 373,\n                                                columnNumber: 15\n                                            }, this),\n                                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                                className: \"text-2xl font-semibold text-amber-300\",\n                                                children: [\n                                                    \"$\",\n                                                    totalPrice.toFixed(2)\n                                                ]\n                                            }, void 0, true, {\n                                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                lineNumber: 374,\n                                                columnNumber: 15\n                                            }, this),\n                                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                                className: \"text-xs text-zinc-500 mt-1\",\n                                                children: [\n                                                    selectedParts.length,\n                                                    \" / \",\n                                                    _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES.length,\n                                                    \" categories filled\"\n                                                ]\n                                            }, void 0, true, {\n                                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                lineNumber: 377,\n                                                columnNumber: 15\n                                            }, this)\n                                        ]\n                                    }, void 0, true, {\n                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                        lineNumber: 372,\n                                        columnNumber: 13\n                                    }, this),\n                                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                        className: \"mt-2 flex flex-col items-stretch gap-2 sm:flex-row sm:flex-wrap\",\n                                        children: [\n                                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n                                                href: \"/gunbuilder/build\",\n                                                className: `w-full sm:w-auto rounded-md border border-amber-400/60 bg-amber-400/10 px-3 py-2 text-sm font-medium text-amber-200 hover:bg-amber-400/15 text-center transition-colors ${selectedParts.length === 0 ? \"opacity-40 cursor-not-allowed pointer-events-none\" : \"\"}`,\n                                                children: \"Build Summary\"\n                                            }, void 0, false, {\n                                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                lineNumber: 384,\n                                                columnNumber: 15\n                                            }, this),\n                                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n                                                type: \"button\",\n                                                onClick: handleShare,\n                                                className: `w-full sm:w-auto rounded-md px-3 py-2 text-sm font-semibold transition-colors border ${selectedParts.length === 0 ? \"bg-zinc-900/80 text-zinc-600 border-zinc-800 cursor-not-allowed\" : \"bg-zinc-900/80 text-zinc-200 border-zinc-700 hover:bg-zinc-800\"}`,\n                                                disabled: selectedParts.length === 0,\n                                                children: \"Copy Build Summary\"\n                                            }, void 0, false, {\n                                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                lineNumber: 394,\n                                                columnNumber: 15\n                                            }, this),\n                                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n                                                type: \"button\",\n                                                onClick: ()=>{\n                                                    setBuild({});\n                                                    if (false) {}\n                                                },\n                                                disabled: selectedParts.length === 0,\n                                                className: `w-full sm:w-auto rounded-md border border-zinc-700 bg-zinc-900/50 px-3 py-2 text-sm font-medium text-zinc-300 hover:bg-zinc-800 hover:border-zinc-600 transition-colors ${selectedParts.length === 0 ? \"opacity-40 cursor-not-allowed\" : \"\"}`,\n                                                children: \"Clear Build\"\n                                            }, void 0, false, {\n                                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                lineNumber: 406,\n                                                columnNumber: 15\n                                            }, this)\n                                        ]\n                                    }, void 0, true, {\n                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                        lineNumber: 383,\n                                        columnNumber: 13\n                                    }, this)\n                                ]\n                            }, void 0, true, {\n                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                lineNumber: 368,\n                                columnNumber: 11\n                            }, this),\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                className: \"flex flex-col gap-3 md:items-end md:text-right md:flex-1\",\n                                children: [\n                                    selectedParts.length > 0 && shareUrl && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                        className: \"w-full md:w-auto\",\n                                        children: [\n                                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n                                                className: \"text-[0.7rem] font-semibold uppercase tracking-[0.16em] text-zinc-400\",\n                                                children: \"Share Your Build\"\n                                            }, void 0, false, {\n                                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                lineNumber: 428,\n                                                columnNumber: 17\n                                            }, this),\n                                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n                                                className: \"mt-1 text-[0.7rem] text-zinc-500\",\n                                                children: \"Share this link to let others view your build or bookmark it to come back later.\"\n                                            }, void 0, false, {\n                                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                lineNumber: 431,\n                                                columnNumber: 17\n                                            }, this),\n                                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                                className: \"mt-2 flex flex-col gap-2 md:flex-row md:items-center\",\n                                                children: [\n                                                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                                        className: \"flex-1\",\n                                                        children: [\n                                                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                                                className: \"text-[0.65rem] uppercase tracking-[0.16em] text-zinc-500 mb-1\",\n                                                                children: \"Shareable URL\"\n                                                            }, void 0, false, {\n                                                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                lineNumber: 437,\n                                                                columnNumber: 21\n                                                            }, this),\n                                                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n                                                                type: \"text\",\n                                                                readOnly: true,\n                                                                value: shareUrl,\n                                                                className: \"w-full rounded-md border border-zinc-700 bg-zinc-950/80 px-2 py-1.5 text-[0.7rem] text-zinc-200 font-mono outline-none focus:ring-1 focus:ring-amber-400\"\n                                                            }, void 0, false, {\n                                                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                lineNumber: 440,\n                                                                columnNumber: 21\n                                                            }, this)\n                                                        ]\n                                                    }, void 0, true, {\n                                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                        lineNumber: 436,\n                                                        columnNumber: 19\n                                                    }, this),\n                                                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                                        className: \"flex gap-2 md:flex-none md:mt-5\",\n                                                        children: [\n                                                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n                                                                type: \"button\",\n                                                                onClick: handleNativeShare,\n                                                                className: \"flex-1 md:flex-none rounded-md bg-zinc-900/80 px-3 py-1.5 text-[0.75rem] font-semibold text-zinc-100 border border-zinc-700 hover:bg-zinc-800 hover:border-zinc-500 transition-colors\",\n                                                                children: \"Share\"\n                                                            }, void 0, false, {\n                                                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                lineNumber: 448,\n                                                                columnNumber: 21\n                                                            }, this),\n                                                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n                                                                type: \"button\",\n                                                                onClick: handleCopyLink,\n                                                                className: \"flex-1 md:flex-none rounded-md bg-amber-400 px-3 py-1.5 text-[0.75rem] font-semibold text-black hover:bg-amber-300 transition-colors\",\n                                                                children: \"Copy Link\"\n                                                            }, void 0, false, {\n                                                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                lineNumber: 455,\n                                                                columnNumber: 21\n                                                            }, this)\n                                                        ]\n                                                    }, void 0, true, {\n                                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                        lineNumber: 447,\n                                                        columnNumber: 19\n                                                    }, this)\n                                                ]\n                                            }, void 0, true, {\n                                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                lineNumber: 435,\n                                                columnNumber: 17\n                                            }, this)\n                                        ]\n                                    }, void 0, true, {\n                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                        lineNumber: 427,\n                                        columnNumber: 15\n                                    }, this),\n                                    shareStatus && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n                                        className: \"mt-1 text-[0.7rem] text-zinc-500\",\n                                        children: shareStatus\n                                    }, void 0, false, {\n                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                        lineNumber: 468,\n                                        columnNumber: 15\n                                    }, this)\n                                ]\n                            }, void 0, true, {\n                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                lineNumber: 425,\n                                columnNumber: 11\n                            }, this)\n                        ]\n                    }, void 0, true, {\n                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                        lineNumber: 366,\n                        columnNumber: 17\n                    }, this),\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n                        className: \"rounded-lg border border-zinc-800 bg-zinc-950/60 p-3 md:p-4\",\n                        children: [\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n                                className: \"mb-4 text-xs text-zinc-500\",\n                                children: \"Work top-down through the major sections. Each row shows your current pick for that part type, with price and a direct buy link—or a quick way to choose a part if you haven't picked one yet.\"\n                            }, void 0, false, {\n                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                lineNumber: 477,\n                                columnNumber: 11\n                            }, this),\n                            loading && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n                                className: \"text-sm text-zinc-500\",\n                                children: \"Loading parts from backend…\"\n                            }, void 0, false, {\n                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                lineNumber: 485,\n                                columnNumber: 13\n                            }, this),\n                            error && !loading && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n                                className: \"text-sm text-red-400\",\n                                children: [\n                                    error,\n                                    \" — check that the Ballistic API is running and CORS is configured.\"\n                                ]\n                            }, void 0, true, {\n                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                lineNumber: 490,\n                                columnNumber: 13\n                            }, this),\n                            !loading && !error && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                className: \"space-y-6\",\n                                children: CATEGORY_GROUPS.map((group)=>{\n                                    const groupCategories = _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES.filter((c)=>group.categoryIds.includes(c.id));\n                                    if (groupCategories.length === 0) {\n                                        return null;\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-baseline justify-between gap-2\",\n                                                children: /*#__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)(\"h2\", {\n                                                            className: \"text-sm font-semibold text-zinc-100\",\n                                                            children: group.label\n                                                        }, void 0, false, {\n                                                            fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                            lineNumber: 511,\n                                                            columnNumber: 25\n                                                        }, this),\n                                                        group.description && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n                                                            className: \"text-xs text-zinc-500 mt-1 max-w-xl\",\n                                                            children: group.description\n                                                        }, void 0, false, {\n                                                            fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                            lineNumber: 515,\n                                                            columnNumber: 27\n                                                        }, this)\n                                                    ]\n                                                }, void 0, true, {\n                                                    fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                    lineNumber: 510,\n                                                    columnNumber: 23\n                                                }, this)\n                                            }, void 0, false, {\n                                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                lineNumber: 509,\n                                                columnNumber: 21\n                                            }, this),\n                                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                                className: \"overflow-x-auto rounded-md border border-zinc-800 bg-zinc-950/80\",\n                                                children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"table\", {\n                                                    className: \"min-w-full text-xs md:text-sm\",\n                                                    children: [\n                                                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"thead\", {\n                                                            children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tr\", {\n                                                                className: \"border-b border-zinc-800 bg-zinc-900/60\",\n                                                                children: [\n                                                                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n                                                                        className: \"px-3 py-2 text-left font-semibold text-zinc-400\",\n                                                                        children: \"Component / Part Type\"\n                                                                    }, void 0, false, {\n                                                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                        lineNumber: 526,\n                                                                        columnNumber: 29\n                                                                    }, this),\n                                                                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n                                                                        className: \"px-3 py-2 text-left font-semibold text-zinc-400\",\n                                                                        children: \"Brand\"\n                                                                    }, void 0, false, {\n                                                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                        lineNumber: 529,\n                                                                        columnNumber: 29\n                                                                    }, this),\n                                                                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n                                                                        className: \"px-3 py-2 text-right font-semibold text-zinc-400\",\n                                                                        children: \"Price\"\n                                                                    }, void 0, false, {\n                                                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                        lineNumber: 532,\n                                                                        columnNumber: 29\n                                                                    }, this),\n                                                                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n                                                                        className: \"px-3 py-2 text-right font-semibold text-zinc-400\",\n                                                                        children: \"Sale Price\"\n                                                                    }, void 0, false, {\n                                                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                        lineNumber: 535,\n                                                                        columnNumber: 29\n                                                                    }, this),\n                                                                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n                                                                        className: \"px-3 py-2 text-left font-semibold text-zinc-400\",\n                                                                        children: \"Caliber\"\n                                                                    }, void 0, false, {\n                                                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                        lineNumber: 538,\n                                                                        columnNumber: 29\n                                                                    }, this),\n                                                                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n                                                                        className: \"px-3 py-2 text-right font-semibold text-zinc-400\",\n                                                                        children: \"Buy / Choose\"\n                                                                    }, void 0, false, {\n                                                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                        lineNumber: 541,\n                                                                        columnNumber: 29\n                                                                    }, this)\n                                                                ]\n                                                            }, void 0, true, {\n                                                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                lineNumber: 525,\n                                                                columnNumber: 27\n                                                            }, this)\n                                                        }, void 0, false, {\n                                                            fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                            lineNumber: 524,\n                                                            columnNumber: 25\n                                                        }, this),\n                                                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tbody\", {\n                                                            children: groupCategories.map((category)=>{\n                                                                const categoryParts = partsByCategory[category.id] ?? [];\n                                                                const selectedPartId = build[category.id];\n                                                                const selectedPart = categoryParts.find((p)=>p.id === selectedPartId);\n                                                                const hasParts = categoryParts.length > 0;\n                                                                return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tr\", {\n                                                                    className: \"border-t border-zinc-900 hover:bg-zinc-900/60 transition-colors\",\n                                                                    children: [\n                                                                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n                                                                            className: \"px-3 py-2 align-top\",\n                                                                            children: [\n                                                                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                                                                    className: \"font-medium text-zinc-100\",\n                                                                                    children: category.name\n                                                                                }, void 0, false, {\n                                                                                    fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                                    lineNumber: 563,\n                                                                                    columnNumber: 35\n                                                                                }, this),\n                                                                                selectedPart ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                                                                    className: \"text-[0.7rem] text-zinc-500 line-clamp-1\",\n                                                                                    children: selectedPart.name\n                                                                                }, void 0, false, {\n                                                                                    fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                                    lineNumber: 567,\n                                                                                    columnNumber: 37\n                                                                                }, this) : hasParts ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                                                                    className: \"text-[0.7rem] text-zinc-600\",\n                                                                                    children: \"No part selected\"\n                                                                                }, void 0, false, {\n                                                                                    fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                                    lineNumber: 571,\n                                                                                    columnNumber: 37\n                                                                                }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                                                                    className: \"text-[0.7rem] text-zinc-600\",\n                                                                                    children: \"No parts available yet\"\n                                                                                }, void 0, false, {\n                                                                                    fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                                    lineNumber: 575,\n                                                                                    columnNumber: 37\n                                                                                }, this)\n                                                                            ]\n                                                                        }, void 0, true, {\n                                                                            fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                            lineNumber: 562,\n                                                                            columnNumber: 33\n                                                                        }, this),\n                                                                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n                                                                            className: \"px-3 py-2 align-top text-zinc-300\",\n                                                                            children: selectedPart ? selectedPart.brand : \"—\"\n                                                                        }, void 0, false, {\n                                                                            fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                            lineNumber: 582,\n                                                                            columnNumber: 33\n                                                                        }, this),\n                                                                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n                                                                            className: \"px-3 py-2 align-top text-right text-amber-300\",\n                                                                            children: selectedPart ? `$${selectedPart.price.toFixed(2)}` : \"—\"\n                                                                        }, void 0, false, {\n                                                                            fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                            lineNumber: 587,\n                                                                            columnNumber: 33\n                                                                        }, this),\n                                                                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n                                                                            className: \"px-3 py-2 align-top text-right text-zinc-400\",\n                                                                            children: selectedPart ? \"—\" : \"—\"\n                                                                        }, void 0, false, {\n                                                                            fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                            lineNumber: 594,\n                                                                            columnNumber: 33\n                                                                        }, this),\n                                                                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n                                                                            className: \"px-3 py-2 align-top text-zinc-400\",\n                                                                            children: \"—\"\n                                                                        }, void 0, false, {\n                                                                            fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                            lineNumber: 600,\n                                                                            columnNumber: 33\n                                                                        }, this),\n                                                                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n                                                                            className: \"px-3 py-2 align-top\",\n                                                                            children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                                                                className: \"flex justify-end gap-2\",\n                                                                                children: selectedPart && selectedPart.url ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n                                                                                    children: [\n                                                                                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n                                                                                            href: `/gunbuilder/${category.id}`,\n                                                                                            className: \"hidden md:inline-flex rounded-md border border-zinc-700 bg-zinc-900/70 px-2.5 py-1 text-[0.7rem] font-medium text-zinc-300 hover:bg-zinc-800 hover:border-zinc-600 transition-colors\",\n                                                                                            children: \"Change Part\"\n                                                                                        }, void 0, false, {\n                                                                                            fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                                            lineNumber: 610,\n                                                                                            columnNumber: 41\n                                                                                        }, this),\n                                                                                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n                                                                                            href: selectedPart.url,\n                                                                                            target: \"_blank\",\n                                                                                            rel: \"noreferrer\",\n                                                                                            className: \"inline-flex rounded-md bg-amber-400 px-2.5 py-1 text-[0.7rem] font-semibold text-black hover:bg-amber-300 transition-colors\",\n                                                                                            children: \"Buy\"\n                                                                                        }, void 0, false, {\n                                                                                            fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                                            lineNumber: 616,\n                                                                                            columnNumber: 41\n                                                                                        }, this)\n                                                                                    ]\n                                                                                }, void 0, true) : hasParts ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n                                                                                    href: `/gunbuilder/${category.id}`,\n                                                                                    className: \"inline-flex rounded-md border border-zinc-700 bg-zinc-900/70 px-2.5 py-1 text-[0.7rem] font-medium text-zinc-200 hover:bg-zinc-800 hover:border-zinc-600 transition-colors\",\n                                                                                    onClick: ()=>{\n                                                                                    // If you want to pre-select something later, you can handle here.\n                                                                                    },\n                                                                                    children: \"Choose a Part\"\n                                                                                }, void 0, false, {\n                                                                                    fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                                    lineNumber: 626,\n                                                                                    columnNumber: 39\n                                                                                }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                                                                                    className: \"text-[0.7rem] text-zinc-600\",\n                                                                                    children: \"—\"\n                                                                                }, void 0, false, {\n                                                                                    fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                                    lineNumber: 636,\n                                                                                    columnNumber: 39\n                                                                                }, this)\n                                                                            }, void 0, false, {\n                                                                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                                lineNumber: 607,\n                                                                                columnNumber: 35\n                                                                            }, this)\n                                                                        }, void 0, false, {\n                                                                            fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                            lineNumber: 606,\n                                                                            columnNumber: 33\n                                                                        }, this)\n                                                                    ]\n                                                                }, category.id, true, {\n                                                                    fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                                    lineNumber: 557,\n                                                                    columnNumber: 31\n                                                                }, this);\n                                                            })\n                                                        }, void 0, false, {\n                                                            fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                            lineNumber: 546,\n                                                            columnNumber: 25\n                                                        }, this)\n                                                    ]\n                                                }, void 0, true, {\n                                                    fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                    lineNumber: 523,\n                                                    columnNumber: 23\n                                                }, this)\n                                            }, void 0, false, {\n                                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                                lineNumber: 522,\n                                                columnNumber: 21\n                                            }, this)\n                                        ]\n                                    }, group.id, true, {\n                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                        lineNumber: 508,\n                                        columnNumber: 19\n                                    }, this);\n                                })\n                            }, void 0, false, {\n                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                lineNumber: 497,\n                                columnNumber: 13\n                            }, this)\n                        ]\n                    }, void 0, true, {\n                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                        lineNumber: 476,\n                        columnNumber: 9\n                    }, this),\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n                        className: \"mt-8 rounded-lg border border-zinc-800 bg-zinc-950/80 p-3 md:p-4\",\n                        children: [\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n                                className: \"text-xs font-semibold uppercase tracking-[0.16em] text-amber-300\",\n                                children: \"What's New in Early Access\"\n                            }, void 0, false, {\n                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                lineNumber: 657,\n                                columnNumber: 11\n                            }, this),\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n                                className: \"mt-2 space-y-1 text-sm text-zinc-400\",\n                                children: [\n                                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n                                        children: \"• Live parts and pricing pulled from multiple merchants.\"\n                                    }, void 0, false, {\n                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                        lineNumber: 661,\n                                        columnNumber: 13\n                                    }, this),\n                                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n                                        children: \"• Grouped layout for lower and upper receiver parts so you can see at a glance which sections of your build are still missing.\"\n                                    }, void 0, false, {\n                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                        lineNumber: 662,\n                                        columnNumber: 13\n                                    }, this),\n                                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n                                        children: \"• Running build total that updates automatically as you add or swap components.\"\n                                    }, void 0, false, {\n                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                        lineNumber: 666,\n                                        columnNumber: 13\n                                    }, this),\n                                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n                                        children: \"• Local build persistence so your selections stick around between visits on this device.\"\n                                    }, void 0, false, {\n                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                        lineNumber: 670,\n                                        columnNumber: 13\n                                    }, this)\n                                ]\n                            }, void 0, true, {\n                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                lineNumber: 660,\n                                columnNumber: 11\n                            }, this)\n                        ]\n                    }, void 0, true, {\n                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                        lineNumber: 656,\n                        columnNumber: 9\n                    }, this),\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n                        className: \"mt-8 rounded-lg border border-zinc-800 bg-zinc-950/80 p-3 md:p-4\",\n                        children: [\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n                                className: \"text-xs font-semibold uppercase tracking-[0.16em] text-amber-300\",\n                                children: \"What's on our roadmap\"\n                            }, void 0, false, {\n                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                lineNumber: 679,\n                                columnNumber: 11\n                            }, this),\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n                                className: \"mt-2 space-y-1 text-sm text-zinc-400\",\n                                children: [\n                                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n                                        children: \"• Platform filters (AR-15, AR-9, AR-10)\"\n                                    }, void 0, false, {\n                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                        lineNumber: 683,\n                                        columnNumber: 13\n                                    }, this),\n                                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n                                        children: \"• More part categories and furniture\"\n                                    }, void 0, false, {\n                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                        lineNumber: 684,\n                                        columnNumber: 13\n                                    }, this),\n                                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n                                        children: \"• Richer pricing/stock sync\"\n                                    }, void 0, false, {\n                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                        lineNumber: 685,\n                                        columnNumber: 13\n                                    }, this),\n                                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n                                        children: \"• Smarter compatibility checks between components\"\n                                    }, void 0, false, {\n                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                        lineNumber: 686,\n                                        columnNumber: 13\n                                    }, this),\n                                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n                                        children: \"• AR9/AR10 support and more\"\n                                    }, void 0, false, {\n                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                        lineNumber: 687,\n                                        columnNumber: 13\n                                    }, this)\n                                ]\n                            }, void 0, true, {\n                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                                lineNumber: 682,\n                                columnNumber: 11\n                            }, this)\n                        ]\n                    }, void 0, true, {\n                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                        lineNumber: 678,\n                        columnNumber: 9\n                    }, this)\n                ]\n            }, void 0, true, {\n                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n                lineNumber: 346,\n                columnNumber: 7\n            }, this)\n        ]\n    }, void 0, true, {\n        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n        lineNumber: 329,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 51936 characters]\n//# sourceURL=webpack-internal:///(ssr)/./app/gunbuilder/page.tsx\n");

/***/ }),

/***/ "(ssr)/./components/TopNav.tsx":
/*!*******************************!*\
  !*** ./components/TopNav.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 */   TopNav: () => (/* binding */ TopNav)\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 next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"(ssr)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var _context_AuthContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/context/AuthContext */ \"(ssr)/./context/AuthContext.tsx\");\n// components/TopNav.tsx\n/* __next_internal_client_entry_do_not_use__ TopNav auto */ \n\n\nfunction TopNav() {\n    const { user, logout, loading } = (0,_context_AuthContext__WEBPACK_IMPORTED_MODULE_2__.useAuth)();\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n        className: \"border-b border-zinc-800 bg-black/95 backdrop-blur\",\n        children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n            className: \"mx-auto flex max-w-6xl items-center justify-between px-4 py-2\",\n            children: [\n                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n                    href: \"/\",\n                    className: \"text-xs font-semibold tracking-[0.2em] uppercase text-zinc-400\",\n                    children: \"The Build Bench\"\n                }, void 0, false, {\n                    fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/TopNav.tsx\",\n                    lineNumber: 14,\n                    columnNumber: 9\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)(\"button\", {\n                            type: \"button\",\n                            className: \"inline-flex h-8 w-8 items-center justify-center rounded-full border border-zinc-700 bg-zinc-900/60 text-zinc-400 hover:text-zinc-200 hover:bg-zinc-800 hover:border-zinc-500 transition-colors\",\n                            \"aria-label\": \"Search (coming soon)\",\n                            children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n                                xmlns: \"http://www.w3.org/2000/svg\",\n                                viewBox: \"0 0 24 24\",\n                                fill: \"none\",\n                                stroke: \"currentColor\",\n                                strokeWidth: 2,\n                                strokeLinecap: \"round\",\n                                strokeLinejoin: \"round\",\n                                className: \"h-4 w-4\",\n                                children: [\n                                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"circle\", {\n                                        cx: \"11\",\n                                        cy: \"11\",\n                                        r: \"6\"\n                                    }, void 0, false, {\n                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/TopNav.tsx\",\n                                        lineNumber: 39,\n                                        columnNumber: 15\n                                    }, this),\n                                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"line\", {\n                                        x1: \"16.5\",\n                                        y1: \"16.5\",\n                                        x2: \"21\",\n                                        y2: \"21\"\n                                    }, void 0, false, {\n                                        fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/TopNav.tsx\",\n                                        lineNumber: 40,\n                                        columnNumber: 15\n                                    }, this)\n                                ]\n                            }, void 0, true, {\n                                fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/TopNav.tsx\",\n                                lineNumber: 29,\n                                columnNumber: 13\n                            }, this)\n                        }, void 0, false, {\n                            fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/TopNav.tsx\",\n                            lineNumber: 24,\n                            columnNumber: 11\n                        }, this),\n                        loading ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                            className: \"text-xs text-zinc-500\",\n                            children: \"Checking session…\"\n                        }, void 0, false, {\n                            fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/TopNav.tsx\",\n                            lineNumber: 45,\n                            columnNumber: 13\n                        }, this) : user ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n                            children: [\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                                    className: \"text-xs text-zinc-300\",\n                                    children: user.displayName || user.email\n                                }, void 0, false, {\n                                    fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/TopNav.tsx\",\n                                    lineNumber: 48,\n                                    columnNumber: 15\n                                }, this),\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n                                    type: \"button\",\n                                    onClick: logout,\n                                    className: \"text-xs font-medium text-zinc-400 hover:text-zinc-100 transition-colors\",\n                                    children: \"Log Out\"\n                                }, void 0, false, {\n                                    fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/TopNav.tsx\",\n                                    lineNumber: 51,\n                                    columnNumber: 15\n                                }, this)\n                            ]\n                        }, void 0, true) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n                            children: [\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n                                    href: \"/login\",\n                                    className: \"text-xs font-medium text-zinc-400 hover:text-zinc-100 transition-colors\",\n                                    children: \"Log In\"\n                                }, void 0, false, {\n                                    fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/TopNav.tsx\",\n                                    lineNumber: 61,\n                                    columnNumber: 15\n                                }, this),\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n                                    href: \"/register\",\n                                    className: \"rounded-md border border-amber-400/70 bg-amber-400/10 px-3 py-1.5 text-xs font-semibold text-amber-200 hover:bg-amber-400/20 transition-colors\",\n                                    children: \"Join Beta\"\n                                }, void 0, false, {\n                                    fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/TopNav.tsx\",\n                                    lineNumber: 67,\n                                    columnNumber: 15\n                                }, this)\n                            ]\n                        }, void 0, true)\n                    ]\n                }, void 0, true, {\n                    fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/TopNav.tsx\",\n                    lineNumber: 22,\n                    columnNumber: 9\n                }, this)\n            ]\n        }, void 0, true, {\n            fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/TopNav.tsx\",\n            lineNumber: 12,\n            columnNumber: 7\n        }, this)\n    }, void 0, false, {\n        fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/TopNav.tsx\",\n        lineNumber: 11,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 5472 characters]\n//# sourceURL=webpack-internal:///(ssr)/./components/TopNav.tsx\n");

/***/ }),

/***/ "(ssr)/./context/AuthContext.tsx":
/*!*********************************!*\
  !*** ./context/AuthContext.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 */   AuthProvider: () => (/* binding */ AuthProvider),\n/* harmony export */   useAuth: () => (/* binding */ useAuth)\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__ AuthProvider,useAuth auto */ \n\nconst API_BASE_URL = process.env.NEXT_PUBLIC_API_BASE_URL ?? \"http://localhost:8080\";\nconst AuthContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)(undefined);\nconst TOKEN_KEY = \"ballistic_auth_token\";\nconst USER_KEY = \"ballistic_auth_user\";\nfunction AuthProvider({ children }) {\n    const [user, setUser] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n    const [token, setToken] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n    const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true); // start true while we hydrate + reuse for calls\n    // hydrate from localStorage\n    (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n        try {\n            if (true) return;\n            const storedToken = window.localStorage.getItem(TOKEN_KEY);\n            const storedUser = window.localStorage.getItem(USER_KEY);\n            if (storedToken && storedUser) {\n                setToken(storedToken);\n                setUser(JSON.parse(storedUser));\n            }\n        } catch  {\n        // ignore\n        } finally{\n            setLoading(false);\n        }\n    }, []);\n    const setSession = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((newToken, newUser)=>{\n        setToken(newToken);\n        setUser(newUser);\n        if (false) {}\n    }, []);\n    const clearSession = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(()=>{\n        setToken(null);\n        setUser(null);\n        if (false) {}\n    }, []);\n    const register = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(async (params)=>{\n        setLoading(true);\n        try {\n            const res = await fetch(`${API_BASE_URL}/api/auth/register`, {\n                method: \"POST\",\n                headers: {\n                    \"Content-Type\": \"application/json\"\n                },\n                body: JSON.stringify({\n                    email: params.email,\n                    password: params.password,\n                    displayName: params.displayName\n                })\n            });\n            if (!res.ok) {\n                const text = await res.text();\n                throw new Error(text || \"Failed to create account\");\n            }\n            const data = await res.json();\n            setSession(data.token, {\n                email: data.email,\n                displayName: data.displayName ?? null,\n                role: data.role\n            });\n        } finally{\n            setLoading(false);\n        }\n    }, [\n        setSession\n    ]);\n    const login = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(async (params)=>{\n        setLoading(true);\n        try {\n            const res = await fetch(`${API_BASE_URL}/api/auth/login`, {\n                method: \"POST\",\n                headers: {\n                    \"Content-Type\": \"application/json\"\n                },\n                body: JSON.stringify({\n                    email: params.email,\n                    password: params.password\n                })\n            });\n            if (!res.ok) {\n                const text = await res.text();\n                throw new Error(text || \"Failed to log in\");\n            }\n            const data = await res.json();\n            setSession(data.token, {\n                email: data.email,\n                displayName: data.displayName ?? null,\n                role: data.role\n            });\n        } finally{\n            setLoading(false);\n        }\n    }, [\n        setSession\n    ]);\n    const logout = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(()=>{\n        clearSession();\n    }, [\n        clearSession\n    ]);\n    const getAuthHeaders = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(()=>{\n        if (!token) return {};\n        return {\n            Authorization: `Bearer ${token}`\n        };\n    }, [\n        token\n    ]);\n    const value = {\n        user,\n        token,\n        loading,\n        login,\n        register,\n        logout,\n        getAuthHeaders\n    };\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(AuthContext.Provider, {\n        value: value,\n        children: children\n    }, void 0, false, {\n        fileName: \"/Users/sean/Dev/gunbuilder-prototype/context/AuthContext.tsx\",\n        lineNumber: 183,\n        columnNumber: 10\n    }, this);\n}\nfunction useAuth() {\n    const ctx = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(AuthContext);\n    if (!ctx) {\n        throw new Error(\"useAuth must be used within an AuthProvider\");\n    }\n    return ctx;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 10964 characters]\n//# sourceURL=webpack-internal:///(ssr)/./context/AuthContext.tsx\n");

/***/ }),

/***/ "(ssr)/./data/gunbuilderParts.ts":
/*!*********************************!*\
  !*** ./data/gunbuilderParts.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 */   CATEGORIES: () => (/* binding */ CATEGORIES)\n/* harmony export */ });\nconst CATEGORIES = [\n    // LOWER\n    {\n        id: \"lower\",\n        name: \"Stripped Lower Receiver\",\n        description: \"Serialized lower – the foundation of the build.\"\n    },\n    {\n        id: \"completeLower\",\n        name: \"Complete Lower\",\n        description: \"Factory-built lower with stock, buffer system, and controls.\"\n    },\n    {\n        id: \"lowerParts\",\n        name: \"Lower Parts Kit\",\n        description: \"Pins, springs, and controls for the lower.\"\n    },\n    {\n        id: \"trigger\",\n        name: \"Trigger / Fire Control\",\n        description: \"Single-stage, two-stage, and match triggers.\"\n    },\n    {\n        id: \"grip\",\n        name: \"Pistol Grip\",\n        description: \"Grips that shape how the rifle handles.\"\n    },\n    {\n        id: \"safety\",\n        name: \"Safety / Selector\",\n        description: \"Ambi selectors and control upgrades.\"\n    },\n    {\n        id: \"buffer\",\n        name: \"Buffer System\",\n        description: \"Buffer tube, buffer, spring, and related parts.\"\n    },\n    {\n        id: \"stock\",\n        name: \"Stock / Brace\",\n        description: \"Adjustable, fixed, and minimalist stocks.\"\n    },\n    // UPPER\n    {\n        id: \"upper\",\n        name: \"Stripped Upper Receiver\",\n        description: \"The core of the top half of your build.\"\n    },\n    {\n        id: \"completeUpper\",\n        name: \"Complete Upper\",\n        description: \"Pre-assembled uppers ready to pin and shoot.\"\n    },\n    {\n        id: \"bcg\",\n        name: \"Bolt Carrier Group\",\n        description: \"The heartbeat of the rifle’s cycling.\"\n    },\n    {\n        id: \"barrel\",\n        name: \"Barrel\",\n        description: \"Different lengths, profiles, and calibers.\"\n    },\n    {\n        id: \"gasBlock\",\n        name: \"Gas Block\",\n        description: \"Standard and adjustable gas blocks.\"\n    },\n    {\n        id: \"gasTube\",\n        name: \"Gas Tube\",\n        description: \"Carbine, mid, rifle, and more.\"\n    },\n    {\n        id: \"muzzleDevice\",\n        name: \"Muzzle Device\",\n        description: \"Brakes, comps, and flash hiders.\"\n    },\n    {\n        id: \"suppressor\",\n        name: \"Suppressor\",\n        description: \"Hearing-safe setups and hosts.\"\n    },\n    {\n        id: \"handguard\",\n        name: \"Handguard / Rail\",\n        description: \"M-LOK rails and front-end furniture.\"\n    },\n    {\n        id: \"chargingHandle\",\n        name: \"Charging Handle\",\n        description: \"Standard and ambi charging handles.\"\n    },\n    {\n        id: \"sights\",\n        name: \"Iron Sights\",\n        description: \"Backup and primary irons.\"\n    },\n    {\n        id: \"optic\",\n        name: \"Optic\",\n        description: \"LPVOs, red dots, and magnifiers.\"\n    }\n];\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,[encoded data, 5100 characters]\n//# sourceURL=webpack-internal:///(ssr)/./data/gunbuilderParts.ts\n");

/***/ }),

/***/ "(ssr)/./data/partRoleMappings.ts":
/*!**********************************!*\
  !*** ./data/partRoleMappings.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 */   CATEGORY_TO_PART_ROLES: () => (/* binding */ CATEGORY_TO_PART_ROLES),\n/* harmony export */   PART_ROLE_TO_CATEGORY: () => (/* binding */ PART_ROLE_TO_CATEGORY)\n/* harmony export */ });\n// CategoryId -> partRoles\nconst CATEGORY_TO_PART_ROLES = {\n    // CORE / EXISTING\n    upper: [\n        \"upper-receiver\"\n    ],\n    barrel: [\n        \"barrel\"\n    ],\n    handguard: [\n        \"handguard\"\n    ],\n    chargingHandle: [\n        \"charging-handle\"\n    ],\n    buffer: [\n        \"buffer-kit\"\n    ],\n    lowerParts: [\n        \"lower-parts-kit\"\n    ],\n    sights: [\n        \"sight\"\n    ],\n    lower: [\n        \"lower-receiver\"\n    ],\n    optic: [\n        \"optic\"\n    ],\n    stock: [\n        \"stock\"\n    ],\n    // NEW LOWER PARTS\n    trigger: [\n        \"trigger\",\n        \"trigger-kit\"\n    ],\n    grip: [\n        \"pistol-grip\",\n        \"grip\"\n    ],\n    safety: [\n        \"safety\",\n        \"safety-selector\"\n    ],\n    completeLower: [\n        \"complete-lower\"\n    ],\n    // NEW UPPER PARTS\n    completeUpper: [\n        \"complete-upper\"\n    ],\n    bcg: [\n        \"bcg\",\n        \"bolt-carrier-group\"\n    ],\n    gasBlock: [\n        \"gas-block\"\n    ],\n    gasTube: [\n        \"gas-tube\"\n    ],\n    muzzleDevice: [\n        \"muzzle-device\",\n        \"compensator\",\n        \"brake\"\n    ],\n    suppressor: [\n        \"suppressor\"\n    ]\n};\n// Invert to get partRole -> CategoryId\nconst PART_ROLE_TO_CATEGORY = Object.entries(CATEGORY_TO_PART_ROLES).reduce((acc, [categoryId, roles])=>{\n    for (const role of roles){\n        acc[role] = categoryId;\n    }\n    return acc;\n}, {});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9kYXRhL3BhcnRSb2xlTWFwcGluZ3MudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSwwQkFBMEI7QUFDbkIsTUFBTUEseUJBQXVEO0lBQ2xFLGtCQUFrQjtJQUNsQkMsT0FBTztRQUFDO0tBQWlCO0lBQ3pCQyxRQUFRO1FBQUM7S0FBUztJQUNsQkMsV0FBVztRQUFDO0tBQVk7SUFDeEJDLGdCQUFnQjtRQUFDO0tBQWtCO0lBQ25DQyxRQUFRO1FBQUM7S0FBYTtJQUN0QkMsWUFBWTtRQUFDO0tBQWtCO0lBQy9CQyxRQUFRO1FBQUM7S0FBUTtJQUNqQkMsT0FBTztRQUFDO0tBQWlCO0lBQ3pCQyxPQUFPO1FBQUM7S0FBUTtJQUNoQkMsT0FBTztRQUFDO0tBQVE7SUFFaEIsa0JBQWtCO0lBQ2xCQyxTQUFTO1FBQUM7UUFBVztLQUFjO0lBQ25DQyxNQUFNO1FBQUM7UUFBZTtLQUFPO0lBQzdCQyxRQUFRO1FBQUM7UUFBVTtLQUFrQjtJQUNyQ0MsZUFBZTtRQUFDO0tBQWlCO0lBRWpDLGtCQUFrQjtJQUNsQkMsZUFBZTtRQUFDO0tBQWlCO0lBQ2pDQyxLQUFLO1FBQUM7UUFBTztLQUFxQjtJQUNsQ0MsVUFBVTtRQUFDO0tBQVk7SUFDdkJDLFNBQVM7UUFBQztLQUFXO0lBQ3JCQyxjQUFjO1FBQUM7UUFBaUI7UUFBZTtLQUFRO0lBQ3ZEQyxZQUFZO1FBQUM7S0FBYTtBQUM1QixFQUFFO0FBRUYsdUNBQXVDO0FBQ2hDLE1BQU1DLHdCQUFvREMsT0FDOURDLE9BQU8sQ0FBQ3ZCLHdCQUNSd0IsTUFBTSxDQUFDLENBQUNDLEtBQUssQ0FBQ0MsWUFBWUMsTUFBTTtJQUMvQixLQUFLLE1BQU1DLFFBQVFELE1BQU87UUFDeEJGLEdBQUcsQ0FBQ0csS0FBSyxHQUFHRjtJQUNkO0lBQ0EsT0FBT0Q7QUFDVCxHQUFHLENBQUMsR0FBaUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9ndW5idWlsZGVyLXByb3RvdHlwZS8uL2RhdGEvcGFydFJvbGVNYXBwaW5ncy50cz9jNjI0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2F0ZWdvcnlJZCB9IGZyb20gXCJAL3R5cGVzL2d1bmJ1aWxkZXJcIjtcblxuLy8gQ2F0ZWdvcnlJZCAtPiBwYXJ0Um9sZXNcbmV4cG9ydCBjb25zdCBDQVRFR09SWV9UT19QQVJUX1JPTEVTOiBSZWNvcmQ8Q2F0ZWdvcnlJZCwgc3RyaW5nW10+ID0ge1xuICAvLyBDT1JFIC8gRVhJU1RJTkdcbiAgdXBwZXI6IFtcInVwcGVyLXJlY2VpdmVyXCJdLFxuICBiYXJyZWw6IFtcImJhcnJlbFwiXSxcbiAgaGFuZGd1YXJkOiBbXCJoYW5kZ3VhcmRcIl0sXG4gIGNoYXJnaW5nSGFuZGxlOiBbXCJjaGFyZ2luZy1oYW5kbGVcIl0sXG4gIGJ1ZmZlcjogW1wiYnVmZmVyLWtpdFwiXSxcbiAgbG93ZXJQYXJ0czogW1wibG93ZXItcGFydHMta2l0XCJdLFxuICBzaWdodHM6IFtcInNpZ2h0XCJdLFxuICBsb3dlcjogW1wibG93ZXItcmVjZWl2ZXJcIl0sXG4gIG9wdGljOiBbXCJvcHRpY1wiXSxcbiAgc3RvY2s6IFtcInN0b2NrXCJdLFxuXG4gIC8vIE5FVyBMT1dFUiBQQVJUU1xuICB0cmlnZ2VyOiBbXCJ0cmlnZ2VyXCIsIFwidHJpZ2dlci1raXRcIl0sXG4gIGdyaXA6IFtcInBpc3RvbC1ncmlwXCIsIFwiZ3JpcFwiXSxcbiAgc2FmZXR5OiBbXCJzYWZldHlcIiwgXCJzYWZldHktc2VsZWN0b3JcIl0sXG4gIGNvbXBsZXRlTG93ZXI6IFtcImNvbXBsZXRlLWxvd2VyXCJdLFxuXG4gIC8vIE5FVyBVUFBFUiBQQVJUU1xuICBjb21wbGV0ZVVwcGVyOiBbXCJjb21wbGV0ZS11cHBlclwiXSxcbiAgYmNnOiBbXCJiY2dcIiwgXCJib2x0LWNhcnJpZXItZ3JvdXBcIl0sXG4gIGdhc0Jsb2NrOiBbXCJnYXMtYmxvY2tcIl0sXG4gIGdhc1R1YmU6IFtcImdhcy10dWJlXCJdLFxuICBtdXp6bGVEZXZpY2U6IFtcIm11enpsZS1kZXZpY2VcIiwgXCJjb21wZW5zYXRvclwiLCBcImJyYWtlXCJdLFxuICBzdXBwcmVzc29yOiBbXCJzdXBwcmVzc29yXCJdLFxufTtcblxuLy8gSW52ZXJ0IHRvIGdldCBwYXJ0Um9sZSAtPiBDYXRlZ29yeUlkXG5leHBvcnQgY29uc3QgUEFSVF9ST0xFX1RPX0NBVEVHT1JZOiBSZWNvcmQ8c3RyaW5nLCBDYXRlZ29yeUlkPiA9IE9iamVjdFxuICAuZW50cmllcyhDQVRFR09SWV9UT19QQVJUX1JPTEVTKVxuICAucmVkdWNlKChhY2MsIFtjYXRlZ29yeUlkLCByb2xlc10pID0+IHtcbiAgICBmb3IgKGNvbnN0IHJvbGUgb2Ygcm9sZXMpIHtcbiAgICAgIGFjY1tyb2xlXSA9IGNhdGVnb3J5SWQgYXMgQ2F0ZWdvcnlJZDtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgQ2F0ZWdvcnlJZD4pOyJdLCJuYW1lcyI6WyJDQVRFR09SWV9UT19QQVJUX1JPTEVTIiwidXBwZXIiLCJiYXJyZWwiLCJoYW5kZ3VhcmQiLCJjaGFyZ2luZ0hhbmRsZSIsImJ1ZmZlciIsImxvd2VyUGFydHMiLCJzaWdodHMiLCJsb3dlciIsIm9wdGljIiwic3RvY2siLCJ0cmlnZ2VyIiwiZ3JpcCIsInNhZmV0eSIsImNvbXBsZXRlTG93ZXIiLCJjb21wbGV0ZVVwcGVyIiwiYmNnIiwiZ2FzQmxvY2siLCJnYXNUdWJlIiwibXV6emxlRGV2aWNlIiwic3VwcHJlc3NvciIsIlBBUlRfUk9MRV9UT19DQVRFR09SWSIsIk9iamVjdCIsImVudHJpZXMiLCJyZWR1Y2UiLCJhY2MiLCJjYXRlZ29yeUlkIiwicm9sZXMiLCJyb2xlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./data/partRoleMappings.ts\n");

/***/ }),

/***/ "(rsc)/./app/globals.css":
/*!*************************!*\
  !*** ./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__ = (\"8e3b978f6080\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvZ2xvYmFscy5jc3MiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGlFQUFlLGNBQWM7QUFDN0IsSUFBSSxLQUFVLEVBQUUsRUFBdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9ndW5idWlsZGVyLXByb3RvdHlwZS8uL2FwcC9nbG9iYWxzLmNzcz9jZDI4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IFwiOGUzYjk3OGY2MDgwXCJcbmlmIChtb2R1bGUuaG90KSB7IG1vZHVsZS5ob3QuYWNjZXB0KCkgfVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./app/globals.css\n");

/***/ }),

/***/ "(rsc)/./app/gunbuilder/page.tsx":
/*!*********************************!*\
  !*** ./app/gunbuilder/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`/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/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`/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx#default`));


/***/ }),

/***/ "(rsc)/./app/layout.tsx":
/*!************************!*\
  !*** ./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 next_font_google_target_css_path_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"} */ \"(rsc)/./node_modules/next/font/google/target.css?{\\\"path\\\":\\\"app/layout.tsx\\\",\\\"import\\\":\\\"Inter\\\",\\\"arguments\\\":[{\\\"subsets\\\":[\\\"latin\\\"]}],\\\"variableName\\\":\\\"inter\\\"}\");\n/* harmony import */ var next_font_google_target_css_path_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_font_google_target_css_path_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _globals_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./globals.css */ \"(rsc)/./app/globals.css\");\n/* harmony import */ var _context_AuthContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/context/AuthContext */ \"(rsc)/./context/AuthContext.tsx\");\n/* harmony import */ var _components_TopNav__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/TopNav */ \"(rsc)/./components/TopNav.tsx\");\n\n\n\n\n\nconst metadata = {\n    title: \"Shadow Standard Co.\",\n    description: \"The Armory — Early Access\"\n};\nfunction RootLayout({ children }) {\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"html\", {\n        lang: \"en\",\n        children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n            className: (next_font_google_target_css_path_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_4___default().className),\n            children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_context_AuthContext__WEBPACK_IMPORTED_MODULE_2__.AuthProvider, {\n                children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                    className: \"min-h-screen flex flex-col bg-black text-zinc-50\",\n                    children: [\n                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_TopNav__WEBPACK_IMPORTED_MODULE_3__.TopNav, {}, void 0, false, {\n                            fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/layout.tsx\",\n                            lineNumber: 20,\n                            columnNumber: 13\n                        }, this),\n                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n                            className: \"flex-1\",\n                            children: children\n                        }, void 0, false, {\n                            fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/layout.tsx\",\n                            lineNumber: 21,\n                            columnNumber: 13\n                        }, this)\n                    ]\n                }, void 0, true, {\n                    fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/layout.tsx\",\n                    lineNumber: 19,\n                    columnNumber: 11\n                }, this)\n            }, void 0, false, {\n                fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/layout.tsx\",\n                lineNumber: 18,\n                columnNumber: 9\n            }, this)\n        }, void 0, false, {\n            fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/layout.tsx\",\n            lineNumber: 17,\n            columnNumber: 7\n        }, this)\n    }, void 0, false, {\n        fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/layout.tsx\",\n        lineNumber: 16,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvbGF5b3V0LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBTU1BO0FBTmlCO0FBRzhCO0FBQ1I7QUFJdEMsTUFBTUcsV0FBVztJQUN0QkMsT0FBTztJQUNQQyxhQUFhO0FBQ2YsRUFBRTtBQUVhLFNBQVNDLFdBQVcsRUFBRUMsUUFBUSxFQUEyQjtJQUN0RSxxQkFDRSw4REFBQ0M7UUFBS0MsTUFBSztrQkFDVCw0RUFBQ0M7WUFBS0MsV0FBV1gsMkpBQWU7c0JBQzlCLDRFQUFDQyw4REFBWUE7MEJBQ1gsNEVBQUNXO29CQUFJRCxXQUFVOztzQ0FDYiw4REFBQ1Qsc0RBQU1BOzs7OztzQ0FDUCw4REFBQ1c7NEJBQUtGLFdBQVU7c0NBQVVKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNdEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9ndW5idWlsZGVyLXByb3RvdHlwZS8uL2FwcC9sYXlvdXQudHN4Pzk5ODgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiLi9nbG9iYWxzLmNzc1wiO1xuaW1wb3J0IHsgSW50ZXIgfSBmcm9tIFwibmV4dC9mb250L2dvb2dsZVwiO1xuaW1wb3J0IHR5cGUgeyBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEF1dGhQcm92aWRlciB9IGZyb20gXCJAL2NvbnRleHQvQXV0aENvbnRleHRcIjtcbmltcG9ydCB7IFRvcE5hdiB9IGZyb20gXCJAL2NvbXBvbmVudHMvVG9wTmF2XCI7XG5cbmNvbnN0IGludGVyID0gSW50ZXIoeyBzdWJzZXRzOiBbXCJsYXRpblwiXSB9KTtcblxuZXhwb3J0IGNvbnN0IG1ldGFkYXRhID0ge1xuICB0aXRsZTogXCJTaGFkb3cgU3RhbmRhcmQgQ28uXCIsXG4gIGRlc2NyaXB0aW9uOiBcIlRoZSBBcm1vcnkg4oCUIEVhcmx5IEFjY2Vzc1wiLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUm9vdExheW91dCh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0Tm9kZSB9KSB7XG4gIHJldHVybiAoXG4gICAgPGh0bWwgbGFuZz1cImVuXCI+XG4gICAgICA8Ym9keSBjbGFzc05hbWU9e2ludGVyLmNsYXNzTmFtZX0+XG4gICAgICAgIDxBdXRoUHJvdmlkZXI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtaW4taC1zY3JlZW4gZmxleCBmbGV4LWNvbCBiZy1ibGFjayB0ZXh0LXppbmMtNTBcIj5cbiAgICAgICAgICAgIDxUb3BOYXYgLz5cbiAgICAgICAgICAgIDxtYWluIGNsYXNzTmFtZT1cImZsZXgtMVwiPntjaGlsZHJlbn08L21haW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvQXV0aFByb3ZpZGVyPlxuICAgICAgPC9ib2R5PlxuICAgIDwvaHRtbD5cbiAgKTtcbn0iXSwibmFtZXMiOlsiaW50ZXIiLCJBdXRoUHJvdmlkZXIiLCJUb3BOYXYiLCJtZXRhZGF0YSIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJSb290TGF5b3V0IiwiY2hpbGRyZW4iLCJodG1sIiwibGFuZyIsImJvZHkiLCJjbGFzc05hbWUiLCJkaXYiLCJtYWluIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./app/layout.tsx\n");

/***/ }),

/***/ "(rsc)/./components/TopNav.tsx":
/*!*******************************!*\
  !*** ./components/TopNav.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 */   TopNav: () => (/* binding */ e0)\n/* harmony export */ });\n/* 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\");\n\nconst proxy = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/sean/Dev/gunbuilder-prototype/components/TopNav.tsx`)\n\n// Accessing the __esModule property and exporting $$typeof are required here.\n// The __esModule getter forces the proxy target to create the default export\n// and the $$typeof value is for rendering logic to determine if the module\n// is a client boundary.\nconst { __esModule, $$typeof } = proxy;\nconst __default__ = proxy.default;\n\nconst e0 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/sean/Dev/gunbuilder-prototype/components/TopNav.tsx#TopNav`);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9jb21wb25lbnRzL1RvcE5hdi50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBd0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9ndW5idWlsZGVyLXByb3RvdHlwZS8uL2NvbXBvbmVudHMvVG9wTmF2LnRzeD9kZjU2Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIGNvbXBvbmVudHMvVG9wTmF2LnRzeFxuXCJ1c2UgY2xpZW50XCI7XG5cbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcbmltcG9ydCB7IHVzZUF1dGggfSBmcm9tIFwiQC9jb250ZXh0L0F1dGhDb250ZXh0XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBUb3BOYXYoKSB7XG4gIGNvbnN0IHsgdXNlciwgbG9nb3V0LCBsb2FkaW5nIH0gPSB1c2VBdXRoKCk7XG5cbiAgcmV0dXJuIChcbiAgICA8aGVhZGVyIGNsYXNzTmFtZT1cImJvcmRlci1iIGJvcmRlci16aW5jLTgwMCBiZy1ibGFjay85NSBiYWNrZHJvcC1ibHVyXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14LWF1dG8gZmxleCBtYXgtdy02eGwgaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBweC00IHB5LTJcIj5cbiAgICAgICAgey8qIEJyYW5kIC8gSG9tZSBsaW5rICovfVxuICAgICAgICA8TGlua1xuICAgICAgICAgIGhyZWY9XCIvXCJcbiAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdHJhY2tpbmctWzAuMmVtXSB1cHBlcmNhc2UgdGV4dC16aW5jLTQwMFwiXG4gICAgICAgID5cbiAgICAgICAgICBUaGUgQnVpbGQgQmVuY2hcbiAgICAgICAgPC9MaW5rPlxuXG4gICAgICAgIHsvKiBSaWdodCBzaWRlIGFjdGlvbnMgKi99XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICAgICAgICB7LyogU2VhcmNoIHBsYWNlaG9sZGVyICovfVxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiaW5saW5lLWZsZXggaC04IHctOCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1mdWxsIGJvcmRlciBib3JkZXItemluYy03MDAgYmctemluYy05MDAvNjAgdGV4dC16aW5jLTQwMCBob3Zlcjp0ZXh0LXppbmMtMjAwIGhvdmVyOmJnLXppbmMtODAwIGhvdmVyOmJvcmRlci16aW5jLTUwMCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VhcmNoIChjb21pbmcgc29vbilcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgIHN0cm9rZVdpZHRoPXsyfVxuICAgICAgICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaC00IHctNFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMVwiIGN5PVwiMTFcIiByPVwiNlwiIC8+XG4gICAgICAgICAgICAgIDxsaW5lIHgxPVwiMTYuNVwiIHkxPVwiMTYuNVwiIHgyPVwiMjFcIiB5Mj1cIjIxXCIgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAge2xvYWRpbmcgPyAoXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtemluYy01MDBcIj5DaGVja2luZyBzZXNzaW9u4oCmPC9zcGFuPlxuICAgICAgICAgICkgOiB1c2VyID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtMzAwXCI+XG4gICAgICAgICAgICAgICAge3VzZXIuZGlzcGxheU5hbWUgfHwgdXNlci5lbWFpbH1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17bG9nb3V0fVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1tZWRpdW0gdGV4dC16aW5jLTQwMCBob3Zlcjp0ZXh0LXppbmMtMTAwIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIExvZyBPdXRcbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgICBocmVmPVwiL2xvZ2luXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXhzIGZvbnQtbWVkaXVtIHRleHQtemluYy00MDAgaG92ZXI6dGV4dC16aW5jLTEwMCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBMb2cgSW5cbiAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgICAgIGhyZWY9XCIvcmVnaXN0ZXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1hbWJlci00MDAvNzAgYmctYW1iZXItNDAwLzEwIHB4LTMgcHktMS41IHRleHQteHMgZm9udC1zZW1pYm9sZCB0ZXh0LWFtYmVyLTIwMCBob3ZlcjpiZy1hbWJlci00MDAvMjAgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgSm9pbiBCZXRhXG4gICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9oZWFkZXI+XG4gICk7XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./components/TopNav.tsx\n");

/***/ }),

/***/ "(rsc)/./context/AuthContext.tsx":
/*!*********************************!*\
  !*** ./context/AuthContext.tsx ***!
  \*********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   AuthProvider: () => (/* binding */ e0),
/* harmony export */   useAuth: () => (/* binding */ e1)
/* 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`/Users/sean/Dev/gunbuilder-prototype/context/AuthContext.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;

const e0 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/sean/Dev/gunbuilder-prototype/context/AuthContext.tsx#AuthProvider`);

const e1 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/sean/Dev/gunbuilder-prototype/context/AuthContext.tsx#useAuth`);


/***/ })

};
;

// 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%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!")));
module.exports = __webpack_exports__;

})();