@circuitwall/jarela 0.8.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-path-routes-manifest.json +1 -1
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js +1 -537
- package/.next/standalone/.next/server/app/_not-found/page.js.map +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +23 -2
- package/.next/standalone/.next/server/app/_not-found.rsc +47 -18
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +47 -18
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +36 -7
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.html +23 -2
- package/.next/standalone/.next/server/app/index.rsc +46 -17
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +46 -17
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +36 -7
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/page.js +79690 -79580
- package/.next/standalone/.next/server/app/page.js.map +1 -1
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/setup/page.js +1 -1
- package/.next/standalone/.next/server/app/setup/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/setup.html +1 -1
- package/.next/standalone/.next/server/app/setup.rsc +48 -19
- package/.next/standalone/.next/server/app/setup.segments/_full.segment.rsc +48 -19
- package/.next/standalone/.next/server/app/setup.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/setup.segments/_index.segment.rsc +36 -7
- package/.next/standalone/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/setup.segments/setup.segment.rsc +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +1 -1
- package/.next/standalone/.next/server/chunks/4045.js +611 -0
- package/.next/standalone/.next/server/chunks/4045.js.map +1 -0
- package/.next/standalone/.next/server/chunks/5432.js +5 -2
- package/.next/standalone/.next/server/chunks/5432.js.map +1 -1
- package/.next/standalone/.next/server/chunks/{5745.js → 6765.js} +9 -551
- package/.next/standalone/.next/server/chunks/6765.js.map +1 -0
- package/.next/standalone/.next/server/chunks/7885.js +5 -2
- package/.next/standalone/.next/server/chunks/7885.js.map +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +2 -2
- package/.next/standalone/.next/server/pages/404.html +23 -2
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/{3741-81560b0aef166f49.js → 3741-b70e2d1a48a087d6.js} +16 -9
- package/.next/standalone/.next/static/chunks/3741-b70e2d1a48a087d6.js.map +1 -0
- package/.next/standalone/.next/static/chunks/app/{layout-31009df0f341ccf5.js → layout-84c6f211a7a1ca36.js} +38 -5
- package/.next/standalone/.next/static/chunks/app/layout-84c6f211a7a1ca36.js.map +1 -0
- package/.next/standalone/.next/static/chunks/app/{page-108f526cb6e48b7b.js → page-31e4d0ad258be21a.js} +258 -122
- package/.next/standalone/.next/static/chunks/app/page-31e4d0ad258be21a.js.map +1 -0
- package/.next/standalone/.next/static/css/af02b3acc7d8f08d.css +5 -0
- package/.next/standalone/.next/static/css/af02b3acc7d8f08d.css.map +1 -0
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/public/manifest.json +2 -2
- package/CHANGELOG.md +24 -0
- package/api/types.ts +3 -1
- package/app/layout.tsx +30 -1
- package/components/agents/AgentEditor.tsx +5 -5
- package/components/layout/AppShell.tsx +36 -18
- package/components/layout/MenuPanel.tsx +7 -7
- package/components/models/ModelEditor.tsx +3 -3
- package/components/profile/ProfileEditor.tsx +9 -9
- package/components/profile/ProfilePanel.tsx +3 -3
- package/components/setup/OnboardingWizard.tsx +4 -4
- package/components/ui/HeaderActivity.tsx +24 -0
- package/contexts/AppContext.tsx +12 -4
- package/contexts/ThemeContext.tsx +30 -1
- package/hooks/useSSE.ts +42 -5
- package/lib/agents/base.ts +3 -1
- package/lib/agents/run-thread.ts +6 -3
- package/lib/ui/loading.ts +59 -0
- package/package.json +1 -1
- package/public/manifest.json +2 -2
- package/.next/standalone/.next/server/chunks/5745.js.map +0 -1
- package/.next/standalone/.next/static/chunks/3741-81560b0aef166f49.js.map +0 -1
- package/.next/standalone/.next/static/chunks/app/layout-31009df0f341ccf5.js.map +0 -1
- package/.next/standalone/.next/static/chunks/app/page-108f526cb6e48b7b.js.map +0 -1
- package/.next/standalone/.next/static/css/a23baa1c79db0435.css +0 -5
- package/.next/standalone/.next/static/css/a23baa1c79db0435.css.map +0 -1
- package/components/ui/TopProgressBar.tsx +0 -32
- /package/.next/standalone/.next/static/{0ImXz-nn9QbojXpTvB3i0 → yk5tOLkAUA4hfQKDjGbzK}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{0ImXz-nn9QbojXpTvB3i0 → yk5tOLkAUA4hfQKDjGbzK}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,611 @@
|
|
|
1
|
+
exports.id = 4045;
|
|
2
|
+
exports.ids = [4045];
|
|
3
|
+
exports.modules = {
|
|
4
|
+
|
|
5
|
+
/***/ 13236:
|
|
6
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
7
|
+
|
|
8
|
+
"use strict";
|
|
9
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
10
|
+
/* harmony export */ ServiceWorkerRegistration: () => (/* binding */ ServiceWorkerRegistration)
|
|
11
|
+
/* harmony export */ });
|
|
12
|
+
/* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(77943);
|
|
13
|
+
/* 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__);
|
|
14
|
+
// This file is generated by the Webpack next-flight-loader.
|
|
15
|
+
|
|
16
|
+
const ServiceWorkerRegistration = (0,react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)(
|
|
17
|
+
function() { throw new Error("Attempted to call ServiceWorkerRegistration() from the server but ServiceWorkerRegistration is 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."); },
|
|
18
|
+
"/home/runner/work/jarela/jarela/components/ui/ServiceWorkerRegistration.tsx",
|
|
19
|
+
"ServiceWorkerRegistration",
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
/***/ }),
|
|
23
|
+
|
|
24
|
+
/***/ 25933:
|
|
25
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
26
|
+
|
|
27
|
+
"use strict";
|
|
28
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
29
|
+
/* harmony export */ AppProvider: () => (/* binding */ AppProvider)
|
|
30
|
+
/* harmony export */ });
|
|
31
|
+
/* unused harmony export useAppContext */
|
|
32
|
+
/* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(77943);
|
|
33
|
+
/* 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__);
|
|
34
|
+
// This file is generated by the Webpack next-flight-loader.
|
|
35
|
+
|
|
36
|
+
const AppProvider = (0,react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)(
|
|
37
|
+
function() { throw new Error("Attempted to call AppProvider() from the server but AppProvider is 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."); },
|
|
38
|
+
"/home/runner/work/jarela/jarela/contexts/AppContext.tsx",
|
|
39
|
+
"AppProvider",
|
|
40
|
+
);const useAppContext = (0,react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)(
|
|
41
|
+
function() { throw new Error("Attempted to call useAppContext() from the server but useAppContext is 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."); },
|
|
42
|
+
"/home/runner/work/jarela/jarela/contexts/AppContext.tsx",
|
|
43
|
+
"useAppContext",
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
/***/ }),
|
|
47
|
+
|
|
48
|
+
/***/ 28383:
|
|
49
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
50
|
+
|
|
51
|
+
"use strict";
|
|
52
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
53
|
+
/* harmony export */ ThemeProvider: () => (/* binding */ ThemeProvider)
|
|
54
|
+
/* harmony export */ });
|
|
55
|
+
/* unused harmony export useTheme */
|
|
56
|
+
/* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(77943);
|
|
57
|
+
/* 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__);
|
|
58
|
+
// This file is generated by the Webpack next-flight-loader.
|
|
59
|
+
|
|
60
|
+
const ThemeProvider = (0,react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)(
|
|
61
|
+
function() { throw new Error("Attempted to call ThemeProvider() from the server but ThemeProvider is 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."); },
|
|
62
|
+
"/home/runner/work/jarela/jarela/contexts/ThemeContext.tsx",
|
|
63
|
+
"ThemeProvider",
|
|
64
|
+
);const useTheme = (0,react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)(
|
|
65
|
+
function() { throw new Error("Attempted to call useTheme() from the server but useTheme is 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."); },
|
|
66
|
+
"/home/runner/work/jarela/jarela/contexts/ThemeContext.tsx",
|
|
67
|
+
"useTheme",
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
/***/ }),
|
|
71
|
+
|
|
72
|
+
/***/ 32056:
|
|
73
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
74
|
+
|
|
75
|
+
"use strict";
|
|
76
|
+
__webpack_require__.r(__webpack_exports__);
|
|
77
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
78
|
+
/* harmony export */ "default": () => (/* binding */ RootLayout),
|
|
79
|
+
/* harmony export */ metadata: () => (/* binding */ metadata),
|
|
80
|
+
/* harmony export */ viewport: () => (/* binding */ viewport)
|
|
81
|
+
/* harmony export */ });
|
|
82
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5735);
|
|
83
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
|
|
84
|
+
/* harmony import */ var _contexts_AppContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25933);
|
|
85
|
+
/* harmony import */ var _contexts_ThemeContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(28383);
|
|
86
|
+
/* harmony import */ var _components_ui_ServiceWorkerRegistration__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(13236);
|
|
87
|
+
/* harmony import */ var _lib_env_app_config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(48954);
|
|
88
|
+
/* harmony import */ var _globals_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(82704);
|
|
89
|
+
/* harmony import */ var _globals_css__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_globals_css__WEBPACK_IMPORTED_MODULE_4__);
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
const metadata = {
|
|
97
|
+
title: (0,_lib_env_app_config__WEBPACK_IMPORTED_MODULE_5__/* .getAppName */ .fj)(),
|
|
98
|
+
description: (0,_lib_env_app_config__WEBPACK_IMPORTED_MODULE_5__/* .getAppDescription */ .Sy)(),
|
|
99
|
+
manifest: "/manifest.json",
|
|
100
|
+
icons: {
|
|
101
|
+
icon: [
|
|
102
|
+
{
|
|
103
|
+
url: "/favicon.ico",
|
|
104
|
+
sizes: "any"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
url: "/icon-192.png",
|
|
108
|
+
type: "image/png",
|
|
109
|
+
sizes: "192x192"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
url: "/icon-512.png",
|
|
113
|
+
type: "image/png",
|
|
114
|
+
sizes: "512x512"
|
|
115
|
+
}
|
|
116
|
+
],
|
|
117
|
+
apple: [
|
|
118
|
+
{
|
|
119
|
+
url: "/apple-touch-icon.png",
|
|
120
|
+
sizes: "180x180"
|
|
121
|
+
}
|
|
122
|
+
]
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
// Next 15+ requires themeColor (and color-scheme, viewport, etc.) to live in
|
|
126
|
+
// the viewport export, not metadata. The /_not-found warning came from Next
|
|
127
|
+
// inheriting this same layout — moving it here fixes both routes at once.
|
|
128
|
+
// Match the installed-PWA window chrome (desktop title bar, mobile address
|
|
129
|
+
// bar, splash) to the active surface color. Two entries let the OS pick
|
|
130
|
+
// based on prefers-color-scheme; the runtime ThemeContext / pre-paint
|
|
131
|
+
// script overrides this single <meta name="theme-color"> tag when the
|
|
132
|
+
// user picks an explicit light/dark mode.
|
|
133
|
+
const viewport = {
|
|
134
|
+
themeColor: [
|
|
135
|
+
{
|
|
136
|
+
media: "(prefers-color-scheme: light)",
|
|
137
|
+
color: "#ffffff"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
media: "(prefers-color-scheme: dark)",
|
|
141
|
+
color: "#09090b"
|
|
142
|
+
}
|
|
143
|
+
],
|
|
144
|
+
width: "device-width",
|
|
145
|
+
initialScale: 1,
|
|
146
|
+
maximumScale: 1,
|
|
147
|
+
viewportFit: "cover"
|
|
148
|
+
};
|
|
149
|
+
// Pre-paint script: reads the persisted theme and sets `data-theme` on
|
|
150
|
+
// <html> before the first paint, so light-mode users don't flash dark on
|
|
151
|
+
// every page load. Inlined via dangerouslySetInnerHTML — the canonical
|
|
152
|
+
// App Router pattern. (Earlier attempt routed this through next/script,
|
|
153
|
+
// but under Next 16 + React 19.2 that import resolves to a Promise in
|
|
154
|
+
// some module-resolution paths, tripping "Element type is invalid".)
|
|
155
|
+
// Falls back to "system", which then defers to prefers-color-scheme.
|
|
156
|
+
const themeBootstrap = `(() => {
|
|
157
|
+
var LIGHT = "#ffffff", DARK = "#09090b";
|
|
158
|
+
function resolve(t) {
|
|
159
|
+
if (t === "light") return LIGHT;
|
|
160
|
+
if (t === "dark") return DARK;
|
|
161
|
+
try {
|
|
162
|
+
return window.matchMedia("(prefers-color-scheme: dark)").matches ? DARK : LIGHT;
|
|
163
|
+
} catch (e) { return DARK; }
|
|
164
|
+
}
|
|
165
|
+
try {
|
|
166
|
+
var t = localStorage.getItem("jarela-theme");
|
|
167
|
+
if (t !== "light" && t !== "dark" && t !== "system") t = "system";
|
|
168
|
+
document.documentElement.setAttribute("data-theme", t);
|
|
169
|
+
// Collapse any media-scoped theme-color metas Next emits to a single tag
|
|
170
|
+
// so the PWA window chrome matches the user's explicit choice (not just
|
|
171
|
+
// prefers-color-scheme). ThemeContext keeps this in sync on change.
|
|
172
|
+
var metas = document.querySelectorAll('meta[name="theme-color"]');
|
|
173
|
+
for (var i = 1; i < metas.length; i++) metas[i].parentNode.removeChild(metas[i]);
|
|
174
|
+
var meta = metas[0];
|
|
175
|
+
if (!meta) {
|
|
176
|
+
meta = document.createElement("meta");
|
|
177
|
+
meta.setAttribute("name", "theme-color");
|
|
178
|
+
document.head.appendChild(meta);
|
|
179
|
+
}
|
|
180
|
+
meta.removeAttribute("media");
|
|
181
|
+
meta.setAttribute("content", resolve(t));
|
|
182
|
+
} catch (e) {
|
|
183
|
+
document.documentElement.setAttribute("data-theme", "system");
|
|
184
|
+
}
|
|
185
|
+
})();`;
|
|
186
|
+
function RootLayout({ children }) {
|
|
187
|
+
return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("html", {
|
|
188
|
+
lang: "en",
|
|
189
|
+
"data-theme": "system",
|
|
190
|
+
suppressHydrationWarning: true,
|
|
191
|
+
children: [
|
|
192
|
+
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("head", {
|
|
193
|
+
children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("script", {
|
|
194
|
+
dangerouslySetInnerHTML: {
|
|
195
|
+
__html: themeBootstrap
|
|
196
|
+
}
|
|
197
|
+
})
|
|
198
|
+
}),
|
|
199
|
+
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("body", {
|
|
200
|
+
children: [
|
|
201
|
+
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_contexts_ThemeContext__WEBPACK_IMPORTED_MODULE_2__.ThemeProvider, {
|
|
202
|
+
children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_contexts_AppContext__WEBPACK_IMPORTED_MODULE_1__.AppProvider, {
|
|
203
|
+
children: children
|
|
204
|
+
})
|
|
205
|
+
}),
|
|
206
|
+
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_ui_ServiceWorkerRegistration__WEBPACK_IMPORTED_MODULE_3__.ServiceWorkerRegistration, {})
|
|
207
|
+
]
|
|
208
|
+
})
|
|
209
|
+
]
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
/***/ }),
|
|
215
|
+
|
|
216
|
+
/***/ 35419:
|
|
217
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
218
|
+
|
|
219
|
+
"use strict";
|
|
220
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
221
|
+
/* harmony export */ AppProvider: () => (/* binding */ AppProvider),
|
|
222
|
+
/* harmony export */ U: () => (/* binding */ useAppContext)
|
|
223
|
+
/* harmony export */ });
|
|
224
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(48249);
|
|
225
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
|
|
226
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67484);
|
|
227
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
|
|
228
|
+
/* __next_internal_client_entry_do_not_use__ AppProvider,useAppContext auto */
|
|
229
|
+
|
|
230
|
+
const EXPERIENCE_MODE_KEY = "jarela.experience.mode";
|
|
231
|
+
// Back-compat: pre-rename builds stored "normal" / "advanced". Read those
|
|
232
|
+
// values silently so an upgrade does not reset the user's choice.
|
|
233
|
+
function parseStoredMode(raw) {
|
|
234
|
+
if (raw === "essential" || raw === "normal") return "essential";
|
|
235
|
+
if (raw === "full" || raw === "advanced") return "full";
|
|
236
|
+
return null;
|
|
237
|
+
}
|
|
238
|
+
function reducer(state, action) {
|
|
239
|
+
switch(action.type){
|
|
240
|
+
case "SELECT_THREAD":
|
|
241
|
+
return {
|
|
242
|
+
...state,
|
|
243
|
+
activeThreadId: action.threadId,
|
|
244
|
+
activeAgentId: action.agentId,
|
|
245
|
+
activeTab: "chat"
|
|
246
|
+
};
|
|
247
|
+
case "NEW_CHAT":
|
|
248
|
+
return {
|
|
249
|
+
...state,
|
|
250
|
+
activeThreadId: null,
|
|
251
|
+
activeAgentId: null,
|
|
252
|
+
activeTab: "chat"
|
|
253
|
+
};
|
|
254
|
+
case "SET_AGENT":
|
|
255
|
+
return {
|
|
256
|
+
...state,
|
|
257
|
+
activeAgentId: action.agentId
|
|
258
|
+
};
|
|
259
|
+
case "SET_TAB":
|
|
260
|
+
return {
|
|
261
|
+
...state,
|
|
262
|
+
activeTab: action.tab
|
|
263
|
+
};
|
|
264
|
+
case "SET_EXPERIENCE_MODE":
|
|
265
|
+
return {
|
|
266
|
+
...state,
|
|
267
|
+
experienceMode: action.mode
|
|
268
|
+
};
|
|
269
|
+
case "SET_SELECTION":
|
|
270
|
+
{
|
|
271
|
+
const next = {
|
|
272
|
+
...state.selectedItem
|
|
273
|
+
};
|
|
274
|
+
if (action.itemId == null) delete next[action.tab];
|
|
275
|
+
else next[action.tab] = action.itemId;
|
|
276
|
+
return {
|
|
277
|
+
...state,
|
|
278
|
+
selectedItem: next
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
const AppContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)(null);
|
|
284
|
+
function AppProvider({ children }) {
|
|
285
|
+
const [state, dispatch] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useReducer)(reducer, {
|
|
286
|
+
activeThreadId: null,
|
|
287
|
+
activeAgentId: null,
|
|
288
|
+
activeTab: "chat",
|
|
289
|
+
experienceMode: "essential",
|
|
290
|
+
selectedItem: {}
|
|
291
|
+
});
|
|
292
|
+
process.env.__NEXT_PRIVATE_MINIMIZE_MACRO_FALSE && (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{
|
|
293
|
+
try {
|
|
294
|
+
const stored = parseStoredMode(window.localStorage.getItem(EXPERIENCE_MODE_KEY));
|
|
295
|
+
if (stored) {
|
|
296
|
+
dispatch({
|
|
297
|
+
type: "SET_EXPERIENCE_MODE",
|
|
298
|
+
mode: stored
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
} catch {
|
|
302
|
+
// ignore storage failures
|
|
303
|
+
}
|
|
304
|
+
}, []);
|
|
305
|
+
process.env.__NEXT_PRIVATE_MINIMIZE_MACRO_FALSE && (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{
|
|
306
|
+
try {
|
|
307
|
+
window.localStorage.setItem(EXPERIENCE_MODE_KEY, state.experienceMode);
|
|
308
|
+
} catch {
|
|
309
|
+
// ignore storage failures
|
|
310
|
+
}
|
|
311
|
+
}, [
|
|
312
|
+
state.experienceMode
|
|
313
|
+
]);
|
|
314
|
+
return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(AppContext.Provider, {
|
|
315
|
+
value: {
|
|
316
|
+
state,
|
|
317
|
+
dispatch
|
|
318
|
+
},
|
|
319
|
+
children: children
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
function useAppContext() {
|
|
323
|
+
const ctx = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(AppContext);
|
|
324
|
+
if (!ctx) throw new Error("useAppContext must be used within AppProvider");
|
|
325
|
+
return ctx;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
/***/ }),
|
|
330
|
+
|
|
331
|
+
/***/ 38305:
|
|
332
|
+
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
|
|
333
|
+
|
|
334
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 13236));
|
|
335
|
+
;
|
|
336
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 25933));
|
|
337
|
+
;
|
|
338
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 28383));
|
|
339
|
+
|
|
340
|
+
|
|
341
|
+
/***/ }),
|
|
342
|
+
|
|
343
|
+
/***/ 41005:
|
|
344
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
345
|
+
|
|
346
|
+
"use strict";
|
|
347
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
348
|
+
/* harmony export */ D: () => (/* binding */ useTheme),
|
|
349
|
+
/* harmony export */ ThemeProvider: () => (/* binding */ ThemeProvider)
|
|
350
|
+
/* harmony export */ });
|
|
351
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(48249);
|
|
352
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
|
|
353
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67484);
|
|
354
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
|
|
355
|
+
/* __next_internal_client_entry_do_not_use__ ThemeProvider,useTheme auto */
|
|
356
|
+
|
|
357
|
+
const STORAGE_KEY = "jarela-theme";
|
|
358
|
+
function isTheme(v) {
|
|
359
|
+
return v === "light" || v === "dark" || v === "system";
|
|
360
|
+
}
|
|
361
|
+
function readStored() {
|
|
362
|
+
if (true) return "system";
|
|
363
|
+
try {
|
|
364
|
+
const v = window.localStorage.getItem(STORAGE_KEY);
|
|
365
|
+
return isTheme(v) ? v : "system";
|
|
366
|
+
} catch {
|
|
367
|
+
return "system";
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
const LIGHT_CHROME = "#ffffff";
|
|
371
|
+
const DARK_CHROME = "#09090b";
|
|
372
|
+
function resolveChrome(theme) {
|
|
373
|
+
if (theme === "light") return LIGHT_CHROME;
|
|
374
|
+
if (theme === "dark") return DARK_CHROME;
|
|
375
|
+
if (true) return DARK_CHROME;
|
|
376
|
+
return window.matchMedia("(prefers-color-scheme: dark)").matches ? DARK_CHROME : LIGHT_CHROME;
|
|
377
|
+
}
|
|
378
|
+
// Keep the single <meta name="theme-color"> tag (installed by the pre-paint
|
|
379
|
+
// script in app/layout.tsx) aligned with the active surface so the PWA's
|
|
380
|
+
// desktop title bar and mobile address bar match the theme.
|
|
381
|
+
function syncChrome(theme) {
|
|
382
|
+
if (typeof document === "undefined") return;
|
|
383
|
+
const meta = document.querySelector('meta[name="theme-color"]');
|
|
384
|
+
if (meta) meta.setAttribute("content", resolveChrome(theme));
|
|
385
|
+
}
|
|
386
|
+
function apply(theme) {
|
|
387
|
+
if (typeof document === "undefined") return;
|
|
388
|
+
document.documentElement.setAttribute("data-theme", theme);
|
|
389
|
+
syncChrome(theme);
|
|
390
|
+
}
|
|
391
|
+
const ThemeContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)(null);
|
|
392
|
+
function ThemeProvider({ children }) {
|
|
393
|
+
// Initial state stays "system" on the server to match the pre-paint script,
|
|
394
|
+
// which writes data-theme before React hydrates. The effect below syncs the
|
|
395
|
+
// React state to whatever the script (or localStorage) decided.
|
|
396
|
+
const [theme, setThemeState] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)("system");
|
|
397
|
+
process.env.__NEXT_PRIVATE_MINIMIZE_MACRO_FALSE && (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{
|
|
398
|
+
const stored = readStored();
|
|
399
|
+
setThemeState(stored);
|
|
400
|
+
// When in "system" mode, mirror OS-level changes into the PWA chrome.
|
|
401
|
+
if (true) return;
|
|
402
|
+
const mq = window.matchMedia("(prefers-color-scheme: dark)");
|
|
403
|
+
const onChange = ()=>{
|
|
404
|
+
if (readStored() === "system") syncChrome("system");
|
|
405
|
+
};
|
|
406
|
+
mq.addEventListener?.("change", onChange);
|
|
407
|
+
return ()=>mq.removeEventListener?.("change", onChange);
|
|
408
|
+
}, []);
|
|
409
|
+
const setTheme = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((t)=>{
|
|
410
|
+
setThemeState(t);
|
|
411
|
+
apply(t);
|
|
412
|
+
try {
|
|
413
|
+
window.localStorage.setItem(STORAGE_KEY, t);
|
|
414
|
+
} catch {
|
|
415
|
+
/* ignore quota / private-mode errors */ }
|
|
416
|
+
}, []);
|
|
417
|
+
return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ThemeContext.Provider, {
|
|
418
|
+
value: {
|
|
419
|
+
theme,
|
|
420
|
+
setTheme
|
|
421
|
+
},
|
|
422
|
+
children: children
|
|
423
|
+
});
|
|
424
|
+
}
|
|
425
|
+
function useTheme() {
|
|
426
|
+
const ctx = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(ThemeContext);
|
|
427
|
+
if (!ctx) throw new Error("useTheme must be used within ThemeProvider");
|
|
428
|
+
return ctx;
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
|
|
432
|
+
/***/ }),
|
|
433
|
+
|
|
434
|
+
/***/ 48954:
|
|
435
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
436
|
+
|
|
437
|
+
"use strict";
|
|
438
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
439
|
+
/* harmony export */ SN: () => (/* binding */ getAppIssueUrl),
|
|
440
|
+
/* harmony export */ Sy: () => (/* binding */ getAppDescription),
|
|
441
|
+
/* harmony export */ fj: () => (/* binding */ getAppName)
|
|
442
|
+
/* harmony export */ });
|
|
443
|
+
// Branding knobs sourced from NEXT_PUBLIC_* env vars so forks can rebrand
|
|
444
|
+
// the app without patching source. NEXT_PUBLIC_* is the right
|
|
445
|
+
// channel here because Next.js inlines these at build time, which lets
|
|
446
|
+
// client components read them directly (no React Context, no server
|
|
447
|
+
// round-trip). Server-only modules read the same keys at runtime.
|
|
448
|
+
//
|
|
449
|
+
// Keep this module client-safe — no Node-only imports, no DB/FS access.
|
|
450
|
+
const DEFAULT_APP_NAME = "Jarela";
|
|
451
|
+
const DEFAULT_APP_DESCRIPTION = "Jarela — local chat interface for LangGraph agents";
|
|
452
|
+
const DEFAULT_ISSUE_URL = "https://github.com/CircuitWall/jarela/issues/new";
|
|
453
|
+
function getAppName() {
|
|
454
|
+
return process.env.NEXT_PUBLIC_APP_NAME?.trim() || DEFAULT_APP_NAME;
|
|
455
|
+
}
|
|
456
|
+
function getAppDescription() {
|
|
457
|
+
return process.env.NEXT_PUBLIC_APP_DESCRIPTION?.trim() || DEFAULT_APP_DESCRIPTION;
|
|
458
|
+
}
|
|
459
|
+
function getAppIssueUrl() {
|
|
460
|
+
return process.env.NEXT_PUBLIC_APP_ISSUE_URL?.trim() || DEFAULT_ISSUE_URL;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
|
|
464
|
+
/***/ }),
|
|
465
|
+
|
|
466
|
+
/***/ 51457:
|
|
467
|
+
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
|
|
468
|
+
|
|
469
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 86486));
|
|
470
|
+
;
|
|
471
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 35419));
|
|
472
|
+
;
|
|
473
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 41005));
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
/***/ }),
|
|
477
|
+
|
|
478
|
+
/***/ 61992:
|
|
479
|
+
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
|
|
480
|
+
|
|
481
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 81921, 23));
|
|
482
|
+
;
|
|
483
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 60440, 23));
|
|
484
|
+
;
|
|
485
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 84342, 23));
|
|
486
|
+
;
|
|
487
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 82265, 23));
|
|
488
|
+
;
|
|
489
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 35421, 23));
|
|
490
|
+
;
|
|
491
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 61335, 23));
|
|
492
|
+
;
|
|
493
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 70664, 23));
|
|
494
|
+
;
|
|
495
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 74661));
|
|
496
|
+
|
|
497
|
+
|
|
498
|
+
/***/ }),
|
|
499
|
+
|
|
500
|
+
/***/ 80132:
|
|
501
|
+
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
|
|
502
|
+
|
|
503
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 81921, 23));
|
|
504
|
+
|
|
505
|
+
|
|
506
|
+
/***/ }),
|
|
507
|
+
|
|
508
|
+
/***/ 82704:
|
|
509
|
+
/***/ (() => {
|
|
510
|
+
|
|
511
|
+
|
|
512
|
+
|
|
513
|
+
/***/ }),
|
|
514
|
+
|
|
515
|
+
/***/ 86364:
|
|
516
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
517
|
+
|
|
518
|
+
"use strict";
|
|
519
|
+
__webpack_require__.r(__webpack_exports__);
|
|
520
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
521
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
522
|
+
/* harmony export */ });
|
|
523
|
+
/* harmony import */ var next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(88868);
|
|
524
|
+
/* harmony import */ var next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__);
|
|
525
|
+
|
|
526
|
+
|
|
527
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (async (props) => {
|
|
528
|
+
const imageData = {"type":"image/svg+xml","sizes":"any"}
|
|
529
|
+
const imageUrl = (0,next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__.fillMetadataSegment)(".", await props.params, "icon.svg", true)
|
|
530
|
+
|
|
531
|
+
return [{
|
|
532
|
+
...imageData,
|
|
533
|
+
url: imageUrl + "?44694c2d5379230a",
|
|
534
|
+
}]
|
|
535
|
+
});
|
|
536
|
+
|
|
537
|
+
/***/ }),
|
|
538
|
+
|
|
539
|
+
/***/ 86486:
|
|
540
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
541
|
+
|
|
542
|
+
"use strict";
|
|
543
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
544
|
+
/* harmony export */ ServiceWorkerRegistration: () => (/* binding */ ServiceWorkerRegistration)
|
|
545
|
+
/* harmony export */ });
|
|
546
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67484);
|
|
547
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
548
|
+
/* __next_internal_client_entry_do_not_use__ ServiceWorkerRegistration auto */
|
|
549
|
+
/**
|
|
550
|
+
* Registers the Serwist-generated service worker. Replaces the auto-injected
|
|
551
|
+
* registration script that next-pwa used to emit. Only runs in production
|
|
552
|
+
* (the SW is disabled in dev by withSerwist).
|
|
553
|
+
*/ function ServiceWorkerRegistration() {
|
|
554
|
+
process.env.__NEXT_PRIVATE_MINIMIZE_MACRO_FALSE && (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
|
|
555
|
+
if (true) return;
|
|
556
|
+
if (!("serviceWorker" in navigator)) return;
|
|
557
|
+
if (false) {}
|
|
558
|
+
// Defer to idle so we don't compete with the first paint.
|
|
559
|
+
const register = ()=>{
|
|
560
|
+
navigator.serviceWorker.register("/sw.js", {
|
|
561
|
+
scope: "/"
|
|
562
|
+
}).catch((err)=>{
|
|
563
|
+
// Swallow — SW failures should never break the app.
|
|
564
|
+
console.warn("[sw] registration failed:", err);
|
|
565
|
+
});
|
|
566
|
+
};
|
|
567
|
+
if ("requestIdleCallback" in window) {
|
|
568
|
+
window.requestIdleCallback(register);
|
|
569
|
+
} else {
|
|
570
|
+
setTimeout(register, 1000);
|
|
571
|
+
}
|
|
572
|
+
}, []);
|
|
573
|
+
return null;
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
|
|
577
|
+
/***/ }),
|
|
578
|
+
|
|
579
|
+
/***/ 98440:
|
|
580
|
+
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
|
|
581
|
+
|
|
582
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 95547, 23));
|
|
583
|
+
;
|
|
584
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 15098, 23));
|
|
585
|
+
;
|
|
586
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 47644, 23));
|
|
587
|
+
;
|
|
588
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 33859, 23));
|
|
589
|
+
;
|
|
590
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 98099, 23));
|
|
591
|
+
;
|
|
592
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 16237, 23));
|
|
593
|
+
;
|
|
594
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 98562, 23));
|
|
595
|
+
;
|
|
596
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 36675, 23));
|
|
597
|
+
|
|
598
|
+
|
|
599
|
+
/***/ }),
|
|
600
|
+
|
|
601
|
+
/***/ 98692:
|
|
602
|
+
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
|
|
603
|
+
|
|
604
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.t.bind(__webpack_require__, 95547, 23));
|
|
605
|
+
|
|
606
|
+
|
|
607
|
+
/***/ })
|
|
608
|
+
|
|
609
|
+
};
|
|
610
|
+
;
|
|
611
|
+
//# sourceMappingURL=4045.js.map
|