/*
 * 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/invoice/page";
exports.ids = ["app/invoice/page"];
exports.modules = {

/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Finvoice%2Fpage&page=%2Finvoice%2Fpage&appPaths=%2Finvoice%2Fpage&pagePath=private-next-app-dir%2Finvoice%2Fpage.tsx&appDir=%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!":
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Finvoice%2Fpage&page=%2Finvoice%2Fpage&appPaths=%2Finvoice%2Fpage&pagePath=private-next-app-dir%2Finvoice%2Fpage.tsx&appDir=%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=! ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((__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_builtin_global_error_js__WEBPACK_IMPORTED_MODULE_25___default.a),\n/* harmony export */   __next_app__: () => (/* binding */ __next_app__),\n/* harmony export */   handler: () => (/* binding */ handler),\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_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/route-modules/app-page/module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?6a4d\");\n/* harmony import */ var next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/route-kind */ \"(rsc)/./node_modules/next/dist/server/route-kind.js\");\n/* harmony import */ var next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/server/instrumentation/utils */ \"(rsc)/./node_modules/next/dist/server/instrumentation/utils.js\");\n/* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/server/lib/trace/tracer */ \"(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js\");\n/* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! next/dist/server/request-meta */ \"(rsc)/./node_modules/next/dist/server/request-meta.js\");\n/* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! next/dist/server/lib/trace/constants */ \"(rsc)/./node_modules/next/dist/server/lib/trace/constants.js\");\n/* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var next_dist_server_app_render_interop_default__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! next/dist/server/app-render/interop-default */ \"(rsc)/./node_modules/next/dist/server/app-render/interop-default.js\");\n/* harmony import */ var next_dist_server_app_render_strip_flight_headers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! next/dist/server/app-render/strip-flight-headers */ \"(rsc)/./node_modules/next/dist/server/app-render/strip-flight-headers.js\");\n/* harmony import */ var next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! next/dist/server/base-http/node */ \"(rsc)/./node_modules/next/dist/server/base-http/node.js\");\n/* harmony import */ var next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! next/dist/server/lib/experimental/ppr */ \"(rsc)/./node_modules/next/dist/server/lib/experimental/ppr.js\");\n/* harmony import */ var next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! next/dist/server/request/fallback-params */ \"(rsc)/./node_modules/next/dist/server/request/fallback-params.js\");\n/* harmony import */ var next_dist_server_app_render_encryption_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! next/dist/server/app-render/encryption-utils */ \"(rsc)/./node_modules/next/dist/server/app-render/encryption-utils.js\");\n/* harmony import */ var next_dist_server_app_render_encryption_utils__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_encryption_utils__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! next/dist/server/lib/streaming-metadata */ \"(rsc)/./node_modules/next/dist/server/lib/streaming-metadata.js\");\n/* harmony import */ var next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var next_dist_server_app_render_action_utils__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! next/dist/server/app-render/action-utils */ \"(rsc)/./node_modules/next/dist/server/app-render/action-utils.js\");\n/* harmony import */ var next_dist_server_app_render_action_utils__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_action_utils__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! next/dist/shared/lib/router/utils/app-paths */ \"next/dist/shared/lib/router/utils/app-paths\");\n/* harmony import */ var next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_14__);\n/* harmony import */ var next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! next/dist/server/lib/server-action-request-meta */ \"(rsc)/./node_modules/next/dist/server/lib/server-action-request-meta.js\");\n/* harmony import */ var next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! next/dist/client/components/app-router-headers */ \"(rsc)/./node_modules/next/dist/client/components/app-router-headers.js\");\n/* harmony import */ var next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! next/dist/shared/lib/router/utils/is-bot */ \"next/dist/shared/lib/router/utils/is-bot\");\n/* harmony import */ var next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_17__);\n/* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! next/dist/server/response-cache */ \"(rsc)/./node_modules/next/dist/server/response-cache/index.js\");\n/* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_18__);\n/* harmony import */ var next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! next/dist/lib/fallback */ \"(rsc)/./node_modules/next/dist/lib/fallback.js\");\n/* harmony import */ var next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_19__);\n/* harmony import */ var next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! next/dist/server/render-result */ \"(rsc)/./node_modules/next/dist/server/render-result.js\");\n/* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! next/dist/lib/constants */ \"(rsc)/./node_modules/next/dist/lib/constants.js\");\n/* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_21__);\n/* harmony import */ var next_dist_server_stream_utils_encoded_tags__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! next/dist/server/stream-utils/encoded-tags */ \"(rsc)/./node_modules/next/dist/server/stream-utils/encoded-tags.js\");\n/* harmony import */ var next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! next/dist/server/send-payload */ \"(rsc)/./node_modules/next/dist/server/send-payload.js\");\n/* harmony import */ var next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__);\n/* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! next/dist/shared/lib/no-fallback-error.external */ \"next/dist/shared/lib/no-fallback-error.external\");\n/* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_24__);\n/* harmony import */ var next_dist_client_components_builtin_global_error_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! next/dist/client/components/builtin/global-error.js */ \"(rsc)/./node_modules/next/dist/client/components/builtin/global-error.js\");\n/* harmony import */ var next_dist_client_components_builtin_global_error_js__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_builtin_global_error_js__WEBPACK_IMPORTED_MODULE_25__);\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_26__ = __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_26___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_26__);\n/* harmony import */ var next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! next/dist/client/components/redirect-status-code */ \"(rsc)/./node_modules/next/dist/client/components/redirect-status-code.js\");\n/* harmony import */ var next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_27__);\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_26__) if([\"default\",\"tree\",\"pages\",\"GlobalError\",\"__next_app__\",\"routeModule\",\"handler\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_26__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\nconst module0 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/layout.tsx */ \"(rsc)/./src/app/layout.tsx\"));\nconst module1 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/builtin/global-error.js */ \"(rsc)/./node_modules/next/dist/client/components/builtin/global-error.js\", 23));\nconst module2 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/builtin/not-found.js */ \"(rsc)/./node_modules/next/dist/client/components/builtin/not-found.js\", 23));\nconst module3 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/builtin/forbidden.js */ \"(rsc)/./node_modules/next/dist/client/components/builtin/forbidden.js\", 23));\nconst module4 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/builtin/unauthorized.js */ \"(rsc)/./node_modules/next/dist/client/components/builtin/unauthorized.js\", 23));\nconst page5 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/invoice/page.tsx */ \"(rsc)/./src/app/invoice/page.tsx\"));\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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        'invoice',\n        {\n        children: ['__PAGE__', {}, {\n          page: [page5, \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/app/invoice/page.tsx\"],\n          \n        }]\n      },\n        {\n        \n        \n      }\n      ]\n      },\n        {\n        'layout': [module0, \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/app/layout.tsx\"],\n'global-error': [module1, \"next/dist/client/components/builtin/global-error.js\"],\n'not-found': [module2, \"next/dist/client/components/builtin/not-found.js\"],\n'forbidden': [module3, \"next/dist/client/components/builtin/forbidden.js\"],\n'unauthorized': [module4, \"next/dist/client/components/builtin/unauthorized.js\"],\n        \n      }\n      ]\n      }.children;\nconst pages = [\"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/app/invoice/page.tsx\"];\n\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst __next_app__ = {\n    require: __next_app_require__,\n    loadChunk: __next_app_load_chunk__\n};\n\n\n\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({\n    definition: {\n        kind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n        page: \"/invoice/page\",\n        pathname: \"/invoice\",\n        // The following aren't used in production.\n        bundlePath: '',\n        filename: '',\n        appPaths: []\n    },\n    userland: {\n        loaderTree: tree\n    },\n    distDir: \".next\" || 0,\n    relativeProjectDir:  false || ''\n});\nasync function handler(req, res, ctx) {\n    var _this;\n    let srcPage = \"/invoice/page\";\n    // turbopack doesn't normalize `/index` in the page name\n    // so we need to to process dynamic routes properly\n    // TODO: fix turbopack providing differing value from webpack\n    if (false) {} else if (srcPage === '/index') {\n        // we always normalize /index specifically\n        srcPage = '/';\n    }\n    const multiZoneDraftMode = false;\n    const initialPostponed = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'postponed');\n    // TODO: replace with more specific flags\n    const minimalMode = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'minimalMode');\n    const prepareResult = await routeModule.prepare(req, res, {\n        srcPage,\n        multiZoneDraftMode\n    });\n    if (!prepareResult) {\n        res.statusCode = 400;\n        res.end('Bad Request');\n        ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n        return null;\n    }\n    const { buildId, query, params, parsedUrl, pageIsDynamic, buildManifest, nextFontManifest, reactLoadableManifest, serverActionsManifest, clientReferenceManifest, subresourceIntegrityManifest, prerenderManifest, isDraftMode, resolvedPathname, revalidateOnlyGenerated, routerServerContext, nextConfig, interceptionRoutePatterns } = prepareResult;\n    const pathname = parsedUrl.pathname || '/';\n    const normalizedSrcPage = (0,next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_14__.normalizeAppPath)(srcPage);\n    let { isOnDemandRevalidate } = prepareResult;\n    const prerenderInfo = routeModule.match(pathname, prerenderManifest);\n    const isPrerendered = !!prerenderManifest.routes[resolvedPathname];\n    let isSSG = Boolean(prerenderInfo || isPrerendered || prerenderManifest.routes[normalizedSrcPage]);\n    const userAgent = req.headers['user-agent'] || '';\n    const botType = (0,next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_17__.getBotType)(userAgent);\n    const isHtmlBot = (0,next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__.isHtmlBotRequest)(req);\n    /**\n   * If true, this indicates that the request being made is for an app\n   * prefetch request.\n   */ const isPrefetchRSCRequest = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'isPrefetchRSCRequest') ?? req.headers[next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_16__.NEXT_ROUTER_PREFETCH_HEADER] === '1' // exclude runtime prefetches, which use '2'\n    ;\n    // NOTE: Don't delete headers[RSC] yet, it still needs to be used in renderToHTML later\n    const isRSCRequest = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'isRSCRequest') ?? Boolean(req.headers[next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_16__.RSC_HEADER]);\n    const isPossibleServerAction = (0,next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_15__.getIsPossibleServerAction)(req);\n    /**\n   * If the route being rendered is an app page, and the ppr feature has been\n   * enabled, then the given route _could_ support PPR.\n   */ const couldSupportPPR = (0,next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9__.checkIsAppPPREnabled)(nextConfig.experimental.ppr);\n    // When enabled, this will allow the use of the `?__nextppronly` query to\n    // enable debugging of the static shell.\n    const hasDebugStaticShellQuery =  false && 0;\n    // When enabled, this will allow the use of the `?__nextppronly` query\n    // to enable debugging of the fallback shell.\n    const hasDebugFallbackShellQuery = hasDebugStaticShellQuery && query.__nextppronly === 'fallback';\n    // This page supports PPR if it is marked as being `PARTIALLY_STATIC` in the\n    // prerender manifest and this is an app page.\n    const isRoutePPREnabled = couldSupportPPR && (((_this = prerenderManifest.routes[normalizedSrcPage] ?? prerenderManifest.dynamicRoutes[normalizedSrcPage]) == null ? void 0 : _this.renderingMode) === 'PARTIALLY_STATIC' || // Ideally we'd want to check the appConfig to see if this page has PPR\n    // enabled or not, but that would require plumbing the appConfig through\n    // to the server during development. We assume that the page supports it\n    // but only during development.\n    hasDebugStaticShellQuery && (routeModule.isDev === true || (routerServerContext == null ? void 0 : routerServerContext.experimentalTestProxy) === true));\n    const isDebugStaticShell = hasDebugStaticShellQuery && isRoutePPREnabled;\n    // We should enable debugging dynamic accesses when the static shell\n    // debugging has been enabled and we're also in development mode.\n    const isDebugDynamicAccesses = isDebugStaticShell && routeModule.isDev === true;\n    const isDebugFallbackShell = hasDebugFallbackShellQuery && isRoutePPREnabled;\n    // If we're in minimal mode, then try to get the postponed information from\n    // the request metadata. If available, use it for resuming the postponed\n    // render.\n    const minimalPostponed = isRoutePPREnabled ? initialPostponed : undefined;\n    // If PPR is enabled, and this is a RSC request (but not a prefetch), then\n    // we can use this fact to only generate the flight data for the request\n    // because we can't cache the HTML (as it's also dynamic).\n    const isDynamicRSCRequest = isRoutePPREnabled && isRSCRequest && !isPrefetchRSCRequest;\n    // Need to read this before it's stripped by stripFlightHeaders. We don't\n    // need to transfer it to the request meta because it's only read\n    // within this function; the static segment data should have already been\n    // generated, so we will always either return a static response or a 404.\n    const segmentPrefetchHeader = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'segmentPrefetchRSCRequest');\n    // TODO: investigate existing bug with shouldServeStreamingMetadata always\n    // being true for a revalidate due to modifying the base-server this.renderOpts\n    // when fixing this to correct logic it causes hydration issue since we set\n    // serveStreamingMetadata to true during export\n    let serveStreamingMetadata = !userAgent ? true : (0,next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__.shouldServeStreamingMetadata)(userAgent, nextConfig.htmlLimitedBots);\n    if (isHtmlBot && isRoutePPREnabled) {\n        isSSG = false;\n        serveStreamingMetadata = false;\n    }\n    // In development, we always want to generate dynamic HTML.\n    let supportsDynamicResponse = // If we're in development, we always support dynamic HTML, unless it's\n    // a data request, in which case we only produce static HTML.\n    routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports\n    // dynamic HTML.\n    !isSSG || // If this request has provided postponed data, it supports dynamic\n    // HTML.\n    typeof initialPostponed === 'string' || // If this is a dynamic RSC request, then this render supports dynamic\n    // HTML (it's dynamic).\n    isDynamicRSCRequest;\n    // When html bots request PPR page, perform the full dynamic rendering.\n    const shouldWaitOnAllReady = isHtmlBot && isRoutePPREnabled;\n    let ssgCacheKey = null;\n    if (!isDraftMode && isSSG && !supportsDynamicResponse && !isPossibleServerAction && !minimalPostponed && !isDynamicRSCRequest) {\n        ssgCacheKey = resolvedPathname;\n    }\n    // the staticPathKey differs from ssgCacheKey since\n    // ssgCacheKey is null in dev since we're always in \"dynamic\"\n    // mode in dev to bypass the cache, but we still need to honor\n    // dynamicParams = false in dev mode\n    let staticPathKey = ssgCacheKey;\n    if (!staticPathKey && routeModule.isDev) {\n        staticPathKey = resolvedPathname;\n    }\n    // If this is a request for an app path that should be statically generated\n    // and we aren't in the edge runtime, strip the flight headers so it will\n    // generate the static response.\n    if (!routeModule.isDev && !isDraftMode && isSSG && isRSCRequest && !isDynamicRSCRequest) {\n        (0,next_dist_server_app_render_strip_flight_headers__WEBPACK_IMPORTED_MODULE_7__.stripFlightHeaders)(req.headers);\n    }\n    const ComponentMod = {\n        ...next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_26__,\n        tree,\n        pages,\n        GlobalError: (next_dist_client_components_builtin_global_error_js__WEBPACK_IMPORTED_MODULE_25___default()),\n        handler,\n        routeModule,\n        __next_app__\n    };\n    // Before rendering (which initializes component tree modules), we have to\n    // set the reference manifests to our global store so Server Action's\n    // encryption util can access to them at the top level of the page module.\n    if (serverActionsManifest && clientReferenceManifest) {\n        (0,next_dist_server_app_render_encryption_utils__WEBPACK_IMPORTED_MODULE_11__.setReferenceManifestsSingleton)({\n            page: srcPage,\n            clientReferenceManifest,\n            serverActionsManifest,\n            serverModuleMap: (0,next_dist_server_app_render_action_utils__WEBPACK_IMPORTED_MODULE_13__.createServerModuleMap)({\n                serverActionsManifest\n            })\n        });\n    }\n    const method = req.method || 'GET';\n    const tracer = (0,next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__.getTracer)();\n    const activeSpan = tracer.getActiveScopeSpan();\n    try {\n        const varyHeader = routeModule.getVaryHeader(resolvedPathname, interceptionRoutePatterns);\n        res.setHeader('Vary', varyHeader);\n        const invokeRouteModule = async (span, context)=>{\n            const nextReq = new next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__.NodeNextRequest(req);\n            const nextRes = new next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__.NodeNextResponse(res);\n            // TODO: adapt for putting the RDC inside the postponed data\n            // If we're in dev, and this isn't a prefetch or a server action,\n            // we should seed the resume data cache.\n            if (true) {\n                if (nextConfig.experimental.cacheComponents && !isPrefetchRSCRequest && !context.renderOpts.isPossibleServerAction) {\n                    const warmup = await routeModule.warmup(nextReq, nextRes, context);\n                    // If the warmup is successful, we should use the resume data\n                    // cache from the warmup.\n                    if (warmup.metadata.renderResumeDataCache) {\n                        context.renderOpts.renderResumeDataCache = warmup.metadata.renderResumeDataCache;\n                    }\n                }\n            }\n            return routeModule.render(nextReq, nextRes, context).finally(()=>{\n                if (!span) return;\n                span.setAttributes({\n                    'http.status_code': res.statusCode,\n                    'next.rsc': false\n                });\n                const rootSpanAttributes = tracer.getRootSpanAttributes();\n                // We were unable to get attributes, probably OTEL is not enabled\n                if (!rootSpanAttributes) {\n                    return;\n                }\n                if (rootSpanAttributes.get('next.span_type') !== next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__.BaseServerSpan.handleRequest) {\n                    console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n                    return;\n                }\n                const route = rootSpanAttributes.get('next.route');\n                if (route) {\n                    const name = `${method} ${route}`;\n                    span.setAttributes({\n                        'next.route': route,\n                        'http.route': route,\n                        'next.span_name': name\n                    });\n                    span.updateName(name);\n                } else {\n                    span.updateName(`${method} ${req.url}`);\n                }\n            });\n        };\n        const doRender = async ({ span, postponed, fallbackRouteParams })=>{\n            const context = {\n                query,\n                params,\n                page: normalizedSrcPage,\n                sharedContext: {\n                    buildId\n                },\n                serverComponentsHmrCache: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'serverComponentsHmrCache'),\n                fallbackRouteParams,\n                renderOpts: {\n                    App: ()=>null,\n                    Document: ()=>null,\n                    pageConfig: {},\n                    ComponentMod,\n                    Component: (0,next_dist_server_app_render_interop_default__WEBPACK_IMPORTED_MODULE_6__.interopDefault)(ComponentMod),\n                    params,\n                    routeModule,\n                    page: srcPage,\n                    postponed,\n                    shouldWaitOnAllReady,\n                    serveStreamingMetadata,\n                    supportsDynamicResponse: typeof postponed === 'string' || supportsDynamicResponse,\n                    buildManifest,\n                    nextFontManifest,\n                    reactLoadableManifest,\n                    subresourceIntegrityManifest,\n                    serverActionsManifest,\n                    clientReferenceManifest,\n                    setIsrStatus: routerServerContext == null ? void 0 : routerServerContext.setIsrStatus,\n                    dir:  true ? (__webpack_require__(/*! path */ \"path\").join)(/* turbopackIgnore: true */ process.cwd(), routeModule.relativeProjectDir) : 0,\n                    isDraftMode,\n                    isRevalidate: isSSG && !postponed && !isDynamicRSCRequest,\n                    botType,\n                    isOnDemandRevalidate,\n                    isPossibleServerAction,\n                    assetPrefix: nextConfig.assetPrefix,\n                    nextConfigOutput: nextConfig.output,\n                    crossOrigin: nextConfig.crossOrigin,\n                    trailingSlash: nextConfig.trailingSlash,\n                    previewProps: prerenderManifest.preview,\n                    deploymentId: nextConfig.deploymentId,\n                    enableTainting: nextConfig.experimental.taint,\n                    htmlLimitedBots: nextConfig.htmlLimitedBots,\n                    devtoolSegmentExplorer: nextConfig.experimental.devtoolSegmentExplorer,\n                    reactMaxHeadersLength: nextConfig.reactMaxHeadersLength,\n                    multiZoneDraftMode,\n                    incrementalCache: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'incrementalCache'),\n                    cacheLifeProfiles: nextConfig.experimental.cacheLife,\n                    basePath: nextConfig.basePath,\n                    serverActions: nextConfig.experimental.serverActions,\n                    ...isDebugStaticShell || isDebugDynamicAccesses ? {\n                        nextExport: true,\n                        supportsDynamicResponse: false,\n                        isStaticGeneration: true,\n                        isRevalidate: true,\n                        isDebugDynamicAccesses: isDebugDynamicAccesses\n                    } : {},\n                    experimental: {\n                        isRoutePPREnabled,\n                        expireTime: nextConfig.expireTime,\n                        staleTimes: nextConfig.experimental.staleTimes,\n                        cacheComponents: Boolean(nextConfig.experimental.cacheComponents),\n                        clientSegmentCache: Boolean(nextConfig.experimental.clientSegmentCache),\n                        clientParamParsing: Boolean(nextConfig.experimental.clientParamParsing),\n                        dynamicOnHover: Boolean(nextConfig.experimental.dynamicOnHover),\n                        inlineCss: Boolean(nextConfig.experimental.inlineCss),\n                        authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n                        clientTraceMetadata: nextConfig.experimental.clientTraceMetadata || []\n                    },\n                    waitUntil: ctx.waitUntil,\n                    onClose: (cb)=>{\n                        res.on('close', cb);\n                    },\n                    onAfterTaskError: ()=>{},\n                    onInstrumentationRequestError: (error, _request, errorContext)=>routeModule.onRequestError(req, error, errorContext, routerServerContext),\n                    err: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'invokeError'),\n                    dev: routeModule.isDev\n                }\n            };\n            const result = await invokeRouteModule(span, context);\n            const { metadata } = result;\n            const { cacheControl, headers = {}, // Add any fetch tags that were on the page to the response headers.\n            fetchTags: cacheTags } = metadata;\n            if (cacheTags) {\n                headers[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_21__.NEXT_CACHE_TAGS_HEADER] = cacheTags;\n            }\n            // Pull any fetch metrics from the render onto the request.\n            ;\n            req.fetchMetrics = metadata.fetchMetrics;\n            // we don't throw static to dynamic errors in dev as isSSG\n            // is a best guess in dev since we don't have the prerender pass\n            // to know whether the path is actually static or not\n            if (isSSG && (cacheControl == null ? void 0 : cacheControl.revalidate) === 0 && !routeModule.isDev && !isRoutePPREnabled) {\n                const staticBailoutInfo = metadata.staticBailoutInfo;\n                const err = Object.defineProperty(new Error(`Page changed from static to dynamic at runtime ${resolvedPathname}${(staticBailoutInfo == null ? void 0 : staticBailoutInfo.description) ? `, reason: ${staticBailoutInfo.description}` : ``}` + `\\nsee more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`), \"__NEXT_ERROR_CODE\", {\n                    value: \"E132\",\n                    enumerable: false,\n                    configurable: true\n                });\n                if (staticBailoutInfo == null ? void 0 : staticBailoutInfo.stack) {\n                    const stack = staticBailoutInfo.stack;\n                    err.stack = err.message + stack.substring(stack.indexOf('\\n'));\n                }\n                throw err;\n            }\n            return {\n                value: {\n                    kind: next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_18__.CachedRouteKind.APP_PAGE,\n                    html: result,\n                    headers,\n                    rscData: metadata.flightData,\n                    postponed: metadata.postponed,\n                    status: metadata.statusCode,\n                    segmentData: metadata.segmentData\n                },\n                cacheControl\n            };\n        };\n        const responseGenerator = async ({ hasResolved, previousCacheEntry, isRevalidating, span })=>{\n            const isProduction = routeModule.isDev === false;\n            const didRespond = hasResolved || res.writableEnded;\n            // skip on-demand revalidate if cache is not present and\n            // revalidate-if-generated is set\n            if (isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry && !minimalMode) {\n                if (routerServerContext == null ? void 0 : routerServerContext.render404) {\n                    await routerServerContext.render404(req, res);\n                } else {\n                    res.statusCode = 404;\n                    res.end('This page could not be found');\n                }\n                return null;\n            }\n            let fallbackMode;\n            if (prerenderInfo) {\n                fallbackMode = (0,next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_19__.parseFallbackField)(prerenderInfo.fallback);\n            }\n            // When serving a HTML bot request, we want to serve a blocking render and\n            // not the prerendered page. This ensures that the correct content is served\n            // to the bot in the head.\n            if (fallbackMode === next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_19__.FallbackMode.PRERENDER && (0,next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_17__.isBot)(userAgent)) {\n                if (!isRoutePPREnabled || isHtmlBot) {\n                    fallbackMode = next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_19__.FallbackMode.BLOCKING_STATIC_RENDER;\n                }\n            }\n            if ((previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) === -1) {\n                isOnDemandRevalidate = true;\n            }\n            // TODO: adapt for PPR\n            // only allow on-demand revalidate for fallback: true/blocking\n            // or for prerendered fallback: false paths\n            if (isOnDemandRevalidate && (fallbackMode !== next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_19__.FallbackMode.NOT_FOUND || previousCacheEntry)) {\n                fallbackMode = next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_19__.FallbackMode.BLOCKING_STATIC_RENDER;\n            }\n            if (!minimalMode && fallbackMode !== next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_19__.FallbackMode.BLOCKING_STATIC_RENDER && staticPathKey && !didRespond && !isDraftMode && pageIsDynamic && (isProduction || !isPrerendered)) {\n                // if the page has dynamicParams: false and this pathname wasn't\n                // prerendered trigger the no fallback handling\n                if (// In development, fall through to render to handle missing\n                // getStaticPaths.\n                (isProduction || prerenderInfo) && // When fallback isn't present, abort this render so we 404\n                fallbackMode === next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_19__.FallbackMode.NOT_FOUND) {\n                    throw new next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_24__.NoFallbackError();\n                }\n                let fallbackResponse;\n                if (isRoutePPREnabled && !isRSCRequest) {\n                    const cacheKey = typeof (prerenderInfo == null ? void 0 : prerenderInfo.fallback) === 'string' ? prerenderInfo.fallback : isProduction ? normalizedSrcPage : null;\n                    // We use the response cache here to handle the revalidation and\n                    // management of the fallback shell.\n                    fallbackResponse = await routeModule.handleResponse({\n                        cacheKey,\n                        req,\n                        nextConfig,\n                        routeKind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n                        isFallback: true,\n                        prerenderManifest,\n                        isRoutePPREnabled,\n                        responseGenerator: async ()=>doRender({\n                                span,\n                                // We pass `undefined` as rendering a fallback isn't resumed\n                                // here.\n                                postponed: undefined,\n                                fallbackRouteParams: // If we're in production or we're debugging the fallback\n                                // shell then we should postpone when dynamic params are\n                                // accessed.\n                                isProduction || isDebugFallbackShell ? (0,next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__.getFallbackRouteParams)(normalizedSrcPage) : null\n                            }),\n                        waitUntil: ctx.waitUntil\n                    });\n                    // If the fallback response was set to null, then we should return null.\n                    if (fallbackResponse === null) return null;\n                    // Otherwise, if we did get a fallback response, we should return it.\n                    if (fallbackResponse) {\n                        // Remove the cache control from the response to prevent it from being\n                        // used in the surrounding cache.\n                        delete fallbackResponse.cacheControl;\n                        return fallbackResponse;\n                    }\n                }\n            }\n            // Only requests that aren't revalidating can be resumed. If we have the\n            // minimal postponed data, then we should resume the render with it.\n            const postponed = !isOnDemandRevalidate && !isRevalidating && minimalPostponed ? minimalPostponed : undefined;\n            // When we're in minimal mode, if we're trying to debug the static shell,\n            // we should just return nothing instead of resuming the dynamic render.\n            if ((isDebugStaticShell || isDebugDynamicAccesses) && typeof postponed !== 'undefined') {\n                return {\n                    cacheControl: {\n                        revalidate: 1,\n                        expire: undefined\n                    },\n                    value: {\n                        kind: next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_18__.CachedRouteKind.PAGES,\n                        html: next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_20__[\"default\"].EMPTY,\n                        pageData: {},\n                        headers: undefined,\n                        status: undefined\n                    }\n                };\n            }\n            // If this is a dynamic route with PPR enabled and the default route\n            // matches were set, then we should pass the fallback route params to\n            // the renderer as this is a fallback revalidation request.\n            const fallbackRouteParams = pageIsDynamic && isRoutePPREnabled && ((0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'renderFallbackShell') || isDebugFallbackShell) ? (0,next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__.getFallbackRouteParams)(pathname) : null;\n            // Perform the render.\n            return doRender({\n                span,\n                postponed,\n                fallbackRouteParams\n            });\n        };\n        const handleResponse = async (span)=>{\n            var _cacheEntry_value, _cachedData_headers;\n            const cacheEntry = await routeModule.handleResponse({\n                cacheKey: ssgCacheKey,\n                responseGenerator: (c)=>responseGenerator({\n                        span,\n                        ...c\n                    }),\n                routeKind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n                isOnDemandRevalidate,\n                isRoutePPREnabled,\n                req,\n                nextConfig,\n                prerenderManifest,\n                waitUntil: ctx.waitUntil\n            });\n            if (isDraftMode) {\n                res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n            }\n            // In dev, we should not cache pages for any reason.\n            if (routeModule.isDev) {\n                res.setHeader('Cache-Control', 'no-store, must-revalidate');\n            }\n            if (!cacheEntry) {\n                if (ssgCacheKey) {\n                    // A cache entry might not be generated if a response is written\n                    // in `getInitialProps` or `getServerSideProps`, but those shouldn't\n                    // have a cache key. If we do have a cache key but we don't end up\n                    // with a cache entry, then either Next.js or the application has a\n                    // bug that needs fixing.\n                    throw Object.defineProperty(new Error('invariant: cache entry required but not generated'), \"__NEXT_ERROR_CODE\", {\n                        value: \"E62\",\n                        enumerable: false,\n                        configurable: true\n                    });\n                }\n                return null;\n            }\n            if (((_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) !== next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_18__.CachedRouteKind.APP_PAGE) {\n                var _cacheEntry_value1;\n                throw Object.defineProperty(new Error(`Invariant app-page handler received invalid cache entry ${(_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind}`), \"__NEXT_ERROR_CODE\", {\n                    value: \"E707\",\n                    enumerable: false,\n                    configurable: true\n                });\n            }\n            const didPostpone = typeof cacheEntry.value.postponed === 'string';\n            if (isSSG && // We don't want to send a cache header for requests that contain dynamic\n            // data. If this is a Dynamic RSC request or wasn't a Prefetch RSC\n            // request, then we should set the cache header.\n            !isDynamicRSCRequest && (!didPostpone || isPrefetchRSCRequest)) {\n                if (!minimalMode) {\n                    // set x-nextjs-cache header to match the header\n                    // we set for the image-optimizer\n                    res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT');\n                }\n                // Set a header used by the client router to signal the response is static\n                // and should respect the `static` cache staleTime value.\n                res.setHeader(next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_16__.NEXT_IS_PRERENDER_HEADER, '1');\n            }\n            const { value: cachedData } = cacheEntry;\n            // Coerce the cache control parameter from the render.\n            let cacheControl;\n            // If this is a resume request in minimal mode it is streamed with dynamic\n            // content and should not be cached.\n            if (minimalPostponed) {\n                cacheControl = {\n                    revalidate: 0,\n                    expire: undefined\n                };\n            } else if (minimalMode && isRSCRequest && !isPrefetchRSCRequest && isRoutePPREnabled) {\n                cacheControl = {\n                    revalidate: 0,\n                    expire: undefined\n                };\n            } else if (!routeModule.isDev) {\n                // If this is a preview mode request, we shouldn't cache it\n                if (isDraftMode) {\n                    cacheControl = {\n                        revalidate: 0,\n                        expire: undefined\n                    };\n                } else if (!isSSG) {\n                    if (!res.getHeader('Cache-Control')) {\n                        cacheControl = {\n                            revalidate: 0,\n                            expire: undefined\n                        };\n                    }\n                } else if (cacheEntry.cacheControl) {\n                    // If the cache entry has a cache control with a revalidate value that's\n                    // a number, use it.\n                    if (typeof cacheEntry.cacheControl.revalidate === 'number') {\n                        var _cacheEntry_cacheControl;\n                        if (cacheEntry.cacheControl.revalidate < 1) {\n                            throw Object.defineProperty(new Error(`Invalid revalidate configuration provided: ${cacheEntry.cacheControl.revalidate} < 1`), \"__NEXT_ERROR_CODE\", {\n                                value: \"E22\",\n                                enumerable: false,\n                                configurable: true\n                            });\n                        }\n                        cacheControl = {\n                            revalidate: cacheEntry.cacheControl.revalidate,\n                            expire: ((_cacheEntry_cacheControl = cacheEntry.cacheControl) == null ? void 0 : _cacheEntry_cacheControl.expire) ?? nextConfig.expireTime\n                        };\n                    } else {\n                        cacheControl = {\n                            revalidate: next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_21__.CACHE_ONE_YEAR,\n                            expire: undefined\n                        };\n                    }\n                }\n            }\n            cacheEntry.cacheControl = cacheControl;\n            if (typeof segmentPrefetchHeader === 'string' && (cachedData == null ? void 0 : cachedData.kind) === next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_18__.CachedRouteKind.APP_PAGE && cachedData.segmentData) {\n                var _cachedData_headers1;\n                // This is a prefetch request issued by the client Segment Cache. These\n                // should never reach the application layer (lambda). We should either\n                // respond from the cache (HIT) or respond with 204 No Content (MISS).\n                // Set a header to indicate that PPR is enabled for this route. This\n                // lets the client distinguish between a regular cache miss and a cache\n                // miss due to PPR being disabled. In other contexts this header is used\n                // to indicate that the response contains dynamic data, but here we're\n                // only using it to indicate that the feature is enabled — the segment\n                // response itself contains whether the data is dynamic.\n                res.setHeader(next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_16__.NEXT_DID_POSTPONE_HEADER, '2');\n                // Add the cache tags header to the response if it exists and we're in\n                // minimal mode while rendering a static page.\n                const tags = (_cachedData_headers1 = cachedData.headers) == null ? void 0 : _cachedData_headers1[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_21__.NEXT_CACHE_TAGS_HEADER];\n                if (minimalMode && isSSG && tags && typeof tags === 'string') {\n                    res.setHeader(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_21__.NEXT_CACHE_TAGS_HEADER, tags);\n                }\n                const matchedSegment = cachedData.segmentData.get(segmentPrefetchHeader);\n                if (matchedSegment !== undefined) {\n                    // Cache hit\n                    return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({\n                        req,\n                        res,\n                        generateEtags: nextConfig.generateEtags,\n                        poweredByHeader: nextConfig.poweredByHeader,\n                        result: next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_20__[\"default\"].fromStatic(matchedSegment, next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_16__.RSC_CONTENT_TYPE_HEADER),\n                        cacheControl: cacheEntry.cacheControl\n                    });\n                }\n                // Cache miss. Either a cache entry for this route has not been generated\n                // (which technically should not be possible when PPR is enabled, because\n                // at a minimum there should always be a fallback entry) or there's no\n                // match for the requested segment. Respond with a 204 No Content. We\n                // don't bother to respond with 404, because these requests are only\n                // issued as part of a prefetch.\n                res.statusCode = 204;\n                return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({\n                    req,\n                    res,\n                    generateEtags: nextConfig.generateEtags,\n                    poweredByHeader: nextConfig.poweredByHeader,\n                    result: next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_20__[\"default\"].EMPTY,\n                    cacheControl: cacheEntry.cacheControl\n                });\n            }\n            // If there's a callback for `onCacheEntry`, call it with the cache entry\n            // and the revalidate options.\n            const onCacheEntry = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'onCacheEntry');\n            if (onCacheEntry) {\n                const finished = await onCacheEntry({\n                    ...cacheEntry,\n                    // TODO: remove this when upstream doesn't\n                    // always expect this value to be \"PAGE\"\n                    value: {\n                        ...cacheEntry.value,\n                        kind: 'PAGE'\n                    }\n                }, {\n                    url: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'initURL')\n                });\n                if (finished) {\n                    // TODO: maybe we have to end the request?\n                    return null;\n                }\n            }\n            // If the request has a postponed state and it's a resume request we\n            // should error.\n            if (didPostpone && minimalPostponed) {\n                throw Object.defineProperty(new Error('Invariant: postponed state should not be present on a resume request'), \"__NEXT_ERROR_CODE\", {\n                    value: \"E396\",\n                    enumerable: false,\n                    configurable: true\n                });\n            }\n            if (cachedData.headers) {\n                const headers = {\n                    ...cachedData.headers\n                };\n                if (!minimalMode || !isSSG) {\n                    delete headers[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_21__.NEXT_CACHE_TAGS_HEADER];\n                }\n                for (let [key, value] of Object.entries(headers)){\n                    if (typeof value === 'undefined') continue;\n                    if (Array.isArray(value)) {\n                        for (const v of value){\n                            res.appendHeader(key, v);\n                        }\n                    } else if (typeof value === 'number') {\n                        value = value.toString();\n                        res.appendHeader(key, value);\n                    } else {\n                        res.appendHeader(key, value);\n                    }\n                }\n            }\n            // Add the cache tags header to the response if it exists and we're in\n            // minimal mode while rendering a static page.\n            const tags = (_cachedData_headers = cachedData.headers) == null ? void 0 : _cachedData_headers[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_21__.NEXT_CACHE_TAGS_HEADER];\n            if (minimalMode && isSSG && tags && typeof tags === 'string') {\n                res.setHeader(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_21__.NEXT_CACHE_TAGS_HEADER, tags);\n            }\n            // If the request is a data request, then we shouldn't set the status code\n            // from the response because it should always be 200. This should be gated\n            // behind the experimental PPR flag.\n            if (cachedData.status && (!isRSCRequest || !isRoutePPREnabled)) {\n                res.statusCode = cachedData.status;\n            }\n            // Redirect information is encoded in RSC payload, so we don't need to use redirect status codes\n            if (!minimalMode && cachedData.status && next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_27__.RedirectStatusCode[cachedData.status] && isRSCRequest) {\n                res.statusCode = 200;\n            }\n            // Mark that the request did postpone.\n            if (didPostpone) {\n                res.setHeader(next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_16__.NEXT_DID_POSTPONE_HEADER, '1');\n            }\n            // we don't go through this block when preview mode is true\n            // as preview mode is a dynamic request (bypasses cache) and doesn't\n            // generate both HTML and payloads in the same request so continue to just\n            // return the generated payload\n            if (isRSCRequest && !isDraftMode) {\n                // If this is a dynamic RSC request, then stream the response.\n                if (typeof cachedData.rscData === 'undefined') {\n                    if (cachedData.postponed) {\n                        throw Object.defineProperty(new Error('Invariant: Expected postponed to be undefined'), \"__NEXT_ERROR_CODE\", {\n                            value: \"E372\",\n                            enumerable: false,\n                            configurable: true\n                        });\n                    }\n                    return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({\n                        req,\n                        res,\n                        generateEtags: nextConfig.generateEtags,\n                        poweredByHeader: nextConfig.poweredByHeader,\n                        result: cachedData.html,\n                        // Dynamic RSC responses cannot be cached, even if they're\n                        // configured with `force-static` because we have no way of\n                        // distinguishing between `force-static` and pages that have no\n                        // postponed state.\n                        // TODO: distinguish `force-static` from pages with no postponed state (static)\n                        cacheControl: isDynamicRSCRequest ? {\n                            revalidate: 0,\n                            expire: undefined\n                        } : cacheEntry.cacheControl\n                    });\n                }\n                // As this isn't a prefetch request, we should serve the static flight\n                // data.\n                return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({\n                    req,\n                    res,\n                    generateEtags: nextConfig.generateEtags,\n                    poweredByHeader: nextConfig.poweredByHeader,\n                    result: next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_20__[\"default\"].fromStatic(cachedData.rscData, next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_16__.RSC_CONTENT_TYPE_HEADER),\n                    cacheControl: cacheEntry.cacheControl\n                });\n            }\n            // This is a request for HTML data.\n            let body = cachedData.html;\n            // If there's no postponed state, we should just serve the HTML. This\n            // should also be the case for a resume request because it's completed\n            // as a server render (rather than a static render).\n            if (!didPostpone || minimalMode || isRSCRequest) {\n                // If we're in test mode, we should add a sentinel chunk to the response\n                // that's between the static and dynamic parts so we can compare the\n                // chunks and add assertions.\n                if (false) {}\n                return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({\n                    req,\n                    res,\n                    generateEtags: nextConfig.generateEtags,\n                    poweredByHeader: nextConfig.poweredByHeader,\n                    result: body,\n                    cacheControl: cacheEntry.cacheControl\n                });\n            }\n            // If we're debugging the static shell or the dynamic API accesses, we\n            // should just serve the HTML without resuming the render. The returned\n            // HTML will be the static shell so all the Dynamic API's will be used\n            // during static generation.\n            if (isDebugStaticShell || isDebugDynamicAccesses) {\n                // Since we're not resuming the render, we need to at least add the\n                // closing body and html tags to create valid HTML.\n                body.push(new ReadableStream({\n                    start (controller) {\n                        controller.enqueue(next_dist_server_stream_utils_encoded_tags__WEBPACK_IMPORTED_MODULE_22__.ENCODED_TAGS.CLOSED.BODY_AND_HTML);\n                        controller.close();\n                    }\n                }));\n                return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({\n                    req,\n                    res,\n                    generateEtags: nextConfig.generateEtags,\n                    poweredByHeader: nextConfig.poweredByHeader,\n                    result: body,\n                    cacheControl: {\n                        revalidate: 0,\n                        expire: undefined\n                    }\n                });\n            }\n            // If we're in test mode, we should add a sentinel chunk to the response\n            // that's between the static and dynamic parts so we can compare the\n            // chunks and add assertions.\n            if (false) {}\n            // This request has postponed, so let's create a new transformer that the\n            // dynamic data can pipe to that will attach the dynamic data to the end\n            // of the response.\n            const transformer = new TransformStream();\n            body.push(transformer.readable);\n            // Perform the render again, but this time, provide the postponed state.\n            // We don't await because we want the result to start streaming now, and\n            // we've already chained the transformer's readable to the render result.\n            doRender({\n                span,\n                postponed: cachedData.postponed,\n                // This is a resume render, not a fallback render, so we don't need to\n                // set this.\n                fallbackRouteParams: null\n            }).then(async (result)=>{\n                var _result_value;\n                if (!result) {\n                    throw Object.defineProperty(new Error('Invariant: expected a result to be returned'), \"__NEXT_ERROR_CODE\", {\n                        value: \"E463\",\n                        enumerable: false,\n                        configurable: true\n                    });\n                }\n                if (((_result_value = result.value) == null ? void 0 : _result_value.kind) !== next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_18__.CachedRouteKind.APP_PAGE) {\n                    var _result_value1;\n                    throw Object.defineProperty(new Error(`Invariant: expected a page response, got ${(_result_value1 = result.value) == null ? void 0 : _result_value1.kind}`), \"__NEXT_ERROR_CODE\", {\n                        value: \"E305\",\n                        enumerable: false,\n                        configurable: true\n                    });\n                }\n                // Pipe the resume result to the transformer.\n                await result.value.html.pipeTo(transformer.writable);\n            }).catch((err)=>{\n                // An error occurred during piping or preparing the render, abort\n                // the transformers writer so we can terminate the stream.\n                transformer.writable.abort(err).catch((e)=>{\n                    console.error(\"couldn't abort transformer\", e);\n                });\n            });\n            return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({\n                req,\n                res,\n                generateEtags: nextConfig.generateEtags,\n                poweredByHeader: nextConfig.poweredByHeader,\n                result: body,\n                // We don't want to cache the response if it has postponed data because\n                // the response being sent to the client it's dynamic parts are streamed\n                // to the client on the same request.\n                cacheControl: {\n                    revalidate: 0,\n                    expire: undefined\n                }\n            });\n        };\n        // TODO: activeSpan code path is for when wrapped by\n        // next-server can be removed when this is no longer used\n        if (activeSpan) {\n            await handleResponse(activeSpan);\n        } else {\n            return await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__.BaseServerSpan.handleRequest, {\n                    spanName: `${method} ${req.url}`,\n                    kind: next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__.SpanKind.SERVER,\n                    attributes: {\n                        'http.method': method,\n                        'http.target': req.url\n                    }\n                }, handleResponse));\n        }\n    } catch (err) {\n        if (!(err instanceof next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_24__.NoFallbackError)) {\n            await routeModule.onRequestError(req, err, {\n                routerKind: 'App Router',\n                routePath: srcPage,\n                routeType: 'render',\n                revalidateReason: (0,next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_2__.getRevalidateReason)({\n                    isRevalidate: isSSG,\n                    isOnDemandRevalidate\n                })\n            }, routerServerContext);\n        }\n        // rethrow so that we can handle serving error page\n        throw err;\n    }\n}\n// TODO: omit this from production builds, only test builds should include it\n/**\n * Creates a readable stream that emits a PPR boundary sentinel.\n *\n * @returns A readable stream that emits a PPR boundary sentinel.\n */ function createPPRBoundarySentinel() {\n    return new ReadableStream({\n        start (controller) {\n            controller.enqueue(new TextEncoder().encode('<!-- PPR_BOUNDARY_SENTINEL -->'));\n            controller.close();\n        }\n    });\n}\n\n//# sourceMappingURL=app-page.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64, \n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Finvoice%2Fpage&page=%2Finvoice%2Fpage&appPaths=%2Finvoice%2Fpage&pagePath=private-next-app-dir%2Finvoice%2Fpage.tsx&appDir=%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!\n");

/***/ }),

/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-error.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fasync-metadata.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fframework%2Fboundary-components.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.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%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-error.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fasync-metadata.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fframework%2Fboundary-components.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.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/builtin/global-error.js */ \"(rsc)/./node_modules/next/dist/client/components/builtin/global-error.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/client-page.js */ \"(rsc)/./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/client-segment.js */ \"(rsc)/./node_modules/next/dist/client/components/client-segment.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js */ \"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/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 */ \"(rsc)/./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/metadata/async-metadata.js */ \"(rsc)/./node_modules/next/dist/client/components/metadata/async-metadata.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 */ \"(rsc)/./node_modules/next/dist/client/components/render-from-template-context.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/lib/framework/boundary-components.js */ \"(rsc)/./node_modules/next/dist/lib/framework/boundary-components.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/lib/metadata/generate/icon-mark.js */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js */ \"(rsc)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\", 23));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64, \n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-error.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fasync-metadata.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fframework%2Fboundary-components.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n");

/***/ }),

/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=true!":
/*!**************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***!
  \**************************************************************************************************************************************************************************************************************************************************************/
/***/ (() => {



/***/ }),

/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fsrc%2Fapp%2Finvoice%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%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fsrc%2Fapp%2Finvoice%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***!
  \*********************************************************************************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/invoice/page.tsx */ \"(rsc)/./src/app/invoice/page.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGamFrZXNob3JlJTJGLmNsYXdkYm90JTJGd29ya3NwYWNlJTJGZ2hsLWpzb24tcmVuZGVyLXNwaWtlJTJGc3JjJTJGYXBwJTJGaW52b2ljZSUyRnBhZ2UudHN4JTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJnNlcnZlcj10cnVlISIsIm1hcHBpbmdzIjoiQUFBQSxnS0FBd0giLCJzb3VyY2VzIjpbIiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9qYWtlc2hvcmUvLmNsYXdkYm90L3dvcmtzcGFjZS9naGwtanNvbi1yZW5kZXItc3Bpa2Uvc3JjL2FwcC9pbnZvaWNlL3BhZ2UudHN4XCIpO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fsrc%2Fapp%2Finvoice%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n");

/***/ }),

/***/ "(rsc)/./src/app/globals.css":
/*!*****************************!*\
  !*** ./src/app/globals.css ***!
  \*****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"28098c6e5acd\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2dsb2JhbHMuY3NzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpRUFBZSxjQUFjO0FBQzdCLElBQUksS0FBVSxFQUFFLEVBQXVCIiwic291cmNlcyI6WyIvVXNlcnMvamFrZXNob3JlLy5jbGF3ZGJvdC93b3Jrc3BhY2UvZ2hsLWpzb24tcmVuZGVyLXNwaWtlL3NyYy9hcHAvZ2xvYmFscy5jc3MiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCIyODA5OGM2ZTVhY2RcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./src/app/globals.css\n");

/***/ }),

/***/ "(rsc)/./src/app/invoice/page.tsx":
/*!**********************************!*\
  !*** ./src/app/invoice/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\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-server-dom-webpack/server */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js\");\n/* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__);\n// This file is generated by the Webpack next-flight-loader.\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)(\nfunction() { throw new Error(\"Attempted to call the default export of \\\"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/app/invoice/page.tsx\\\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n\"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/app/invoice/page.tsx\",\n\"default\",\n));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2ludm9pY2UvcGFnZS50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEiLCJzb3VyY2VzIjpbIl9OX0UvLi9zcmMvYXBwL2ludm9pY2UvcGFnZS50c3gvX19uZXh0anMtaW50ZXJuYWwtcHJveHkubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgdGhlIFdlYnBhY2sgbmV4dC1mbGlnaHQtbG9hZGVyLlxuaW1wb3J0IHsgcmVnaXN0ZXJDbGllbnRSZWZlcmVuY2UgfSBmcm9tIFwicmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL3NlcnZlclwiO1xuZXhwb3J0IGRlZmF1bHQgcmVnaXN0ZXJDbGllbnRSZWZlcmVuY2UoXG5mdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKFwiQXR0ZW1wdGVkIHRvIGNhbGwgdGhlIGRlZmF1bHQgZXhwb3J0IG9mIFxcXCIvVXNlcnMvamFrZXNob3JlLy5jbGF3ZGJvdC93b3Jrc3BhY2UvZ2hsLWpzb24tcmVuZGVyLXNwaWtlL3NyYy9hcHAvaW52b2ljZS9wYWdlLnRzeFxcXCIgZnJvbSB0aGUgc2VydmVyLCBidXQgaXQncyBvbiB0aGUgY2xpZW50LiBJdCdzIG5vdCBwb3NzaWJsZSB0byBpbnZva2UgYSBjbGllbnQgZnVuY3Rpb24gZnJvbSB0aGUgc2VydmVyLCBpdCBjYW4gb25seSBiZSByZW5kZXJlZCBhcyBhIENvbXBvbmVudCBvciBwYXNzZWQgdG8gcHJvcHMgb2YgYSBDbGllbnQgQ29tcG9uZW50LlwiKTsgfSxcblwiL1VzZXJzL2pha2VzaG9yZS8uY2xhd2Rib3Qvd29ya3NwYWNlL2dobC1qc29uLXJlbmRlci1zcGlrZS9zcmMvYXBwL2ludm9pY2UvcGFnZS50c3hcIixcblwiZGVmYXVsdFwiLFxuKTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./src/app/invoice/page.tsx\n");

/***/ }),

/***/ "(rsc)/./src/app/layout.tsx":
/*!****************************!*\
  !*** ./src/app/layout.tsx ***!
  \****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ RootLayout),\n/* harmony export */   metadata: () => (/* binding */ metadata)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _globals_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./globals.css */ \"(rsc)/./src/app/globals.css\");\n\n\nconst metadata = {\n    title: 'GHL json-render Spike',\n    description: 'Proof-of-concept: AI-generated GHL UIs via json-render'\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: \"bg-gray-100 min-h-screen\",\n            children: children\n        }, void 0, false, {\n            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/app/layout.tsx\",\n            lineNumber: 12,\n            columnNumber: 7\n        }, this)\n    }, void 0, false, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/app/layout.tsx\",\n        lineNumber: 11,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2xheW91dC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQ3NCO0FBRWYsTUFBTUEsV0FBcUI7SUFDaENDLE9BQU87SUFDUEMsYUFBYTtBQUNmLEVBQUM7QUFFYyxTQUFTQyxXQUFXLEVBQUVDLFFBQVEsRUFBaUM7SUFDNUUscUJBQ0UsOERBQUNDO1FBQUtDLE1BQUs7a0JBQ1QsNEVBQUNDO1lBQUtDLFdBQVU7c0JBQTRCSjs7Ozs7Ozs7Ozs7QUFHbEQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qYWtlc2hvcmUvLmNsYXdkYm90L3dvcmtzcGFjZS9naGwtanNvbi1yZW5kZXItc3Bpa2Uvc3JjL2FwcC9sYXlvdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWV0YWRhdGEgfSBmcm9tICduZXh0J1xuaW1wb3J0ICcuL2dsb2JhbHMuY3NzJ1xuXG5leHBvcnQgY29uc3QgbWV0YWRhdGE6IE1ldGFkYXRhID0ge1xuICB0aXRsZTogJ0dITCBqc29uLXJlbmRlciBTcGlrZScsXG4gIGRlc2NyaXB0aW9uOiAnUHJvb2Ytb2YtY29uY2VwdDogQUktZ2VuZXJhdGVkIEdITCBVSXMgdmlhIGpzb24tcmVuZGVyJyxcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUm9vdExheW91dCh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9KSB7XG4gIHJldHVybiAoXG4gICAgPGh0bWwgbGFuZz1cImVuXCI+XG4gICAgICA8Ym9keSBjbGFzc05hbWU9XCJiZy1ncmF5LTEwMCBtaW4taC1zY3JlZW5cIj57Y2hpbGRyZW59PC9ib2R5PlxuICAgIDwvaHRtbD5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIm1ldGFkYXRhIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsIlJvb3RMYXlvdXQiLCJjaGlsZHJlbiIsImh0bWwiLCJsYW5nIiwiYm9keSIsImNsYXNzTmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./src/app/layout.tsx\n");

/***/ }),

/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-error.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fasync-metadata.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fframework%2Fboundary-components.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.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%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-error.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fasync-metadata.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fframework%2Fboundary-components.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.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/builtin/global-error.js */ \"(ssr)/./node_modules/next/dist/client/components/builtin/global-error.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/client-segment.js */ \"(ssr)/./node_modules/next/dist/client/components/client-segment.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/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/metadata/async-metadata.js */ \"(ssr)/./node_modules/next/dist/client/components/metadata/async-metadata.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;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/lib/framework/boundary-components.js */ \"(ssr)/./node_modules/next/dist/lib/framework/boundary-components.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./node_modules/next/dist/lib/metadata/generate/icon-mark.js */ \"(ssr)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js\"));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\", 23));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64, \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%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-error.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fasync-metadata.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fframework%2Fboundary-components.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n");

/***/ }),

/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=true!":
/*!**************************************************************************************************************************************************************************************************************************************************************!*\
  !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***!
  \**************************************************************************************************************************************************************************************************************************************************************/
/***/ (() => {



/***/ }),

/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fsrc%2Fapp%2Finvoice%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%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fsrc%2Fapp%2Finvoice%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***!
  \*********************************************************************************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/invoice/page.tsx */ \"(ssr)/./src/app/invoice/page.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGamFrZXNob3JlJTJGLmNsYXdkYm90JTJGd29ya3NwYWNlJTJGZ2hsLWpzb24tcmVuZGVyLXNwaWtlJTJGc3JjJTJGYXBwJTJGaW52b2ljZSUyRnBhZ2UudHN4JTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJnNlcnZlcj10cnVlISIsIm1hcHBpbmdzIjoiQUFBQSxnS0FBd0giLCJzb3VyY2VzIjpbIiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9qYWtlc2hvcmUvLmNsYXdkYm90L3dvcmtzcGFjZS9naGwtanNvbi1yZW5kZXItc3Bpa2Uvc3JjL2FwcC9pbnZvaWNlL3BhZ2UudHN4XCIpO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fsrc%2Fapp%2Finvoice%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n");

/***/ }),

/***/ "(ssr)/./src/app/invoice/page.tsx":
/*!**********************************!*\
  !*** ./src/app/invoice/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 */ InvoicePage)\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/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 _lib_GHLRenderer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/lib/GHLRenderer */ \"(ssr)/./src/lib/GHLRenderer.tsx\");\n/* harmony import */ var _examples_invoice_preview_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/examples/invoice-preview.json */ \"(ssr)/./src/examples/invoice-preview.json\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/link */ \"(ssr)/./node_modules/next/dist/client/app-dir/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_3__);\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\nfunction InvoicePage() {\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        className: \"min-h-screen bg-gray-50\",\n        children: [\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n                className: \"bg-white border-b border-gray-200 px-4 py-2 flex items-center gap-3\",\n                children: [\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_3___default()), {\n                        href: \"/\",\n                        className: \"text-indigo-600 hover:text-indigo-800 text-sm font-medium\",\n                        children: \"← Back\"\n                    }, void 0, false, {\n                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/app/invoice/page.tsx\",\n                        lineNumber: 12,\n                        columnNumber: 9\n                    }, this),\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                        className: \"text-gray-400\",\n                        children: \"|\"\n                    }, void 0, false, {\n                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/app/invoice/page.tsx\",\n                        lineNumber: 13,\n                        columnNumber: 9\n                    }, this),\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                        className: \"text-sm text-gray-600\",\n                        children: \"Invoice Preview Demo\"\n                    }, void 0, false, {\n                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/app/invoice/page.tsx\",\n                        lineNumber: 14,\n                        columnNumber: 9\n                    }, this),\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                        className: \"ml-auto text-xs text-gray-400 font-mono\",\n                        children: \"JSON: invoice-preview.json\"\n                    }, void 0, false, {\n                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/app/invoice/page.tsx\",\n                        lineNumber: 15,\n                        columnNumber: 9\n                    }, this)\n                ]\n            }, void 0, true, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/app/invoice/page.tsx\",\n                lineNumber: 11,\n                columnNumber: 7\n            }, this),\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                className: \"max-w-3xl mx-auto p-6\",\n                children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_lib_GHLRenderer__WEBPACK_IMPORTED_MODULE_1__.GHLRenderer, {\n                    tree: _examples_invoice_preview_json__WEBPACK_IMPORTED_MODULE_2__\n                }, void 0, false, {\n                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/app/invoice/page.tsx\",\n                    lineNumber: 18,\n                    columnNumber: 9\n                }, this)\n            }, void 0, false, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/app/invoice/page.tsx\",\n                lineNumber: 17,\n                columnNumber: 7\n            }, this)\n        ]\n    }, void 0, true, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/app/invoice/page.tsx\",\n        lineNumber: 10,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvYXBwL2ludm9pY2UvcGFnZS50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFFK0M7QUFDVTtBQUU3QjtBQUViLFNBQVNHO0lBQ3RCLHFCQUNFLDhEQUFDQztRQUFJQyxXQUFVOzswQkFDYiw4REFBQ0M7Z0JBQUlELFdBQVU7O2tDQUNiLDhEQUFDSCxrREFBSUE7d0JBQUNLLE1BQUs7d0JBQUlGLFdBQVU7a0NBQTREOzs7Ozs7a0NBQ3JGLDhEQUFDRzt3QkFBS0gsV0FBVTtrQ0FBZ0I7Ozs7OztrQ0FDaEMsOERBQUNHO3dCQUFLSCxXQUFVO2tDQUF3Qjs7Ozs7O2tDQUN4Qyw4REFBQ0c7d0JBQUtILFdBQVU7a0NBQTBDOzs7Ozs7Ozs7Ozs7MEJBRTVELDhEQUFDRDtnQkFBSUMsV0FBVTswQkFDYiw0RUFBQ0wseURBQVdBO29CQUFDUyxNQUFNUiwyREFBV0E7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSXRDIiwic291cmNlcyI6WyIvVXNlcnMvamFrZXNob3JlLy5jbGF3ZGJvdC93b3Jrc3BhY2UvZ2hsLWpzb24tcmVuZGVyLXNwaWtlL3NyYy9hcHAvaW52b2ljZS9wYWdlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgR0hMUmVuZGVyZXIgfSBmcm9tICdAL2xpYi9HSExSZW5kZXJlcidcbmltcG9ydCBpbnZvaWNlVHJlZSBmcm9tICdAL2V4YW1wbGVzL2ludm9pY2UtcHJldmlldy5qc29uJ1xuaW1wb3J0IHR5cGUgeyBVSVRyZWUgfSBmcm9tICdAanNvbi1yZW5kZXIvY29yZSdcbmltcG9ydCBMaW5rIGZyb20gJ25leHQvbGluaydcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gSW52b2ljZVBhZ2UoKSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJtaW4taC1zY3JlZW4gYmctZ3JheS01MFwiPlxuICAgICAgPG5hdiBjbGFzc05hbWU9XCJiZy13aGl0ZSBib3JkZXItYiBib3JkZXItZ3JheS0yMDAgcHgtNCBweS0yIGZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gICAgICAgIDxMaW5rIGhyZWY9XCIvXCIgY2xhc3NOYW1lPVwidGV4dC1pbmRpZ28tNjAwIGhvdmVyOnRleHQtaW5kaWdvLTgwMCB0ZXh0LXNtIGZvbnQtbWVkaXVtXCI+4oaQIEJhY2s8L0xpbms+XG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtZ3JheS00MDBcIj58PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj5JbnZvaWNlIFByZXZpZXcgRGVtbzwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibWwtYXV0byB0ZXh0LXhzIHRleHQtZ3JheS00MDAgZm9udC1tb25vXCI+SlNPTjogaW52b2ljZS1wcmV2aWV3Lmpzb248L3NwYW4+XG4gICAgICA8L25hdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWF4LXctM3hsIG14LWF1dG8gcC02XCI+XG4gICAgICAgIDxHSExSZW5kZXJlciB0cmVlPXtpbnZvaWNlVHJlZSBhcyB1bmtub3duIGFzIFVJVHJlZX0gLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiR0hMUmVuZGVyZXIiLCJpbnZvaWNlVHJlZSIsIkxpbmsiLCJJbnZvaWNlUGFnZSIsImRpdiIsImNsYXNzTmFtZSIsIm5hdiIsImhyZWYiLCJzcGFuIiwidHJlZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/app/invoice/page.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/ActionBar.tsx":
/*!**************************************!*\
  !*** ./src/components/ActionBar.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 */   ActionBar: () => (/* binding */ ActionBar)\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/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ ActionBar auto */ \nconst alignMap = {\n    left: 'justify-start',\n    center: 'justify-center',\n    right: 'justify-end'\n};\nfunction ActionBar({ element, children }) {\n    const { align = 'right' } = element.props;\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        className: `flex gap-3 mt-5 ${alignMap[align] || alignMap.right}`,\n        children: children\n    }, void 0, false, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/ActionBar.tsx\",\n        lineNumber: 15,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9BY3Rpb25CYXIudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxNQUFNQSxXQUFtQztJQUN2Q0MsTUFBTTtJQUNOQyxRQUFRO0lBQ1JDLE9BQU87QUFDVDtBQUVPLFNBQVNDLFVBQVUsRUFBRUMsT0FBTyxFQUFFQyxRQUFRLEVBQXdCO0lBQ25FLE1BQU0sRUFBRUMsUUFBUSxPQUFPLEVBQUUsR0FBR0YsUUFBUUcsS0FBSztJQUV6QyxxQkFDRSw4REFBQ0M7UUFBSUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFVixRQUFRLENBQUNPLE1BQU0sSUFBSVAsU0FBU0csS0FBSyxFQUFFO2tCQUNuRUc7Ozs7OztBQUdQIiwic291cmNlcyI6WyIvVXNlcnMvamFrZXNob3JlLy5jbGF3ZGJvdC93b3Jrc3BhY2UvZ2hsLWpzb24tcmVuZGVyLXNwaWtlL3NyYy9jb21wb25lbnRzL0FjdGlvbkJhci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB0eXBlIHsgQ29tcG9uZW50UmVuZGVyUHJvcHMgfSBmcm9tICdAanNvbi1yZW5kZXIvcmVhY3QnXG5cbmNvbnN0IGFsaWduTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBsZWZ0OiAnanVzdGlmeS1zdGFydCcsXG4gIGNlbnRlcjogJ2p1c3RpZnktY2VudGVyJyxcbiAgcmlnaHQ6ICdqdXN0aWZ5LWVuZCcsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBBY3Rpb25CYXIoeyBlbGVtZW50LCBjaGlsZHJlbiB9OiBDb21wb25lbnRSZW5kZXJQcm9wcykge1xuICBjb25zdCB7IGFsaWduID0gJ3JpZ2h0JyB9ID0gZWxlbWVudC5wcm9wcyBhcyB7IGFsaWduPzogc3RyaW5nIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtgZmxleCBnYXAtMyBtdC01ICR7YWxpZ25NYXBbYWxpZ25dIHx8IGFsaWduTWFwLnJpZ2h0fWB9PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiYWxpZ25NYXAiLCJsZWZ0IiwiY2VudGVyIiwicmlnaHQiLCJBY3Rpb25CYXIiLCJlbGVtZW50IiwiY2hpbGRyZW4iLCJhbGlnbiIsInByb3BzIiwiZGl2IiwiY2xhc3NOYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/components/ActionBar.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/ActionButton.tsx":
/*!*****************************************!*\
  !*** ./src/components/ActionButton.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 */   ActionButton: () => (/* binding */ ActionButton)\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/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 _json_render_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @json-render/react */ \"(ssr)/./node_modules/@json-render/react/dist/index.mjs\");\n/* __next_internal_client_entry_do_not_use__ ActionButton auto */ \n\nconst variantClasses = {\n    primary: 'bg-indigo-600 hover:bg-indigo-700 text-white shadow-sm',\n    secondary: 'bg-white hover:bg-gray-50 text-gray-700 border border-gray-300 shadow-sm',\n    danger: 'bg-red-600 hover:bg-red-700 text-white shadow-sm',\n    ghost: 'text-gray-600 hover:text-gray-900 hover:bg-gray-100'\n};\nconst sizeClasses = {\n    sm: 'px-3 py-1.5 text-xs',\n    md: 'px-4 py-2 text-sm',\n    lg: 'px-6 py-2.5 text-base'\n};\nfunction ActionButton({ element }) {\n    const { label, variant = 'secondary', size = 'md', disabled } = element.props;\n    const { execute } = (0,_json_render_react__WEBPACK_IMPORTED_MODULE_1__.useActions)();\n    // The action is on the element itself\n    const action = element.props.action;\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n        disabled: disabled,\n        onClick: ()=>action && execute(action),\n        className: `rounded-lg font-medium transition-colors disabled:opacity-50 ${variantClasses[variant] || variantClasses.secondary} ${sizeClasses[size] || sizeClasses.md}`,\n        children: label\n    }, void 0, false, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/ActionButton.tsx\",\n        lineNumber: 29,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9BY3Rpb25CdXR0b24udHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBRytDO0FBRS9DLE1BQU1DLGlCQUF5QztJQUM3Q0MsU0FBUztJQUNUQyxXQUFXO0lBQ1hDLFFBQVE7SUFDUkMsT0FBTztBQUNUO0FBRUEsTUFBTUMsY0FBc0M7SUFDMUNDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0FBQ047QUFFTyxTQUFTQyxhQUFhLEVBQUVDLE9BQU8sRUFBd0I7SUFDNUQsTUFBTSxFQUFFQyxLQUFLLEVBQUVDLFVBQVUsV0FBVyxFQUFFQyxPQUFPLElBQUksRUFBRUMsUUFBUSxFQUFFLEdBQUdKLFFBQVFLLEtBQUs7SUFHN0UsTUFBTSxFQUFFQyxPQUFPLEVBQUUsR0FBR2pCLDhEQUFVQTtJQUU5QixzQ0FBc0M7SUFDdEMsTUFBTWtCLFNBQVMsUUFBZ0RGLEtBQUssQ0FBQ0UsTUFBTTtJQUUzRSxxQkFDRSw4REFBQ0M7UUFDQ0osVUFBVUE7UUFDVkssU0FBUyxJQUFNRixVQUFVRCxRQUFRQztRQUNqQ0csV0FBVyxDQUFDLDZEQUE2RCxFQUFFcEIsY0FBYyxDQUFDWSxRQUFRLElBQUlaLGVBQWVFLFNBQVMsQ0FBQyxDQUFDLEVBQUVHLFdBQVcsQ0FBQ1EsS0FBSyxJQUFJUixZQUFZRSxFQUFFLEVBQUU7a0JBRXRLSTs7Ozs7O0FBR1AiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qYWtlc2hvcmUvLmNsYXdkYm90L3dvcmtzcGFjZS9naGwtanNvbi1yZW5kZXItc3Bpa2Uvc3JjL2NvbXBvbmVudHMvQWN0aW9uQnV0dG9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRSZW5kZXJQcm9wcyB9IGZyb20gJ0Bqc29uLXJlbmRlci9yZWFjdCdcbmltcG9ydCB7IHVzZUFjdGlvbnMgfSBmcm9tICdAanNvbi1yZW5kZXIvcmVhY3QnXG5cbmNvbnN0IHZhcmlhbnRDbGFzc2VzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBwcmltYXJ5OiAnYmctaW5kaWdvLTYwMCBob3ZlcjpiZy1pbmRpZ28tNzAwIHRleHQtd2hpdGUgc2hhZG93LXNtJyxcbiAgc2Vjb25kYXJ5OiAnYmctd2hpdGUgaG92ZXI6YmctZ3JheS01MCB0ZXh0LWdyYXktNzAwIGJvcmRlciBib3JkZXItZ3JheS0zMDAgc2hhZG93LXNtJyxcbiAgZGFuZ2VyOiAnYmctcmVkLTYwMCBob3ZlcjpiZy1yZWQtNzAwIHRleHQtd2hpdGUgc2hhZG93LXNtJyxcbiAgZ2hvc3Q6ICd0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtZ3JheS05MDAgaG92ZXI6YmctZ3JheS0xMDAnLFxufVxuXG5jb25zdCBzaXplQ2xhc3NlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgc206ICdweC0zIHB5LTEuNSB0ZXh0LXhzJyxcbiAgbWQ6ICdweC00IHB5LTIgdGV4dC1zbScsXG4gIGxnOiAncHgtNiBweS0yLjUgdGV4dC1iYXNlJyxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEFjdGlvbkJ1dHRvbih7IGVsZW1lbnQgfTogQ29tcG9uZW50UmVuZGVyUHJvcHMpIHtcbiAgY29uc3QgeyBsYWJlbCwgdmFyaWFudCA9ICdzZWNvbmRhcnknLCBzaXplID0gJ21kJywgZGlzYWJsZWQgfSA9IGVsZW1lbnQucHJvcHMgYXMge1xuICAgIGxhYmVsOiBzdHJpbmc7IHZhcmlhbnQ/OiBzdHJpbmc7IHNpemU/OiBzdHJpbmc7IGljb24/OiBzdHJpbmc7IGRpc2FibGVkPzogYm9vbGVhblxuICB9XG4gIGNvbnN0IHsgZXhlY3V0ZSB9ID0gdXNlQWN0aW9ucygpXG5cbiAgLy8gVGhlIGFjdGlvbiBpcyBvbiB0aGUgZWxlbWVudCBpdHNlbGZcbiAgY29uc3QgYWN0aW9uID0gKGVsZW1lbnQgYXMgeyBwcm9wczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfSkucHJvcHMuYWN0aW9uIGFzIHsgbmFtZTogc3RyaW5nOyBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9IHwgdW5kZWZpbmVkXG5cbiAgcmV0dXJuIChcbiAgICA8YnV0dG9uXG4gICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICBvbkNsaWNrPXsoKSA9PiBhY3Rpb24gJiYgZXhlY3V0ZShhY3Rpb24pfVxuICAgICAgY2xhc3NOYW1lPXtgcm91bmRlZC1sZyBmb250LW1lZGl1bSB0cmFuc2l0aW9uLWNvbG9ycyBkaXNhYmxlZDpvcGFjaXR5LTUwICR7dmFyaWFudENsYXNzZXNbdmFyaWFudF0gfHwgdmFyaWFudENsYXNzZXMuc2Vjb25kYXJ5fSAke3NpemVDbGFzc2VzW3NpemVdIHx8IHNpemVDbGFzc2VzLm1kfWB9XG4gICAgPlxuICAgICAge2xhYmVsfVxuICAgIDwvYnV0dG9uPlxuICApXG59XG4iXSwibmFtZXMiOlsidXNlQWN0aW9ucyIsInZhcmlhbnRDbGFzc2VzIiwicHJpbWFyeSIsInNlY29uZGFyeSIsImRhbmdlciIsImdob3N0Iiwic2l6ZUNsYXNzZXMiLCJzbSIsIm1kIiwibGciLCJBY3Rpb25CdXR0b24iLCJlbGVtZW50IiwibGFiZWwiLCJ2YXJpYW50Iiwic2l6ZSIsImRpc2FibGVkIiwicHJvcHMiLCJleGVjdXRlIiwiYWN0aW9uIiwiYnV0dG9uIiwib25DbGljayIsImNsYXNzTmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/components/ActionButton.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/Card.tsx":
/*!*********************************!*\
  !*** ./src/components/Card.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 */   Card: () => (/* binding */ Card)\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/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ Card auto */ \nconst paddingMap = {\n    none: 'p-0',\n    sm: 'p-3',\n    md: 'p-5',\n    lg: 'p-6'\n};\nfunction Card({ element, children }) {\n    const { title, subtitle, padding = 'md', noBorder } = element.props;\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        className: `bg-white rounded-xl ${noBorder ? '' : 'shadow-sm'} overflow-hidden mb-4`,\n        children: [\n            title && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                className: \"px-5 py-4 border-b border-gray-200\",\n                children: [\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n                        className: \"text-lg font-semibold text-gray-900\",\n                        children: title\n                    }, void 0, false, {\n                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/Card.tsx\",\n                        lineNumber: 16,\n                        columnNumber: 11\n                    }, this),\n                    subtitle && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n                        className: \"text-sm text-gray-500 mt-0.5\",\n                        children: subtitle\n                    }, void 0, false, {\n                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/Card.tsx\",\n                        lineNumber: 17,\n                        columnNumber: 24\n                    }, this)\n                ]\n            }, void 0, true, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/Card.tsx\",\n                lineNumber: 15,\n                columnNumber: 9\n            }, this),\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                className: paddingMap[padding] || paddingMap.md,\n                children: children\n            }, void 0, false, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/Card.tsx\",\n                lineNumber: 20,\n                columnNumber: 7\n            }, this)\n        ]\n    }, void 0, true, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/Card.tsx\",\n        lineNumber: 13,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9DYXJkLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsTUFBTUEsYUFBYTtJQUFFQyxNQUFNO0lBQU9DLElBQUk7SUFBT0MsSUFBSTtJQUFPQyxJQUFJO0FBQU07QUFFM0QsU0FBU0MsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsRUFBd0I7SUFDOUQsTUFBTSxFQUFFQyxLQUFLLEVBQUVDLFFBQVEsRUFBRUMsVUFBVSxJQUFJLEVBQUVDLFFBQVEsRUFBRSxHQUFHTCxRQUFRTSxLQUFLO0lBSW5FLHFCQUNFLDhEQUFDQztRQUFJQyxXQUFXLENBQUMsb0JBQW9CLEVBQUVILFdBQVcsS0FBSyxZQUFZLHFCQUFxQixDQUFDOztZQUN0RkgsdUJBQ0MsOERBQUNLO2dCQUFJQyxXQUFVOztrQ0FDYiw4REFBQ0M7d0JBQUdELFdBQVU7a0NBQXVDTjs7Ozs7O29CQUNwREMsMEJBQVksOERBQUNPO3dCQUFFRixXQUFVO2tDQUFnQ0w7Ozs7Ozs7Ozs7OzswQkFHOUQsOERBQUNJO2dCQUFJQyxXQUFXZCxVQUFVLENBQUNVLFFBQW1DLElBQUlWLFdBQVdHLEVBQUU7MEJBQzVFSTs7Ozs7Ozs7Ozs7O0FBSVQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qYWtlc2hvcmUvLmNsYXdkYm90L3dvcmtzcGFjZS9naGwtanNvbi1yZW5kZXItc3Bpa2Uvc3JjL2NvbXBvbmVudHMvQ2FyZC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB0eXBlIHsgQ29tcG9uZW50UmVuZGVyUHJvcHMgfSBmcm9tICdAanNvbi1yZW5kZXIvcmVhY3QnXG5cbmNvbnN0IHBhZGRpbmdNYXAgPSB7IG5vbmU6ICdwLTAnLCBzbTogJ3AtMycsIG1kOiAncC01JywgbGc6ICdwLTYnIH1cblxuZXhwb3J0IGZ1bmN0aW9uIENhcmQoeyBlbGVtZW50LCBjaGlsZHJlbiB9OiBDb21wb25lbnRSZW5kZXJQcm9wcykge1xuICBjb25zdCB7IHRpdGxlLCBzdWJ0aXRsZSwgcGFkZGluZyA9ICdtZCcsIG5vQm9yZGVyIH0gPSBlbGVtZW50LnByb3BzIGFzIHtcbiAgICB0aXRsZT86IHN0cmluZzsgc3VidGl0bGU/OiBzdHJpbmc7IHBhZGRpbmc/OiBzdHJpbmc7IG5vQm9yZGVyPzogYm9vbGVhblxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17YGJnLXdoaXRlIHJvdW5kZWQteGwgJHtub0JvcmRlciA/ICcnIDogJ3NoYWRvdy1zbSd9IG92ZXJmbG93LWhpZGRlbiBtYi00YH0+XG4gICAgICB7dGl0bGUgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInB4LTUgcHktNCBib3JkZXItYiBib3JkZXItZ3JheS0yMDBcIj5cbiAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkIHRleHQtZ3JheS05MDBcIj57dGl0bGV9PC9oMj5cbiAgICAgICAgICB7c3VidGl0bGUgJiYgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNTAwIG10LTAuNVwiPntzdWJ0aXRsZX08L3A+fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17cGFkZGluZ01hcFtwYWRkaW5nIGFzIGtleW9mIHR5cGVvZiBwYWRkaW5nTWFwXSB8fCBwYWRkaW5nTWFwLm1kfT5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJwYWRkaW5nTWFwIiwibm9uZSIsInNtIiwibWQiLCJsZyIsIkNhcmQiLCJlbGVtZW50IiwiY2hpbGRyZW4iLCJ0aXRsZSIsInN1YnRpdGxlIiwicGFkZGluZyIsIm5vQm9yZGVyIiwicHJvcHMiLCJkaXYiLCJjbGFzc05hbWUiLCJoMiIsInAiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/Card.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/DataTable.tsx":
/*!**************************************!*\
  !*** ./src/components/DataTable.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 */   DataTable: () => (/* binding */ DataTable)\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/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/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 _json_render_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @json-render/react */ \"(ssr)/./node_modules/@json-render/react/dist/index.mjs\");\n/* __next_internal_client_entry_do_not_use__ DataTable auto */ \n\n\nconst avatarColors = [\n    '#4f46e5',\n    '#7c3aed',\n    '#059669',\n    '#d97706',\n    '#dc2626',\n    '#0891b2'\n];\nfunction getInitials(name) {\n    return name.split(' ').map((n)=>n[0]).join('').slice(0, 2).toUpperCase();\n}\nfunction formatCell(value, format) {\n    if (value === null || value === undefined) return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n        className: \"text-gray-400\",\n        children: \"—\"\n    }, void 0, false, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n        lineNumber: 19,\n        columnNumber: 53\n    }, this);\n    switch(format){\n        case 'email':\n            return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n                href: `mailto:${value}`,\n                className: \"text-indigo-600 hover:underline\",\n                children: String(value)\n            }, void 0, false, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                lineNumber: 23,\n                columnNumber: 14\n            }, this);\n        case 'phone':\n            return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                className: \"text-gray-600\",\n                children: String(value)\n            }, void 0, false, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                lineNumber: 25,\n                columnNumber: 14\n            }, this);\n        case 'date':\n            return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                className: \"text-gray-500 text-sm\",\n                children: String(value)\n            }, void 0, false, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                lineNumber: 27,\n                columnNumber: 14\n            }, this);\n        case 'currency':\n            return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                className: \"font-mono font-medium\",\n                children: String(value)\n            }, void 0, false, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                lineNumber: 29,\n                columnNumber: 14\n            }, this);\n        case 'tags':\n            {\n                const tags = Array.isArray(value) ? value : [\n                    value\n                ];\n                return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                    className: \"flex flex-wrap gap-1 max-w-[200px]\",\n                    children: [\n                        tags.slice(0, 3).map((t, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                                className: \"px-2 py-0.5 bg-indigo-50 text-indigo-600 rounded-full text-xs font-medium\",\n                                children: String(t)\n                            }, i, false, {\n                                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                                lineNumber: 35,\n                                columnNumber: 13\n                            }, this)),\n                        tags.length > 3 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                            className: \"px-2 py-0.5 bg-gray-100 text-gray-500 rounded-full text-xs font-medium\",\n                            children: [\n                                \"+\",\n                                tags.length - 3\n                            ]\n                        }, void 0, true, {\n                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                            lineNumber: 40,\n                            columnNumber: 13\n                        }, this)\n                    ]\n                }, void 0, true, {\n                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                    lineNumber: 33,\n                    columnNumber: 9\n                }, this);\n            }\n        case 'avatar':\n            {\n                const name = String(value);\n                const color = avatarColors[name.charCodeAt(0) % avatarColors.length];\n                return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                    className: \"flex items-center gap-3\",\n                    children: [\n                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                            className: \"w-8 h-8 rounded-full flex items-center justify-center text-white text-xs font-semibold shrink-0\",\n                            style: {\n                                background: color\n                            },\n                            children: getInitials(name)\n                        }, void 0, false, {\n                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                            lineNumber: 52,\n                            columnNumber: 11\n                        }, this),\n                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                            className: \"font-medium text-gray-900\",\n                            children: name\n                        }, void 0, false, {\n                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                            lineNumber: 58,\n                            columnNumber: 11\n                        }, this)\n                    ]\n                }, void 0, true, {\n                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                    lineNumber: 51,\n                    columnNumber: 9\n                }, this);\n            }\n        case 'status':\n            {\n                const s = String(value).toLowerCase();\n                const cls = s.includes('active') ? 'bg-green-100 text-green-700' : s.includes('new') ? 'bg-blue-100 text-blue-700' : s.includes('lost') ? 'bg-red-100 text-red-700' : 'bg-gray-100 text-gray-600';\n                return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                    className: `px-2 py-0.5 rounded-full text-xs font-medium ${cls}`,\n                    children: String(value)\n                }, void 0, false, {\n                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                    lineNumber: 68,\n                    columnNumber: 14\n                }, this);\n            }\n        default:\n            return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                children: String(value)\n            }, void 0, false, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                lineNumber: 71,\n                columnNumber: 14\n            }, this);\n    }\n}\nfunction DataTable({ element }) {\n    const { columns, rows, selectable, rowAction, emptyMessage, pageSize = 10 } = element.props;\n    const [selected, setSelected] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(new Set());\n    const [sortKey, setSortKey] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n    const [sortAsc, setSortAsc] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n    const [page, setPage] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0);\n    const { execute } = (0,_json_render_react__WEBPACK_IMPORTED_MODULE_2__.useActions)();\n    const sortedRows = [\n        ...rows\n    ].sort((a, b)=>{\n        if (!sortKey) return 0;\n        const av = String(a[sortKey] ?? ''), bv = String(b[sortKey] ?? '');\n        return sortAsc ? av.localeCompare(bv) : bv.localeCompare(av);\n    });\n    const totalPages = Math.ceil(sortedRows.length / pageSize);\n    const pageRows = sortedRows.slice(page * pageSize, (page + 1) * pageSize);\n    const toggleSort = (key)=>{\n        if (sortKey === key) setSortAsc(!sortAsc);\n        else {\n            setSortKey(key);\n            setSortAsc(true);\n        }\n    };\n    const toggleAll = ()=>{\n        if (selected.size === pageRows.length) setSelected(new Set());\n        else setSelected(new Set(pageRows.map((_, i)=>page * pageSize + i)));\n    };\n    if (rows.length === 0) {\n        return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n            className: \"py-16 text-center\",\n            children: [\n                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n                    className: \"text-4xl mb-3\",\n                    children: \"\\uD83D\\uDCCB\"\n                }, void 0, false, {\n                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                    lineNumber: 108,\n                    columnNumber: 9\n                }, this),\n                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n                    className: \"text-gray-500\",\n                    children: emptyMessage || 'No data available'\n                }, void 0, false, {\n                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                    lineNumber: 109,\n                    columnNumber: 9\n                }, this)\n            ]\n        }, void 0, true, {\n            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n            lineNumber: 107,\n            columnNumber: 7\n        }, this);\n    }\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        className: \"bg-white rounded-xl shadow-sm overflow-hidden\",\n        children: [\n            selected.size > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                className: \"px-5 py-2 bg-indigo-50 text-indigo-600 text-sm font-medium\",\n                children: [\n                    selected.size,\n                    \" selected\"\n                ]\n            }, void 0, true, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                lineNumber: 117,\n                columnNumber: 9\n            }, this),\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                className: \"overflow-x-auto\",\n                children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"table\", {\n                    className: \"w-full 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                                children: [\n                                    selectable && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n                                        className: \"w-10 px-4 py-3 bg-gray-50 border-b border-gray-200\",\n                                        children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n                                            type: \"checkbox\",\n                                            className: \"accent-indigo-600 w-4 h-4\",\n                                            checked: selected.size === pageRows.length && pageRows.length > 0,\n                                            onChange: toggleAll\n                                        }, void 0, false, {\n                                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                                            lineNumber: 127,\n                                            columnNumber: 19\n                                        }, this)\n                                    }, void 0, false, {\n                                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                                        lineNumber: 126,\n                                        columnNumber: 17\n                                    }, this),\n                                    columns.map((col)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n                                            className: `px-4 py-3 bg-gray-50 border-b border-gray-200 text-left text-xs font-medium text-gray-500 uppercase tracking-wider ${col.sortable ? 'cursor-pointer hover:bg-gray-100 select-none' : ''}`,\n                                            style: col.width ? {\n                                                width: col.width\n                                            } : undefined,\n                                            onClick: ()=>col.sortable && toggleSort(col.key),\n                                            children: [\n                                                col.label,\n                                                col.sortable && sortKey === col.key && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                                                    className: \"ml-1 text-indigo-600\",\n                                                    children: sortAsc ? '↑' : '↓'\n                                                }, void 0, false, {\n                                                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                                                    lineNumber: 139,\n                                                    columnNumber: 21\n                                                }, this)\n                                            ]\n                                        }, col.key, true, {\n                                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                                            lineNumber: 131,\n                                            columnNumber: 17\n                                        }, this))\n                                ]\n                            }, void 0, true, {\n                                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                                lineNumber: 124,\n                                columnNumber: 13\n                            }, this)\n                        }, void 0, false, {\n                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                            lineNumber: 123,\n                            columnNumber: 11\n                        }, this),\n                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tbody\", {\n                            children: pageRows.map((row, ri)=>{\n                                const globalIdx = page * pageSize + ri;\n                                const isSelected = selected.has(globalIdx);\n                                return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tr\", {\n                                    className: `border-b border-gray-100 hover:bg-gray-50 transition-colors ${isSelected ? 'bg-indigo-50' : ''} ${rowAction ? 'cursor-pointer' : ''}`,\n                                    onClick: ()=>rowAction && execute({\n                                            name: rowAction,\n                                            params: {\n                                                contactId: String(row.id || ri)\n                                            }\n                                        }),\n                                    children: [\n                                        selectable && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n                                            className: \"px-4 py-3\",\n                                            onClick: (e)=>e.stopPropagation(),\n                                            children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n                                                type: \"checkbox\",\n                                                className: \"accent-indigo-600 w-4 h-4\",\n                                                checked: isSelected,\n                                                onChange: ()=>{\n                                                    const next = new Set(selected);\n                                                    next.has(globalIdx) ? next.delete(globalIdx) : next.add(globalIdx);\n                                                    setSelected(next);\n                                                }\n                                            }, void 0, false, {\n                                                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                                                lineNumber: 157,\n                                                columnNumber: 23\n                                            }, this)\n                                        }, void 0, false, {\n                                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                                            lineNumber: 156,\n                                            columnNumber: 21\n                                        }, this),\n                                        columns.map((col)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n                                                className: \"px-4 py-3 border-b border-gray-50\",\n                                                children: formatCell(row[col.key], col.format)\n                                            }, col.key, false, {\n                                                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                                                lineNumber: 169,\n                                                columnNumber: 21\n                                            }, this))\n                                    ]\n                                }, ri, true, {\n                                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                                    lineNumber: 150,\n                                    columnNumber: 17\n                                }, this);\n                            })\n                        }, void 0, false, {\n                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                            lineNumber: 145,\n                            columnNumber: 11\n                        }, this)\n                    ]\n                }, void 0, true, {\n                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                    lineNumber: 122,\n                    columnNumber: 9\n                }, this)\n            }, void 0, false, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                lineNumber: 121,\n                columnNumber: 7\n            }, this),\n            totalPages > 1 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                className: \"flex items-center justify-between px-5 py-3 border-t border-gray-200\",\n                children: [\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                        className: \"text-sm text-gray-500\",\n                        children: [\n                            page * pageSize + 1,\n                            \"–\",\n                            Math.min((page + 1) * pageSize, rows.length),\n                            \" of \",\n                            rows.length\n                        ]\n                    }, void 0, true, {\n                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                        lineNumber: 181,\n                        columnNumber: 11\n                    }, this),\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                        className: \"flex gap-2\",\n                        children: [\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n                                className: \"px-3 py-1.5 text-sm border border-gray-300 rounded-md hover:bg-gray-50 disabled:opacity-50\",\n                                disabled: page === 0,\n                                onClick: ()=>setPage((p)=>p - 1),\n                                children: \"Previous\"\n                            }, void 0, false, {\n                                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                                lineNumber: 185,\n                                columnNumber: 13\n                            }, this),\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n                                className: \"px-3 py-1.5 text-sm border border-gray-300 rounded-md hover:bg-gray-50 disabled:opacity-50\",\n                                disabled: page >= totalPages - 1,\n                                onClick: ()=>setPage((p)=>p + 1),\n                                children: \"Next\"\n                            }, void 0, false, {\n                                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                                lineNumber: 191,\n                                columnNumber: 13\n                            }, this)\n                        ]\n                    }, void 0, true, {\n                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                        lineNumber: 184,\n                        columnNumber: 11\n                    }, this)\n                ]\n            }, void 0, true, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n                lineNumber: 180,\n                columnNumber: 9\n            }, this)\n        ]\n    }, void 0, true, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DataTable.tsx\",\n        lineNumber: 115,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64, \n//# sourceURL=webpack-internal:///(ssr)/./src/components/DataTable.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/DetailHeader.tsx":
/*!*****************************************!*\
  !*** ./src/components/DetailHeader.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 */   DetailHeader: () => (/* binding */ DetailHeader)\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/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ DetailHeader auto */ \nconst statusColors = {\n    active: 'bg-blue-100 text-blue-800',\n    complete: 'bg-green-100 text-green-800',\n    paused: 'bg-yellow-100 text-yellow-800',\n    draft: 'bg-gray-200 text-gray-600',\n    error: 'bg-red-100 text-red-800',\n    sent: 'bg-blue-100 text-blue-800',\n    paid: 'bg-green-100 text-green-800',\n    pending: 'bg-yellow-100 text-yellow-800'\n};\nfunction DetailHeader({ element, children }) {\n    const { title, subtitle, entityId, status, statusVariant } = element.props;\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        className: \"bg-white rounded-xl p-6 mb-5 shadow-sm\",\n        children: [\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                className: \"flex items-start justify-between mb-1\",\n                children: [\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                        children: [\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n                                className: \"text-2xl font-bold text-gray-900\",\n                                children: title\n                            }, void 0, false, {\n                                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DetailHeader.tsx\",\n                                lineNumber: 25,\n                                columnNumber: 11\n                            }, this),\n                            entityId && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n                                className: \"text-sm text-gray-400 mt-0.5\",\n                                children: entityId\n                            }, void 0, false, {\n                                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DetailHeader.tsx\",\n                                lineNumber: 26,\n                                columnNumber: 24\n                            }, this),\n                            subtitle && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n                                className: \"text-sm text-gray-500 mt-1\",\n                                children: subtitle\n                            }, void 0, false, {\n                                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DetailHeader.tsx\",\n                                lineNumber: 27,\n                                columnNumber: 24\n                            }, this)\n                        ]\n                    }, void 0, true, {\n                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DetailHeader.tsx\",\n                        lineNumber: 24,\n                        columnNumber: 9\n                    }, this),\n                    status && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                        className: `px-3 py-1.5 rounded-full text-xs font-semibold uppercase tracking-wider ${statusColors[statusVariant || 'active'] || statusColors.active}`,\n                        children: status\n                    }, void 0, false, {\n                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DetailHeader.tsx\",\n                        lineNumber: 30,\n                        columnNumber: 11\n                    }, this)\n                ]\n            }, void 0, true, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DetailHeader.tsx\",\n                lineNumber: 23,\n                columnNumber: 7\n            }, this),\n            children\n        ]\n    }, void 0, true, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/DetailHeader.tsx\",\n        lineNumber: 22,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9EZXRhaWxIZWFkZXIudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxNQUFNQSxlQUF1QztJQUMzQ0MsUUFBUTtJQUNSQyxVQUFVO0lBQ1ZDLFFBQVE7SUFDUkMsT0FBTztJQUNQQyxPQUFPO0lBQ1BDLE1BQU07SUFDTkMsTUFBTTtJQUNOQyxTQUFTO0FBQ1g7QUFFTyxTQUFTQyxhQUFhLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxFQUF3QjtJQUN0RSxNQUFNLEVBQUVDLEtBQUssRUFBRUMsUUFBUSxFQUFFQyxRQUFRLEVBQUVDLE1BQU0sRUFBRUMsYUFBYSxFQUFFLEdBQUdOLFFBQVFPLEtBQUs7SUFJMUUscUJBQ0UsOERBQUNDO1FBQUlDLFdBQVU7OzBCQUNiLDhEQUFDRDtnQkFBSUMsV0FBVTs7a0NBQ2IsOERBQUNEOzswQ0FDQyw4REFBQ0U7Z0NBQUdELFdBQVU7MENBQW9DUDs7Ozs7OzRCQUNqREUsMEJBQVksOERBQUNPO2dDQUFFRixXQUFVOzBDQUFnQ0w7Ozs7Ozs0QkFDekRELDBCQUFZLDhEQUFDUTtnQ0FBRUYsV0FBVTswQ0FBOEJOOzs7Ozs7Ozs7Ozs7b0JBRXpERSx3QkFDQyw4REFBQ087d0JBQUtILFdBQVcsQ0FBQyx3RUFBd0UsRUFBRW5CLFlBQVksQ0FBQ2dCLGlCQUFpQixTQUFTLElBQUloQixhQUFhQyxNQUFNLEVBQUU7a0NBQ3pKYzs7Ozs7Ozs7Ozs7O1lBSU5KOzs7Ozs7O0FBR1AiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qYWtlc2hvcmUvLmNsYXdkYm90L3dvcmtzcGFjZS9naGwtanNvbi1yZW5kZXItc3Bpa2Uvc3JjL2NvbXBvbmVudHMvRGV0YWlsSGVhZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRSZW5kZXJQcm9wcyB9IGZyb20gJ0Bqc29uLXJlbmRlci9yZWFjdCdcblxuY29uc3Qgc3RhdHVzQ29sb3JzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBhY3RpdmU6ICdiZy1ibHVlLTEwMCB0ZXh0LWJsdWUtODAwJyxcbiAgY29tcGxldGU6ICdiZy1ncmVlbi0xMDAgdGV4dC1ncmVlbi04MDAnLFxuICBwYXVzZWQ6ICdiZy15ZWxsb3ctMTAwIHRleHQteWVsbG93LTgwMCcsXG4gIGRyYWZ0OiAnYmctZ3JheS0yMDAgdGV4dC1ncmF5LTYwMCcsXG4gIGVycm9yOiAnYmctcmVkLTEwMCB0ZXh0LXJlZC04MDAnLFxuICBzZW50OiAnYmctYmx1ZS0xMDAgdGV4dC1ibHVlLTgwMCcsXG4gIHBhaWQ6ICdiZy1ncmVlbi0xMDAgdGV4dC1ncmVlbi04MDAnLFxuICBwZW5kaW5nOiAnYmcteWVsbG93LTEwMCB0ZXh0LXllbGxvdy04MDAnLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gRGV0YWlsSGVhZGVyKHsgZWxlbWVudCwgY2hpbGRyZW4gfTogQ29tcG9uZW50UmVuZGVyUHJvcHMpIHtcbiAgY29uc3QgeyB0aXRsZSwgc3VidGl0bGUsIGVudGl0eUlkLCBzdGF0dXMsIHN0YXR1c1ZhcmlhbnQgfSA9IGVsZW1lbnQucHJvcHMgYXMge1xuICAgIHRpdGxlOiBzdHJpbmc7IHN1YnRpdGxlPzogc3RyaW5nOyBlbnRpdHlJZD86IHN0cmluZzsgc3RhdHVzPzogc3RyaW5nOyBzdGF0dXNWYXJpYW50Pzogc3RyaW5nXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiYmctd2hpdGUgcm91bmRlZC14bCBwLTYgbWItNSBzaGFkb3ctc21cIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1zdGFydCBqdXN0aWZ5LWJldHdlZW4gbWItMVwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC1ncmF5LTkwMFwiPnt0aXRsZX08L2gxPlxuICAgICAgICAgIHtlbnRpdHlJZCAmJiA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS00MDAgbXQtMC41XCI+e2VudGl0eUlkfTwvcD59XG4gICAgICAgICAge3N1YnRpdGxlICYmIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTUwMCBtdC0xXCI+e3N1YnRpdGxlfTwvcD59XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7c3RhdHVzICYmIChcbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2BweC0zIHB5LTEuNSByb3VuZGVkLWZ1bGwgdGV4dC14cyBmb250LXNlbWlib2xkIHVwcGVyY2FzZSB0cmFja2luZy13aWRlciAke3N0YXR1c0NvbG9yc1tzdGF0dXNWYXJpYW50IHx8ICdhY3RpdmUnXSB8fCBzdGF0dXNDb2xvcnMuYWN0aXZlfWB9PlxuICAgICAgICAgICAge3N0YXR1c31cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbInN0YXR1c0NvbG9ycyIsImFjdGl2ZSIsImNvbXBsZXRlIiwicGF1c2VkIiwiZHJhZnQiLCJlcnJvciIsInNlbnQiLCJwYWlkIiwicGVuZGluZyIsIkRldGFpbEhlYWRlciIsImVsZW1lbnQiLCJjaGlsZHJlbiIsInRpdGxlIiwic3VidGl0bGUiLCJlbnRpdHlJZCIsInN0YXR1cyIsInN0YXR1c1ZhcmlhbnQiLCJwcm9wcyIsImRpdiIsImNsYXNzTmFtZSIsImgxIiwicCIsInNwYW4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/DetailHeader.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/FilterChips.tsx":
/*!****************************************!*\
  !*** ./src/components/FilterChips.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 */   FilterChips: () => (/* binding */ FilterChips)\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/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/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__ FilterChips auto */ \n\nfunction FilterChips({ element }) {\n    const { chips } = element.props;\n    const [activeChips, setActiveChips] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(new Set(chips.filter({\n        \"FilterChips.useState\": (c)=>c.active\n    }[\"FilterChips.useState\"]).map({\n        \"FilterChips.useState\": (c)=>c.value\n    }[\"FilterChips.useState\"])));\n    const toggle = (value)=>{\n        const next = new Set(activeChips);\n        next.has(value) ? next.delete(value) : next.add(value);\n        setActiveChips(next);\n    };\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        className: \"flex flex-wrap gap-2 px-5 py-2 border-b border-gray-200\",\n        children: chips.map((chip)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n                onClick: ()=>toggle(chip.value),\n                className: `px-3 py-1 rounded-full text-xs font-medium transition-colors ${activeChips.has(chip.value) ? 'bg-indigo-600 text-white' : 'bg-gray-100 text-gray-600 hover:bg-gray-200'}`,\n                children: chip.label\n            }, chip.value, false, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/FilterChips.tsx\",\n                lineNumber: 23,\n                columnNumber: 9\n            }, this))\n    }, void 0, false, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/FilterChips.tsx\",\n        lineNumber: 21,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9GaWx0ZXJDaGlwcy50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRWdDO0FBS3pCLFNBQVNDLFlBQVksRUFBRUMsT0FBTyxFQUF3QjtJQUMzRCxNQUFNLEVBQUVDLEtBQUssRUFBRSxHQUFHRCxRQUFRRSxLQUFLO0lBQy9CLE1BQU0sQ0FBQ0MsYUFBYUMsZUFBZSxHQUFHTiwrQ0FBUUEsQ0FDNUMsSUFBSU8sSUFBSUosTUFBTUssTUFBTTtnQ0FBQ0MsQ0FBQUEsSUFBS0EsRUFBRUMsTUFBTTsrQkFBRUMsR0FBRztnQ0FBQ0YsQ0FBQUEsSUFBS0EsRUFBRUcsS0FBSzs7SUFHdEQsTUFBTUMsU0FBUyxDQUFDRDtRQUNkLE1BQU1FLE9BQU8sSUFBSVAsSUFBSUY7UUFDckJTLEtBQUtDLEdBQUcsQ0FBQ0gsU0FBU0UsS0FBS0UsTUFBTSxDQUFDSixTQUFTRSxLQUFLRyxHQUFHLENBQUNMO1FBQ2hETixlQUFlUTtJQUNqQjtJQUVBLHFCQUNFLDhEQUFDSTtRQUFJQyxXQUFVO2tCQUNaaEIsTUFBTVEsR0FBRyxDQUFDUyxDQUFBQSxxQkFDVCw4REFBQ0M7Z0JBRUNDLFNBQVMsSUFBTVQsT0FBT08sS0FBS1IsS0FBSztnQkFDaENPLFdBQVcsQ0FBQyw2REFBNkQsRUFDdkVkLFlBQVlVLEdBQUcsQ0FBQ0ssS0FBS1IsS0FBSyxJQUN0Qiw2QkFDQSwrQ0FDSjswQkFFRFEsS0FBS0csS0FBSztlQVJOSCxLQUFLUixLQUFLOzs7Ozs7Ozs7O0FBYXpCIiwic291cmNlcyI6WyIvVXNlcnMvamFrZXNob3JlLy5jbGF3ZGJvdC93b3Jrc3BhY2UvZ2hsLWpzb24tcmVuZGVyLXNwaWtlL3NyYy9jb21wb25lbnRzL0ZpbHRlckNoaXBzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgQ29tcG9uZW50UmVuZGVyUHJvcHMgfSBmcm9tICdAanNvbi1yZW5kZXIvcmVhY3QnXG5cbnR5cGUgQ2hpcCA9IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IHN0cmluZzsgYWN0aXZlPzogYm9vbGVhbiB9XG5cbmV4cG9ydCBmdW5jdGlvbiBGaWx0ZXJDaGlwcyh7IGVsZW1lbnQgfTogQ29tcG9uZW50UmVuZGVyUHJvcHMpIHtcbiAgY29uc3QgeyBjaGlwcyB9ID0gZWxlbWVudC5wcm9wcyBhcyB7IGNoaXBzOiBDaGlwW107IGRhdGFQYXRoPzogc3RyaW5nIH1cbiAgY29uc3QgW2FjdGl2ZUNoaXBzLCBzZXRBY3RpdmVDaGlwc10gPSB1c2VTdGF0ZTxTZXQ8c3RyaW5nPj4oXG4gICAgbmV3IFNldChjaGlwcy5maWx0ZXIoYyA9PiBjLmFjdGl2ZSkubWFwKGMgPT4gYy52YWx1ZSkpXG4gIClcblxuICBjb25zdCB0b2dnbGUgPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IG5leHQgPSBuZXcgU2V0KGFjdGl2ZUNoaXBzKVxuICAgIG5leHQuaGFzKHZhbHVlKSA/IG5leHQuZGVsZXRlKHZhbHVlKSA6IG5leHQuYWRkKHZhbHVlKVxuICAgIHNldEFjdGl2ZUNoaXBzKG5leHQpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LXdyYXAgZ2FwLTIgcHgtNSBweS0yIGJvcmRlci1iIGJvcmRlci1ncmF5LTIwMFwiPlxuICAgICAge2NoaXBzLm1hcChjaGlwID0+IChcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGtleT17Y2hpcC52YWx1ZX1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB0b2dnbGUoY2hpcC52YWx1ZSl9XG4gICAgICAgICAgY2xhc3NOYW1lPXtgcHgtMyBweS0xIHJvdW5kZWQtZnVsbCB0ZXh0LXhzIGZvbnQtbWVkaXVtIHRyYW5zaXRpb24tY29sb3JzICR7XG4gICAgICAgICAgICBhY3RpdmVDaGlwcy5oYXMoY2hpcC52YWx1ZSlcbiAgICAgICAgICAgICAgPyAnYmctaW5kaWdvLTYwMCB0ZXh0LXdoaXRlJ1xuICAgICAgICAgICAgICA6ICdiZy1ncmF5LTEwMCB0ZXh0LWdyYXktNjAwIGhvdmVyOmJnLWdyYXktMjAwJ1xuICAgICAgICAgIH1gfVxuICAgICAgICA+XG4gICAgICAgICAge2NoaXAubGFiZWx9XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgKSl9XG4gICAgPC9kaXY+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsIkZpbHRlckNoaXBzIiwiZWxlbWVudCIsImNoaXBzIiwicHJvcHMiLCJhY3RpdmVDaGlwcyIsInNldEFjdGl2ZUNoaXBzIiwiU2V0IiwiZmlsdGVyIiwiYyIsImFjdGl2ZSIsIm1hcCIsInZhbHVlIiwidG9nZ2xlIiwibmV4dCIsImhhcyIsImRlbGV0ZSIsImFkZCIsImRpdiIsImNsYXNzTmFtZSIsImNoaXAiLCJidXR0b24iLCJvbkNsaWNrIiwibGFiZWwiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/FilterChips.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/InfoBlock.tsx":
/*!**************************************!*\
  !*** ./src/components/InfoBlock.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 */   InfoBlock: () => (/* binding */ InfoBlock)\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/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ InfoBlock auto */ \nfunction InfoBlock({ element }) {\n    const { label, name, lines } = element.props;\n    return /*#__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)(\"h3\", {\n                className: \"text-xs uppercase text-gray-400 tracking-wider mb-2 font-medium\",\n                children: label\n            }, void 0, false, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/InfoBlock.tsx\",\n                lineNumber: 10,\n                columnNumber: 7\n            }, this),\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                className: \"text-base font-semibold text-gray-900\",\n                children: name\n            }, void 0, false, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/InfoBlock.tsx\",\n                lineNumber: 11,\n                columnNumber: 7\n            }, this),\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                className: \"text-sm text-gray-500 leading-relaxed mt-1\",\n                children: lines.map((line, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                        children: line\n                    }, i, false, {\n                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/InfoBlock.tsx\",\n                        lineNumber: 13,\n                        columnNumber: 33\n                    }, this))\n            }, void 0, false, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/InfoBlock.tsx\",\n                lineNumber: 12,\n                columnNumber: 7\n            }, this)\n        ]\n    }, void 0, true, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/InfoBlock.tsx\",\n        lineNumber: 9,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9JbmZvQmxvY2sudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJTyxTQUFTQSxVQUFVLEVBQUVDLE9BQU8sRUFBd0I7SUFDekQsTUFBTSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFFLEdBQUdILFFBQVFJLEtBQUs7SUFFNUMscUJBQ0UsOERBQUNDOzswQkFDQyw4REFBQ0M7Z0JBQUdDLFdBQVU7MEJBQW1FTjs7Ozs7OzBCQUNqRiw4REFBQ0k7Z0JBQUlFLFdBQVU7MEJBQXlDTDs7Ozs7OzBCQUN4RCw4REFBQ0c7Z0JBQUlFLFdBQVU7MEJBQ1pKLE1BQU1LLEdBQUcsQ0FBQyxDQUFDQyxNQUFNQyxrQkFBTSw4REFBQ0w7a0NBQWFJO3VCQUFKQzs7Ozs7Ozs7Ozs7Ozs7OztBQUkxQyIsInNvdXJjZXMiOlsiL1VzZXJzL2pha2VzaG9yZS8uY2xhd2Rib3Qvd29ya3NwYWNlL2dobC1qc29uLXJlbmRlci1zcGlrZS9zcmMvY29tcG9uZW50cy9JbmZvQmxvY2sudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgdHlwZSB7IENvbXBvbmVudFJlbmRlclByb3BzIH0gZnJvbSAnQGpzb24tcmVuZGVyL3JlYWN0J1xuXG5leHBvcnQgZnVuY3Rpb24gSW5mb0Jsb2NrKHsgZWxlbWVudCB9OiBDb21wb25lbnRSZW5kZXJQcm9wcykge1xuICBjb25zdCB7IGxhYmVsLCBuYW1lLCBsaW5lcyB9ID0gZWxlbWVudC5wcm9wcyBhcyB7IGxhYmVsOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgbGluZXM6IHN0cmluZ1tdIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXY+XG4gICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC14cyB1cHBlcmNhc2UgdGV4dC1ncmF5LTQwMCB0cmFja2luZy13aWRlciBtYi0yIGZvbnQtbWVkaXVtXCI+e2xhYmVsfTwvaDM+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtYmFzZSBmb250LXNlbWlib2xkIHRleHQtZ3JheS05MDBcIj57bmFtZX08L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNTAwIGxlYWRpbmctcmVsYXhlZCBtdC0xXCI+XG4gICAgICAgIHtsaW5lcy5tYXAoKGxpbmUsIGkpID0+IDxkaXYga2V5PXtpfT57bGluZX08L2Rpdj4pfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJJbmZvQmxvY2siLCJlbGVtZW50IiwibGFiZWwiLCJuYW1lIiwibGluZXMiLCJwcm9wcyIsImRpdiIsImgzIiwiY2xhc3NOYW1lIiwibWFwIiwibGluZSIsImkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/InfoBlock.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/KanbanBoard.tsx":
/*!****************************************!*\
  !*** ./src/components/KanbanBoard.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 */   KanbanBoard: () => (/* binding */ KanbanBoard)\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/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 _json_render_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @json-render/react */ \"(ssr)/./node_modules/@json-render/react/dist/index.mjs\");\n/* __next_internal_client_entry_do_not_use__ KanbanBoard auto */ \n\nconst statusClasses = {\n    open: 'bg-blue-100 text-blue-700',\n    won: 'bg-green-100 text-green-700',\n    lost: 'bg-red-100 text-red-700',\n    abandoned: 'bg-gray-100 text-gray-500'\n};\nfunction KanbanBoard({ element }) {\n    const { columns } = element.props;\n    const { execute } = (0,_json_render_react__WEBPACK_IMPORTED_MODULE_1__.useActions)();\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        className: \"p-2 overflow-x-auto overflow-y-auto\",\n        style: {\n            maxHeight: 'calc(100vh - 80px)'\n        },\n        children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n            className: \"flex gap-2\",\n            style: {\n                minWidth: 'max-content'\n            },\n            children: columns.map((col)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                    className: \"bg-white rounded-lg shadow-sm flex flex-col\",\n                    style: {\n                        width: 210,\n                        minWidth: 210,\n                        maxHeight: 'calc(100vh - 100px)'\n                    },\n                    children: [\n                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                            className: \"px-3 py-2 border-b border-gray-200 sticky top-0 bg-white rounded-t-lg\",\n                            children: [\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                    className: \"flex items-center justify-between\",\n                                    children: [\n                                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                                            className: \"font-semibold text-xs text-gray-800\",\n                                            children: col.title\n                                        }, void 0, false, {\n                                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/KanbanBoard.tsx\",\n                                            lineNumber: 34,\n                                            columnNumber: 17\n                                        }, this),\n                                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                                            className: \"bg-gray-200 text-gray-600 px-1.5 py-0.5 rounded-full text-[10px] font-medium\",\n                                            children: col.count ?? col.cards.length\n                                        }, void 0, false, {\n                                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/KanbanBoard.tsx\",\n                                            lineNumber: 35,\n                                            columnNumber: 17\n                                        }, this)\n                                    ]\n                                }, void 0, true, {\n                                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/KanbanBoard.tsx\",\n                                    lineNumber: 33,\n                                    columnNumber: 15\n                                }, this),\n                                col.totalValue && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                    className: \"text-[10px] text-gray-500 mt-0.5\",\n                                    children: col.totalValue\n                                }, void 0, false, {\n                                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/KanbanBoard.tsx\",\n                                    lineNumber: 40,\n                                    columnNumber: 17\n                                }, this)\n                            ]\n                        }, void 0, true, {\n                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/KanbanBoard.tsx\",\n                            lineNumber: 32,\n                            columnNumber: 13\n                        }, this),\n                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                            className: \"p-1.5 overflow-y-auto flex-1 kanban-scroll\",\n                            style: {\n                                minHeight: 60,\n                                maxHeight: 320\n                            },\n                            children: col.cards.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                className: \"text-center py-4 text-gray-400 text-[10px]\",\n                                children: \"No items\"\n                            }, void 0, false, {\n                                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/KanbanBoard.tsx\",\n                                lineNumber: 47,\n                                columnNumber: 17\n                            }, this) : col.cards.map((card)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                    className: \"bg-gray-50 border border-gray-200 rounded-md px-2.5 py-2 mb-1.5 cursor-grab hover:shadow-md hover:border-indigo-500 transition-all relative pl-3\",\n                                    onClick: ()=>execute({\n                                            name: 'move_opportunity',\n                                            params: {\n                                                opportunityId: card.id,\n                                                stage: col.id\n                                            }\n                                        }),\n                                    children: [\n                                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                            className: \"absolute left-0.5 top-1/2 -translate-y-1/2 w-[3px] h-4 opacity-0 hover:opacity-100 transition-opacity\",\n                                            style: {\n                                                background: 'repeating-linear-gradient(0deg, #d1d5db, #d1d5db 2px, transparent 2px, transparent 4px)'\n                                            }\n                                        }, void 0, false, {\n                                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/KanbanBoard.tsx\",\n                                            lineNumber: 59,\n                                            columnNumber: 21\n                                        }, this),\n                                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                            className: \"font-semibold text-[11px] text-gray-900 leading-tight mb-1\",\n                                            children: card.title\n                                        }, void 0, false, {\n                                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/KanbanBoard.tsx\",\n                                            lineNumber: 62,\n                                            columnNumber: 21\n                                        }, this),\n                                        card.subtitle && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                            className: \"flex items-center gap-1 text-[10px] text-gray-500 mb-1\",\n                                            children: [\n                                                card.avatarInitials && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                                    className: \"w-4 h-4 bg-gray-200 rounded-full flex items-center justify-center text-[7px] font-bold text-gray-600\",\n                                                    children: card.avatarInitials\n                                                }, void 0, false, {\n                                                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/KanbanBoard.tsx\",\n                                                    lineNumber: 66,\n                                                    columnNumber: 27\n                                                }, this),\n                                                card.subtitle\n                                            ]\n                                        }, void 0, true, {\n                                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/KanbanBoard.tsx\",\n                                            lineNumber: 64,\n                                            columnNumber: 23\n                                        }, this),\n                                        card.value && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                            className: \"text-xs font-bold text-emerald-600 mb-1\",\n                                            children: card.value\n                                        }, void 0, false, {\n                                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/KanbanBoard.tsx\",\n                                            lineNumber: 74,\n                                            columnNumber: 23\n                                        }, this),\n                                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                            className: \"flex items-center justify-between text-[9px] text-gray-400\",\n                                            children: [\n                                                card.date && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                                                    children: card.date\n                                                }, void 0, false, {\n                                                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/KanbanBoard.tsx\",\n                                                    lineNumber: 77,\n                                                    columnNumber: 37\n                                                }, this),\n                                                card.status && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                                                    className: `px-1.5 py-0.5 rounded text-[8px] font-medium uppercase ${statusClasses[card.statusVariant || 'open'] || statusClasses.open}`,\n                                                    children: card.status\n                                                }, void 0, false, {\n                                                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/KanbanBoard.tsx\",\n                                                    lineNumber: 79,\n                                                    columnNumber: 25\n                                                }, this)\n                                            ]\n                                        }, void 0, true, {\n                                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/KanbanBoard.tsx\",\n                                            lineNumber: 76,\n                                            columnNumber: 21\n                                        }, this)\n                                    ]\n                                }, card.id, true, {\n                                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/KanbanBoard.tsx\",\n                                    lineNumber: 50,\n                                    columnNumber: 19\n                                }, this))\n                        }, void 0, false, {\n                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/KanbanBoard.tsx\",\n                            lineNumber: 45,\n                            columnNumber: 13\n                        }, this)\n                    ]\n                }, col.id, true, {\n                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/KanbanBoard.tsx\",\n                    lineNumber: 30,\n                    columnNumber: 11\n                }, this))\n        }, void 0, false, {\n            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/KanbanBoard.tsx\",\n            lineNumber: 28,\n            columnNumber: 7\n        }, this)\n    }, void 0, false, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/KanbanBoard.tsx\",\n        lineNumber: 27,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64, \n//# sourceURL=webpack-internal:///(ssr)/./src/components/KanbanBoard.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/KeyValueList.tsx":
/*!*****************************************!*\
  !*** ./src/components/KeyValueList.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 */   KeyValueList: () => (/* binding */ KeyValueList)\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/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ KeyValueList auto */ \nconst variantStyles = {\n    default: '',\n    highlight: 'bg-gray-50 font-semibold',\n    muted: 'text-gray-400',\n    success: 'text-green-600',\n    danger: 'text-red-600'\n};\nfunction KeyValueList({ element }) {\n    const { items, compact } = element.props;\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        className: \"bg-white rounded-xl shadow-sm overflow-hidden\",\n        children: items.map((item, i)=>{\n            const isTotalRow = item.isTotalRow;\n            const rowClass = isTotalRow ? 'bg-blue-900 text-white px-6 py-4' : item.variant === 'success' ? 'bg-green-50 px-6 py-3' : `${variantStyles[item.variant || 'default']} px-6 ${compact ? 'py-2' : 'py-3'} border-b border-gray-100 last:border-b-0`;\n            return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                className: `flex justify-between items-center ${rowClass}`,\n                children: [\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                        className: `${isTotalRow ? 'text-base font-semibold' : 'text-sm text-gray-500'} ${item.variant === 'success' ? 'text-green-700' : ''}`,\n                        children: item.label\n                    }, void 0, false, {\n                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/KeyValueList.tsx\",\n                        lineNumber: 33,\n                        columnNumber: 13\n                    }, this),\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                        className: `font-mono ${isTotalRow ? 'text-xl font-bold' : item.bold ? 'font-semibold text-gray-900' : 'font-medium text-gray-900'} ${item.variant === 'success' ? 'text-green-600' : ''} ${item.variant === 'danger' ? 'text-red-600' : ''}`,\n                        children: item.value\n                    }, void 0, false, {\n                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/KeyValueList.tsx\",\n                        lineNumber: 36,\n                        columnNumber: 13\n                    }, this)\n                ]\n            }, i, true, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/KeyValueList.tsx\",\n                lineNumber: 32,\n                columnNumber: 11\n            }, this);\n        })\n    }, void 0, false, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/KeyValueList.tsx\",\n        lineNumber: 22,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9LZXlWYWx1ZUxpc3QudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFTQSxNQUFNQSxnQkFBd0M7SUFDNUNDLFNBQVM7SUFDVEMsV0FBVztJQUNYQyxPQUFPO0lBQ1BDLFNBQVM7SUFDVEMsUUFBUTtBQUNWO0FBRU8sU0FBU0MsYUFBYSxFQUFFQyxPQUFPLEVBQXdCO0lBQzVELE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUUsR0FBR0YsUUFBUUcsS0FBSztJQUV4QyxxQkFDRSw4REFBQ0M7UUFBSUMsV0FBVTtrQkFDWkosTUFBTUssR0FBRyxDQUFDLENBQUNDLE1BQU1DO1lBQ2hCLE1BQU1DLGFBQWFGLEtBQUtFLFVBQVU7WUFDbEMsTUFBTUMsV0FBV0QsYUFDYixxQ0FDQUYsS0FBS0ksT0FBTyxLQUFLLFlBQ2YsMEJBQ0EsR0FBR2xCLGFBQWEsQ0FBQ2MsS0FBS0ksT0FBTyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUVULFVBQVUsU0FBUyxPQUFPLHlDQUF5QyxDQUFDO1lBRTlILHFCQUNFLDhEQUFDRTtnQkFBWUMsV0FBVyxDQUFDLGtDQUFrQyxFQUFFSyxVQUFVOztrQ0FDckUsOERBQUNFO3dCQUFLUCxXQUFXLEdBQUdJLGFBQWEsNEJBQTRCLHdCQUF3QixDQUFDLEVBQUVGLEtBQUtJLE9BQU8sS0FBSyxZQUFZLG1CQUFtQixJQUFJO2tDQUN6SUosS0FBS00sS0FBSzs7Ozs7O2tDQUViLDhEQUFDRDt3QkFBS1AsV0FBVyxDQUFDLFVBQVUsRUFBRUksYUFBYSxzQkFBc0JGLEtBQUtPLElBQUksR0FBRyxnQ0FBZ0MsNEJBQTRCLENBQUMsRUFBRVAsS0FBS0ksT0FBTyxLQUFLLFlBQVksbUJBQW1CLEdBQUcsQ0FBQyxFQUFFSixLQUFLSSxPQUFPLEtBQUssV0FBVyxpQkFBaUIsSUFBSTtrQ0FDaFBKLEtBQUtRLEtBQUs7Ozs7Ozs7ZUFMTFA7Ozs7O1FBU2Q7Ozs7OztBQUdOIiwic291cmNlcyI6WyIvVXNlcnMvamFrZXNob3JlLy5jbGF3ZGJvdC93b3Jrc3BhY2UvZ2hsLWpzb24tcmVuZGVyLXNwaWtlL3NyYy9jb21wb25lbnRzL0tleVZhbHVlTGlzdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB0eXBlIHsgQ29tcG9uZW50UmVuZGVyUHJvcHMgfSBmcm9tICdAanNvbi1yZW5kZXIvcmVhY3QnXG5cbnR5cGUgS1ZJdGVtID0ge1xuICBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nOyBib2xkPzogYm9vbGVhblxuICB2YXJpYW50Pzogc3RyaW5nOyBpc1RvdGFsUm93PzogYm9vbGVhblxufVxuXG5jb25zdCB2YXJpYW50U3R5bGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZWZhdWx0OiAnJyxcbiAgaGlnaGxpZ2h0OiAnYmctZ3JheS01MCBmb250LXNlbWlib2xkJyxcbiAgbXV0ZWQ6ICd0ZXh0LWdyYXktNDAwJyxcbiAgc3VjY2VzczogJ3RleHQtZ3JlZW4tNjAwJyxcbiAgZGFuZ2VyOiAndGV4dC1yZWQtNjAwJyxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEtleVZhbHVlTGlzdCh7IGVsZW1lbnQgfTogQ29tcG9uZW50UmVuZGVyUHJvcHMpIHtcbiAgY29uc3QgeyBpdGVtcywgY29tcGFjdCB9ID0gZWxlbWVudC5wcm9wcyBhcyB7IGl0ZW1zOiBLVkl0ZW1bXTsgY29tcGFjdD86IGJvb2xlYW4gfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJiZy13aGl0ZSByb3VuZGVkLXhsIHNoYWRvdy1zbSBvdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgIHtpdGVtcy5tYXAoKGl0ZW0sIGkpID0+IHtcbiAgICAgICAgY29uc3QgaXNUb3RhbFJvdyA9IGl0ZW0uaXNUb3RhbFJvd1xuICAgICAgICBjb25zdCByb3dDbGFzcyA9IGlzVG90YWxSb3dcbiAgICAgICAgICA/ICdiZy1ibHVlLTkwMCB0ZXh0LXdoaXRlIHB4LTYgcHktNCdcbiAgICAgICAgICA6IGl0ZW0udmFyaWFudCA9PT0gJ3N1Y2Nlc3MnXG4gICAgICAgICAgICA/ICdiZy1ncmVlbi01MCBweC02IHB5LTMnXG4gICAgICAgICAgICA6IGAke3ZhcmlhbnRTdHlsZXNbaXRlbS52YXJpYW50IHx8ICdkZWZhdWx0J119IHB4LTYgJHtjb21wYWN0ID8gJ3B5LTInIDogJ3B5LTMnfSBib3JkZXItYiBib3JkZXItZ3JheS0xMDAgbGFzdDpib3JkZXItYi0wYFxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPGRpdiBrZXk9e2l9IGNsYXNzTmFtZT17YGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciAke3Jvd0NsYXNzfWB9PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgJHtpc1RvdGFsUm93ID8gJ3RleHQtYmFzZSBmb250LXNlbWlib2xkJyA6ICd0ZXh0LXNtIHRleHQtZ3JheS01MDAnfSAke2l0ZW0udmFyaWFudCA9PT0gJ3N1Y2Nlc3MnID8gJ3RleHQtZ3JlZW4tNzAwJyA6ICcnfWB9PlxuICAgICAgICAgICAgICB7aXRlbS5sYWJlbH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YGZvbnQtbW9ubyAke2lzVG90YWxSb3cgPyAndGV4dC14bCBmb250LWJvbGQnIDogaXRlbS5ib2xkID8gJ2ZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTkwMCcgOiAnZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCd9ICR7aXRlbS52YXJpYW50ID09PSAnc3VjY2VzcycgPyAndGV4dC1ncmVlbi02MDAnIDogJyd9ICR7aXRlbS52YXJpYW50ID09PSAnZGFuZ2VyJyA/ICd0ZXh0LXJlZC02MDAnIDogJyd9YH0+XG4gICAgICAgICAgICAgIHtpdGVtLnZhbHVlfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApXG4gICAgICB9KX1cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbInZhcmlhbnRTdHlsZXMiLCJkZWZhdWx0IiwiaGlnaGxpZ2h0IiwibXV0ZWQiLCJzdWNjZXNzIiwiZGFuZ2VyIiwiS2V5VmFsdWVMaXN0IiwiZWxlbWVudCIsIml0ZW1zIiwiY29tcGFjdCIsInByb3BzIiwiZGl2IiwiY2xhc3NOYW1lIiwibWFwIiwiaXRlbSIsImkiLCJpc1RvdGFsUm93Iiwicm93Q2xhc3MiLCJ2YXJpYW50Iiwic3BhbiIsImxhYmVsIiwiYm9sZCIsInZhbHVlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/components/KeyValueList.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/LineItemsTable.tsx":
/*!*******************************************!*\
  !*** ./src/components/LineItemsTable.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 */   LineItemsTable: () => (/* binding */ LineItemsTable)\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/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ LineItemsTable auto */ \nfunction fmt(n, currency) {\n    return new Intl.NumberFormat('en-US', {\n        style: 'currency',\n        currency\n    }).format(n);\n}\nfunction LineItemsTable({ element }) {\n    const { items, currency = 'USD' } = element.props;\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        className: \"bg-white rounded-xl shadow-sm overflow-hidden mb-5\",\n        children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"table\", {\n            className: \"w-full\",\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                        children: [\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n                                className: \"bg-gray-50 px-4 py-3 text-left text-xs font-semibold text-gray-500 uppercase tracking-wider border-b border-gray-200\",\n                                children: \"Item\"\n                            }, void 0, false, {\n                                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/LineItemsTable.tsx\",\n                                lineNumber: 21,\n                                columnNumber: 13\n                            }, this),\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n                                className: \"bg-gray-50 px-4 py-3 text-center text-xs font-semibold text-gray-500 uppercase tracking-wider border-b border-gray-200\",\n                                children: \"Qty\"\n                            }, void 0, false, {\n                                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/LineItemsTable.tsx\",\n                                lineNumber: 22,\n                                columnNumber: 13\n                            }, this),\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n                                className: \"bg-gray-50 px-4 py-3 text-right text-xs font-semibold text-gray-500 uppercase tracking-wider border-b border-gray-200\",\n                                children: \"Price\"\n                            }, void 0, false, {\n                                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/LineItemsTable.tsx\",\n                                lineNumber: 23,\n                                columnNumber: 13\n                            }, this),\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n                                className: \"bg-gray-50 px-4 py-3 text-right text-xs font-semibold text-gray-500 uppercase tracking-wider border-b border-gray-200\",\n                                children: \"Total\"\n                            }, void 0, false, {\n                                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/LineItemsTable.tsx\",\n                                lineNumber: 24,\n                                columnNumber: 13\n                            }, this)\n                        ]\n                    }, void 0, true, {\n                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/LineItemsTable.tsx\",\n                        lineNumber: 20,\n                        columnNumber: 11\n                    }, this)\n                }, void 0, false, {\n                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/LineItemsTable.tsx\",\n                    lineNumber: 19,\n                    columnNumber: 9\n                }, this),\n                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tbody\", {\n                    children: items.map((item, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tr\", {\n                            className: \"border-b border-gray-50 last:border-b-0\",\n                            children: [\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n                                    className: \"px-4 py-4\",\n                                    children: [\n                                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                            className: \"font-medium text-gray-900\",\n                                            children: item.name\n                                        }, void 0, false, {\n                                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/LineItemsTable.tsx\",\n                                            lineNumber: 31,\n                                            columnNumber: 17\n                                        }, this),\n                                        item.description && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                            className: \"text-sm text-gray-500 mt-0.5\",\n                                            children: item.description\n                                        }, void 0, false, {\n                                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/LineItemsTable.tsx\",\n                                            lineNumber: 32,\n                                            columnNumber: 38\n                                        }, this)\n                                    ]\n                                }, void 0, true, {\n                                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/LineItemsTable.tsx\",\n                                    lineNumber: 30,\n                                    columnNumber: 15\n                                }, this),\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n                                    className: \"px-4 py-4 text-center text-gray-500\",\n                                    children: item.quantity\n                                }, void 0, false, {\n                                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/LineItemsTable.tsx\",\n                                    lineNumber: 34,\n                                    columnNumber: 15\n                                }, this),\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n                                    className: \"px-4 py-4 text-right font-mono text-gray-900\",\n                                    children: fmt(item.unitPrice, currency)\n                                }, void 0, false, {\n                                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/LineItemsTable.tsx\",\n                                    lineNumber: 35,\n                                    columnNumber: 15\n                                }, this),\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n                                    className: \"px-4 py-4 text-right font-mono text-gray-900\",\n                                    children: fmt(item.total, currency)\n                                }, void 0, false, {\n                                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/LineItemsTable.tsx\",\n                                    lineNumber: 36,\n                                    columnNumber: 15\n                                }, this)\n                            ]\n                        }, i, true, {\n                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/LineItemsTable.tsx\",\n                            lineNumber: 29,\n                            columnNumber: 13\n                        }, this))\n                }, void 0, false, {\n                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/LineItemsTable.tsx\",\n                    lineNumber: 27,\n                    columnNumber: 9\n                }, this)\n            ]\n        }, void 0, true, {\n            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/LineItemsTable.tsx\",\n            lineNumber: 18,\n            columnNumber: 7\n        }, this)\n    }, void 0, false, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/LineItemsTable.tsx\",\n        lineNumber: 17,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64, \n//# sourceURL=webpack-internal:///(ssr)/./src/components/LineItemsTable.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/MetricCard.tsx":
/*!***************************************!*\
  !*** ./src/components/MetricCard.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 */   MetricCard: () => (/* binding */ MetricCard)\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/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ MetricCard auto */ \nconst colorMap = {\n    default: 'text-gray-900',\n    green: 'text-emerald-600',\n    blue: 'text-blue-600',\n    purple: 'text-purple-600',\n    yellow: 'text-amber-600',\n    red: 'text-red-600'\n};\nconst trendIcons = {\n    up: '↑',\n    down: '↓',\n    flat: '→'\n};\nconst trendColors = {\n    up: 'text-emerald-600',\n    down: 'text-red-600',\n    flat: 'text-gray-500'\n};\nfunction MetricCard({ element }) {\n    const { label, value, trend, trendValue, color = 'default' } = element.props;\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        className: \"bg-white/95 rounded-xl p-5 text-center shadow-sm\",\n        children: [\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                className: `text-3xl font-bold ${colorMap[color] || colorMap.default}`,\n                children: value\n            }, void 0, false, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/MetricCard.tsx\",\n                lineNumber: 34,\n                columnNumber: 7\n            }, this),\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                className: \"text-sm text-gray-500 mt-1\",\n                children: label\n            }, void 0, false, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/MetricCard.tsx\",\n                lineNumber: 35,\n                columnNumber: 7\n            }, this),\n            trend && trendValue && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                className: `text-sm font-semibold mt-2 ${trendColors[trend] || trendColors.flat}`,\n                children: [\n                    trendIcons[trend],\n                    \" \",\n                    trendValue\n                ]\n            }, void 0, true, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/MetricCard.tsx\",\n                lineNumber: 37,\n                columnNumber: 9\n            }, this)\n        ]\n    }, void 0, true, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/MetricCard.tsx\",\n        lineNumber: 33,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9NZXRyaWNDYXJkLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsTUFBTUEsV0FBbUM7SUFDdkNDLFNBQVM7SUFDVEMsT0FBTztJQUNQQyxNQUFNO0lBQ05DLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxLQUFLO0FBQ1A7QUFFQSxNQUFNQyxhQUFxQztJQUN6Q0MsSUFBSTtJQUNKQyxNQUFNO0lBQ05DLE1BQU07QUFDUjtBQUVBLE1BQU1DLGNBQXNDO0lBQzFDSCxJQUFJO0lBQ0pDLE1BQU07SUFDTkMsTUFBTTtBQUNSO0FBRU8sU0FBU0UsV0FBVyxFQUFFQyxPQUFPLEVBQXdCO0lBQzFELE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLEtBQUssRUFBRUMsVUFBVSxFQUFFQyxRQUFRLFNBQVMsRUFBRSxHQUFHTCxRQUFRTSxLQUFLO0lBSzVFLHFCQUNFLDhEQUFDQztRQUFJQyxXQUFVOzswQkFDYiw4REFBQ0Q7Z0JBQUlDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRXJCLFFBQVEsQ0FBQ2tCLE1BQU0sSUFBSWxCLFNBQVNDLE9BQU8sRUFBRTswQkFBR2M7Ozs7OzswQkFDOUUsOERBQUNLO2dCQUFJQyxXQUFVOzBCQUE4QlA7Ozs7OztZQUM1Q0UsU0FBU0MsNEJBQ1IsOERBQUNHO2dCQUFJQyxXQUFXLENBQUMsMkJBQTJCLEVBQUVWLFdBQVcsQ0FBQ0ssTUFBTSxJQUFJTCxZQUFZRCxJQUFJLEVBQUU7O29CQUNuRkgsVUFBVSxDQUFDUyxNQUFNO29CQUFDO29CQUFFQzs7Ozs7Ozs7Ozs7OztBQUsvQiIsInNvdXJjZXMiOlsiL1VzZXJzL2pha2VzaG9yZS8uY2xhd2Rib3Qvd29ya3NwYWNlL2dobC1qc29uLXJlbmRlci1zcGlrZS9zcmMvY29tcG9uZW50cy9NZXRyaWNDYXJkLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRSZW5kZXJQcm9wcyB9IGZyb20gJ0Bqc29uLXJlbmRlci9yZWFjdCdcblxuY29uc3QgY29sb3JNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlZmF1bHQ6ICd0ZXh0LWdyYXktOTAwJyxcbiAgZ3JlZW46ICd0ZXh0LWVtZXJhbGQtNjAwJyxcbiAgYmx1ZTogJ3RleHQtYmx1ZS02MDAnLFxuICBwdXJwbGU6ICd0ZXh0LXB1cnBsZS02MDAnLFxuICB5ZWxsb3c6ICd0ZXh0LWFtYmVyLTYwMCcsXG4gIHJlZDogJ3RleHQtcmVkLTYwMCcsXG59XG5cbmNvbnN0IHRyZW5kSWNvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIHVwOiAn4oaRJyxcbiAgZG93bjogJ+KGkycsXG4gIGZsYXQ6ICfihpInLFxufVxuXG5jb25zdCB0cmVuZENvbG9yczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgdXA6ICd0ZXh0LWVtZXJhbGQtNjAwJyxcbiAgZG93bjogJ3RleHQtcmVkLTYwMCcsXG4gIGZsYXQ6ICd0ZXh0LWdyYXktNTAwJyxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIE1ldHJpY0NhcmQoeyBlbGVtZW50IH06IENvbXBvbmVudFJlbmRlclByb3BzKSB7XG4gIGNvbnN0IHsgbGFiZWwsIHZhbHVlLCB0cmVuZCwgdHJlbmRWYWx1ZSwgY29sb3IgPSAnZGVmYXVsdCcgfSA9IGVsZW1lbnQucHJvcHMgYXMge1xuICAgIGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmc7IGZvcm1hdD86IHN0cmluZ1xuICAgIHRyZW5kPzogc3RyaW5nOyB0cmVuZFZhbHVlPzogc3RyaW5nOyBjb2xvcj86IHN0cmluZ1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImJnLXdoaXRlLzk1IHJvdW5kZWQteGwgcC01IHRleHQtY2VudGVyIHNoYWRvdy1zbVwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2B0ZXh0LTN4bCBmb250LWJvbGQgJHtjb2xvck1hcFtjb2xvcl0gfHwgY29sb3JNYXAuZGVmYXVsdH1gfT57dmFsdWV9PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTUwMCBtdC0xXCI+e2xhYmVsfTwvZGl2PlxuICAgICAge3RyZW5kICYmIHRyZW5kVmFsdWUgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YHRleHQtc20gZm9udC1zZW1pYm9sZCBtdC0yICR7dHJlbmRDb2xvcnNbdHJlbmRdIHx8IHRyZW5kQ29sb3JzLmZsYXR9YH0+XG4gICAgICAgICAge3RyZW5kSWNvbnNbdHJlbmRdfSB7dHJlbmRWYWx1ZX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiY29sb3JNYXAiLCJkZWZhdWx0IiwiZ3JlZW4iLCJibHVlIiwicHVycGxlIiwieWVsbG93IiwicmVkIiwidHJlbmRJY29ucyIsInVwIiwiZG93biIsImZsYXQiLCJ0cmVuZENvbG9ycyIsIk1ldHJpY0NhcmQiLCJlbGVtZW50IiwibGFiZWwiLCJ2YWx1ZSIsInRyZW5kIiwidHJlbmRWYWx1ZSIsImNvbG9yIiwicHJvcHMiLCJkaXYiLCJjbGFzc05hbWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/MetricCard.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/PageHeader.tsx":
/*!***************************************!*\
  !*** ./src/components/PageHeader.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 */   PageHeader: () => (/* binding */ PageHeader)\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/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ PageHeader auto */ \nconst statusColors = {\n    active: 'bg-blue-100 text-blue-800',\n    complete: 'bg-green-100 text-green-800',\n    paused: 'bg-yellow-100 text-yellow-800',\n    draft: 'bg-gray-200 text-gray-600',\n    error: 'bg-red-100 text-red-800',\n    sent: 'bg-blue-100 text-blue-800',\n    paid: 'bg-green-100 text-green-800',\n    pending: 'bg-yellow-100 text-yellow-800'\n};\nfunction PageHeader({ element, children }) {\n    const { title, subtitle, status, statusVariant, gradient, stats } = element.props;\n    if (gradient) {\n        return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n            className: \"bg-gradient-to-br from-indigo-600 to-purple-600 text-white px-4 py-3 sticky top-0 z-50 shadow-md\",\n            children: [\n                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                    className: \"flex items-center justify-between\",\n                    children: [\n                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                            children: [\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n                                    className: \"text-base font-semibold\",\n                                    children: title\n                                }, void 0, false, {\n                                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/PageHeader.tsx\",\n                                    lineNumber: 31,\n                                    columnNumber: 13\n                                }, this),\n                                subtitle && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n                                    className: \"text-xs text-white/80 mt-0.5\",\n                                    children: subtitle\n                                }, void 0, false, {\n                                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/PageHeader.tsx\",\n                                    lineNumber: 32,\n                                    columnNumber: 26\n                                }, this)\n                            ]\n                        }, void 0, true, {\n                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/PageHeader.tsx\",\n                            lineNumber: 30,\n                            columnNumber: 11\n                        }, this),\n                        status && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                            className: \"px-3 py-1 rounded-full text-xs font-semibold bg-white/20\",\n                            children: status\n                        }, void 0, false, {\n                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/PageHeader.tsx\",\n                            lineNumber: 35,\n                            columnNumber: 13\n                        }, this)\n                    ]\n                }, void 0, true, {\n                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/PageHeader.tsx\",\n                    lineNumber: 29,\n                    columnNumber: 9\n                }, this),\n                stats && stats.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                    className: \"flex gap-4 mt-2\",\n                    children: stats.map((s, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                            className: \"flex items-center gap-1.5 text-xs text-white/90\",\n                            children: [\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                                    className: \"font-semibold\",\n                                    children: s.value\n                                }, void 0, false, {\n                                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/PageHeader.tsx\",\n                                    lineNumber: 44,\n                                    columnNumber: 17\n                                }, this),\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                                    className: \"text-white/70\",\n                                    children: s.label\n                                }, void 0, false, {\n                                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/PageHeader.tsx\",\n                                    lineNumber: 45,\n                                    columnNumber: 17\n                                }, this)\n                            ]\n                        }, i, true, {\n                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/PageHeader.tsx\",\n                            lineNumber: 43,\n                            columnNumber: 15\n                        }, this))\n                }, void 0, false, {\n                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/PageHeader.tsx\",\n                    lineNumber: 41,\n                    columnNumber: 11\n                }, this),\n                children\n            ]\n        }, void 0, true, {\n            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/PageHeader.tsx\",\n            lineNumber: 28,\n            columnNumber: 7\n        }, this);\n    }\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        className: \"bg-white rounded-xl p-5 mb-4 shadow-sm\",\n        children: [\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                className: \"flex items-start justify-between\",\n                children: [\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                        children: [\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n                                className: \"text-xl font-bold text-gray-900\",\n                                children: title\n                            }, void 0, false, {\n                                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/PageHeader.tsx\",\n                                lineNumber: 59,\n                                columnNumber: 11\n                            }, this),\n                            subtitle && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n                                className: \"text-sm text-gray-500 mt-1\",\n                                children: subtitle\n                            }, void 0, false, {\n                                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/PageHeader.tsx\",\n                                lineNumber: 60,\n                                columnNumber: 24\n                            }, this)\n                        ]\n                    }, void 0, true, {\n                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/PageHeader.tsx\",\n                        lineNumber: 58,\n                        columnNumber: 9\n                    }, this),\n                    status && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                        className: `px-3 py-1 rounded-full text-xs font-semibold uppercase tracking-wide ${statusColors[statusVariant || 'active'] || statusColors.active}`,\n                        children: status\n                    }, void 0, false, {\n                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/PageHeader.tsx\",\n                        lineNumber: 63,\n                        columnNumber: 11\n                    }, this)\n                ]\n            }, void 0, true, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/PageHeader.tsx\",\n                lineNumber: 57,\n                columnNumber: 7\n            }, this),\n            stats && stats.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                className: \"flex gap-5 mt-3 flex-wrap\",\n                children: stats.map((s, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                        className: \"text-sm text-gray-500\",\n                        children: [\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                                className: \"font-medium text-gray-700\",\n                                children: s.value\n                            }, void 0, false, {\n                                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/PageHeader.tsx\",\n                                lineNumber: 72,\n                                columnNumber: 15\n                            }, this),\n                            \" \",\n                            s.label\n                        ]\n                    }, i, true, {\n                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/PageHeader.tsx\",\n                        lineNumber: 71,\n                        columnNumber: 13\n                    }, this))\n            }, void 0, false, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/PageHeader.tsx\",\n                lineNumber: 69,\n                columnNumber: 9\n            }, this),\n            children\n        ]\n    }, void 0, true, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/PageHeader.tsx\",\n        lineNumber: 56,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64, \n//# sourceURL=webpack-internal:///(ssr)/./src/components/PageHeader.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/ProgressBar.tsx":
/*!****************************************!*\
  !*** ./src/components/ProgressBar.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 */   ProgressBar: () => (/* binding */ ProgressBar)\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/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ ProgressBar auto */ \nconst barColors = {\n    green: 'from-emerald-500 to-emerald-600',\n    blue: 'from-blue-500 to-blue-600',\n    purple: 'from-purple-500 to-purple-600',\n    yellow: 'from-amber-400 to-amber-500',\n    red: 'from-red-500 to-red-600'\n};\nfunction ProgressBar({ element }) {\n    const { label, value, max = 100, color = 'blue', showPercent = true, benchmark, benchmarkLabel } = element.props;\n    const pct = Math.min(100, value / max * 100);\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        className: \"mb-5\",\n        children: [\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                className: \"flex justify-between items-center mb-2\",\n                children: [\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                        className: \"text-sm font-medium text-gray-700\",\n                        children: label\n                    }, void 0, false, {\n                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/ProgressBar.tsx\",\n                        lineNumber: 23,\n                        columnNumber: 9\n                    }, this),\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                        className: \"text-sm text-gray-500\",\n                        children: [\n                            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                                className: \"font-semibold text-gray-900\",\n                                children: value.toLocaleString()\n                            }, void 0, false, {\n                                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/ProgressBar.tsx\",\n                                lineNumber: 25,\n                                columnNumber: 11\n                            }, this),\n                            max !== 100 && ` / ${max.toLocaleString()}`,\n                            showPercent && ` (${pct.toFixed(1)}%)`\n                        ]\n                    }, void 0, true, {\n                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/ProgressBar.tsx\",\n                        lineNumber: 24,\n                        columnNumber: 9\n                    }, this)\n                ]\n            }, void 0, true, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/ProgressBar.tsx\",\n                lineNumber: 22,\n                columnNumber: 7\n            }, this),\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                className: \"relative h-6 bg-gray-200 rounded-xl overflow-hidden\",\n                children: [\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                        className: `h-full rounded-xl bg-gradient-to-r ${barColors[color] || barColors.blue} transition-all duration-500`,\n                        style: {\n                            width: `${pct}%`\n                        }\n                    }, void 0, false, {\n                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/ProgressBar.tsx\",\n                        lineNumber: 31,\n                        columnNumber: 9\n                    }, this),\n                    benchmark !== undefined && /*#__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)(\"div\", {\n                                className: \"absolute top-0 h-full w-0.5 bg-gray-900/50\",\n                                style: {\n                                    left: `${benchmark / max * 100}%`\n                                }\n                            }, void 0, false, {\n                                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/ProgressBar.tsx\",\n                                lineNumber: 37,\n                                columnNumber: 13\n                            }, this),\n                            benchmarkLabel && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                                className: \"absolute -top-4 text-[10px] text-gray-500 -translate-x-1/2\",\n                                style: {\n                                    left: `${benchmark / max * 100}%`\n                                },\n                                children: benchmarkLabel\n                            }, void 0, false, {\n                                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/ProgressBar.tsx\",\n                                lineNumber: 39,\n                                columnNumber: 15\n                            }, this)\n                        ]\n                    }, void 0, true)\n                ]\n            }, void 0, true, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/ProgressBar.tsx\",\n                lineNumber: 30,\n                columnNumber: 7\n            }, this)\n        ]\n    }, void 0, true, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/ProgressBar.tsx\",\n        lineNumber: 21,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64, \n//# sourceURL=webpack-internal:///(ssr)/./src/components/ProgressBar.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/SearchBar.tsx":
/*!**************************************!*\
  !*** ./src/components/SearchBar.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 */   SearchBar: () => (/* binding */ SearchBar)\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/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ SearchBar auto */ \nfunction SearchBar({ element }) {\n    const { placeholder = 'Search...' } = element.props;\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        className: \"px-5 py-3 bg-gray-50 border-b border-gray-200\",\n        children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n            type: \"text\",\n            placeholder: placeholder,\n            className: \"w-full px-3 py-2 border border-gray-300 rounded-md text-sm outline-none focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500/10 transition-all\"\n        }, void 0, false, {\n            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/SearchBar.tsx\",\n            lineNumber: 10,\n            columnNumber: 7\n        }, this)\n    }, void 0, false, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/SearchBar.tsx\",\n        lineNumber: 9,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9TZWFyY2hCYXIudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJTyxTQUFTQSxVQUFVLEVBQUVDLE9BQU8sRUFBd0I7SUFDekQsTUFBTSxFQUFFQyxjQUFjLFdBQVcsRUFBRSxHQUFHRCxRQUFRRSxLQUFLO0lBRW5ELHFCQUNFLDhEQUFDQztRQUFJQyxXQUFVO2tCQUNiLDRFQUFDQztZQUNDQyxNQUFLO1lBQ0xMLGFBQWFBO1lBQ2JHLFdBQVU7Ozs7Ozs7Ozs7O0FBSWxCIiwic291cmNlcyI6WyIvVXNlcnMvamFrZXNob3JlLy5jbGF3ZGJvdC93b3Jrc3BhY2UvZ2hsLWpzb24tcmVuZGVyLXNwaWtlL3NyYy9jb21wb25lbnRzL1NlYXJjaEJhci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB0eXBlIHsgQ29tcG9uZW50UmVuZGVyUHJvcHMgfSBmcm9tICdAanNvbi1yZW5kZXIvcmVhY3QnXG5cbmV4cG9ydCBmdW5jdGlvbiBTZWFyY2hCYXIoeyBlbGVtZW50IH06IENvbXBvbmVudFJlbmRlclByb3BzKSB7XG4gIGNvbnN0IHsgcGxhY2Vob2xkZXIgPSAnU2VhcmNoLi4uJyB9ID0gZWxlbWVudC5wcm9wcyBhcyB7IHBsYWNlaG9sZGVyPzogc3RyaW5nOyB2YWx1ZVBhdGg/OiBzdHJpbmcgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJweC01IHB5LTMgYmctZ3JheS01MCBib3JkZXItYiBib3JkZXItZ3JheS0yMDBcIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIHB4LTMgcHktMiBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtbWQgdGV4dC1zbSBvdXRsaW5lLW5vbmUgZm9jdXM6Ym9yZGVyLWluZGlnby01MDAgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctaW5kaWdvLTUwMC8xMCB0cmFuc2l0aW9uLWFsbFwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiU2VhcmNoQmFyIiwiZWxlbWVudCIsInBsYWNlaG9sZGVyIiwicHJvcHMiLCJkaXYiLCJjbGFzc05hbWUiLCJpbnB1dCIsInR5cGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/SearchBar.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/Section.tsx":
/*!************************************!*\
  !*** ./src/components/Section.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 */   Section: () => (/* binding */ Section)\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/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ Section auto */ \nfunction Section({ element, children }) {\n    const { title, description } = element.props;\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        className: \"mb-5\",\n        children: [\n            title && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                className: \"mb-3\",\n                children: [\n                    /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n                        className: \"text-lg font-semibold text-gray-900\",\n                        children: title\n                    }, void 0, false, {\n                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/Section.tsx\",\n                        lineNumber: 12,\n                        columnNumber: 11\n                    }, this),\n                    description && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n                        className: \"text-sm text-gray-500 mt-0.5\",\n                        children: description\n                    }, void 0, false, {\n                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/Section.tsx\",\n                        lineNumber: 13,\n                        columnNumber: 27\n                    }, this)\n                ]\n            }, void 0, true, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/Section.tsx\",\n                lineNumber: 11,\n                columnNumber: 9\n            }, this),\n            children\n        ]\n    }, void 0, true, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/Section.tsx\",\n        lineNumber: 9,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9TZWN0aW9uLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSU8sU0FBU0EsUUFBUSxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsRUFBd0I7SUFDakUsTUFBTSxFQUFFQyxLQUFLLEVBQUVDLFdBQVcsRUFBRSxHQUFHSCxRQUFRSSxLQUFLO0lBRTVDLHFCQUNFLDhEQUFDQztRQUFJQyxXQUFVOztZQUNaSix1QkFDQyw4REFBQ0c7Z0JBQUlDLFdBQVU7O2tDQUNiLDhEQUFDQzt3QkFBR0QsV0FBVTtrQ0FBdUNKOzs7Ozs7b0JBQ3BEQyw2QkFBZSw4REFBQ0s7d0JBQUVGLFdBQVU7a0NBQWdDSDs7Ozs7Ozs7Ozs7O1lBR2hFRjs7Ozs7OztBQUdQIiwic291cmNlcyI6WyIvVXNlcnMvamFrZXNob3JlLy5jbGF3ZGJvdC93b3Jrc3BhY2UvZ2hsLWpzb24tcmVuZGVyLXNwaWtlL3NyYy9jb21wb25lbnRzL1NlY3Rpb24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgdHlwZSB7IENvbXBvbmVudFJlbmRlclByb3BzIH0gZnJvbSAnQGpzb24tcmVuZGVyL3JlYWN0J1xuXG5leHBvcnQgZnVuY3Rpb24gU2VjdGlvbih7IGVsZW1lbnQsIGNoaWxkcmVuIH06IENvbXBvbmVudFJlbmRlclByb3BzKSB7XG4gIGNvbnN0IHsgdGl0bGUsIGRlc2NyaXB0aW9uIH0gPSBlbGVtZW50LnByb3BzIGFzIHsgdGl0bGU/OiBzdHJpbmc7IGRlc2NyaXB0aW9uPzogc3RyaW5nIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwibWItNVwiPlxuICAgICAge3RpdGxlICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi0zXCI+XG4gICAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktOTAwXCI+e3RpdGxlfTwvaDI+XG4gICAgICAgICAge2Rlc2NyaXB0aW9uICYmIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1ncmF5LTUwMCBtdC0wLjVcIj57ZGVzY3JpcHRpb259PC9wPn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgICAge2NoaWxkcmVufVxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiU2VjdGlvbiIsImVsZW1lbnQiLCJjaGlsZHJlbiIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJwcm9wcyIsImRpdiIsImNsYXNzTmFtZSIsImgyIiwicCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/components/Section.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/SplitLayout.tsx":
/*!****************************************!*\
  !*** ./src/components/SplitLayout.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 */   SplitLayout: () => (/* binding */ SplitLayout)\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/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/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__ SplitLayout auto */ \n\nfunction SplitLayout({ element, children }) {\n    const { ratio = '50/50', gap = 'md' } = element.props;\n    const gapMap = {\n        sm: 'gap-3',\n        md: 'gap-6',\n        lg: 'gap-8'\n    };\n    const ratioMap = {\n        '50/50': 'grid-cols-1 sm:grid-cols-2',\n        '33/67': 'grid-cols-1 sm:grid-cols-[1fr_2fr]',\n        '67/33': 'grid-cols-1 sm:grid-cols-[2fr_1fr]'\n    };\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        className: `grid ${ratioMap[ratio] || ratioMap['50/50']} ${gapMap[gap] || gapMap.md}`,\n        children: children\n    }, void 0, false, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/SplitLayout.tsx\",\n        lineNumber: 16,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9TcGxpdExheW91dC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR3lCO0FBRWxCLFNBQVNDLFlBQVksRUFBRUMsT0FBTyxFQUFFQyxRQUFRLEVBQXdCO0lBQ3JFLE1BQU0sRUFBRUMsUUFBUSxPQUFPLEVBQUVDLE1BQU0sSUFBSSxFQUFFLEdBQUdILFFBQVFJLEtBQUs7SUFDckQsTUFBTUMsU0FBUztRQUFFQyxJQUFJO1FBQVNDLElBQUk7UUFBU0MsSUFBSTtJQUFRO0lBQ3ZELE1BQU1DLFdBQW1DO1FBQ3ZDLFNBQVM7UUFDVCxTQUFTO1FBQ1QsU0FBUztJQUNYO0lBRUEscUJBQ0UsOERBQUNDO1FBQUlDLFdBQVcsQ0FBQyxLQUFLLEVBQUVGLFFBQVEsQ0FBQ1AsTUFBTSxJQUFJTyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRUosTUFBTSxDQUFDRixJQUEyQixJQUFJRSxPQUFPRSxFQUFFLEVBQUU7a0JBQzlHTjs7Ozs7O0FBR1AiLCJzb3VyY2VzIjpbIi9Vc2Vycy9qYWtlc2hvcmUvLmNsYXdkYm90L3dvcmtzcGFjZS9naGwtanNvbi1yZW5kZXItc3Bpa2Uvc3JjL2NvbXBvbmVudHMvU3BsaXRMYXlvdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgdHlwZSB7IENvbXBvbmVudFJlbmRlclByb3BzIH0gZnJvbSAnQGpzb24tcmVuZGVyL3JlYWN0J1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5leHBvcnQgZnVuY3Rpb24gU3BsaXRMYXlvdXQoeyBlbGVtZW50LCBjaGlsZHJlbiB9OiBDb21wb25lbnRSZW5kZXJQcm9wcykge1xuICBjb25zdCB7IHJhdGlvID0gJzUwLzUwJywgZ2FwID0gJ21kJyB9ID0gZWxlbWVudC5wcm9wcyBhcyB7IHJhdGlvPzogc3RyaW5nOyBnYXA/OiBzdHJpbmcgfVxuICBjb25zdCBnYXBNYXAgPSB7IHNtOiAnZ2FwLTMnLCBtZDogJ2dhcC02JywgbGc6ICdnYXAtOCcgfVxuICBjb25zdCByYXRpb01hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAnNTAvNTAnOiAnZ3JpZC1jb2xzLTEgc206Z3JpZC1jb2xzLTInLFxuICAgICczMy82Nyc6ICdncmlkLWNvbHMtMSBzbTpncmlkLWNvbHMtWzFmcl8yZnJdJyxcbiAgICAnNjcvMzMnOiAnZ3JpZC1jb2xzLTEgc206Z3JpZC1jb2xzLVsyZnJfMWZyXScsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtgZ3JpZCAke3JhdGlvTWFwW3JhdGlvXSB8fCByYXRpb01hcFsnNTAvNTAnXX0gJHtnYXBNYXBbZ2FwIGFzIGtleW9mIHR5cGVvZiBnYXBNYXBdIHx8IGdhcE1hcC5tZH1gfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiU3BsaXRMYXlvdXQiLCJlbGVtZW50IiwiY2hpbGRyZW4iLCJyYXRpbyIsImdhcCIsInByb3BzIiwiZ2FwTWFwIiwic20iLCJtZCIsImxnIiwicmF0aW9NYXAiLCJkaXYiLCJjbGFzc05hbWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/SplitLayout.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/StatsGrid.tsx":
/*!**************************************!*\
  !*** ./src/components/StatsGrid.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 */   StatsGrid: () => (/* binding */ StatsGrid)\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/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ StatsGrid auto */ \nfunction StatsGrid({ element, children }) {\n    const { columns = 3 } = element.props;\n    const gridCols = {\n        2: 'grid-cols-2',\n        3: 'grid-cols-2 sm:grid-cols-3',\n        4: 'grid-cols-2 sm:grid-cols-4',\n        6: 'grid-cols-2 sm:grid-cols-3 lg:grid-cols-6'\n    };\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        className: `grid ${gridCols[columns] || gridCols[3]} gap-4 mb-4`,\n        children: children\n    }, void 0, false, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/StatsGrid.tsx\",\n        lineNumber: 15,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9TdGF0c0dyaWQudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJTyxTQUFTQSxVQUFVLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxFQUF3QjtJQUNuRSxNQUFNLEVBQUVDLFVBQVUsQ0FBQyxFQUFFLEdBQUdGLFFBQVFHLEtBQUs7SUFDckMsTUFBTUMsV0FBbUM7UUFDdkMsR0FBRztRQUNILEdBQUc7UUFDSCxHQUFHO1FBQ0gsR0FBRztJQUNMO0lBRUEscUJBQ0UsOERBQUNDO1FBQUlDLFdBQVcsQ0FBQyxLQUFLLEVBQUVGLFFBQVEsQ0FBQ0YsUUFBUSxJQUFJRSxRQUFRLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQztrQkFDbEVIOzs7Ozs7QUFHUCIsInNvdXJjZXMiOlsiL1VzZXJzL2pha2VzaG9yZS8uY2xhd2Rib3Qvd29ya3NwYWNlL2dobC1qc29uLXJlbmRlci1zcGlrZS9zcmMvY29tcG9uZW50cy9TdGF0c0dyaWQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgdHlwZSB7IENvbXBvbmVudFJlbmRlclByb3BzIH0gZnJvbSAnQGpzb24tcmVuZGVyL3JlYWN0J1xuXG5leHBvcnQgZnVuY3Rpb24gU3RhdHNHcmlkKHsgZWxlbWVudCwgY2hpbGRyZW4gfTogQ29tcG9uZW50UmVuZGVyUHJvcHMpIHtcbiAgY29uc3QgeyBjb2x1bW5zID0gMyB9ID0gZWxlbWVudC5wcm9wcyBhcyB7IGNvbHVtbnM/OiBudW1iZXIgfVxuICBjb25zdCBncmlkQ29sczogUmVjb3JkPG51bWJlciwgc3RyaW5nPiA9IHtcbiAgICAyOiAnZ3JpZC1jb2xzLTInLFxuICAgIDM6ICdncmlkLWNvbHMtMiBzbTpncmlkLWNvbHMtMycsXG4gICAgNDogJ2dyaWQtY29scy0yIHNtOmdyaWQtY29scy00JyxcbiAgICA2OiAnZ3JpZC1jb2xzLTIgc206Z3JpZC1jb2xzLTMgbGc6Z3JpZC1jb2xzLTYnLFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17YGdyaWQgJHtncmlkQ29sc1tjb2x1bW5zXSB8fCBncmlkQ29sc1szXX0gZ2FwLTQgbWItNGB9PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiU3RhdHNHcmlkIiwiZWxlbWVudCIsImNoaWxkcmVuIiwiY29sdW1ucyIsInByb3BzIiwiZ3JpZENvbHMiLCJkaXYiLCJjbGFzc05hbWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/StatsGrid.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/StatusBadge.tsx":
/*!****************************************!*\
  !*** ./src/components/StatusBadge.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 */   StatusBadge: () => (/* binding */ StatusBadge)\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/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ StatusBadge auto */ \nconst variantColors = {\n    active: 'bg-blue-100 text-blue-800',\n    complete: 'bg-green-100 text-green-800',\n    paused: 'bg-yellow-100 text-yellow-800',\n    draft: 'bg-gray-200 text-gray-600',\n    error: 'bg-red-100 text-red-800',\n    sent: 'bg-blue-100 text-blue-800',\n    paid: 'bg-green-100 text-green-800',\n    pending: 'bg-yellow-100 text-yellow-800',\n    open: 'bg-blue-100 text-blue-700',\n    won: 'bg-green-100 text-green-700',\n    lost: 'bg-red-100 text-red-700'\n};\nfunction StatusBadge({ element }) {\n    const { label, variant } = element.props;\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n        className: `inline-flex items-center px-3 py-1 rounded-full text-xs font-semibold uppercase tracking-wide ${variantColors[variant] || variantColors.active}`,\n        children: label\n    }, void 0, false, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/StatusBadge.tsx\",\n        lineNumber: 22,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9TdGF0dXNCYWRnZS50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBLE1BQU1BLGdCQUF3QztJQUM1Q0MsUUFBUTtJQUNSQyxVQUFVO0lBQ1ZDLFFBQVE7SUFDUkMsT0FBTztJQUNQQyxPQUFPO0lBQ1BDLE1BQU07SUFDTkMsTUFBTTtJQUNOQyxTQUFTO0lBQ1RDLE1BQU07SUFDTkMsS0FBSztJQUNMQyxNQUFNO0FBQ1I7QUFFTyxTQUFTQyxZQUFZLEVBQUVDLE9BQU8sRUFBd0I7SUFDM0QsTUFBTSxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRSxHQUFHRixRQUFRRyxLQUFLO0lBQ3hDLHFCQUNFLDhEQUFDQztRQUFLQyxXQUFXLENBQUMsOEZBQThGLEVBQUVsQixhQUFhLENBQUNlLFFBQVEsSUFBSWYsY0FBY0MsTUFBTSxFQUFFO2tCQUMvSmE7Ozs7OztBQUdQIiwic291cmNlcyI6WyIvVXNlcnMvamFrZXNob3JlLy5jbGF3ZGJvdC93b3Jrc3BhY2UvZ2hsLWpzb24tcmVuZGVyLXNwaWtlL3NyYy9jb21wb25lbnRzL1N0YXR1c0JhZGdlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRSZW5kZXJQcm9wcyB9IGZyb20gJ0Bqc29uLXJlbmRlci9yZWFjdCdcblxuY29uc3QgdmFyaWFudENvbG9yczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgYWN0aXZlOiAnYmctYmx1ZS0xMDAgdGV4dC1ibHVlLTgwMCcsXG4gIGNvbXBsZXRlOiAnYmctZ3JlZW4tMTAwIHRleHQtZ3JlZW4tODAwJyxcbiAgcGF1c2VkOiAnYmcteWVsbG93LTEwMCB0ZXh0LXllbGxvdy04MDAnLFxuICBkcmFmdDogJ2JnLWdyYXktMjAwIHRleHQtZ3JheS02MDAnLFxuICBlcnJvcjogJ2JnLXJlZC0xMDAgdGV4dC1yZWQtODAwJyxcbiAgc2VudDogJ2JnLWJsdWUtMTAwIHRleHQtYmx1ZS04MDAnLFxuICBwYWlkOiAnYmctZ3JlZW4tMTAwIHRleHQtZ3JlZW4tODAwJyxcbiAgcGVuZGluZzogJ2JnLXllbGxvdy0xMDAgdGV4dC15ZWxsb3ctODAwJyxcbiAgb3BlbjogJ2JnLWJsdWUtMTAwIHRleHQtYmx1ZS03MDAnLFxuICB3b246ICdiZy1ncmVlbi0xMDAgdGV4dC1ncmVlbi03MDAnLFxuICBsb3N0OiAnYmctcmVkLTEwMCB0ZXh0LXJlZC03MDAnLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gU3RhdHVzQmFkZ2UoeyBlbGVtZW50IH06IENvbXBvbmVudFJlbmRlclByb3BzKSB7XG4gIGNvbnN0IHsgbGFiZWwsIHZhcmlhbnQgfSA9IGVsZW1lbnQucHJvcHMgYXMgeyBsYWJlbDogc3RyaW5nOyB2YXJpYW50OiBzdHJpbmcgfVxuICByZXR1cm4gKFxuICAgIDxzcGFuIGNsYXNzTmFtZT17YGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBweC0zIHB5LTEgcm91bmRlZC1mdWxsIHRleHQteHMgZm9udC1zZW1pYm9sZCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZSAke3ZhcmlhbnRDb2xvcnNbdmFyaWFudF0gfHwgdmFyaWFudENvbG9ycy5hY3RpdmV9YH0+XG4gICAgICB7bGFiZWx9XG4gICAgPC9zcGFuPlxuICApXG59XG4iXSwibmFtZXMiOlsidmFyaWFudENvbG9ycyIsImFjdGl2ZSIsImNvbXBsZXRlIiwicGF1c2VkIiwiZHJhZnQiLCJlcnJvciIsInNlbnQiLCJwYWlkIiwicGVuZGluZyIsIm9wZW4iLCJ3b24iLCJsb3N0IiwiU3RhdHVzQmFkZ2UiLCJlbGVtZW50IiwibGFiZWwiLCJ2YXJpYW50IiwicHJvcHMiLCJzcGFuIiwiY2xhc3NOYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/components/StatusBadge.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/TabGroup.tsx":
/*!*************************************!*\
  !*** ./src/components/TabGroup.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 */   TabGroup: () => (/* binding */ TabGroup)\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/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/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__ TabGroup auto */ \n\nfunction TabGroup({ element }) {\n    const { tabs, activeTab } = element.props;\n    const [active, setActive] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(activeTab || tabs[0]?.value);\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        className: \"flex border-b border-gray-200 mb-4\",\n        children: tabs.map((tab)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n                onClick: ()=>setActive(tab.value),\n                className: `px-4 py-2 text-sm font-medium border-b-2 transition-colors ${active === tab.value ? 'border-indigo-600 text-indigo-600' : 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300'}`,\n                children: [\n                    tab.label,\n                    tab.count !== undefined && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n                        className: \"ml-1.5 px-1.5 py-0.5 bg-gray-100 text-gray-500 rounded-full text-xs\",\n                        children: tab.count\n                    }, void 0, false, {\n                        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/TabGroup.tsx\",\n                        lineNumber: 26,\n                        columnNumber: 13\n                    }, this)\n                ]\n            }, tab.value, true, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/TabGroup.tsx\",\n                lineNumber: 15,\n                columnNumber: 9\n            }, this))\n    }, void 0, false, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/TabGroup.tsx\",\n        lineNumber: 13,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9UYWJHcm91cC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRWdDO0FBS3pCLFNBQVNDLFNBQVMsRUFBRUMsT0FBTyxFQUF3QjtJQUN4RCxNQUFNLEVBQUVDLElBQUksRUFBRUMsU0FBUyxFQUFFLEdBQUdGLFFBQVFHLEtBQUs7SUFDekMsTUFBTSxDQUFDQyxRQUFRQyxVQUFVLEdBQUdQLCtDQUFRQSxDQUFDSSxhQUFhRCxJQUFJLENBQUMsRUFBRSxFQUFFSztJQUUzRCxxQkFDRSw4REFBQ0M7UUFBSUMsV0FBVTtrQkFDWlAsS0FBS1EsR0FBRyxDQUFDQyxDQUFBQSxvQkFDUiw4REFBQ0M7Z0JBRUNDLFNBQVMsSUFBTVAsVUFBVUssSUFBSUosS0FBSztnQkFDbENFLFdBQVcsQ0FBQywyREFBMkQsRUFDckVKLFdBQVdNLElBQUlKLEtBQUssR0FDaEIsc0NBQ0EsOEVBQ0o7O29CQUVESSxJQUFJRyxLQUFLO29CQUNUSCxJQUFJSSxLQUFLLEtBQUtDLDJCQUNiLDhEQUFDQzt3QkFBS1IsV0FBVTtrQ0FDYkUsSUFBSUksS0FBSzs7Ozs7OztlQVhUSixJQUFJSixLQUFLOzs7Ozs7Ozs7O0FBa0J4QiIsInNvdXJjZXMiOlsiL1VzZXJzL2pha2VzaG9yZS8uY2xhd2Rib3Qvd29ya3NwYWNlL2dobC1qc29uLXJlbmRlci1zcGlrZS9zcmMvY29tcG9uZW50cy9UYWJHcm91cC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IENvbXBvbmVudFJlbmRlclByb3BzIH0gZnJvbSAnQGpzb24tcmVuZGVyL3JlYWN0J1xuXG50eXBlIFRhYiA9IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IHN0cmluZzsgY291bnQ/OiBudW1iZXIgfVxuXG5leHBvcnQgZnVuY3Rpb24gVGFiR3JvdXAoeyBlbGVtZW50IH06IENvbXBvbmVudFJlbmRlclByb3BzKSB7XG4gIGNvbnN0IHsgdGFicywgYWN0aXZlVGFiIH0gPSBlbGVtZW50LnByb3BzIGFzIHsgdGFiczogVGFiW107IGFjdGl2ZVRhYj86IHN0cmluZzsgZGF0YVBhdGg/OiBzdHJpbmcgfVxuICBjb25zdCBbYWN0aXZlLCBzZXRBY3RpdmVdID0gdXNlU3RhdGUoYWN0aXZlVGFiIHx8IHRhYnNbMF0/LnZhbHVlKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGJvcmRlci1iIGJvcmRlci1ncmF5LTIwMCBtYi00XCI+XG4gICAgICB7dGFicy5tYXAodGFiID0+IChcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGtleT17dGFiLnZhbHVlfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldEFjdGl2ZSh0YWIudmFsdWUpfVxuICAgICAgICAgIGNsYXNzTmFtZT17YHB4LTQgcHktMiB0ZXh0LXNtIGZvbnQtbWVkaXVtIGJvcmRlci1iLTIgdHJhbnNpdGlvbi1jb2xvcnMgJHtcbiAgICAgICAgICAgIGFjdGl2ZSA9PT0gdGFiLnZhbHVlXG4gICAgICAgICAgICAgID8gJ2JvcmRlci1pbmRpZ28tNjAwIHRleHQtaW5kaWdvLTYwMCdcbiAgICAgICAgICAgICAgOiAnYm9yZGVyLXRyYW5zcGFyZW50IHRleHQtZ3JheS01MDAgaG92ZXI6dGV4dC1ncmF5LTcwMCBob3Zlcjpib3JkZXItZ3JheS0zMDAnXG4gICAgICAgICAgfWB9XG4gICAgICAgID5cbiAgICAgICAgICB7dGFiLmxhYmVsfVxuICAgICAgICAgIHt0YWIuY291bnQgIT09IHVuZGVmaW5lZCAmJiAoXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJtbC0xLjUgcHgtMS41IHB5LTAuNSBiZy1ncmF5LTEwMCB0ZXh0LWdyYXktNTAwIHJvdW5kZWQtZnVsbCB0ZXh0LXhzXCI+XG4gICAgICAgICAgICAgIHt0YWIuY291bnR9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICApKX1cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbInVzZVN0YXRlIiwiVGFiR3JvdXAiLCJlbGVtZW50IiwidGFicyIsImFjdGl2ZVRhYiIsInByb3BzIiwiYWN0aXZlIiwic2V0QWN0aXZlIiwidmFsdWUiLCJkaXYiLCJjbGFzc05hbWUiLCJtYXAiLCJ0YWIiLCJidXR0b24iLCJvbkNsaWNrIiwibGFiZWwiLCJjb3VudCIsInVuZGVmaW5lZCIsInNwYW4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/TabGroup.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/Timeline.tsx":
/*!*************************************!*\
  !*** ./src/components/Timeline.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 */   Timeline: () => (/* binding */ Timeline)\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/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ Timeline auto */ \nconst iconMap = {\n    email: '📧',\n    phone: '📞',\n    note: '📝',\n    meeting: '📅',\n    task: '✅',\n    system: '⚙️'\n};\nconst variantBorder = {\n    default: 'border-gray-300',\n    success: 'border-green-400',\n    warning: 'border-yellow-400',\n    error: 'border-red-400'\n};\nfunction Timeline({ element }) {\n    const { events } = element.props;\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n        className: \"relative pl-6\",\n        children: [\n            /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                className: \"absolute left-2 top-2 bottom-2 w-0.5 bg-gray-200\"\n            }, void 0, false, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/Timeline.tsx\",\n                lineNumber: 26,\n                columnNumber: 7\n            }, this),\n            events.map((e)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                    className: \"relative mb-4 last:mb-0\",\n                    children: [\n                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                            className: `absolute -left-4 top-1 w-4 h-4 rounded-full border-2 bg-white flex items-center justify-center text-[8px] ${variantBorder[e.variant || 'default'] || variantBorder.default}`,\n                            children: iconMap[e.icon || 'system'] || '•'\n                        }, void 0, false, {\n                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/Timeline.tsx\",\n                            lineNumber: 29,\n                            columnNumber: 11\n                        }, this),\n                        /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                            className: \"ml-2\",\n                            children: [\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                    className: \"font-medium text-sm text-gray-900\",\n                                    children: e.title\n                                }, void 0, false, {\n                                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/Timeline.tsx\",\n                                    lineNumber: 33,\n                                    columnNumber: 13\n                                }, this),\n                                e.description && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                    className: \"text-sm text-gray-500 mt-0.5\",\n                                    children: e.description\n                                }, void 0, false, {\n                                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/Timeline.tsx\",\n                                    lineNumber: 34,\n                                    columnNumber: 31\n                                }, this),\n                                /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n                                    className: \"text-xs text-gray-400 mt-0.5\",\n                                    children: e.timestamp\n                                }, void 0, false, {\n                                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/Timeline.tsx\",\n                                    lineNumber: 35,\n                                    columnNumber: 13\n                                }, this)\n                            ]\n                        }, void 0, true, {\n                            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/Timeline.tsx\",\n                            lineNumber: 32,\n                            columnNumber: 11\n                        }, this)\n                    ]\n                }, e.id, true, {\n                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/Timeline.tsx\",\n                    lineNumber: 28,\n                    columnNumber: 9\n                }, this))\n        ]\n    }, void 0, true, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/components/Timeline.tsx\",\n        lineNumber: 25,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9UaW1lbGluZS50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQVNBLE1BQU1BLFVBQWtDO0lBQ3RDQyxPQUFPO0lBQU1DLE9BQU87SUFBTUMsTUFBTTtJQUFNQyxTQUFTO0lBQU1DLE1BQU07SUFBS0MsUUFBUTtBQUMxRTtBQUVBLE1BQU1DLGdCQUF3QztJQUM1Q0MsU0FBUztJQUNUQyxTQUFTO0lBQ1RDLFNBQVM7SUFDVEMsT0FBTztBQUNUO0FBRU8sU0FBU0MsU0FBUyxFQUFFQyxPQUFPLEVBQXdCO0lBQ3hELE1BQU0sRUFBRUMsTUFBTSxFQUFFLEdBQUdELFFBQVFFLEtBQUs7SUFFaEMscUJBQ0UsOERBQUNDO1FBQUlDLFdBQVU7OzBCQUNiLDhEQUFDRDtnQkFBSUMsV0FBVTs7Ozs7O1lBQ2RILE9BQU9JLEdBQUcsQ0FBQyxDQUFDQyxrQkFDWCw4REFBQ0g7b0JBQWVDLFdBQVU7O3NDQUN4Qiw4REFBQ0Q7NEJBQUlDLFdBQVcsQ0FBQywwR0FBMEcsRUFBRVYsYUFBYSxDQUFDWSxFQUFFQyxPQUFPLElBQUksVUFBVSxJQUFJYixjQUFjQyxPQUFPLEVBQUU7c0NBQzFMUixPQUFPLENBQUNtQixFQUFFRSxJQUFJLElBQUksU0FBUyxJQUFJOzs7Ozs7c0NBRWxDLDhEQUFDTDs0QkFBSUMsV0FBVTs7OENBQ2IsOERBQUNEO29DQUFJQyxXQUFVOzhDQUFxQ0UsRUFBRUcsS0FBSzs7Ozs7O2dDQUMxREgsRUFBRUksV0FBVyxrQkFBSSw4REFBQ1A7b0NBQUlDLFdBQVU7OENBQWdDRSxFQUFFSSxXQUFXOzs7Ozs7OENBQzlFLDhEQUFDUDtvQ0FBSUMsV0FBVTs4Q0FBZ0NFLEVBQUVLLFNBQVM7Ozs7Ozs7Ozs7Ozs7bUJBUHBETCxFQUFFTSxFQUFFOzs7Ozs7Ozs7OztBQWF0QiIsInNvdXJjZXMiOlsiL1VzZXJzL2pha2VzaG9yZS8uY2xhd2Rib3Qvd29ya3NwYWNlL2dobC1qc29uLXJlbmRlci1zcGlrZS9zcmMvY29tcG9uZW50cy9UaW1lbGluZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB0eXBlIHsgQ29tcG9uZW50UmVuZGVyUHJvcHMgfSBmcm9tICdAanNvbi1yZW5kZXIvcmVhY3QnXG5cbnR5cGUgVGltZWxpbmVFdmVudCA9IHtcbiAgaWQ6IHN0cmluZzsgdGl0bGU6IHN0cmluZzsgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgdGltZXN0YW1wOiBzdHJpbmc7IGljb24/OiBzdHJpbmc7IHZhcmlhbnQ/OiBzdHJpbmdcbn1cblxuY29uc3QgaWNvbk1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZW1haWw6ICfwn5OnJywgcGhvbmU6ICfwn5OeJywgbm90ZTogJ/Cfk50nLCBtZWV0aW5nOiAn8J+ThScsIHRhc2s6ICfinIUnLCBzeXN0ZW06ICfimpnvuI8nLFxufVxuXG5jb25zdCB2YXJpYW50Qm9yZGVyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZWZhdWx0OiAnYm9yZGVyLWdyYXktMzAwJyxcbiAgc3VjY2VzczogJ2JvcmRlci1ncmVlbi00MDAnLFxuICB3YXJuaW5nOiAnYm9yZGVyLXllbGxvdy00MDAnLFxuICBlcnJvcjogJ2JvcmRlci1yZWQtNDAwJyxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFRpbWVsaW5lKHsgZWxlbWVudCB9OiBDb21wb25lbnRSZW5kZXJQcm9wcykge1xuICBjb25zdCB7IGV2ZW50cyB9ID0gZWxlbWVudC5wcm9wcyBhcyB7IGV2ZW50czogVGltZWxpbmVFdmVudFtdIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmUgcGwtNlwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBsZWZ0LTIgdG9wLTIgYm90dG9tLTIgdy0wLjUgYmctZ3JheS0yMDBcIiAvPlxuICAgICAge2V2ZW50cy5tYXAoKGUpID0+IChcbiAgICAgICAgPGRpdiBrZXk9e2UuaWR9IGNsYXNzTmFtZT1cInJlbGF0aXZlIG1iLTQgbGFzdDptYi0wXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2BhYnNvbHV0ZSAtbGVmdC00IHRvcC0xIHctNCBoLTQgcm91bmRlZC1mdWxsIGJvcmRlci0yIGJnLXdoaXRlIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRleHQtWzhweF0gJHt2YXJpYW50Qm9yZGVyW2UudmFyaWFudCB8fCAnZGVmYXVsdCddIHx8IHZhcmlhbnRCb3JkZXIuZGVmYXVsdH1gfT5cbiAgICAgICAgICAgIHtpY29uTWFwW2UuaWNvbiB8fCAnc3lzdGVtJ10gfHwgJ+KAoid9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtbC0yXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvbnQtbWVkaXVtIHRleHQtc20gdGV4dC1ncmF5LTkwMFwiPntlLnRpdGxlfTwvZGl2PlxuICAgICAgICAgICAge2UuZGVzY3JpcHRpb24gJiYgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtZ3JheS01MDAgbXQtMC41XCI+e2UuZGVzY3JpcHRpb259PC9kaXY+fVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtZ3JheS00MDAgbXQtMC41XCI+e2UudGltZXN0YW1wfTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICkpfVxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiaWNvbk1hcCIsImVtYWlsIiwicGhvbmUiLCJub3RlIiwibWVldGluZyIsInRhc2siLCJzeXN0ZW0iLCJ2YXJpYW50Qm9yZGVyIiwiZGVmYXVsdCIsInN1Y2Nlc3MiLCJ3YXJuaW5nIiwiZXJyb3IiLCJUaW1lbGluZSIsImVsZW1lbnQiLCJldmVudHMiLCJwcm9wcyIsImRpdiIsImNsYXNzTmFtZSIsIm1hcCIsImUiLCJ2YXJpYW50IiwiaWNvbiIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJ0aW1lc3RhbXAiLCJpZCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/components/Timeline.tsx\n");

/***/ }),

/***/ "(ssr)/./src/components/registry.tsx":
/*!*************************************!*\
  !*** ./src/components/registry.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 */   ghlRegistry: () => (/* binding */ ghlRegistry)\n/* harmony export */ });\n/* harmony import */ var _PageHeader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PageHeader */ \"(ssr)/./src/components/PageHeader.tsx\");\n/* harmony import */ var _Card__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Card */ \"(ssr)/./src/components/Card.tsx\");\n/* harmony import */ var _StatsGrid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./StatsGrid */ \"(ssr)/./src/components/StatsGrid.tsx\");\n/* harmony import */ var _SplitLayout__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./SplitLayout */ \"(ssr)/./src/components/SplitLayout.tsx\");\n/* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Section */ \"(ssr)/./src/components/Section.tsx\");\n/* harmony import */ var _DataTable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./DataTable */ \"(ssr)/./src/components/DataTable.tsx\");\n/* harmony import */ var _KanbanBoard__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./KanbanBoard */ \"(ssr)/./src/components/KanbanBoard.tsx\");\n/* harmony import */ var _MetricCard__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./MetricCard */ \"(ssr)/./src/components/MetricCard.tsx\");\n/* harmony import */ var _StatusBadge__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./StatusBadge */ \"(ssr)/./src/components/StatusBadge.tsx\");\n/* harmony import */ var _Timeline__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Timeline */ \"(ssr)/./src/components/Timeline.tsx\");\n/* harmony import */ var _ProgressBar__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./ProgressBar */ \"(ssr)/./src/components/ProgressBar.tsx\");\n/* harmony import */ var _DetailHeader__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./DetailHeader */ \"(ssr)/./src/components/DetailHeader.tsx\");\n/* harmony import */ var _KeyValueList__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./KeyValueList */ \"(ssr)/./src/components/KeyValueList.tsx\");\n/* harmony import */ var _LineItemsTable__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./LineItemsTable */ \"(ssr)/./src/components/LineItemsTable.tsx\");\n/* harmony import */ var _InfoBlock__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./InfoBlock */ \"(ssr)/./src/components/InfoBlock.tsx\");\n/* harmony import */ var _SearchBar__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./SearchBar */ \"(ssr)/./src/components/SearchBar.tsx\");\n/* harmony import */ var _FilterChips__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./FilterChips */ \"(ssr)/./src/components/FilterChips.tsx\");\n/* harmony import */ var _TabGroup__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./TabGroup */ \"(ssr)/./src/components/TabGroup.tsx\");\n/* harmony import */ var _ActionButton__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./ActionButton */ \"(ssr)/./src/components/ActionButton.tsx\");\n/* harmony import */ var _ActionBar__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./ActionBar */ \"(ssr)/./src/components/ActionBar.tsx\");\n/* __next_internal_client_entry_do_not_use__ ghlRegistry auto */ \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst ghlRegistry = {\n    PageHeader: _PageHeader__WEBPACK_IMPORTED_MODULE_0__.PageHeader,\n    Card: _Card__WEBPACK_IMPORTED_MODULE_1__.Card,\n    StatsGrid: _StatsGrid__WEBPACK_IMPORTED_MODULE_2__.StatsGrid,\n    SplitLayout: _SplitLayout__WEBPACK_IMPORTED_MODULE_3__.SplitLayout,\n    Section: _Section__WEBPACK_IMPORTED_MODULE_4__.Section,\n    DataTable: _DataTable__WEBPACK_IMPORTED_MODULE_5__.DataTable,\n    KanbanBoard: _KanbanBoard__WEBPACK_IMPORTED_MODULE_6__.KanbanBoard,\n    MetricCard: _MetricCard__WEBPACK_IMPORTED_MODULE_7__.MetricCard,\n    StatusBadge: _StatusBadge__WEBPACK_IMPORTED_MODULE_8__.StatusBadge,\n    Timeline: _Timeline__WEBPACK_IMPORTED_MODULE_9__.Timeline,\n    ProgressBar: _ProgressBar__WEBPACK_IMPORTED_MODULE_10__.ProgressBar,\n    DetailHeader: _DetailHeader__WEBPACK_IMPORTED_MODULE_11__.DetailHeader,\n    KeyValueList: _KeyValueList__WEBPACK_IMPORTED_MODULE_12__.KeyValueList,\n    LineItemsTable: _LineItemsTable__WEBPACK_IMPORTED_MODULE_13__.LineItemsTable,\n    InfoBlock: _InfoBlock__WEBPACK_IMPORTED_MODULE_14__.InfoBlock,\n    SearchBar: _SearchBar__WEBPACK_IMPORTED_MODULE_15__.SearchBar,\n    FilterChips: _FilterChips__WEBPACK_IMPORTED_MODULE_16__.FilterChips,\n    TabGroup: _TabGroup__WEBPACK_IMPORTED_MODULE_17__.TabGroup,\n    ActionButton: _ActionButton__WEBPACK_IMPORTED_MODULE_18__.ActionButton,\n    ActionBar: _ActionBar__WEBPACK_IMPORTED_MODULE_19__.ActionBar\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9yZWdpc3RyeS50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lFQUd5QztBQUNaO0FBQ1U7QUFDSTtBQUNSO0FBQ0k7QUFDSTtBQUNGO0FBQ0U7QUFDTjtBQUNNO0FBQ0U7QUFDQTtBQUNJO0FBQ1Y7QUFDQTtBQUNJO0FBQ047QUFDUTtBQUNOO0FBRWhDLE1BQU1vQixjQUFpQztJQUM1Q3BCLFVBQVVBLHFEQUFBQTtJQUNWQyxJQUFJQSx5Q0FBQUE7SUFDSkMsU0FBU0EsbURBQUFBO0lBQ1RDLFdBQVdBLHVEQUFBQTtJQUNYQyxPQUFPQSwrQ0FBQUE7SUFDUEMsU0FBU0EsbURBQUFBO0lBQ1RDLFdBQVdBLHVEQUFBQTtJQUNYQyxVQUFVQSxxREFBQUE7SUFDVkMsV0FBV0EsdURBQUFBO0lBQ1hDLFFBQVFBLGlEQUFBQTtJQUNSQyxXQUFXQSx3REFBQUE7SUFDWEMsWUFBWUEsMERBQUFBO0lBQ1pDLFlBQVlBLDBEQUFBQTtJQUNaQyxjQUFjQSw4REFBQUE7SUFDZEMsU0FBU0Esb0RBQUFBO0lBQ1RDLFNBQVNBLG9EQUFBQTtJQUNUQyxXQUFXQSx3REFBQUE7SUFDWEMsUUFBUUEsa0RBQUFBO0lBQ1JDLFlBQVlBLDBEQUFBQTtJQUNaQyxTQUFTQSxvREFBQUE7QUFDWCxFQUFDIiwic291cmNlcyI6WyIvVXNlcnMvamFrZXNob3JlLy5jbGF3ZGJvdC93b3Jrc3BhY2UvZ2hsLWpzb24tcmVuZGVyLXNwaWtlL3NyYy9jb21wb25lbnRzL3JlZ2lzdHJ5LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRSZWdpc3RyeSB9IGZyb20gJ0Bqc29uLXJlbmRlci9yZWFjdCdcbmltcG9ydCB7IFBhZ2VIZWFkZXIgfSBmcm9tICcuL1BhZ2VIZWFkZXInXG5pbXBvcnQgeyBDYXJkIH0gZnJvbSAnLi9DYXJkJ1xuaW1wb3J0IHsgU3RhdHNHcmlkIH0gZnJvbSAnLi9TdGF0c0dyaWQnXG5pbXBvcnQgeyBTcGxpdExheW91dCB9IGZyb20gJy4vU3BsaXRMYXlvdXQnXG5pbXBvcnQgeyBTZWN0aW9uIH0gZnJvbSAnLi9TZWN0aW9uJ1xuaW1wb3J0IHsgRGF0YVRhYmxlIH0gZnJvbSAnLi9EYXRhVGFibGUnXG5pbXBvcnQgeyBLYW5iYW5Cb2FyZCB9IGZyb20gJy4vS2FuYmFuQm9hcmQnXG5pbXBvcnQgeyBNZXRyaWNDYXJkIH0gZnJvbSAnLi9NZXRyaWNDYXJkJ1xuaW1wb3J0IHsgU3RhdHVzQmFkZ2UgfSBmcm9tICcuL1N0YXR1c0JhZGdlJ1xuaW1wb3J0IHsgVGltZWxpbmUgfSBmcm9tICcuL1RpbWVsaW5lJ1xuaW1wb3J0IHsgUHJvZ3Jlc3NCYXIgfSBmcm9tICcuL1Byb2dyZXNzQmFyJ1xuaW1wb3J0IHsgRGV0YWlsSGVhZGVyIH0gZnJvbSAnLi9EZXRhaWxIZWFkZXInXG5pbXBvcnQgeyBLZXlWYWx1ZUxpc3QgfSBmcm9tICcuL0tleVZhbHVlTGlzdCdcbmltcG9ydCB7IExpbmVJdGVtc1RhYmxlIH0gZnJvbSAnLi9MaW5lSXRlbXNUYWJsZSdcbmltcG9ydCB7IEluZm9CbG9jayB9IGZyb20gJy4vSW5mb0Jsb2NrJ1xuaW1wb3J0IHsgU2VhcmNoQmFyIH0gZnJvbSAnLi9TZWFyY2hCYXInXG5pbXBvcnQgeyBGaWx0ZXJDaGlwcyB9IGZyb20gJy4vRmlsdGVyQ2hpcHMnXG5pbXBvcnQgeyBUYWJHcm91cCB9IGZyb20gJy4vVGFiR3JvdXAnXG5pbXBvcnQgeyBBY3Rpb25CdXR0b24gfSBmcm9tICcuL0FjdGlvbkJ1dHRvbidcbmltcG9ydCB7IEFjdGlvbkJhciB9IGZyb20gJy4vQWN0aW9uQmFyJ1xuXG5leHBvcnQgY29uc3QgZ2hsUmVnaXN0cnk6IENvbXBvbmVudFJlZ2lzdHJ5ID0ge1xuICBQYWdlSGVhZGVyLFxuICBDYXJkLFxuICBTdGF0c0dyaWQsXG4gIFNwbGl0TGF5b3V0LFxuICBTZWN0aW9uLFxuICBEYXRhVGFibGUsXG4gIEthbmJhbkJvYXJkLFxuICBNZXRyaWNDYXJkLFxuICBTdGF0dXNCYWRnZSxcbiAgVGltZWxpbmUsXG4gIFByb2dyZXNzQmFyLFxuICBEZXRhaWxIZWFkZXIsXG4gIEtleVZhbHVlTGlzdCxcbiAgTGluZUl0ZW1zVGFibGUsXG4gIEluZm9CbG9jayxcbiAgU2VhcmNoQmFyLFxuICBGaWx0ZXJDaGlwcyxcbiAgVGFiR3JvdXAsXG4gIEFjdGlvbkJ1dHRvbixcbiAgQWN0aW9uQmFyLFxufVxuIl0sIm5hbWVzIjpbIlBhZ2VIZWFkZXIiLCJDYXJkIiwiU3RhdHNHcmlkIiwiU3BsaXRMYXlvdXQiLCJTZWN0aW9uIiwiRGF0YVRhYmxlIiwiS2FuYmFuQm9hcmQiLCJNZXRyaWNDYXJkIiwiU3RhdHVzQmFkZ2UiLCJUaW1lbGluZSIsIlByb2dyZXNzQmFyIiwiRGV0YWlsSGVhZGVyIiwiS2V5VmFsdWVMaXN0IiwiTGluZUl0ZW1zVGFibGUiLCJJbmZvQmxvY2siLCJTZWFyY2hCYXIiLCJGaWx0ZXJDaGlwcyIsIlRhYkdyb3VwIiwiQWN0aW9uQnV0dG9uIiwiQWN0aW9uQmFyIiwiZ2hsUmVnaXN0cnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/registry.tsx\n");

/***/ }),

/***/ "(ssr)/./src/examples/invoice-preview.json":
/*!*******************************************!*\
  !*** ./src/examples/invoice-preview.json ***!
  \*******************************************/
/***/ ((module) => {

"use strict";
module.exports = /*#__PURE__*/JSON.parse('{"root":"page","elements":{"page":{"key":"page","type":"Section","props":{},"children":["detail_header","dates","parties","line_items","totals","actions"]},"detail_header":{"key":"detail_header","type":"DetailHeader","props":{"title":"Invoice","entityId":"INV-2026-0142","status":"Sent","statusVariant":"sent"}},"dates":{"key":"dates","type":"KeyValueList","props":{"compact":true,"items":[{"label":"Issue Date","value":"January 28, 2026"},{"label":"Due Date","value":"February 27, 2026"},{"label":"Payment Terms","value":"Net 30"}]}},"parties":{"key":"parties","type":"SplitLayout","props":{"ratio":"50/50","gap":"md"},"children":["from_block","to_block"]},"from_block":{"key":"from_block","type":"InfoBlock","props":{"label":"From","name":"Shore Digital Marketing","lines":["123 Business Ave, Suite 400","Austin, TX 78701","billing@shoredigital.com","(555) 100-2000"]}},"to_block":{"key":"to_block","type":"InfoBlock","props":{"label":"Bill To","name":"Amanda Foster — BrightPath Org","lines":["456 Client Blvd","San Francisco, CA 94105","afoster@brightpath.org","(555) 456-7890"]}},"line_items":{"key":"line_items","type":"LineItemsTable","props":{"currency":"USD","items":[{"name":"Website Redesign","description":"Complete redesign of corporate website (12 pages)","quantity":1,"unitPrice":8500,"total":8500},{"name":"SEO Optimization","description":"On-page SEO audit and implementation","quantity":1,"unitPrice":2500,"total":2500},{"name":"Content Creation","description":"Blog posts and landing page copy (per piece)","quantity":8,"unitPrice":350,"total":2800},{"name":"Social Media Setup","description":"Account setup and initial content calendar","quantity":3,"unitPrice":500,"total":1500},{"name":"Monthly Hosting","description":"Managed WordPress hosting (per month)","quantity":12,"unitPrice":49,"total":588}]}},"totals":{"key":"totals","type":"KeyValueList","props":{"items":[{"label":"Subtotal","value":"$15,888.00"},{"label":"Discount (10%)","value":"-$1,588.80","variant":"success"},{"label":"Tax (8.25%)","value":"$1,179.71"},{"label":"Total","value":"$15,478.91","bold":true},{"label":"Amount Due","value":"$15,478.91","isTotalRow":true}]}},"actions":{"key":"actions","type":"ActionBar","props":{"align":"right"},"children":["btn_download","btn_send","btn_paid"]},"btn_download":{"key":"btn_download","type":"ActionButton","props":{"label":"Download PDF","variant":"secondary","action":{"name":"download_pdf","params":{"entityId":"INV-2026-0142"}}}},"btn_send":{"key":"btn_send","type":"ActionButton","props":{"label":"Send Invoice","variant":"primary","action":{"name":"send_invoice","params":{"invoiceId":"INV-2026-0142"}}}},"btn_paid":{"key":"btn_paid","type":"ActionButton","props":{"label":"Mark Paid","variant":"ghost","action":{"name":"mark_paid","params":{"invoiceId":"INV-2026-0142"},"confirm":{"title":"Mark as Paid","message":"Mark invoice INV-2026-0142 for $15,478.91 as paid?","confirmLabel":"Mark Paid","variant":"default"}}}}}}');

/***/ }),

/***/ "(ssr)/./src/lib/GHLRenderer.tsx":
/*!*********************************!*\
  !*** ./src/lib/GHLRenderer.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 */   GHLRenderer: () => (/* binding */ GHLRenderer)\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/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 _json_render_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @json-render/react */ \"(ssr)/./node_modules/@json-render/react/dist/index.mjs\");\n/* harmony import */ var _components_registry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/registry */ \"(ssr)/./src/components/registry.tsx\");\n/* __next_internal_client_entry_do_not_use__ GHLRenderer auto */ \n\n\n/**\n * Action handlers that log to console (demo mode).\n * In production these would call GHL APIs.\n */ const demoActionHandlers = {\n    view_contact: (p)=>console.log('🔍 View contact:', p),\n    edit_contact: (p)=>console.log('✏️ Edit contact:', p),\n    delete_contact: (p)=>console.log('🗑️ Delete contact:', p),\n    move_opportunity: (p)=>console.log('📦 Move opportunity:', p),\n    send_invoice: (p)=>console.log('📧 Send invoice:', p),\n    mark_paid: (p)=>console.log('✅ Mark paid:', p),\n    void_invoice: (p)=>console.log('❌ Void invoice:', p),\n    download_pdf: (p)=>console.log('📄 Download PDF:', p),\n    pause_campaign: (p)=>console.log('⏸️ Pause campaign:', p),\n    resume_campaign: (p)=>console.log('▶️ Resume campaign:', p),\n    export_data: (p)=>console.log('📊 Export data:', p),\n    refresh_data: ()=>console.log('🔄 Refresh data')\n};\nfunction GHLRenderer({ tree, data = {} }) {\n    return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_json_render_react__WEBPACK_IMPORTED_MODULE_1__.DataProvider, {\n        initialData: data,\n        children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_json_render_react__WEBPACK_IMPORTED_MODULE_1__.VisibilityProvider, {\n            children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_json_render_react__WEBPACK_IMPORTED_MODULE_1__.ActionProvider, {\n                handlers: demoActionHandlers,\n                children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_json_render_react__WEBPACK_IMPORTED_MODULE_1__.Renderer, {\n                    tree: tree,\n                    registry: _components_registry__WEBPACK_IMPORTED_MODULE_2__.ghlRegistry\n                }, void 0, false, {\n                    fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/lib/GHLRenderer.tsx\",\n                    lineNumber: 36,\n                    columnNumber: 11\n                }, this)\n            }, void 0, false, {\n                fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/lib/GHLRenderer.tsx\",\n                lineNumber: 35,\n                columnNumber: 9\n            }, this)\n        }, void 0, false, {\n            fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/lib/GHLRenderer.tsx\",\n            lineNumber: 34,\n            columnNumber: 7\n        }, this)\n    }, void 0, false, {\n        fileName: \"/Users/jakeshore/.clawdbot/workspace/ghl-json-render-spike/src/lib/GHLRenderer.tsx\",\n        lineNumber: 33,\n        columnNumber: 5\n    }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64, \n//# sourceURL=webpack-internal:///(ssr)/./src/lib/GHLRenderer.tsx\n");

/***/ }),

/***/ "../app-render/action-async-storage.external":
/*!*******************************************************************************!*\
  !*** external "next/dist/server/app-render/action-async-storage.external.js" ***!
  \*******************************************************************************/
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/server/app-render/action-async-storage.external.js");

/***/ }),

/***/ "../app-render/after-task-async-storage.external":
/*!***********************************************************************************!*\
  !*** external "next/dist/server/app-render/after-task-async-storage.external.js" ***!
  \***********************************************************************************/
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/server/app-render/after-task-async-storage.external.js");

/***/ }),

/***/ "../app-render/dynamic-access-async-storage.external":
/*!***************************************************************************************!*\
  !*** external "next/dist/server/app-render/dynamic-access-async-storage.external.js" ***!
  \***************************************************************************************/
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/server/app-render/dynamic-access-async-storage.external.js");

/***/ }),

/***/ "./work-async-storage.external":
/*!*****************************************************************************!*\
  !*** external "next/dist/server/app-render/work-async-storage.external.js" ***!
  \*****************************************************************************/
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/server/app-render/work-async-storage.external.js");

/***/ }),

/***/ "./work-unit-async-storage.external":
/*!**********************************************************************************!*\
  !*** external "next/dist/server/app-render/work-unit-async-storage.external.js" ***!
  \**********************************************************************************/
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/server/app-render/work-unit-async-storage.external.js");

/***/ }),

/***/ "module":
/*!*************************!*\
  !*** external "module" ***!
  \*************************/
/***/ ((module) => {

"use strict";
module.exports = require("module");

/***/ }),

/***/ "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");

/***/ }),

/***/ "next/dist/shared/lib/no-fallback-error.external":
/*!******************************************************************!*\
  !*** external "next/dist/shared/lib/no-fallback-error.external" ***!
  \******************************************************************/
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/no-fallback-error.external");

/***/ }),

/***/ "next/dist/shared/lib/router/utils/app-paths":
/*!**************************************************************!*\
  !*** external "next/dist/shared/lib/router/utils/app-paths" ***!
  \**************************************************************/
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/router/utils/app-paths");

/***/ }),

/***/ "next/dist/shared/lib/router/utils/is-bot":
/*!***********************************************************!*\
  !*** external "next/dist/shared/lib/router/utils/is-bot" ***!
  \***********************************************************/
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/router/utils/is-bot");

/***/ }),

/***/ "path":
/*!***********************!*\
  !*** external "path" ***!
  \***********************/
/***/ ((module) => {

"use strict";
module.exports = require("path");

/***/ }),

/***/ "util":
/*!***********************!*\
  !*** external "util" ***!
  \***********************/
/***/ ((module) => {

"use strict";
module.exports = require("util");

/***/ })

};
;

// 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/zod","vendor-chunks/@json-render","vendor-chunks/@swc"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Finvoice%2Fpage&page=%2Finvoice%2Fpage&appPaths=%2Finvoice%2Fpage&pagePath=private-next-app-dir%2Finvoice%2Fpage.tsx&appDir=%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fjakeshore%2F.clawdbot%2Fworkspace%2Fghl-json-render-spike&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!")));
module.exports = __webpack_exports__;

})();