@circuitwall/jarela 1.9.2 → 1.9.3
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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +2 -2
- package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- 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/page.js +688 -427
- package/.next/standalone/.next/server/app/page.js.map +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +1 -1
- package/.next/standalone/.next/server/chunks/4045.js.map +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +2 -2
- package/.next/standalone/.next/server/pages/404.html +2 -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/2747-4a6287cacd57d231.js.map +1 -1
- package/.next/standalone/.next/static/chunks/{1998-31a617131197a83a.js → 962-fe2372e00f85e23a.js} +111 -2
- package/.next/standalone/.next/static/chunks/962-fe2372e00f85e23a.js.map +1 -0
- package/.next/standalone/.next/static/chunks/app/layout-84c6f211a7a1ca36.js.map +1 -1
- package/.next/standalone/.next/static/chunks/app/{page-afdef9bd1108a656.js → page-c5b9f4407416c3f9.js} +332 -154
- package/.next/standalone/.next/static/chunks/app/page-c5b9f4407416c3f9.js.map +1 -0
- package/.next/standalone/.next/static/css/b8e04d59a2bfff04.css +5 -0
- package/.next/standalone/.next/static/css/b8e04d59a2bfff04.css.map +1 -0
- package/.next/standalone/package.json +1 -1
- package/CHANGELOG.md +25 -0
- package/components/credentials/CredentialsPanel.tsx +1 -1
- package/components/layout/AppShell.tsx +6 -0
- package/components/layout/MenuPanel.tsx +15 -91
- package/components/settings/AppearancePanel.tsx +93 -0
- package/components/settings/SettingsPanel.tsx +94 -0
- package/contexts/AppContext.tsx +1 -1
- package/hooks/useUrlSync.ts +1 -1
- package/lib/ui/navigate.ts +1 -1
- package/package.json +1 -1
- package/.next/standalone/.next/static/chunks/1998-31a617131197a83a.js.map +0 -1
- package/.next/standalone/.next/static/chunks/app/page-afdef9bd1108a656.js.map +0 -1
- package/.next/standalone/.next/static/css/44f9bbea39fef458.css +0 -5
- package/.next/standalone/.next/static/css/44f9bbea39fef458.css.map +0 -1
- /package/.next/standalone/.next/static/{rr-Rxxi6kkXe1Bw8-Hzq2 → EOkgU73YJOpR-vFcKMgL0}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{rr-Rxxi6kkXe1Bw8-Hzq2 → EOkgU73YJOpR-vFcKMgL0}/_ssgManifest.js +0 -0
|
@@ -89,7 +89,17 @@ function useTheme() {
|
|
|
89
89
|
|
|
90
90
|
/***/ }),
|
|
91
91
|
|
|
92
|
-
/***/
|
|
92
|
+
/***/ 9852:
|
|
93
|
+
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
|
|
94
|
+
|
|
95
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 9998));
|
|
96
|
+
;
|
|
97
|
+
Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2283));
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
/***/ }),
|
|
101
|
+
|
|
102
|
+
/***/ 9998:
|
|
93
103
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
94
104
|
|
|
95
105
|
"use strict";
|
|
@@ -608,7 +618,8 @@ const TABS = [
|
|
|
608
618
|
"bridges",
|
|
609
619
|
"profile",
|
|
610
620
|
"harness",
|
|
611
|
-
"documents"
|
|
621
|
+
"documents",
|
|
622
|
+
"settings"
|
|
612
623
|
];
|
|
613
624
|
function parseHref(input) {
|
|
614
625
|
if (!input) return {
|
|
@@ -682,7 +693,8 @@ const useUrlSync_TABS = [
|
|
|
682
693
|
"tasks",
|
|
683
694
|
"bridges",
|
|
684
695
|
"profile",
|
|
685
|
-
"harness"
|
|
696
|
+
"harness",
|
|
697
|
+
"settings"
|
|
686
698
|
];
|
|
687
699
|
function useUrlSync() {
|
|
688
700
|
const { state, dispatch } = (0,AppContext/* useAppContext */.U)();
|
|
@@ -11691,7 +11703,7 @@ const PRESET_CATEGORIES = {
|
|
|
11691
11703
|
}
|
|
11692
11704
|
|
|
11693
11705
|
;// ./components/credentials/CredentialsPanel.tsx
|
|
11694
|
-
/* __next_internal_client_entry_do_not_use__ CredentialsPanel auto */
|
|
11706
|
+
/* __next_internal_client_entry_do_not_use__ CredentialsPanel,CredentialsListPanel auto */
|
|
11695
11707
|
|
|
11696
11708
|
|
|
11697
11709
|
|
|
@@ -24228,6 +24240,293 @@ async function EnvVarsPanel_pollUntilUp(timeoutMs = 30000) {
|
|
|
24228
24240
|
throw new Error("server did not return");
|
|
24229
24241
|
}
|
|
24230
24242
|
|
|
24243
|
+
// EXTERNAL MODULE: ./node_modules/lucide-react/dist/esm/icons/palette.mjs
|
|
24244
|
+
var palette = __webpack_require__(2920);
|
|
24245
|
+
// EXTERNAL MODULE: ./node_modules/lucide-react/dist/esm/icons/shapes.mjs
|
|
24246
|
+
var shapes = __webpack_require__(1827);
|
|
24247
|
+
// EXTERNAL MODULE: ./node_modules/lucide-react/dist/esm/icons/scroll-text.mjs
|
|
24248
|
+
var scroll_text = __webpack_require__(2540);
|
|
24249
|
+
// EXTERNAL MODULE: ./node_modules/lucide-react/dist/esm/icons/sun.mjs
|
|
24250
|
+
var sun = __webpack_require__(7603);
|
|
24251
|
+
// EXTERNAL MODULE: ./node_modules/lucide-react/dist/esm/icons/moon.mjs
|
|
24252
|
+
var moon = __webpack_require__(8890);
|
|
24253
|
+
// EXTERNAL MODULE: ./node_modules/lucide-react/dist/esm/icons/monitor.mjs
|
|
24254
|
+
var monitor = __webpack_require__(299);
|
|
24255
|
+
// EXTERNAL MODULE: ./contexts/ThemeContext.tsx
|
|
24256
|
+
var ThemeContext = __webpack_require__(737);
|
|
24257
|
+
;// ./components/settings/AppearancePanel.tsx
|
|
24258
|
+
/* __next_internal_client_entry_do_not_use__ AppearancePanel auto */
|
|
24259
|
+
|
|
24260
|
+
|
|
24261
|
+
|
|
24262
|
+
// Visual + chrome settings that used to live in the MenuPanel footer
|
|
24263
|
+
// (theme) and the top of the menu (Workspace mode). Hoisted here so
|
|
24264
|
+
// every settings surface has the same shape: a Settings sub-tab with
|
|
24265
|
+
// its own header.
|
|
24266
|
+
function AppearancePanel() {
|
|
24267
|
+
const { state, dispatch } = (0,AppContext/* useAppContext */.U)();
|
|
24268
|
+
const { theme, setTheme } = (0,ThemeContext/* useTheme */.D)();
|
|
24269
|
+
const isFullMode = state.experienceMode === "full";
|
|
24270
|
+
const themeOptions = [
|
|
24271
|
+
{
|
|
24272
|
+
value: "light",
|
|
24273
|
+
label: "Light",
|
|
24274
|
+
icon: /*#__PURE__*/ (0,jsx_runtime.jsx)(sun/* default */.A, {
|
|
24275
|
+
size: 14
|
|
24276
|
+
}),
|
|
24277
|
+
description: "Bright UI; ignores system preference."
|
|
24278
|
+
},
|
|
24279
|
+
{
|
|
24280
|
+
value: "dark",
|
|
24281
|
+
label: "Dark",
|
|
24282
|
+
icon: /*#__PURE__*/ (0,jsx_runtime.jsx)(moon/* default */.A, {
|
|
24283
|
+
size: 14
|
|
24284
|
+
}),
|
|
24285
|
+
description: "Dimmed UI; ignores system preference."
|
|
24286
|
+
},
|
|
24287
|
+
{
|
|
24288
|
+
value: "system",
|
|
24289
|
+
label: "System",
|
|
24290
|
+
icon: /*#__PURE__*/ (0,jsx_runtime.jsx)(monitor/* default */.A, {
|
|
24291
|
+
size: 14
|
|
24292
|
+
}),
|
|
24293
|
+
description: "Follow the OS-level light/dark preference."
|
|
24294
|
+
}
|
|
24295
|
+
];
|
|
24296
|
+
const modeOptions = [
|
|
24297
|
+
{
|
|
24298
|
+
value: "essential",
|
|
24299
|
+
label: "Essential",
|
|
24300
|
+
description: "Day-to-day surfaces only. Hides Memory, Bridges, Harness, Logs, Defaults from the menu."
|
|
24301
|
+
},
|
|
24302
|
+
{
|
|
24303
|
+
value: "full",
|
|
24304
|
+
label: "Full",
|
|
24305
|
+
description: "Everything visible: engine-room tabs, power-user settings, all advanced sub-tabs."
|
|
24306
|
+
}
|
|
24307
|
+
];
|
|
24308
|
+
function setMode(mode) {
|
|
24309
|
+
if (mode === state.experienceMode) return;
|
|
24310
|
+
dispatch({
|
|
24311
|
+
type: "SET_EXPERIENCE_MODE",
|
|
24312
|
+
mode
|
|
24313
|
+
});
|
|
24314
|
+
}
|
|
24315
|
+
return /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
|
|
24316
|
+
className: "flex flex-col h-full",
|
|
24317
|
+
children: [
|
|
24318
|
+
/*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
|
|
24319
|
+
className: "border-b border-border px-4 py-3 flex items-center gap-2",
|
|
24320
|
+
children: [
|
|
24321
|
+
/*#__PURE__*/ (0,jsx_runtime.jsx)(palette/* default */.A, {
|
|
24322
|
+
size: 14,
|
|
24323
|
+
className: "text-fg-subtle"
|
|
24324
|
+
}),
|
|
24325
|
+
/*#__PURE__*/ (0,jsx_runtime.jsx)("h2", {
|
|
24326
|
+
className: "text-sm font-semibold text-fg mr-auto",
|
|
24327
|
+
children: "Appearance"
|
|
24328
|
+
})
|
|
24329
|
+
]
|
|
24330
|
+
}),
|
|
24331
|
+
/*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
|
|
24332
|
+
className: "flex-1 overflow-y-auto px-4 py-4 space-y-6",
|
|
24333
|
+
children: [
|
|
24334
|
+
/*#__PURE__*/ (0,jsx_runtime.jsxs)("section", {
|
|
24335
|
+
children: [
|
|
24336
|
+
/*#__PURE__*/ (0,jsx_runtime.jsx)("h3", {
|
|
24337
|
+
className: "text-[11px] uppercase tracking-wide text-fg-faint mb-2 px-1",
|
|
24338
|
+
children: "Theme"
|
|
24339
|
+
}),
|
|
24340
|
+
/*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
|
|
24341
|
+
className: "grid grid-cols-1 sm:grid-cols-3 gap-2",
|
|
24342
|
+
children: themeOptions.map((o)=>{
|
|
24343
|
+
const active = theme === o.value;
|
|
24344
|
+
return /*#__PURE__*/ (0,jsx_runtime.jsxs)("button", {
|
|
24345
|
+
onClick: ()=>setTheme(o.value),
|
|
24346
|
+
"aria-pressed": active,
|
|
24347
|
+
className: `text-left rounded-lg border px-3 py-2.5 transition-colors ${active ? "border-accent bg-accent/10 text-fg" : "border-border bg-surface-2 text-fg-muted hover:bg-surface-3"}`,
|
|
24348
|
+
children: [
|
|
24349
|
+
/*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
|
|
24350
|
+
className: "flex items-center gap-2 mb-1",
|
|
24351
|
+
children: [
|
|
24352
|
+
/*#__PURE__*/ (0,jsx_runtime.jsx)("span", {
|
|
24353
|
+
className: "text-fg-subtle",
|
|
24354
|
+
children: o.icon
|
|
24355
|
+
}),
|
|
24356
|
+
/*#__PURE__*/ (0,jsx_runtime.jsx)("span", {
|
|
24357
|
+
className: "text-sm font-medium text-fg",
|
|
24358
|
+
children: o.label
|
|
24359
|
+
})
|
|
24360
|
+
]
|
|
24361
|
+
}),
|
|
24362
|
+
/*#__PURE__*/ (0,jsx_runtime.jsx)("p", {
|
|
24363
|
+
className: "text-[11px] text-fg-faint leading-snug",
|
|
24364
|
+
children: o.description
|
|
24365
|
+
})
|
|
24366
|
+
]
|
|
24367
|
+
}, o.value);
|
|
24368
|
+
})
|
|
24369
|
+
})
|
|
24370
|
+
]
|
|
24371
|
+
}),
|
|
24372
|
+
/*#__PURE__*/ (0,jsx_runtime.jsxs)("section", {
|
|
24373
|
+
children: [
|
|
24374
|
+
/*#__PURE__*/ (0,jsx_runtime.jsx)("h3", {
|
|
24375
|
+
className: "text-[11px] uppercase tracking-wide text-fg-faint mb-2 px-1",
|
|
24376
|
+
children: "Workspace mode"
|
|
24377
|
+
}),
|
|
24378
|
+
/*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
|
|
24379
|
+
className: "grid grid-cols-1 sm:grid-cols-2 gap-2",
|
|
24380
|
+
children: modeOptions.map((o)=>{
|
|
24381
|
+
const active = isFullMode ? o.value === "full" : o.value === "essential";
|
|
24382
|
+
return /*#__PURE__*/ (0,jsx_runtime.jsxs)("button", {
|
|
24383
|
+
onClick: ()=>setMode(o.value),
|
|
24384
|
+
"aria-pressed": active,
|
|
24385
|
+
className: `text-left rounded-lg border px-3 py-2.5 transition-colors ${active ? "border-accent bg-accent/10 text-fg" : "border-border bg-surface-2 text-fg-muted hover:bg-surface-3"}`,
|
|
24386
|
+
children: [
|
|
24387
|
+
/*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
|
|
24388
|
+
className: "text-sm font-medium text-fg mb-1",
|
|
24389
|
+
children: o.label
|
|
24390
|
+
}),
|
|
24391
|
+
/*#__PURE__*/ (0,jsx_runtime.jsx)("p", {
|
|
24392
|
+
className: "text-[11px] text-fg-faint leading-snug",
|
|
24393
|
+
children: o.description
|
|
24394
|
+
})
|
|
24395
|
+
]
|
|
24396
|
+
}, o.value);
|
|
24397
|
+
})
|
|
24398
|
+
})
|
|
24399
|
+
]
|
|
24400
|
+
})
|
|
24401
|
+
]
|
|
24402
|
+
})
|
|
24403
|
+
]
|
|
24404
|
+
});
|
|
24405
|
+
}
|
|
24406
|
+
|
|
24407
|
+
;// ./components/settings/SettingsPanel.tsx
|
|
24408
|
+
/* __next_internal_client_entry_do_not_use__ SettingsPanel auto */
|
|
24409
|
+
|
|
24410
|
+
|
|
24411
|
+
|
|
24412
|
+
|
|
24413
|
+
|
|
24414
|
+
|
|
24415
|
+
|
|
24416
|
+
|
|
24417
|
+
|
|
24418
|
+
const SettingsPanel_SUBS = [
|
|
24419
|
+
{
|
|
24420
|
+
id: "appearance",
|
|
24421
|
+
label: "Appearance",
|
|
24422
|
+
icon: /*#__PURE__*/ (0,jsx_runtime.jsx)(palette/* default */.A, {
|
|
24423
|
+
size: 13
|
|
24424
|
+
})
|
|
24425
|
+
},
|
|
24426
|
+
{
|
|
24427
|
+
id: "networking",
|
|
24428
|
+
label: "Networking",
|
|
24429
|
+
icon: /*#__PURE__*/ (0,jsx_runtime.jsx)(globe/* default */.A, {
|
|
24430
|
+
size: 13
|
|
24431
|
+
})
|
|
24432
|
+
},
|
|
24433
|
+
{
|
|
24434
|
+
id: "credentials",
|
|
24435
|
+
label: "Credentials",
|
|
24436
|
+
icon: /*#__PURE__*/ (0,jsx_runtime.jsx)(key/* default */.A, {
|
|
24437
|
+
size: 13
|
|
24438
|
+
})
|
|
24439
|
+
},
|
|
24440
|
+
{
|
|
24441
|
+
id: "models",
|
|
24442
|
+
label: "Models",
|
|
24443
|
+
icon: /*#__PURE__*/ (0,jsx_runtime.jsx)(cpu/* default */.A, {
|
|
24444
|
+
size: 13
|
|
24445
|
+
})
|
|
24446
|
+
},
|
|
24447
|
+
{
|
|
24448
|
+
id: "harness",
|
|
24449
|
+
label: "Harness",
|
|
24450
|
+
icon: /*#__PURE__*/ (0,jsx_runtime.jsx)(shapes/* default */.A, {
|
|
24451
|
+
size: 13
|
|
24452
|
+
}),
|
|
24453
|
+
advancedOnly: true
|
|
24454
|
+
},
|
|
24455
|
+
{
|
|
24456
|
+
id: "logs",
|
|
24457
|
+
label: "Logs",
|
|
24458
|
+
icon: /*#__PURE__*/ (0,jsx_runtime.jsx)(scroll_text/* default */.A, {
|
|
24459
|
+
size: 13
|
|
24460
|
+
}),
|
|
24461
|
+
advancedOnly: true
|
|
24462
|
+
},
|
|
24463
|
+
{
|
|
24464
|
+
id: "defaults",
|
|
24465
|
+
label: "Defaults",
|
|
24466
|
+
icon: /*#__PURE__*/ (0,jsx_runtime.jsx)(server_cog/* default */.A, {
|
|
24467
|
+
size: 13
|
|
24468
|
+
}),
|
|
24469
|
+
advancedOnly: true
|
|
24470
|
+
}
|
|
24471
|
+
];
|
|
24472
|
+
const VALID = new Set(SettingsPanel_SUBS.map((s)=>s.id));
|
|
24473
|
+
function parseSub(raw) {
|
|
24474
|
+
if (raw && VALID.has(raw)) return raw;
|
|
24475
|
+
return "appearance";
|
|
24476
|
+
}
|
|
24477
|
+
function SettingsPanel() {
|
|
24478
|
+
const { state, dispatch } = (0,AppContext/* useAppContext */.U)();
|
|
24479
|
+
const isFullMode = state.experienceMode === "full";
|
|
24480
|
+
const active = parseSub(state.selectedItem.settings);
|
|
24481
|
+
const setSub = (s)=>dispatch({
|
|
24482
|
+
type: "SET_SELECTION",
|
|
24483
|
+
tab: "settings",
|
|
24484
|
+
itemId: s
|
|
24485
|
+
});
|
|
24486
|
+
const visibleSubs = SettingsPanel_SUBS.filter((s)=>isFullMode || !s.advancedOnly);
|
|
24487
|
+
return /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
|
|
24488
|
+
className: "flex flex-col h-full min-h-0",
|
|
24489
|
+
children: [
|
|
24490
|
+
/*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
|
|
24491
|
+
role: "tablist",
|
|
24492
|
+
"aria-label": "Settings sub-section",
|
|
24493
|
+
className: "flex gap-1 border-b border-[var(--border)] bg-[var(--bg-secondary)] px-3 pt-2 overflow-x-auto",
|
|
24494
|
+
children: visibleSubs.map((s)=>{
|
|
24495
|
+
const selected = s.id === active;
|
|
24496
|
+
return /*#__PURE__*/ (0,jsx_runtime.jsxs)("button", {
|
|
24497
|
+
role: "tab",
|
|
24498
|
+
type: "button",
|
|
24499
|
+
"aria-selected": selected,
|
|
24500
|
+
onClick: ()=>setSub(s.id),
|
|
24501
|
+
className: "inline-flex items-center gap-1.5 px-3 py-1.5 text-sm rounded-t-md border-b-2 -mb-px transition-colors whitespace-nowrap " + (selected ? "border-[var(--accent)] text-[var(--text-primary)] bg-[var(--bg-primary)]" : "border-transparent text-[var(--text-secondary)] hover:text-[var(--text-primary)]"),
|
|
24502
|
+
children: [
|
|
24503
|
+
/*#__PURE__*/ (0,jsx_runtime.jsx)("span", {
|
|
24504
|
+
className: "text-fg-subtle",
|
|
24505
|
+
children: s.icon
|
|
24506
|
+
}),
|
|
24507
|
+
/*#__PURE__*/ (0,jsx_runtime.jsx)("span", {
|
|
24508
|
+
children: s.label
|
|
24509
|
+
})
|
|
24510
|
+
]
|
|
24511
|
+
}, s.id);
|
|
24512
|
+
})
|
|
24513
|
+
}),
|
|
24514
|
+
/*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
|
|
24515
|
+
className: "flex-1 min-h-0 overflow-hidden",
|
|
24516
|
+
children: [
|
|
24517
|
+
active === "appearance" && /*#__PURE__*/ (0,jsx_runtime.jsx)(AppearancePanel, {}),
|
|
24518
|
+
active === "networking" && /*#__PURE__*/ (0,jsx_runtime.jsx)(NetworkPanel, {}),
|
|
24519
|
+
active === "credentials" && /*#__PURE__*/ (0,jsx_runtime.jsx)(CredentialsListPanel, {}),
|
|
24520
|
+
active === "models" && /*#__PURE__*/ (0,jsx_runtime.jsx)(ModelsPanel, {}),
|
|
24521
|
+
active === "harness" && /*#__PURE__*/ (0,jsx_runtime.jsx)(HarnessPanel, {}),
|
|
24522
|
+
active === "logs" && /*#__PURE__*/ (0,jsx_runtime.jsx)(LogsPanel, {}),
|
|
24523
|
+
active === "defaults" && /*#__PURE__*/ (0,jsx_runtime.jsx)(EnvVarsPanel, {})
|
|
24524
|
+
]
|
|
24525
|
+
})
|
|
24526
|
+
]
|
|
24527
|
+
});
|
|
24528
|
+
}
|
|
24529
|
+
|
|
24231
24530
|
;// ./components/ui/HeaderActivity.tsx
|
|
24232
24531
|
/* __next_internal_client_entry_do_not_use__ HeaderActivity auto */
|
|
24233
24532
|
|
|
@@ -25323,18 +25622,8 @@ var message_square = __webpack_require__(5494);
|
|
|
25323
25622
|
var chart_column = __webpack_require__(4774);
|
|
25324
25623
|
// EXTERNAL MODULE: ./node_modules/lucide-react/dist/esm/icons/brain.mjs
|
|
25325
25624
|
var brain = __webpack_require__(5045);
|
|
25326
|
-
// EXTERNAL MODULE: ./node_modules/lucide-react/dist/esm/icons/
|
|
25327
|
-
var
|
|
25328
|
-
// EXTERNAL MODULE: ./node_modules/lucide-react/dist/esm/icons/scroll-text.mjs
|
|
25329
|
-
var scroll_text = __webpack_require__(2540);
|
|
25330
|
-
// EXTERNAL MODULE: ./node_modules/lucide-react/dist/esm/icons/sun.mjs
|
|
25331
|
-
var sun = __webpack_require__(7603);
|
|
25332
|
-
// EXTERNAL MODULE: ./node_modules/lucide-react/dist/esm/icons/moon.mjs
|
|
25333
|
-
var moon = __webpack_require__(8890);
|
|
25334
|
-
// EXTERNAL MODULE: ./node_modules/lucide-react/dist/esm/icons/monitor.mjs
|
|
25335
|
-
var monitor = __webpack_require__(299);
|
|
25336
|
-
// EXTERNAL MODULE: ./contexts/ThemeContext.tsx
|
|
25337
|
-
var ThemeContext = __webpack_require__(737);
|
|
25625
|
+
// EXTERNAL MODULE: ./node_modules/lucide-react/dist/esm/icons/settings.mjs
|
|
25626
|
+
var settings = __webpack_require__(8074);
|
|
25338
25627
|
;// ./components/layout/MenuPanel.tsx
|
|
25339
25628
|
/* __next_internal_client_entry_do_not_use__ MenuPanel auto */
|
|
25340
25629
|
|
|
@@ -25342,7 +25631,6 @@ var ThemeContext = __webpack_require__(737);
|
|
|
25342
25631
|
|
|
25343
25632
|
|
|
25344
25633
|
|
|
25345
|
-
|
|
25346
25634
|
const TAB_ICONS = {
|
|
25347
25635
|
chat: /*#__PURE__*/ (0,jsx_runtime.jsx)(message_square/* default */.A, {
|
|
25348
25636
|
size: 13
|
|
@@ -25391,6 +25679,9 @@ const TAB_ICONS = {
|
|
|
25391
25679
|
}),
|
|
25392
25680
|
env: /*#__PURE__*/ (0,jsx_runtime.jsx)(server_cog/* default */.A, {
|
|
25393
25681
|
size: 13
|
|
25682
|
+
}),
|
|
25683
|
+
settings: /*#__PURE__*/ (0,jsx_runtime.jsx)(settings/* default */.A, {
|
|
25684
|
+
size: 13
|
|
25394
25685
|
})
|
|
25395
25686
|
};
|
|
25396
25687
|
const TAB_TITLES = {
|
|
@@ -25409,7 +25700,8 @@ const TAB_TITLES = {
|
|
|
25409
25700
|
profile: "Profile",
|
|
25410
25701
|
harness: "Harness",
|
|
25411
25702
|
logs: "Logs",
|
|
25412
|
-
env: "Defaults"
|
|
25703
|
+
env: "Defaults",
|
|
25704
|
+
settings: "Settings"
|
|
25413
25705
|
};
|
|
25414
25706
|
const TAB_SHORT = {
|
|
25415
25707
|
chat: "Chat",
|
|
@@ -25427,11 +25719,14 @@ const TAB_SHORT = {
|
|
|
25427
25719
|
profile: "Me",
|
|
25428
25720
|
harness: "Test",
|
|
25429
25721
|
logs: "Logs",
|
|
25430
|
-
env: "Defaults"
|
|
25722
|
+
env: "Defaults",
|
|
25723
|
+
settings: "Setup"
|
|
25431
25724
|
};
|
|
25432
|
-
// Two-tier menu. "Common" surfaces the day-to-day verbs
|
|
25433
|
-
//
|
|
25434
|
-
//
|
|
25725
|
+
// Two-tier menu. "Common" surfaces the day-to-day verbs. Settings is
|
|
25726
|
+
// the single home for previously top-level chrome (credentials, models,
|
|
25727
|
+
// harness, logs, defaults, appearance, networking) — those legacy Tab
|
|
25728
|
+
// values still exist for deep-link compat but no longer appear in this
|
|
25729
|
+
// menu grid.
|
|
25435
25730
|
//
|
|
25436
25731
|
// Capability-presence surfaces (documents, memory, MCP, extensions,
|
|
25437
25732
|
// bridges, built-in tool categories) all live under the "Tools" tab now —
|
|
@@ -25439,28 +25734,16 @@ const TAB_SHORT = {
|
|
|
25439
25734
|
// answering the same question: "what can the agent see / do?". The legacy
|
|
25440
25735
|
// top-level Tab entries remain wired so deep-links (?tab=documents&item=…)
|
|
25441
25736
|
// still resolve, but they're hidden from the menu grid.
|
|
25442
|
-
//
|
|
25443
|
-
// "credentials" is the single home for every auth surface — saved API
|
|
25444
|
-
// keys + built-in integrations (Gmail, GitHub, Atlassian…) live there as
|
|
25445
|
-
// sub-tabs.
|
|
25446
|
-
//
|
|
25447
|
-
// "models" lives in Advanced — most users let the default model do its
|
|
25448
|
-
// job; switching providers is power-user territory.
|
|
25449
25737
|
const COMMON_TABS = [
|
|
25450
25738
|
"chat",
|
|
25451
25739
|
"dashboard",
|
|
25452
25740
|
"agents",
|
|
25453
|
-
"credentials",
|
|
25454
25741
|
"tools",
|
|
25455
25742
|
"tasks",
|
|
25456
|
-
"profile"
|
|
25457
|
-
|
|
25458
|
-
const ADVANCED_TABS = [
|
|
25459
|
-
"models",
|
|
25460
|
-
"harness",
|
|
25461
|
-
"logs",
|
|
25462
|
-
"env"
|
|
25743
|
+
"profile",
|
|
25744
|
+
"settings"
|
|
25463
25745
|
];
|
|
25746
|
+
const ADVANCED_TABS = [];
|
|
25464
25747
|
const ADVANCED_KEY = "jarela.menu.advanced";
|
|
25465
25748
|
const MenuPanel_GRADIENTS = [
|
|
25466
25749
|
"from-violet-500 to-indigo-600",
|
|
@@ -25484,7 +25767,8 @@ const TAB_ACCENT = {
|
|
|
25484
25767
|
tools: "from-emerald-500/20 to-lime-500/5",
|
|
25485
25768
|
harness: "from-orange-500/20 to-amber-500/5",
|
|
25486
25769
|
logs: "from-slate-500/20 to-zinc-500/5",
|
|
25487
|
-
env: "from-teal-500/20 to-cyan-500/5"
|
|
25770
|
+
env: "from-teal-500/20 to-cyan-500/5",
|
|
25771
|
+
settings: "from-slate-500/20 to-zinc-500/5"
|
|
25488
25772
|
};
|
|
25489
25773
|
function avatarGradient(id) {
|
|
25490
25774
|
let h = 0;
|
|
@@ -25576,15 +25860,8 @@ function AgentSessionList({ activeAgentId, onSelect }) {
|
|
|
25576
25860
|
});
|
|
25577
25861
|
}
|
|
25578
25862
|
function MenuPanel({ activeTab, agentId, onClose, onAgentChange, onSetTab }) {
|
|
25579
|
-
const { state
|
|
25863
|
+
const { state } = (0,AppContext/* useAppContext */.U)();
|
|
25580
25864
|
const isFullMode = state.experienceMode === "full";
|
|
25581
|
-
const setMode = (mode)=>{
|
|
25582
|
-
if (mode === "full" === isFullMode) return;
|
|
25583
|
-
dispatch({
|
|
25584
|
-
type: "SET_EXPERIENCE_MODE",
|
|
25585
|
-
mode
|
|
25586
|
-
});
|
|
25587
|
-
};
|
|
25588
25865
|
// Advanced section starts collapsed once the user has dismissed it
|
|
25589
25866
|
// once (persisted to localStorage). Defaults to *expanded* on first
|
|
25590
25867
|
// boot so the engine room is visible to power users out of the box.
|
|
@@ -25649,42 +25926,10 @@ function MenuPanel({ activeTab, agentId, onClose, onAgentChange, onSetTab }) {
|
|
|
25649
25926
|
},
|
|
25650
25927
|
children: [
|
|
25651
25928
|
/*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
|
|
25652
|
-
className: "
|
|
25653
|
-
children: /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
|
|
25654
|
-
className: "flex items-center justify-between gap-2",
|
|
25655
|
-
children: [
|
|
25656
|
-
/*#__PURE__*/ (0,jsx_runtime.jsx)("span", {
|
|
25657
|
-
className: "text-[10px] uppercase tracking-wide text-fg-faint",
|
|
25658
|
-
children: "Workspace mode"
|
|
25659
|
-
}),
|
|
25660
|
-
/*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
|
|
25661
|
-
role: "radiogroup",
|
|
25662
|
-
"aria-label": "Workspace mode",
|
|
25663
|
-
className: "inline-flex items-center rounded-full border border-border bg-surface-3 p-0.5",
|
|
25664
|
-
children: [
|
|
25665
|
-
"essential",
|
|
25666
|
-
"full"
|
|
25667
|
-
].map((mode)=>{
|
|
25668
|
-
const active = mode === "full" === isFullMode;
|
|
25669
|
-
return /*#__PURE__*/ (0,jsx_runtime.jsx)("button", {
|
|
25670
|
-
type: "button",
|
|
25671
|
-
role: "radio",
|
|
25672
|
-
"aria-checked": active,
|
|
25673
|
-
onClick: ()=>setMode(mode),
|
|
25674
|
-
title: active ? `${mode} mode (current)` : `Switch to ${mode} mode`,
|
|
25675
|
-
className: `control-tap text-[10px] uppercase tracking-wide px-2 py-0.5 rounded-full transition-colors ${active ? "bg-accent/15 text-fg-subtle" : "text-fg-faint hover:text-fg-muted"}`,
|
|
25676
|
-
children: mode
|
|
25677
|
-
}, mode);
|
|
25678
|
-
})
|
|
25679
|
-
})
|
|
25680
|
-
]
|
|
25681
|
-
})
|
|
25682
|
-
}),
|
|
25683
|
-
/*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
|
|
25684
|
-
className: "grid grid-cols-4 sm:grid-cols-6 gap-1.5 px-2 py-2 border-b border-border shrink-0",
|
|
25929
|
+
className: "grid grid-cols-4 sm:grid-cols-6 gap-1.5 px-2 py-2 border-b border-border shrink-0 bg-gradient-to-r from-surface-2/50 to-transparent",
|
|
25685
25930
|
children: COMMON_TABS.map(renderTabButton)
|
|
25686
25931
|
}),
|
|
25687
|
-
isFullMode && /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
|
|
25932
|
+
isFullMode && ADVANCED_TABS.length > 0 && /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
|
|
25688
25933
|
className: "border-b border-border shrink-0",
|
|
25689
25934
|
children: [
|
|
25690
25935
|
/*#__PURE__*/ (0,jsx_runtime.jsxs)("button", {
|
|
@@ -25719,68 +25964,6 @@ function MenuPanel({ activeTab, agentId, onClose, onAgentChange, onSetTab }) {
|
|
|
25719
25964
|
onClose();
|
|
25720
25965
|
}
|
|
25721
25966
|
})
|
|
25722
|
-
}),
|
|
25723
|
-
/*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
|
|
25724
|
-
className: "border-t border-border px-3 py-3 shrink-0 bg-surface-1/30",
|
|
25725
|
-
children: [
|
|
25726
|
-
/*#__PURE__*/ (0,jsx_runtime.jsx)("p", {
|
|
25727
|
-
className: "text-[11px] text-fg-faint mb-1.5 font-medium uppercase tracking-wide",
|
|
25728
|
-
children: "Display"
|
|
25729
|
-
}),
|
|
25730
|
-
/*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
|
|
25731
|
-
className: "flex flex-col gap-1.5",
|
|
25732
|
-
children: /*#__PURE__*/ (0,jsx_runtime.jsx)(ThemePicker, {})
|
|
25733
|
-
})
|
|
25734
|
-
]
|
|
25735
|
-
})
|
|
25736
|
-
]
|
|
25737
|
-
});
|
|
25738
|
-
}
|
|
25739
|
-
function ThemePicker() {
|
|
25740
|
-
const { theme, setTheme } = (0,ThemeContext/* useTheme */.D)();
|
|
25741
|
-
const options = [
|
|
25742
|
-
{
|
|
25743
|
-
value: "light",
|
|
25744
|
-
label: "Light",
|
|
25745
|
-
icon: /*#__PURE__*/ (0,jsx_runtime.jsx)(sun/* default */.A, {
|
|
25746
|
-
size: 12
|
|
25747
|
-
})
|
|
25748
|
-
},
|
|
25749
|
-
{
|
|
25750
|
-
value: "dark",
|
|
25751
|
-
label: "Dark",
|
|
25752
|
-
icon: /*#__PURE__*/ (0,jsx_runtime.jsx)(moon/* default */.A, {
|
|
25753
|
-
size: 12
|
|
25754
|
-
})
|
|
25755
|
-
},
|
|
25756
|
-
{
|
|
25757
|
-
value: "system",
|
|
25758
|
-
label: "System",
|
|
25759
|
-
icon: /*#__PURE__*/ (0,jsx_runtime.jsx)(monitor/* default */.A, {
|
|
25760
|
-
size: 12
|
|
25761
|
-
})
|
|
25762
|
-
}
|
|
25763
|
-
];
|
|
25764
|
-
return /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
|
|
25765
|
-
className: "flex items-center gap-2 text-xs text-fg-muted rounded-lg border border-border bg-surface-3/70 px-2.5 py-2",
|
|
25766
|
-
children: [
|
|
25767
|
-
/*#__PURE__*/ (0,jsx_runtime.jsx)("span", {
|
|
25768
|
-
className: "shrink-0",
|
|
25769
|
-
children: "Theme"
|
|
25770
|
-
}),
|
|
25771
|
-
/*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
|
|
25772
|
-
className: "flex flex-1 rounded-lg border border-border overflow-hidden bg-surface",
|
|
25773
|
-
children: options.map((o)=>/*#__PURE__*/ (0,jsx_runtime.jsxs)("button", {
|
|
25774
|
-
onClick: ()=>setTheme(o.value),
|
|
25775
|
-
title: o.label,
|
|
25776
|
-
className: `control-tap flex-1 inline-flex items-center justify-center gap-1 py-1 text-[11px] transition-colors ${theme === o.value ? "bg-surface-3 text-fg shadow-sm" : "text-fg-faint hover:text-fg-muted hover:bg-surface-3/50"}`,
|
|
25777
|
-
children: [
|
|
25778
|
-
o.icon,
|
|
25779
|
-
/*#__PURE__*/ (0,jsx_runtime.jsx)("span", {
|
|
25780
|
-
children: o.label
|
|
25781
|
-
})
|
|
25782
|
-
]
|
|
25783
|
-
}, o.value))
|
|
25784
25967
|
})
|
|
25785
25968
|
]
|
|
25786
25969
|
});
|
|
@@ -27910,6 +28093,7 @@ function DashboardPanel() {
|
|
|
27910
28093
|
|
|
27911
28094
|
|
|
27912
28095
|
|
|
28096
|
+
|
|
27913
28097
|
|
|
27914
28098
|
|
|
27915
28099
|
const AppShell_ADVANCED_TABS = new Set([
|
|
@@ -28396,6 +28580,10 @@ function AppShell() {
|
|
|
28396
28580
|
mode: state.activeTab === "env" ? "visible" : "hidden",
|
|
28397
28581
|
children: /*#__PURE__*/ (0,jsx_runtime.jsx)(EnvVarsPanel, {})
|
|
28398
28582
|
}),
|
|
28583
|
+
mountedTabs.has("settings") && /*#__PURE__*/ (0,jsx_runtime.jsx)(react.Activity, {
|
|
28584
|
+
mode: state.activeTab === "settings" ? "visible" : "hidden",
|
|
28585
|
+
children: /*#__PURE__*/ (0,jsx_runtime.jsx)(SettingsPanel, {})
|
|
28586
|
+
}),
|
|
28399
28587
|
showMenu && /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
|
|
28400
28588
|
className: "fixed left-0 right-0 bottom-0 bg-black/30 backdrop-blur-sm z-30",
|
|
28401
28589
|
style: {
|
|
@@ -28426,24 +28614,14 @@ function AppShell() {
|
|
|
28426
28614
|
}
|
|
28427
28615
|
|
|
28428
28616
|
|
|
28429
|
-
/***/ }),
|
|
28430
|
-
|
|
28431
|
-
/***/ 9852:
|
|
28432
|
-
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
|
|
28433
|
-
|
|
28434
|
-
Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 8280));
|
|
28435
|
-
;
|
|
28436
|
-
Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 2283));
|
|
28437
|
-
|
|
28438
|
-
|
|
28439
28617
|
/***/ })
|
|
28440
28618
|
|
|
28441
28619
|
},
|
|
28442
28620
|
/******/ __webpack_require__ => { // webpackRuntimeModules
|
|
28443
28621
|
/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
|
|
28444
|
-
/******/ __webpack_require__.O(0, [1973,4502,
|
|
28622
|
+
/******/ __webpack_require__.O(0, [1973,4502,962,2747,8441,3457,7358], () => (__webpack_exec__(9852)));
|
|
28445
28623
|
/******/ var __webpack_exports__ = __webpack_require__.O();
|
|
28446
28624
|
/******/ _N_E = __webpack_exports__;
|
|
28447
28625
|
/******/ }
|
|
28448
28626
|
]);
|
|
28449
|
-
//# sourceMappingURL=page-
|
|
28627
|
+
//# sourceMappingURL=page-c5b9f4407416c3f9.js.map
|