@trops/dash-core 0.1.176 → 0.1.178
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/dist/electron/index.js +20 -0
- package/dist/electron/index.js.map +1 -1
- package/dist/index.esm.js +508 -3
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +508 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -1225,8 +1225,9 @@ var ElectronDashboardApi = /*#__PURE__*/function () {
|
|
|
1225
1225
|
credentials = providerData.credentials,
|
|
1226
1226
|
providerClass = providerData.providerClass,
|
|
1227
1227
|
mcpConfig = providerData.mcpConfig,
|
|
1228
|
-
allowedTools = providerData.allowedTools
|
|
1229
|
-
|
|
1228
|
+
allowedTools = providerData.allowedTools,
|
|
1229
|
+
wsConfig = providerData.wsConfig;
|
|
1230
|
+
this.api.providers.saveProvider(appId, providerName, providerType, credentials, providerClass, mcpConfig, allowedTools, wsConfig).then(function (result) {
|
|
1230
1231
|
onSuccess(_this14.events.PROVIDER_SAVE_COMPLETE, result);
|
|
1231
1232
|
})["catch"](function (error) {
|
|
1232
1233
|
onError(_this14.events.PROVIDER_SAVE_ERROR, error);
|
|
@@ -28067,6 +28068,233 @@ var useWebSocketProvider = function useWebSocketProvider(providerType) {
|
|
|
28067
28068
|
};
|
|
28068
28069
|
};
|
|
28069
28070
|
|
|
28071
|
+
/**
|
|
28072
|
+
* useMcpDashServer
|
|
28073
|
+
*
|
|
28074
|
+
* React hook for controlling and monitoring the hosted MCP Dash server.
|
|
28075
|
+
* Accesses window.mainApi.mcpDashServer for IPC calls to the main process.
|
|
28076
|
+
*
|
|
28077
|
+
* Returns server status, control functions (start/stop/restart), token, and port.
|
|
28078
|
+
* Polls status every 3 seconds while mounted.
|
|
28079
|
+
*/
|
|
28080
|
+
function useMcpDashServer() {
|
|
28081
|
+
var _window$mainApi;
|
|
28082
|
+
var _useState = useState({
|
|
28083
|
+
running: false,
|
|
28084
|
+
enabled: false,
|
|
28085
|
+
port: 3141,
|
|
28086
|
+
connectionCount: 0,
|
|
28087
|
+
uptime: 0,
|
|
28088
|
+
toolCount: 0,
|
|
28089
|
+
resourceCount: 0
|
|
28090
|
+
}),
|
|
28091
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
28092
|
+
status = _useState2[0],
|
|
28093
|
+
setStatus = _useState2[1];
|
|
28094
|
+
var _useState3 = useState(null),
|
|
28095
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
28096
|
+
token = _useState4[0],
|
|
28097
|
+
setToken = _useState4[1];
|
|
28098
|
+
var _useState5 = useState(true),
|
|
28099
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
28100
|
+
loading = _useState6[0],
|
|
28101
|
+
setLoading = _useState6[1];
|
|
28102
|
+
var _useState7 = useState(null),
|
|
28103
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
28104
|
+
error = _useState8[0],
|
|
28105
|
+
setError = _useState8[1];
|
|
28106
|
+
var pollRef = useRef(null);
|
|
28107
|
+
var api = (_window$mainApi = window.mainApi) === null || _window$mainApi === void 0 ? void 0 : _window$mainApi.mcpDashServer;
|
|
28108
|
+
var fetchStatus = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
28109
|
+
var result, _t;
|
|
28110
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
28111
|
+
while (1) switch (_context.prev = _context.next) {
|
|
28112
|
+
case 0:
|
|
28113
|
+
if (api) {
|
|
28114
|
+
_context.next = 1;
|
|
28115
|
+
break;
|
|
28116
|
+
}
|
|
28117
|
+
return _context.abrupt("return");
|
|
28118
|
+
case 1:
|
|
28119
|
+
_context.prev = 1;
|
|
28120
|
+
_context.next = 2;
|
|
28121
|
+
return api.getStatus();
|
|
28122
|
+
case 2:
|
|
28123
|
+
result = _context.sent;
|
|
28124
|
+
setStatus(result);
|
|
28125
|
+
setError(null);
|
|
28126
|
+
_context.next = 4;
|
|
28127
|
+
break;
|
|
28128
|
+
case 3:
|
|
28129
|
+
_context.prev = 3;
|
|
28130
|
+
_t = _context["catch"](1);
|
|
28131
|
+
setError(_t.message || "Failed to get server status");
|
|
28132
|
+
case 4:
|
|
28133
|
+
case "end":
|
|
28134
|
+
return _context.stop();
|
|
28135
|
+
}
|
|
28136
|
+
}, _callee, null, [[1, 3]]);
|
|
28137
|
+
})), [api]);
|
|
28138
|
+
var fetchToken = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
28139
|
+
var t;
|
|
28140
|
+
return _regeneratorRuntime.wrap(function (_context2) {
|
|
28141
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
28142
|
+
case 0:
|
|
28143
|
+
if (api) {
|
|
28144
|
+
_context2.next = 1;
|
|
28145
|
+
break;
|
|
28146
|
+
}
|
|
28147
|
+
return _context2.abrupt("return");
|
|
28148
|
+
case 1:
|
|
28149
|
+
_context2.prev = 1;
|
|
28150
|
+
_context2.next = 2;
|
|
28151
|
+
return api.getToken();
|
|
28152
|
+
case 2:
|
|
28153
|
+
t = _context2.sent;
|
|
28154
|
+
setToken(t);
|
|
28155
|
+
_context2.next = 4;
|
|
28156
|
+
break;
|
|
28157
|
+
case 3:
|
|
28158
|
+
_context2.prev = 3;
|
|
28159
|
+
_context2["catch"](1);
|
|
28160
|
+
case 4:
|
|
28161
|
+
case "end":
|
|
28162
|
+
return _context2.stop();
|
|
28163
|
+
}
|
|
28164
|
+
}, _callee2, null, [[1, 3]]);
|
|
28165
|
+
})), [api]);
|
|
28166
|
+
|
|
28167
|
+
// Initial load
|
|
28168
|
+
useEffect(function () {
|
|
28169
|
+
if (!api) {
|
|
28170
|
+
setLoading(false);
|
|
28171
|
+
return;
|
|
28172
|
+
}
|
|
28173
|
+
Promise.all([fetchStatus(), fetchToken()]).then(function () {
|
|
28174
|
+
return setLoading(false);
|
|
28175
|
+
});
|
|
28176
|
+
}, [api, fetchStatus, fetchToken]);
|
|
28177
|
+
|
|
28178
|
+
// Poll status every 3 seconds
|
|
28179
|
+
useEffect(function () {
|
|
28180
|
+
if (!api) return;
|
|
28181
|
+
pollRef.current = setInterval(fetchStatus, 3000);
|
|
28182
|
+
return function () {
|
|
28183
|
+
return clearInterval(pollRef.current);
|
|
28184
|
+
};
|
|
28185
|
+
}, [api, fetchStatus]);
|
|
28186
|
+
var startServer = useCallback(/*#__PURE__*/function () {
|
|
28187
|
+
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(port) {
|
|
28188
|
+
var result, _t3;
|
|
28189
|
+
return _regeneratorRuntime.wrap(function (_context3) {
|
|
28190
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
28191
|
+
case 0:
|
|
28192
|
+
if (api) {
|
|
28193
|
+
_context3.next = 1;
|
|
28194
|
+
break;
|
|
28195
|
+
}
|
|
28196
|
+
return _context3.abrupt("return");
|
|
28197
|
+
case 1:
|
|
28198
|
+
setError(null);
|
|
28199
|
+
_context3.prev = 2;
|
|
28200
|
+
_context3.next = 3;
|
|
28201
|
+
return api.startServer(port);
|
|
28202
|
+
case 3:
|
|
28203
|
+
result = _context3.sent;
|
|
28204
|
+
if (!result.success) {
|
|
28205
|
+
setError(result.error || "Failed to start server");
|
|
28206
|
+
}
|
|
28207
|
+
_context3.next = 4;
|
|
28208
|
+
return fetchStatus();
|
|
28209
|
+
case 4:
|
|
28210
|
+
return _context3.abrupt("return", result);
|
|
28211
|
+
case 5:
|
|
28212
|
+
_context3.prev = 5;
|
|
28213
|
+
_t3 = _context3["catch"](2);
|
|
28214
|
+
setError(_t3.message || "Failed to start server");
|
|
28215
|
+
case 6:
|
|
28216
|
+
case "end":
|
|
28217
|
+
return _context3.stop();
|
|
28218
|
+
}
|
|
28219
|
+
}, _callee3, null, [[2, 5]]);
|
|
28220
|
+
}));
|
|
28221
|
+
return function (_x) {
|
|
28222
|
+
return _ref3.apply(this, arguments);
|
|
28223
|
+
};
|
|
28224
|
+
}(), [api, fetchStatus]);
|
|
28225
|
+
var stopServer = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
|
|
28226
|
+
var result, _t4;
|
|
28227
|
+
return _regeneratorRuntime.wrap(function (_context4) {
|
|
28228
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
28229
|
+
case 0:
|
|
28230
|
+
if (api) {
|
|
28231
|
+
_context4.next = 1;
|
|
28232
|
+
break;
|
|
28233
|
+
}
|
|
28234
|
+
return _context4.abrupt("return");
|
|
28235
|
+
case 1:
|
|
28236
|
+
setError(null);
|
|
28237
|
+
_context4.prev = 2;
|
|
28238
|
+
_context4.next = 3;
|
|
28239
|
+
return api.stopServer();
|
|
28240
|
+
case 3:
|
|
28241
|
+
result = _context4.sent;
|
|
28242
|
+
if (!result.success) {
|
|
28243
|
+
setError(result.error || "Failed to stop server");
|
|
28244
|
+
}
|
|
28245
|
+
_context4.next = 4;
|
|
28246
|
+
return fetchStatus();
|
|
28247
|
+
case 4:
|
|
28248
|
+
return _context4.abrupt("return", result);
|
|
28249
|
+
case 5:
|
|
28250
|
+
_context4.prev = 5;
|
|
28251
|
+
_t4 = _context4["catch"](2);
|
|
28252
|
+
setError(_t4.message || "Failed to stop server");
|
|
28253
|
+
case 6:
|
|
28254
|
+
case "end":
|
|
28255
|
+
return _context4.stop();
|
|
28256
|
+
}
|
|
28257
|
+
}, _callee4, null, [[2, 5]]);
|
|
28258
|
+
})), [api, fetchStatus]);
|
|
28259
|
+
var restartServer = useCallback(/*#__PURE__*/function () {
|
|
28260
|
+
var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5(port) {
|
|
28261
|
+
return _regeneratorRuntime.wrap(function (_context5) {
|
|
28262
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
28263
|
+
case 0:
|
|
28264
|
+
_context5.next = 1;
|
|
28265
|
+
return stopServer();
|
|
28266
|
+
case 1:
|
|
28267
|
+
return _context5.abrupt("return", startServer(port));
|
|
28268
|
+
case 2:
|
|
28269
|
+
case "end":
|
|
28270
|
+
return _context5.stop();
|
|
28271
|
+
}
|
|
28272
|
+
}, _callee5);
|
|
28273
|
+
}));
|
|
28274
|
+
return function (_x2) {
|
|
28275
|
+
return _ref5.apply(this, arguments);
|
|
28276
|
+
};
|
|
28277
|
+
}(), [stopServer, startServer]);
|
|
28278
|
+
return {
|
|
28279
|
+
// Status
|
|
28280
|
+
running: status.running,
|
|
28281
|
+
enabled: status.enabled,
|
|
28282
|
+
port: status.port,
|
|
28283
|
+
connectionCount: status.connectionCount,
|
|
28284
|
+
uptime: status.uptime,
|
|
28285
|
+
toolCount: status.toolCount,
|
|
28286
|
+
resourceCount: status.resourceCount,
|
|
28287
|
+
token: token,
|
|
28288
|
+
loading: loading,
|
|
28289
|
+
error: error,
|
|
28290
|
+
// Actions
|
|
28291
|
+
startServer: startServer,
|
|
28292
|
+
stopServer: stopServer,
|
|
28293
|
+
restartServer: restartServer,
|
|
28294
|
+
refreshStatus: fetchStatus
|
|
28295
|
+
};
|
|
28296
|
+
}
|
|
28297
|
+
|
|
28070
28298
|
function ownKeys$i(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
28071
28299
|
function _objectSpread$i(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$i(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$i(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
28072
28300
|
var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
|
|
@@ -43246,6 +43474,276 @@ function flattenLayout(layout) {
|
|
|
43246
43474
|
return items;
|
|
43247
43475
|
}
|
|
43248
43476
|
|
|
43477
|
+
var McpServerSection = function McpServerSection() {
|
|
43478
|
+
var _useMcpDashServer = useMcpDashServer(),
|
|
43479
|
+
running = _useMcpDashServer.running,
|
|
43480
|
+
port = _useMcpDashServer.port,
|
|
43481
|
+
connectionCount = _useMcpDashServer.connectionCount,
|
|
43482
|
+
uptime = _useMcpDashServer.uptime,
|
|
43483
|
+
toolCount = _useMcpDashServer.toolCount,
|
|
43484
|
+
resourceCount = _useMcpDashServer.resourceCount,
|
|
43485
|
+
token = _useMcpDashServer.token,
|
|
43486
|
+
loading = _useMcpDashServer.loading,
|
|
43487
|
+
error = _useMcpDashServer.error,
|
|
43488
|
+
startServer = _useMcpDashServer.startServer,
|
|
43489
|
+
stopServer = _useMcpDashServer.stopServer,
|
|
43490
|
+
restartServer = _useMcpDashServer.restartServer;
|
|
43491
|
+
var _useState = useState(null),
|
|
43492
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
43493
|
+
portInput = _useState2[0],
|
|
43494
|
+
setPortInput = _useState2[1];
|
|
43495
|
+
var _useState3 = useState(false),
|
|
43496
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
43497
|
+
tokenCopied = _useState4[0],
|
|
43498
|
+
setTokenCopied = _useState4[1];
|
|
43499
|
+
|
|
43500
|
+
// Use live port from server, but allow local override while editing
|
|
43501
|
+
var displayPort = portInput !== null ? portInput : port || 3141;
|
|
43502
|
+
var handleToggle = useCallback(/*#__PURE__*/function () {
|
|
43503
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(enabled) {
|
|
43504
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
43505
|
+
while (1) switch (_context.prev = _context.next) {
|
|
43506
|
+
case 0:
|
|
43507
|
+
if (!enabled) {
|
|
43508
|
+
_context.next = 2;
|
|
43509
|
+
break;
|
|
43510
|
+
}
|
|
43511
|
+
_context.next = 1;
|
|
43512
|
+
return startServer(displayPort);
|
|
43513
|
+
case 1:
|
|
43514
|
+
_context.next = 3;
|
|
43515
|
+
break;
|
|
43516
|
+
case 2:
|
|
43517
|
+
_context.next = 3;
|
|
43518
|
+
return stopServer();
|
|
43519
|
+
case 3:
|
|
43520
|
+
case "end":
|
|
43521
|
+
return _context.stop();
|
|
43522
|
+
}
|
|
43523
|
+
}, _callee);
|
|
43524
|
+
}));
|
|
43525
|
+
return function (_x) {
|
|
43526
|
+
return _ref.apply(this, arguments);
|
|
43527
|
+
};
|
|
43528
|
+
}(), [startServer, stopServer, displayPort]);
|
|
43529
|
+
var handlePortChange = useCallback(function (e) {
|
|
43530
|
+
var val = e.target.value.replace(/\D/g, "");
|
|
43531
|
+
setPortInput(val ? parseInt(val, 10) : "");
|
|
43532
|
+
}, []);
|
|
43533
|
+
var handlePortBlur = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
43534
|
+
return _regeneratorRuntime.wrap(function (_context2) {
|
|
43535
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
43536
|
+
case 0:
|
|
43537
|
+
if (!(portInput !== null && portInput !== "" && portInput !== port && running)) {
|
|
43538
|
+
_context2.next = 1;
|
|
43539
|
+
break;
|
|
43540
|
+
}
|
|
43541
|
+
_context2.next = 1;
|
|
43542
|
+
return restartServer(portInput);
|
|
43543
|
+
case 1:
|
|
43544
|
+
setPortInput(null);
|
|
43545
|
+
case 2:
|
|
43546
|
+
case "end":
|
|
43547
|
+
return _context2.stop();
|
|
43548
|
+
}
|
|
43549
|
+
}, _callee2);
|
|
43550
|
+
})), [portInput, port, running, restartServer]);
|
|
43551
|
+
var handlePortKeyDown = useCallback(function (e) {
|
|
43552
|
+
if (e.key === "Enter") {
|
|
43553
|
+
e.target.blur();
|
|
43554
|
+
}
|
|
43555
|
+
}, []);
|
|
43556
|
+
var handleCopyToken = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
|
|
43557
|
+
return _regeneratorRuntime.wrap(function (_context3) {
|
|
43558
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
43559
|
+
case 0:
|
|
43560
|
+
if (token) {
|
|
43561
|
+
_context3.next = 1;
|
|
43562
|
+
break;
|
|
43563
|
+
}
|
|
43564
|
+
return _context3.abrupt("return");
|
|
43565
|
+
case 1:
|
|
43566
|
+
_context3.prev = 1;
|
|
43567
|
+
_context3.next = 2;
|
|
43568
|
+
return navigator.clipboard.writeText(token);
|
|
43569
|
+
case 2:
|
|
43570
|
+
setTokenCopied(true);
|
|
43571
|
+
setTimeout(function () {
|
|
43572
|
+
return setTokenCopied(false);
|
|
43573
|
+
}, 2000);
|
|
43574
|
+
_context3.next = 4;
|
|
43575
|
+
break;
|
|
43576
|
+
case 3:
|
|
43577
|
+
_context3.prev = 3;
|
|
43578
|
+
_context3["catch"](1);
|
|
43579
|
+
case 4:
|
|
43580
|
+
case "end":
|
|
43581
|
+
return _context3.stop();
|
|
43582
|
+
}
|
|
43583
|
+
}, _callee3, null, [[1, 3]]);
|
|
43584
|
+
})), [token]);
|
|
43585
|
+
var formatUptime = function formatUptime(seconds) {
|
|
43586
|
+
if (!seconds || seconds < 1) return "—";
|
|
43587
|
+
var h = Math.floor(seconds / 3600);
|
|
43588
|
+
var m = Math.floor(seconds % 3600 / 60);
|
|
43589
|
+
var s = Math.floor(seconds % 60);
|
|
43590
|
+
if (h > 0) return "".concat(h, "h ").concat(m, "m");
|
|
43591
|
+
if (m > 0) return "".concat(m, "m ").concat(s, "s");
|
|
43592
|
+
return "".concat(s, "s");
|
|
43593
|
+
};
|
|
43594
|
+
var statusColor = running ? "bg-green-500" : error ? "bg-red-500" : "bg-gray-500";
|
|
43595
|
+
var statusLabel = running ? "Running" : error ? "Error" : "Stopped";
|
|
43596
|
+
if (loading) {
|
|
43597
|
+
return /*#__PURE__*/jsx("div", {
|
|
43598
|
+
className: "flex items-center justify-center py-12 opacity-50",
|
|
43599
|
+
children: /*#__PURE__*/jsx("span", {
|
|
43600
|
+
className: "text-sm",
|
|
43601
|
+
children: "Loading MCP Server settings\u2026"
|
|
43602
|
+
})
|
|
43603
|
+
});
|
|
43604
|
+
}
|
|
43605
|
+
return /*#__PURE__*/jsxs("div", {
|
|
43606
|
+
className: "flex flex-col space-y-6",
|
|
43607
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
43608
|
+
className: "flex flex-col space-y-3",
|
|
43609
|
+
children: [/*#__PURE__*/jsx(SubHeading3, {
|
|
43610
|
+
title: "MCP Server",
|
|
43611
|
+
padding: false
|
|
43612
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
43613
|
+
className: "flex flex-row items-center justify-between py-3",
|
|
43614
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
43615
|
+
className: "flex flex-col",
|
|
43616
|
+
children: [/*#__PURE__*/jsx("span", {
|
|
43617
|
+
className: "text-sm font-medium",
|
|
43618
|
+
children: "Enable MCP Server"
|
|
43619
|
+
}), /*#__PURE__*/jsx("span", {
|
|
43620
|
+
className: "text-xs opacity-50",
|
|
43621
|
+
children: "Expose dashboards, widgets, and themes to external LLM clients via MCP protocol"
|
|
43622
|
+
})]
|
|
43623
|
+
}), /*#__PURE__*/jsx(Switch, {
|
|
43624
|
+
checked: running,
|
|
43625
|
+
onChange: handleToggle
|
|
43626
|
+
})]
|
|
43627
|
+
})]
|
|
43628
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
43629
|
+
className: "flex flex-col space-y-3",
|
|
43630
|
+
children: [/*#__PURE__*/jsx(SubHeading3, {
|
|
43631
|
+
title: "Status",
|
|
43632
|
+
padding: false
|
|
43633
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
43634
|
+
className: "flex flex-row items-center space-x-3 py-2",
|
|
43635
|
+
children: [/*#__PURE__*/jsx("span", {
|
|
43636
|
+
className: "inline-block h-2.5 w-2.5 rounded-full ".concat(statusColor)
|
|
43637
|
+
}), /*#__PURE__*/jsx("span", {
|
|
43638
|
+
className: "text-sm font-medium",
|
|
43639
|
+
children: statusLabel
|
|
43640
|
+
}), running && /*#__PURE__*/jsxs("span", {
|
|
43641
|
+
className: "text-xs opacity-50",
|
|
43642
|
+
children: ["on port ", port]
|
|
43643
|
+
})]
|
|
43644
|
+
}), error && /*#__PURE__*/jsx("div", {
|
|
43645
|
+
className: "text-xs text-red-400 bg-red-500/10 rounded px-3 py-2",
|
|
43646
|
+
children: error
|
|
43647
|
+
})]
|
|
43648
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
43649
|
+
className: "flex flex-col space-y-3",
|
|
43650
|
+
children: [/*#__PURE__*/jsx(SubHeading3, {
|
|
43651
|
+
title: "Configuration",
|
|
43652
|
+
padding: false
|
|
43653
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
43654
|
+
className: "flex flex-row items-center justify-between py-3",
|
|
43655
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
43656
|
+
className: "flex flex-col",
|
|
43657
|
+
children: [/*#__PURE__*/jsx("span", {
|
|
43658
|
+
className: "text-sm font-medium",
|
|
43659
|
+
children: "Port"
|
|
43660
|
+
}), /*#__PURE__*/jsx("span", {
|
|
43661
|
+
className: "text-xs opacity-50",
|
|
43662
|
+
children: running ? "Changes take effect on restart" : "Port the server listens on"
|
|
43663
|
+
})]
|
|
43664
|
+
}), /*#__PURE__*/jsx("input", {
|
|
43665
|
+
type: "text",
|
|
43666
|
+
inputMode: "numeric",
|
|
43667
|
+
value: displayPort,
|
|
43668
|
+
onChange: handlePortChange,
|
|
43669
|
+
onBlur: handlePortBlur,
|
|
43670
|
+
onKeyDown: handlePortKeyDown,
|
|
43671
|
+
className: "w-24 text-right text-sm bg-white/5 border border-white/10 rounded px-3 py-1.5 focus:outline-none focus:ring-1 focus:ring-white/30"
|
|
43672
|
+
})]
|
|
43673
|
+
})]
|
|
43674
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
43675
|
+
className: "flex flex-col space-y-3",
|
|
43676
|
+
children: [/*#__PURE__*/jsx(SubHeading3, {
|
|
43677
|
+
title: "Authentication",
|
|
43678
|
+
padding: false
|
|
43679
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
43680
|
+
className: "flex flex-col space-y-2 py-3",
|
|
43681
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
43682
|
+
className: "flex flex-row items-center justify-between",
|
|
43683
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
43684
|
+
className: "flex flex-col",
|
|
43685
|
+
children: [/*#__PURE__*/jsx("span", {
|
|
43686
|
+
className: "text-sm font-medium",
|
|
43687
|
+
children: "Bearer Token"
|
|
43688
|
+
}), /*#__PURE__*/jsx("span", {
|
|
43689
|
+
className: "text-xs opacity-50",
|
|
43690
|
+
children: "Required for client authentication"
|
|
43691
|
+
})]
|
|
43692
|
+
}), /*#__PURE__*/jsx(Button, {
|
|
43693
|
+
title: tokenCopied ? "Copied!" : "Copy",
|
|
43694
|
+
onClick: handleCopyToken
|
|
43695
|
+
})]
|
|
43696
|
+
}), token && /*#__PURE__*/jsx("div", {
|
|
43697
|
+
className: "font-mono text-xs bg-black/20 rounded px-3 py-2 break-all select-all opacity-70",
|
|
43698
|
+
children: token
|
|
43699
|
+
})]
|
|
43700
|
+
})]
|
|
43701
|
+
}), running && /*#__PURE__*/jsxs("div", {
|
|
43702
|
+
className: "flex flex-col space-y-3",
|
|
43703
|
+
children: [/*#__PURE__*/jsx(SubHeading3, {
|
|
43704
|
+
title: "Server Info",
|
|
43705
|
+
padding: false
|
|
43706
|
+
}), /*#__PURE__*/jsxs(DataList, {
|
|
43707
|
+
children: [/*#__PURE__*/jsx(DataList.Item, {
|
|
43708
|
+
label: "Connections",
|
|
43709
|
+
value: String(connectionCount)
|
|
43710
|
+
}), /*#__PURE__*/jsx(DataList.Item, {
|
|
43711
|
+
label: "Tools",
|
|
43712
|
+
value: String(toolCount)
|
|
43713
|
+
}), /*#__PURE__*/jsx(DataList.Item, {
|
|
43714
|
+
label: "Resources",
|
|
43715
|
+
value: String(resourceCount)
|
|
43716
|
+
}), /*#__PURE__*/jsx(DataList.Item, {
|
|
43717
|
+
label: "Uptime",
|
|
43718
|
+
value: formatUptime(uptime),
|
|
43719
|
+
divider: false
|
|
43720
|
+
})]
|
|
43721
|
+
})]
|
|
43722
|
+
}), running && token && /*#__PURE__*/jsxs("div", {
|
|
43723
|
+
className: "flex flex-col space-y-3",
|
|
43724
|
+
children: [/*#__PURE__*/jsx(SubHeading3, {
|
|
43725
|
+
title: "Client Configuration",
|
|
43726
|
+
padding: false
|
|
43727
|
+
}), /*#__PURE__*/jsx("span", {
|
|
43728
|
+
className: "text-xs opacity-50",
|
|
43729
|
+
children: "Add to your MCP client config (e.g. Claude Desktop):"
|
|
43730
|
+
}), /*#__PURE__*/jsx("pre", {
|
|
43731
|
+
className: "text-xs bg-black/20 rounded p-3 overflow-auto max-h-40 select-all",
|
|
43732
|
+
children: JSON.stringify({
|
|
43733
|
+
mcpServers: {
|
|
43734
|
+
dash: {
|
|
43735
|
+
url: "http://127.0.0.1:".concat(port, "/mcp"),
|
|
43736
|
+
headers: {
|
|
43737
|
+
Authorization: "Bearer ".concat(token)
|
|
43738
|
+
}
|
|
43739
|
+
}
|
|
43740
|
+
}
|
|
43741
|
+
}, null, 2)
|
|
43742
|
+
})]
|
|
43743
|
+
})]
|
|
43744
|
+
});
|
|
43745
|
+
};
|
|
43746
|
+
|
|
43249
43747
|
var SECTIONS = [{
|
|
43250
43748
|
key: "general",
|
|
43251
43749
|
label: "General",
|
|
@@ -43278,6 +43776,10 @@ var SECTIONS = [{
|
|
|
43278
43776
|
key: "notifications",
|
|
43279
43777
|
label: "Notifications",
|
|
43280
43778
|
icon: "bell"
|
|
43779
|
+
}, {
|
|
43780
|
+
key: "mcp-server",
|
|
43781
|
+
label: "MCP Server",
|
|
43782
|
+
icon: "server"
|
|
43281
43783
|
}];
|
|
43282
43784
|
var AppSettingsModal = function AppSettingsModal(_ref) {
|
|
43283
43785
|
var isOpen = _ref.isOpen,
|
|
@@ -43447,6 +43949,9 @@ var AppSettingsModal = function AppSettingsModal(_ref) {
|
|
|
43447
43949
|
children: /*#__PURE__*/jsx(GeneralSection, {})
|
|
43448
43950
|
}), activeSection === "notifications" && /*#__PURE__*/jsx(NotificationsSection, {
|
|
43449
43951
|
workspaces: workspaces
|
|
43952
|
+
}), activeSection === "mcp-server" && /*#__PURE__*/jsx("div", {
|
|
43953
|
+
className: "flex-1 overflow-y-auto p-6 ".concat(panelStyles.textColor || "text-gray-200"),
|
|
43954
|
+
children: /*#__PURE__*/jsx(McpServerSection, {})
|
|
43450
43955
|
})]
|
|
43451
43956
|
}), /*#__PURE__*/jsx(SettingsModal.Footer, {
|
|
43452
43957
|
children: /*#__PURE__*/jsx("div", {
|
|
@@ -47460,5 +47965,5 @@ var WorkspaceMenu = function WorkspaceMenu(_ref) {
|
|
|
47460
47965
|
|
|
47461
47966
|
ComponentManager.registerContainerTypes(LayoutContainer, LayoutGridContainer);
|
|
47462
47967
|
|
|
47463
|
-
export { ALGOLIA_ANALYTICS_FOR_QUERY, ALGOLIA_ANALYTICS_FOR_QUERY_COMPLETE, ALGOLIA_ANALYTICS_FOR_QUERY_ERROR, ALGOLIA_LIST_INDICES, ALGOLIA_LIST_INDICES_COMPLETE, ALGOLIA_LIST_INDICES_ERROR, AVAILABLE_COLORS, AddMenuItemModal, AdvancedMcpConfig, AppContext, AppSettingsModal, AppThemeScope, AppWrapper, CHOOSE_FILE, CHOOSE_FILE_COMPLETE, CHOOSE_FILE_ERROR, ColorModel, ComponentConfigModel, ComponentManager, ContextModel, DATA_JSON_TO_CSV_FILE, DATA_JSON_TO_CSV_FILE_COMPLETE, DATA_JSON_TO_CSV_FILE_ERROR, DATA_JSON_TO_CSV_STRING, DATA_JSON_TO_CSV_STRING_COMPLETE, DATA_JSON_TO_CSV_STRING_ERROR, DATA_READ_FROM_FILE, DATA_READ_FROM_FILE_COMPLETE, DATA_READ_FROM_FILE_ERROR, DATA_SAVE_TO_FILE, DATA_SAVE_TO_FILE_COMPLETE, DATA_SAVE_TO_FILE_ERROR, DashCommandPalette, DashNavbar, DashSidebar, DashTabBar, DashboardStage as Dashboard, DashboardApi, DashboardContext, DashboardFooter, DashboardHeader, DashboardMenuItem, DashboardModel, DashboardMonitor, DashboardPublisher, DashboardStage, DashboardThemeProvider, DashboardWrapper, ElectronDashboardApi, ErrorBoundary, ExternalWidget, GRID_CELL_WIDGET_TYPE, HARMONY_STRATEGIES, LAYOUT_LIST, LAYOUT_LIST_COMPLETE, LAYOUT_LIST_ERROR, LAYOUT_SAVE, LAYOUT_SAVE_COMPLETE, LAYOUT_SAVE_ERROR, Layout, LayoutBuilder, LayoutBuilderAddItemModal, LayoutBuilderConfigContainerMenuItem, LayoutBuilderConfigMenuItem, LayoutBuilderConfigModal, LayoutBuilderEditItemModal, LayoutBuilderEventModal, LayoutBuilderGridItem, LayoutContainer, LayoutDragBuilder, LayoutDragBuilderEdit, LayoutGridContainer, LayoutManagerModal, LayoutModel, LayoutQuickAddMenu, MCP_CALL_TOOL_COMPLETE, MCP_CALL_TOOL_ERROR, MCP_GET_CATALOG_COMPLETE, MCP_GET_CATALOG_ERROR, MCP_LIST_RESOURCES_COMPLETE, MCP_LIST_RESOURCES_ERROR, MCP_LIST_TOOLS_COMPLETE, MCP_LIST_TOOLS_ERROR, MCP_READ_RESOURCE_COMPLETE, MCP_READ_RESOURCE_ERROR, MCP_RUN_AUTH_COMPLETE, MCP_RUN_AUTH_ERROR, MCP_SERVER_STATUS_COMPLETE, MCP_SERVER_STATUS_ERROR, MCP_START_SERVER_COMPLETE, MCP_START_SERVER_ERROR, MCP_STOP_SERVER_COMPLETE, MCP_STOP_SERVER_ERROR, MENU_ITEMS_DELETE, MENU_ITEMS_DELETE_COMPLETE, MENU_ITEMS_DELETE_ERROR, MENU_ITEMS_LIST, MENU_ITEMS_LIST_COMPLETE, MENU_ITEMS_LIST_ERROR, MENU_ITEMS_SAVE, MENU_ITEMS_SAVE_COMPLETE, MENU_ITEMS_SAVE_ERROR, MainMenu, MainMenuItem, MainMenuSection, McpServerPicker, MenuItemModel, MenuSlideOverlay, MergeCellsModal, MissingProviderPrompt, MockDashboardApi, PROVIDER_DELETE_COMPLETE, PROVIDER_DELETE_ERROR, PROVIDER_GET_COMPLETE, PROVIDER_GET_ERROR, PROVIDER_LIST_COMPLETE, PROVIDER_LIST_ERROR, PROVIDER_SAVE_COMPLETE, PROVIDER_SAVE_ERROR, PanelCode, PanelEditItem, PanelEditItemHandlers, PanelEditItemNotifications, ProviderContext, ProviderErrorBoundary, ProviderForm, ProviderSelector, SECURE_STORAGE_ENCRYPT_STRING, SECURE_STORAGE_ENCRYPT_STRING_COMPLETE, SECURE_STORAGE_ENCRYPT_STRING_ERROR, SECURE_STORE_ENCRYPTION_CHECK, SECURE_STORE_ENCRYPTION_CHECK_COMPLETE, SECURE_STORE_ENCRYPTION_CHECK_ERROR, SECURE_STORE_GET_DATA, SECURE_STORE_GET_DATA_COMPLETE, SECURE_STORE_GET_DATA_ERROR, SECURE_STORE_SET_DATA, SECURE_STORE_SET_DATA_COMPLETE, SECURE_STORE_SET_DATA_ERROR, SETTINGS_GET, SETTINGS_GET_COMPLETE, SETTINGS_GET_ERROR, SETTINGS_SAVE, SETTINGS_SAVE_COMPLETE, SETTINGS_SAVE_ERROR, SIDEBAR_WIDGET_TYPE, SettingsModel, SideMenu, SplitCellModal, THEME_DELETE, THEME_DELETE_COMPLETE, THEME_DELETE_ERROR, THEME_EXTRACT_FROM_URL, THEME_EXTRACT_FROM_URL_COMPLETE, THEME_EXTRACT_FROM_URL_ERROR, THEME_LIST, THEME_LIST_COMPLETE, THEME_LIST_ERROR, THEME_MAP_PALETTE, THEME_MAP_PALETTE_COMPLETE, THEME_MAP_PALETTE_ERROR, THEME_SAVE, THEME_SAVE_COMPLETE, THEME_SAVE_ERROR, ThemeApi, ThemeColorDots, ThemeManagerModal, ThemeModel, ThemeWrapper, WORKSPACE_DELETE, WORKSPACE_DELETE_COMPLETE, WORKSPACE_DELETE_ERROR, WORKSPACE_LIST, WORKSPACE_LIST_COMPLETE, WORKSPACE_LIST_ERROR, WORKSPACE_SAVE, WORKSPACE_SAVE_COMPLETE, WORKSPACE_SAVE_ERROR, WebDashboardApi, Widget, WidgetApi, WidgetConfigPanel, WidgetContext, WidgetFactory, WidgetPopoutStage, WidgetProviderWrapper, WidgetSidebar, Workspace, WorkspaceContext, WorkspaceFooter, WorkspaceMenu, WorkspaceModel, addChildToLayoutItem, addItemToItemLayout, buildMcpConfigFromOverrides, canHaveChildren, changeDirectionForLayoutItem, createProviderRegistry, deriveFormFields, envMappingToRows, evaluateBundle, extractWidgetConfigs, formStateToMcpJson, formatFieldName, generateCustomTheme, generateHarmonyTheme, generateRandomTheme, generateThemeName, getBorderStyle, getChildrenForLayoutItem, getComponentInLayout, getContainerBorderColor, getContainerColor, getIndexOfLayoutChildrenForItem, getIndexOfLayoutItem, getLayoutItemById, getLayoutItemForWorkspace, getNearestParentWorkspace, getNextHighestId, getNextHighestItemInLayout, getNextHighestOrder, getNextHighestParentId, getNextLowestItemInLayout, getParentForLayoutItem, getParentWorkspaceForItem, getThemePresets, getUserConfigurableProviders, getWidgetsForWorkspace, getWorkspacesForWorkspace, headerTemplateToRows, isContainer, isLikelySecret, isMaxOrderForItem, isMinOrderForItem, isWidget, isWidgetResolvable, isWorkspace, layoutItemHasWorkspaceAsChild, loadWidgetBundle, mcpJsonToFormState, numChildrenForLayout, removeItemFromLayout, renderComponent, renderGridLayout, renderGridLayoutFlow, _renderLayout as renderLayout, renderLayoutMenu, replaceItemInLayout, resolveIcon, setHostModules, traverseParentTree, updateLayoutItem, updateParentForItem, useDashboard, useMcpProvider, useNotifications, useProvider, useProviderClient, useScheduler, useWebSocketProvider, useWidgetEvents, useWidgetProviders, useWidgetSchedulerStatus, validateCellMerge, validateGridCell, validateGridPlacement, validateWidgetPlacement, withProviderDetection };
|
|
47968
|
+
export { ALGOLIA_ANALYTICS_FOR_QUERY, ALGOLIA_ANALYTICS_FOR_QUERY_COMPLETE, ALGOLIA_ANALYTICS_FOR_QUERY_ERROR, ALGOLIA_LIST_INDICES, ALGOLIA_LIST_INDICES_COMPLETE, ALGOLIA_LIST_INDICES_ERROR, AVAILABLE_COLORS, AddMenuItemModal, AdvancedMcpConfig, AppContext, AppSettingsModal, AppThemeScope, AppWrapper, CHOOSE_FILE, CHOOSE_FILE_COMPLETE, CHOOSE_FILE_ERROR, ColorModel, ComponentConfigModel, ComponentManager, ContextModel, DATA_JSON_TO_CSV_FILE, DATA_JSON_TO_CSV_FILE_COMPLETE, DATA_JSON_TO_CSV_FILE_ERROR, DATA_JSON_TO_CSV_STRING, DATA_JSON_TO_CSV_STRING_COMPLETE, DATA_JSON_TO_CSV_STRING_ERROR, DATA_READ_FROM_FILE, DATA_READ_FROM_FILE_COMPLETE, DATA_READ_FROM_FILE_ERROR, DATA_SAVE_TO_FILE, DATA_SAVE_TO_FILE_COMPLETE, DATA_SAVE_TO_FILE_ERROR, DashCommandPalette, DashNavbar, DashSidebar, DashTabBar, DashboardStage as Dashboard, DashboardApi, DashboardContext, DashboardFooter, DashboardHeader, DashboardMenuItem, DashboardModel, DashboardMonitor, DashboardPublisher, DashboardStage, DashboardThemeProvider, DashboardWrapper, ElectronDashboardApi, ErrorBoundary, ExternalWidget, GRID_CELL_WIDGET_TYPE, HARMONY_STRATEGIES, LAYOUT_LIST, LAYOUT_LIST_COMPLETE, LAYOUT_LIST_ERROR, LAYOUT_SAVE, LAYOUT_SAVE_COMPLETE, LAYOUT_SAVE_ERROR, Layout, LayoutBuilder, LayoutBuilderAddItemModal, LayoutBuilderConfigContainerMenuItem, LayoutBuilderConfigMenuItem, LayoutBuilderConfigModal, LayoutBuilderEditItemModal, LayoutBuilderEventModal, LayoutBuilderGridItem, LayoutContainer, LayoutDragBuilder, LayoutDragBuilderEdit, LayoutGridContainer, LayoutManagerModal, LayoutModel, LayoutQuickAddMenu, MCP_CALL_TOOL_COMPLETE, MCP_CALL_TOOL_ERROR, MCP_GET_CATALOG_COMPLETE, MCP_GET_CATALOG_ERROR, MCP_LIST_RESOURCES_COMPLETE, MCP_LIST_RESOURCES_ERROR, MCP_LIST_TOOLS_COMPLETE, MCP_LIST_TOOLS_ERROR, MCP_READ_RESOURCE_COMPLETE, MCP_READ_RESOURCE_ERROR, MCP_RUN_AUTH_COMPLETE, MCP_RUN_AUTH_ERROR, MCP_SERVER_STATUS_COMPLETE, MCP_SERVER_STATUS_ERROR, MCP_START_SERVER_COMPLETE, MCP_START_SERVER_ERROR, MCP_STOP_SERVER_COMPLETE, MCP_STOP_SERVER_ERROR, MENU_ITEMS_DELETE, MENU_ITEMS_DELETE_COMPLETE, MENU_ITEMS_DELETE_ERROR, MENU_ITEMS_LIST, MENU_ITEMS_LIST_COMPLETE, MENU_ITEMS_LIST_ERROR, MENU_ITEMS_SAVE, MENU_ITEMS_SAVE_COMPLETE, MENU_ITEMS_SAVE_ERROR, MainMenu, MainMenuItem, MainMenuSection, McpServerPicker, MenuItemModel, MenuSlideOverlay, MergeCellsModal, MissingProviderPrompt, MockDashboardApi, PROVIDER_DELETE_COMPLETE, PROVIDER_DELETE_ERROR, PROVIDER_GET_COMPLETE, PROVIDER_GET_ERROR, PROVIDER_LIST_COMPLETE, PROVIDER_LIST_ERROR, PROVIDER_SAVE_COMPLETE, PROVIDER_SAVE_ERROR, PanelCode, PanelEditItem, PanelEditItemHandlers, PanelEditItemNotifications, ProviderContext, ProviderErrorBoundary, ProviderForm, ProviderSelector, SECURE_STORAGE_ENCRYPT_STRING, SECURE_STORAGE_ENCRYPT_STRING_COMPLETE, SECURE_STORAGE_ENCRYPT_STRING_ERROR, SECURE_STORE_ENCRYPTION_CHECK, SECURE_STORE_ENCRYPTION_CHECK_COMPLETE, SECURE_STORE_ENCRYPTION_CHECK_ERROR, SECURE_STORE_GET_DATA, SECURE_STORE_GET_DATA_COMPLETE, SECURE_STORE_GET_DATA_ERROR, SECURE_STORE_SET_DATA, SECURE_STORE_SET_DATA_COMPLETE, SECURE_STORE_SET_DATA_ERROR, SETTINGS_GET, SETTINGS_GET_COMPLETE, SETTINGS_GET_ERROR, SETTINGS_SAVE, SETTINGS_SAVE_COMPLETE, SETTINGS_SAVE_ERROR, SIDEBAR_WIDGET_TYPE, SettingsModel, SideMenu, SplitCellModal, THEME_DELETE, THEME_DELETE_COMPLETE, THEME_DELETE_ERROR, THEME_EXTRACT_FROM_URL, THEME_EXTRACT_FROM_URL_COMPLETE, THEME_EXTRACT_FROM_URL_ERROR, THEME_LIST, THEME_LIST_COMPLETE, THEME_LIST_ERROR, THEME_MAP_PALETTE, THEME_MAP_PALETTE_COMPLETE, THEME_MAP_PALETTE_ERROR, THEME_SAVE, THEME_SAVE_COMPLETE, THEME_SAVE_ERROR, ThemeApi, ThemeColorDots, ThemeManagerModal, ThemeModel, ThemeWrapper, WORKSPACE_DELETE, WORKSPACE_DELETE_COMPLETE, WORKSPACE_DELETE_ERROR, WORKSPACE_LIST, WORKSPACE_LIST_COMPLETE, WORKSPACE_LIST_ERROR, WORKSPACE_SAVE, WORKSPACE_SAVE_COMPLETE, WORKSPACE_SAVE_ERROR, WebDashboardApi, Widget, WidgetApi, WidgetConfigPanel, WidgetContext, WidgetFactory, WidgetPopoutStage, WidgetProviderWrapper, WidgetSidebar, Workspace, WorkspaceContext, WorkspaceFooter, WorkspaceMenu, WorkspaceModel, addChildToLayoutItem, addItemToItemLayout, buildMcpConfigFromOverrides, canHaveChildren, changeDirectionForLayoutItem, createProviderRegistry, deriveFormFields, envMappingToRows, evaluateBundle, extractWidgetConfigs, formStateToMcpJson, formatFieldName, generateCustomTheme, generateHarmonyTheme, generateRandomTheme, generateThemeName, getBorderStyle, getChildrenForLayoutItem, getComponentInLayout, getContainerBorderColor, getContainerColor, getIndexOfLayoutChildrenForItem, getIndexOfLayoutItem, getLayoutItemById, getLayoutItemForWorkspace, getNearestParentWorkspace, getNextHighestId, getNextHighestItemInLayout, getNextHighestOrder, getNextHighestParentId, getNextLowestItemInLayout, getParentForLayoutItem, getParentWorkspaceForItem, getThemePresets, getUserConfigurableProviders, getWidgetsForWorkspace, getWorkspacesForWorkspace, headerTemplateToRows, isContainer, isLikelySecret, isMaxOrderForItem, isMinOrderForItem, isWidget, isWidgetResolvable, isWorkspace, layoutItemHasWorkspaceAsChild, loadWidgetBundle, mcpJsonToFormState, numChildrenForLayout, removeItemFromLayout, renderComponent, renderGridLayout, renderGridLayoutFlow, _renderLayout as renderLayout, renderLayoutMenu, replaceItemInLayout, resolveIcon, setHostModules, traverseParentTree, updateLayoutItem, updateParentForItem, useDashboard, useMcpDashServer, useMcpProvider, useNotifications, useProvider, useProviderClient, useScheduler, useWebSocketProvider, useWidgetEvents, useWidgetProviders, useWidgetSchedulerStatus, validateCellMerge, validateGridCell, validateGridPlacement, validateWidgetPlacement, withProviderDetection };
|
|
47464
47969
|
//# sourceMappingURL=index.esm.js.map
|