@trops/dash-core 0.1.247 → 0.1.250
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/index.esm.js +392 -175
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +392 -174
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -23114,6 +23114,395 @@ var ExternalWidget = function ExternalWidget(_ref) {
|
|
|
23114
23114
|
});
|
|
23115
23115
|
};
|
|
23116
23116
|
|
|
23117
|
+
var RegistryPackageDetail = function RegistryPackageDetail(_ref) {
|
|
23118
|
+
var widget = _ref.widget,
|
|
23119
|
+
onInstall = _ref.onInstall,
|
|
23120
|
+
_ref$isInstalling = _ref.isInstalling,
|
|
23121
|
+
isInstalling = _ref$isInstalling === void 0 ? false : _ref$isInstalling,
|
|
23122
|
+
_ref$installError = _ref.installError,
|
|
23123
|
+
installError = _ref$installError === void 0 ? null : _ref$installError,
|
|
23124
|
+
_ref$isInstalled = _ref.isInstalled,
|
|
23125
|
+
isInstalled = _ref$isInstalled === void 0 ? false : _ref$isInstalled;
|
|
23126
|
+
var _useContext = useContext(ThemeContext),
|
|
23127
|
+
currentTheme = _useContext.currentTheme;
|
|
23128
|
+
var panelStyles = getStylesForItem(themeObjects.PANEL, currentTheme, {
|
|
23129
|
+
grow: false
|
|
23130
|
+
});
|
|
23131
|
+
if (!widget) return null;
|
|
23132
|
+
return /*#__PURE__*/jsxs("div", {
|
|
23133
|
+
className: "flex flex-col flex-1 min-h-0",
|
|
23134
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
23135
|
+
className: "flex-1 min-h-0 overflow-y-auto p-6 space-y-6 ".concat(panelStyles.textColor || "text-gray-200"),
|
|
23136
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
23137
|
+
className: "flex flex-row items-center gap-3",
|
|
23138
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
23139
|
+
className: "h-5 w-5 flex-shrink-0 flex items-center justify-center",
|
|
23140
|
+
children: /*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
23141
|
+
icon: widget.icon || "cube",
|
|
23142
|
+
className: "h-5 w-5"
|
|
23143
|
+
})
|
|
23144
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
23145
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
23146
|
+
className: "flex items-center gap-2",
|
|
23147
|
+
children: [/*#__PURE__*/jsx(SubHeading3, {
|
|
23148
|
+
title: widget.packageDisplayName,
|
|
23149
|
+
padding: false
|
|
23150
|
+
}), isInstalled && /*#__PURE__*/jsx("span", {
|
|
23151
|
+
className: "text-[10px] px-1.5 py-0.5 rounded bg-emerald-500/20 text-emerald-400 flex-shrink-0",
|
|
23152
|
+
children: "Installed"
|
|
23153
|
+
})]
|
|
23154
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
23155
|
+
className: "flex items-center gap-2 mt-0.5",
|
|
23156
|
+
children: [/*#__PURE__*/jsxs("span", {
|
|
23157
|
+
className: "text-sm opacity-60",
|
|
23158
|
+
children: ["by ", widget.packageAuthor || "Unknown"]
|
|
23159
|
+
}), /*#__PURE__*/jsxs("span", {
|
|
23160
|
+
className: "text-xs px-2 py-0.5 rounded ".concat(currentTheme["bg-primary-medium"], " opacity-70"),
|
|
23161
|
+
children: ["v", widget.packageVersion]
|
|
23162
|
+
})]
|
|
23163
|
+
})]
|
|
23164
|
+
})]
|
|
23165
|
+
}), /*#__PURE__*/jsx("hr", {
|
|
23166
|
+
className: currentTheme["border-primary-medium"]
|
|
23167
|
+
}), widget.packageDescription && /*#__PURE__*/jsx("p", {
|
|
23168
|
+
className: "text-sm",
|
|
23169
|
+
children: widget.packageDescription
|
|
23170
|
+
}), widget.packageTags && widget.packageTags.length > 0 && /*#__PURE__*/jsx("div", {
|
|
23171
|
+
className: "flex flex-wrap gap-1",
|
|
23172
|
+
children: widget.packageTags.map(function (tag) {
|
|
23173
|
+
return /*#__PURE__*/jsx("span", {
|
|
23174
|
+
className: "text-xs px-2 py-0.5 rounded ".concat(currentTheme["bg-primary-medium"], " opacity-60"),
|
|
23175
|
+
children: tag
|
|
23176
|
+
}, tag);
|
|
23177
|
+
})
|
|
23178
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
23179
|
+
children: [/*#__PURE__*/jsx("span", {
|
|
23180
|
+
className: "text-xs font-semibold opacity-50 mb-1 block",
|
|
23181
|
+
children: "INCLUDED WIDGETS"
|
|
23182
|
+
}), /*#__PURE__*/jsx("div", {
|
|
23183
|
+
className: "space-y-1.5",
|
|
23184
|
+
children: (widget.packageWidgets || []).map(function (w, idx) {
|
|
23185
|
+
return /*#__PURE__*/jsxs("div", {
|
|
23186
|
+
className: "p-2 rounded ".concat(currentTheme["bg-primary-medium"]),
|
|
23187
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
23188
|
+
className: "text-sm font-medium",
|
|
23189
|
+
children: w.displayName || w.name
|
|
23190
|
+
}), w.description && /*#__PURE__*/jsx("div", {
|
|
23191
|
+
className: "text-xs opacity-50 mt-0.5",
|
|
23192
|
+
children: w.description
|
|
23193
|
+
}), getUserConfigurableProviders(w.providers).length > 0 && /*#__PURE__*/jsxs("div", {
|
|
23194
|
+
className: "space-y-1 mt-1",
|
|
23195
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
23196
|
+
className: "flex gap-1 flex-wrap",
|
|
23197
|
+
children: getUserConfigurableProviders(w.providers).map(function (p, pidx) {
|
|
23198
|
+
return /*#__PURE__*/jsxs("span", {
|
|
23199
|
+
className: "text-xs px-1.5 py-0.5 rounded bg-blue-900/30 text-blue-400",
|
|
23200
|
+
children: [p.type, p.required ? " *" : ""]
|
|
23201
|
+
}, pidx);
|
|
23202
|
+
})
|
|
23203
|
+
}), getUserConfigurableProviders(w.providers).some(function (p) {
|
|
23204
|
+
var _p$requiredTools;
|
|
23205
|
+
return ((_p$requiredTools = p.requiredTools) === null || _p$requiredTools === void 0 ? void 0 : _p$requiredTools.length) > 0;
|
|
23206
|
+
}) && /*#__PURE__*/jsx("div", {
|
|
23207
|
+
className: "flex flex-wrap gap-1 ml-1",
|
|
23208
|
+
children: getUserConfigurableProviders(w.providers).filter(function (p) {
|
|
23209
|
+
var _p$requiredTools2;
|
|
23210
|
+
return ((_p$requiredTools2 = p.requiredTools) === null || _p$requiredTools2 === void 0 ? void 0 : _p$requiredTools2.length) > 0;
|
|
23211
|
+
}).flatMap(function (p) {
|
|
23212
|
+
return p.requiredTools.map(function (tool) {
|
|
23213
|
+
return /*#__PURE__*/jsx("span", {
|
|
23214
|
+
className: "text-[10px] font-mono px-1.5 py-0.5 rounded bg-white/5 opacity-60",
|
|
23215
|
+
children: tool
|
|
23216
|
+
}, "".concat(p.type, "-").concat(tool));
|
|
23217
|
+
});
|
|
23218
|
+
})
|
|
23219
|
+
})]
|
|
23220
|
+
})]
|
|
23221
|
+
}, idx);
|
|
23222
|
+
})
|
|
23223
|
+
})]
|
|
23224
|
+
}), widget.appOrigin && /*#__PURE__*/jsxs("div", {
|
|
23225
|
+
className: "flex items-center gap-1.5 text-xs opacity-50",
|
|
23226
|
+
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
23227
|
+
icon: "laptop",
|
|
23228
|
+
className: "h-3 w-3"
|
|
23229
|
+
}), /*#__PURE__*/jsxs("span", {
|
|
23230
|
+
children: ["Built for ", widget.appOrigin]
|
|
23231
|
+
})]
|
|
23232
|
+
}), widget.missingApis && widget.missingApis.length > 0 && /*#__PURE__*/jsx("div", {
|
|
23233
|
+
className: "p-2 rounded bg-yellow-900/30 border border-yellow-700",
|
|
23234
|
+
children: /*#__PURE__*/jsxs("p", {
|
|
23235
|
+
className: "text-xs text-yellow-400",
|
|
23236
|
+
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
23237
|
+
icon: "triangle-exclamation",
|
|
23238
|
+
className: "mr-1"
|
|
23239
|
+
}), "Incompatible \u2014 requires ", widget.missingApis.join(", "), " API", widget.missingApis.length !== 1 ? "s" : ""]
|
|
23240
|
+
})
|
|
23241
|
+
}), widget.repository && /*#__PURE__*/jsxs("div", {
|
|
23242
|
+
children: [/*#__PURE__*/jsx("span", {
|
|
23243
|
+
className: "text-xs font-semibold opacity-50 mb-1 block",
|
|
23244
|
+
children: "REPOSITORY"
|
|
23245
|
+
}), /*#__PURE__*/jsx("button", {
|
|
23246
|
+
type: "button",
|
|
23247
|
+
onClick: function onClick() {
|
|
23248
|
+
var _window$mainApi;
|
|
23249
|
+
return (_window$mainApi = window.mainApi) === null || _window$mainApi === void 0 || (_window$mainApi = _window$mainApi.shell) === null || _window$mainApi === void 0 ? void 0 : _window$mainApi.openExternal(widget.repository);
|
|
23250
|
+
},
|
|
23251
|
+
className: "text-sm text-blue-400 hover:text-blue-300 hover:underline transition-colors break-all text-left",
|
|
23252
|
+
children: widget.repository
|
|
23253
|
+
})]
|
|
23254
|
+
}), installError && /*#__PURE__*/jsx("div", {
|
|
23255
|
+
className: "p-2 rounded bg-red-900/30 border border-red-700",
|
|
23256
|
+
children: /*#__PURE__*/jsx("p", {
|
|
23257
|
+
className: "text-xs text-red-400",
|
|
23258
|
+
children: installError
|
|
23259
|
+
})
|
|
23260
|
+
})]
|
|
23261
|
+
}), /*#__PURE__*/jsx("div", {
|
|
23262
|
+
className: "flex items-center justify-end px-6 py-3 border-t ".concat(currentTheme["border-primary-medium"]),
|
|
23263
|
+
children: /*#__PURE__*/jsx(Button, {
|
|
23264
|
+
title: isInstalled ? "Installed" : isInstalling ? "Installing..." : "Install Package",
|
|
23265
|
+
bgColor: isInstalled ? "bg-emerald-600/50" : "bg-blue-600",
|
|
23266
|
+
hoverBackgroundColor: isInstalled || isInstalling ? "" : "hover:bg-blue-700",
|
|
23267
|
+
textSize: "text-sm",
|
|
23268
|
+
padding: "py-1.5 px-4",
|
|
23269
|
+
onClick: onInstall,
|
|
23270
|
+
disabled: isInstalling || isInstalled
|
|
23271
|
+
})
|
|
23272
|
+
})]
|
|
23273
|
+
});
|
|
23274
|
+
};
|
|
23275
|
+
|
|
23276
|
+
function getWidgetSearchQuery(componentKey) {
|
|
23277
|
+
var parts = componentKey.split(".");
|
|
23278
|
+
if (parts.length >= 3) {
|
|
23279
|
+
return {
|
|
23280
|
+
packageName: parts[1],
|
|
23281
|
+
widgetName: parts[2],
|
|
23282
|
+
scope: parts[0]
|
|
23283
|
+
};
|
|
23284
|
+
}
|
|
23285
|
+
return {
|
|
23286
|
+
packageName: null,
|
|
23287
|
+
widgetName: componentKey,
|
|
23288
|
+
scope: null
|
|
23289
|
+
};
|
|
23290
|
+
}
|
|
23291
|
+
|
|
23292
|
+
/**
|
|
23293
|
+
* Convert a raw registry package object into the flat widget shape
|
|
23294
|
+
* expected by RegistryPackageDetail.
|
|
23295
|
+
*/
|
|
23296
|
+
function packageToFlatWidget(pkg) {
|
|
23297
|
+
return {
|
|
23298
|
+
key: "".concat(pkg.name, "/0"),
|
|
23299
|
+
name: pkg.displayName || pkg.name,
|
|
23300
|
+
icon: pkg.icon || null,
|
|
23301
|
+
isRegistry: true,
|
|
23302
|
+
packageName: pkg.name,
|
|
23303
|
+
packageScope: pkg.scope || null,
|
|
23304
|
+
packageDisplayName: pkg.displayName || pkg.name,
|
|
23305
|
+
packageVersion: pkg.version,
|
|
23306
|
+
packageAuthor: pkg.author || "",
|
|
23307
|
+
packageDescription: pkg.description || "",
|
|
23308
|
+
packageTags: pkg.tags || [],
|
|
23309
|
+
packageCategory: pkg.category || "",
|
|
23310
|
+
downloadUrl: pkg.downloadUrl || "",
|
|
23311
|
+
repository: pkg.repository || "",
|
|
23312
|
+
publishedAt: pkg.publishedAt || "",
|
|
23313
|
+
packageWidgets: pkg.widgets || [],
|
|
23314
|
+
appOrigin: pkg.appOrigin || null,
|
|
23315
|
+
packageProviders: pkg.providers || [],
|
|
23316
|
+
missingApis: []
|
|
23317
|
+
};
|
|
23318
|
+
}
|
|
23319
|
+
|
|
23320
|
+
/**
|
|
23321
|
+
* WidgetNotFound — rendered in place of an unresolvable widget.
|
|
23322
|
+
*
|
|
23323
|
+
* Shows the existing "Widget Not Found" error display and adds a
|
|
23324
|
+
* "Find in Registry" button that does an exact registry lookup and
|
|
23325
|
+
* opens an install modal.
|
|
23326
|
+
*/
|
|
23327
|
+
var WidgetNotFound = function WidgetNotFound(_ref) {
|
|
23328
|
+
var component = _ref.component;
|
|
23329
|
+
var _useState = useState(false),
|
|
23330
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
23331
|
+
showModal = _useState2[0],
|
|
23332
|
+
setShowModal = _useState2[1];
|
|
23333
|
+
var _useState3 = useState(null),
|
|
23334
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
23335
|
+
registryWidget = _useState4[0],
|
|
23336
|
+
setRegistryWidget = _useState4[1];
|
|
23337
|
+
var _useState5 = useState(false),
|
|
23338
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
23339
|
+
isLoading = _useState6[0],
|
|
23340
|
+
setIsLoading = _useState6[1];
|
|
23341
|
+
var _useState7 = useState(false),
|
|
23342
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
23343
|
+
notFound = _useState8[0],
|
|
23344
|
+
setNotFound = _useState8[1];
|
|
23345
|
+
var _useState9 = useState(false),
|
|
23346
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
23347
|
+
isInstalling = _useState0[0],
|
|
23348
|
+
setIsInstalling = _useState0[1];
|
|
23349
|
+
var _useState1 = useState(null),
|
|
23350
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
23351
|
+
installError = _useState10[0],
|
|
23352
|
+
setInstallError = _useState10[1];
|
|
23353
|
+
var lookupWidget = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
23354
|
+
var _getWidgetSearchQuery, packageName, widgetName, pkg, result;
|
|
23355
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
23356
|
+
while (1) switch (_context.prev = _context.next) {
|
|
23357
|
+
case 0:
|
|
23358
|
+
setShowModal(true);
|
|
23359
|
+
setIsLoading(true);
|
|
23360
|
+
setNotFound(false);
|
|
23361
|
+
setRegistryWidget(null);
|
|
23362
|
+
setInstallError(null);
|
|
23363
|
+
_getWidgetSearchQuery = getWidgetSearchQuery(component), packageName = _getWidgetSearchQuery.packageName, widgetName = _getWidgetSearchQuery.widgetName;
|
|
23364
|
+
_context.prev = 1;
|
|
23365
|
+
pkg = null; // Scoped ID — exact package lookup
|
|
23366
|
+
if (!packageName) {
|
|
23367
|
+
_context.next = 3;
|
|
23368
|
+
break;
|
|
23369
|
+
}
|
|
23370
|
+
_context.next = 2;
|
|
23371
|
+
return window.mainApi.registry.getPackage(packageName);
|
|
23372
|
+
case 2:
|
|
23373
|
+
pkg = _context.sent;
|
|
23374
|
+
case 3:
|
|
23375
|
+
if (pkg) {
|
|
23376
|
+
_context.next = 5;
|
|
23377
|
+
break;
|
|
23378
|
+
}
|
|
23379
|
+
_context.next = 4;
|
|
23380
|
+
return window.mainApi.registry.search(widgetName);
|
|
23381
|
+
case 4:
|
|
23382
|
+
result = _context.sent;
|
|
23383
|
+
pkg = (result.packages || []).find(function (p) {
|
|
23384
|
+
return (p.widgets || []).some(function (w) {
|
|
23385
|
+
return w.name === widgetName;
|
|
23386
|
+
});
|
|
23387
|
+
});
|
|
23388
|
+
case 5:
|
|
23389
|
+
if (pkg) {
|
|
23390
|
+
setRegistryWidget(packageToFlatWidget(pkg));
|
|
23391
|
+
} else {
|
|
23392
|
+
setNotFound(true);
|
|
23393
|
+
}
|
|
23394
|
+
_context.next = 7;
|
|
23395
|
+
break;
|
|
23396
|
+
case 6:
|
|
23397
|
+
_context.prev = 6;
|
|
23398
|
+
_context["catch"](1);
|
|
23399
|
+
setNotFound(true);
|
|
23400
|
+
case 7:
|
|
23401
|
+
setIsLoading(false);
|
|
23402
|
+
case 8:
|
|
23403
|
+
case "end":
|
|
23404
|
+
return _context.stop();
|
|
23405
|
+
}
|
|
23406
|
+
}, _callee, null, [[1, 6]]);
|
|
23407
|
+
})), [component]);
|
|
23408
|
+
var handleInstall = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
23409
|
+
var packageName, packageScope, downloadUrl, packageVersion, scopedId, resolvedUrl, _t2;
|
|
23410
|
+
return _regeneratorRuntime.wrap(function (_context2) {
|
|
23411
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
23412
|
+
case 0:
|
|
23413
|
+
if (registryWidget) {
|
|
23414
|
+
_context2.next = 1;
|
|
23415
|
+
break;
|
|
23416
|
+
}
|
|
23417
|
+
return _context2.abrupt("return");
|
|
23418
|
+
case 1:
|
|
23419
|
+
setIsInstalling(true);
|
|
23420
|
+
setInstallError(null);
|
|
23421
|
+
_context2.prev = 2;
|
|
23422
|
+
packageName = registryWidget.packageName, packageScope = registryWidget.packageScope, downloadUrl = registryWidget.downloadUrl, packageVersion = registryWidget.packageVersion;
|
|
23423
|
+
scopedId = packageScope ? "@".concat(packageScope.replace(/^@/, ""), "/").concat(packageName) : packageName;
|
|
23424
|
+
resolvedUrl = downloadUrl.replace(/\{version\}/g, packageVersion).replace(/\{name\}/g, packageName);
|
|
23425
|
+
_context2.next = 3;
|
|
23426
|
+
return window.mainApi.widgets.install(scopedId, resolvedUrl);
|
|
23427
|
+
case 3:
|
|
23428
|
+
setShowModal(false);
|
|
23429
|
+
_context2.next = 5;
|
|
23430
|
+
break;
|
|
23431
|
+
case 4:
|
|
23432
|
+
_context2.prev = 4;
|
|
23433
|
+
_t2 = _context2["catch"](2);
|
|
23434
|
+
setInstallError(_t2.message || "Failed to install package");
|
|
23435
|
+
case 5:
|
|
23436
|
+
setIsInstalling(false);
|
|
23437
|
+
case 6:
|
|
23438
|
+
case "end":
|
|
23439
|
+
return _context2.stop();
|
|
23440
|
+
}
|
|
23441
|
+
}, _callee2, null, [[2, 4]]);
|
|
23442
|
+
})), [registryWidget]);
|
|
23443
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
23444
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
23445
|
+
className: "flex flex-col h-full justify-center items-center w-full z-10 gap-2 p-4 text-center",
|
|
23446
|
+
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
23447
|
+
icon: "triangle-exclamation",
|
|
23448
|
+
className: "h-6 w-6 text-amber-500"
|
|
23449
|
+
}), /*#__PURE__*/jsx("div", {
|
|
23450
|
+
className: "text-sm font-semibold text-gray-300",
|
|
23451
|
+
children: "Widget Not Found"
|
|
23452
|
+
}), /*#__PURE__*/jsx("div", {
|
|
23453
|
+
className: "text-xs text-gray-500 font-mono",
|
|
23454
|
+
children: component
|
|
23455
|
+
}), /*#__PURE__*/jsx("div", {
|
|
23456
|
+
className: "text-xs text-gray-600 mt-1",
|
|
23457
|
+
children: "This widget may have been uninstalled or renamed."
|
|
23458
|
+
}), /*#__PURE__*/jsxs("button", {
|
|
23459
|
+
type: "button",
|
|
23460
|
+
className: "flex items-center gap-1.5 text-xs text-blue-400 hover:text-blue-300 transition-colors mt-2",
|
|
23461
|
+
onClick: lookupWidget,
|
|
23462
|
+
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
23463
|
+
icon: "magnifying-glass",
|
|
23464
|
+
className: "h-3 w-3"
|
|
23465
|
+
}), "Find in Registry"]
|
|
23466
|
+
})]
|
|
23467
|
+
}), /*#__PURE__*/jsxs(Modal, {
|
|
23468
|
+
isOpen: showModal,
|
|
23469
|
+
setIsOpen: setShowModal,
|
|
23470
|
+
width: "w-1/3",
|
|
23471
|
+
height: "auto",
|
|
23472
|
+
children: [isLoading && /*#__PURE__*/jsx("div", {
|
|
23473
|
+
className: "flex items-center justify-center p-12",
|
|
23474
|
+
children: /*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
23475
|
+
icon: "spinner",
|
|
23476
|
+
className: "h-5 w-5 text-gray-400 animate-spin"
|
|
23477
|
+
})
|
|
23478
|
+
}), !isLoading && registryWidget && /*#__PURE__*/jsx(RegistryPackageDetail, {
|
|
23479
|
+
widget: registryWidget,
|
|
23480
|
+
onInstall: handleInstall,
|
|
23481
|
+
isInstalling: isInstalling,
|
|
23482
|
+
installError: installError
|
|
23483
|
+
}), !isLoading && notFound && /*#__PURE__*/jsxs("div", {
|
|
23484
|
+
className: "flex flex-col items-center justify-center gap-3 p-12 text-center",
|
|
23485
|
+
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
23486
|
+
icon: "triangle-exclamation",
|
|
23487
|
+
className: "h-6 w-6 text-amber-500"
|
|
23488
|
+
}), /*#__PURE__*/jsx("div", {
|
|
23489
|
+
className: "text-sm text-gray-400",
|
|
23490
|
+
children: "This widget is not available in the registry."
|
|
23491
|
+
}), /*#__PURE__*/jsx(Button, {
|
|
23492
|
+
title: "Close",
|
|
23493
|
+
bgColor: "bg-gray-600",
|
|
23494
|
+
hoverBackgroundColor: "hover:bg-gray-700",
|
|
23495
|
+
textSize: "text-sm",
|
|
23496
|
+
padding: "py-1.5 px-4",
|
|
23497
|
+
onClick: function onClick() {
|
|
23498
|
+
return setShowModal(false);
|
|
23499
|
+
}
|
|
23500
|
+
})]
|
|
23501
|
+
})]
|
|
23502
|
+
})]
|
|
23503
|
+
});
|
|
23504
|
+
};
|
|
23505
|
+
|
|
23117
23506
|
var GRID_CELL_WIDGET_TYPE = "grid-cell-widget";
|
|
23118
23507
|
var SIDEBAR_WIDGET_TYPE = "sidebar-widget";
|
|
23119
23508
|
|
|
@@ -25138,21 +25527,8 @@ function renderComponent(component, id) {
|
|
|
25138
25527
|
// WidgetFactory.render() always returns a React element (truthy),
|
|
25139
25528
|
// so the old ternary fallback could never fire.
|
|
25140
25529
|
if (!isWidgetResolvable(component)) {
|
|
25141
|
-
return /*#__PURE__*/
|
|
25142
|
-
|
|
25143
|
-
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
25144
|
-
icon: "triangle-exclamation",
|
|
25145
|
-
className: "h-6 w-6 text-amber-500"
|
|
25146
|
-
}), /*#__PURE__*/jsx("div", {
|
|
25147
|
-
className: "text-sm font-semibold text-gray-300",
|
|
25148
|
-
children: "Widget Not Found"
|
|
25149
|
-
}), /*#__PURE__*/jsx("div", {
|
|
25150
|
-
className: "text-xs text-gray-500 font-mono",
|
|
25151
|
-
children: component
|
|
25152
|
-
}), /*#__PURE__*/jsx("div", {
|
|
25153
|
-
className: "text-xs text-gray-600 mt-1",
|
|
25154
|
-
children: "This widget may have been uninstalled or renamed."
|
|
25155
|
-
})]
|
|
25530
|
+
return /*#__PURE__*/jsx(WidgetNotFound, {
|
|
25531
|
+
component: component
|
|
25156
25532
|
});
|
|
25157
25533
|
}
|
|
25158
25534
|
if ("height" in params) {
|
|
@@ -43910,165 +44286,6 @@ var InstallWidgetPicker = function InstallWidgetPicker(_ref2) {
|
|
|
43910
44286
|
});
|
|
43911
44287
|
};
|
|
43912
44288
|
|
|
43913
|
-
var RegistryPackageDetail = function RegistryPackageDetail(_ref) {
|
|
43914
|
-
var widget = _ref.widget,
|
|
43915
|
-
onInstall = _ref.onInstall,
|
|
43916
|
-
_ref$isInstalling = _ref.isInstalling,
|
|
43917
|
-
isInstalling = _ref$isInstalling === void 0 ? false : _ref$isInstalling,
|
|
43918
|
-
_ref$installError = _ref.installError,
|
|
43919
|
-
installError = _ref$installError === void 0 ? null : _ref$installError,
|
|
43920
|
-
_ref$isInstalled = _ref.isInstalled,
|
|
43921
|
-
isInstalled = _ref$isInstalled === void 0 ? false : _ref$isInstalled;
|
|
43922
|
-
var _useContext = useContext(ThemeContext),
|
|
43923
|
-
currentTheme = _useContext.currentTheme;
|
|
43924
|
-
var panelStyles = getStylesForItem(themeObjects.PANEL, currentTheme, {
|
|
43925
|
-
grow: false
|
|
43926
|
-
});
|
|
43927
|
-
if (!widget) return null;
|
|
43928
|
-
return /*#__PURE__*/jsxs("div", {
|
|
43929
|
-
className: "flex flex-col flex-1 min-h-0",
|
|
43930
|
-
children: [/*#__PURE__*/jsxs("div", {
|
|
43931
|
-
className: "flex-1 min-h-0 overflow-y-auto p-6 space-y-6 ".concat(panelStyles.textColor || "text-gray-200"),
|
|
43932
|
-
children: [/*#__PURE__*/jsxs("div", {
|
|
43933
|
-
className: "flex flex-row items-center gap-3",
|
|
43934
|
-
children: [/*#__PURE__*/jsx("div", {
|
|
43935
|
-
className: "h-5 w-5 flex-shrink-0 flex items-center justify-center",
|
|
43936
|
-
children: /*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
43937
|
-
icon: widget.icon || "cube",
|
|
43938
|
-
className: "h-5 w-5"
|
|
43939
|
-
})
|
|
43940
|
-
}), /*#__PURE__*/jsxs("div", {
|
|
43941
|
-
children: [/*#__PURE__*/jsxs("div", {
|
|
43942
|
-
className: "flex items-center gap-2",
|
|
43943
|
-
children: [/*#__PURE__*/jsx(SubHeading3, {
|
|
43944
|
-
title: widget.packageDisplayName,
|
|
43945
|
-
padding: false
|
|
43946
|
-
}), isInstalled && /*#__PURE__*/jsx("span", {
|
|
43947
|
-
className: "text-[10px] px-1.5 py-0.5 rounded bg-emerald-500/20 text-emerald-400 flex-shrink-0",
|
|
43948
|
-
children: "Installed"
|
|
43949
|
-
})]
|
|
43950
|
-
}), /*#__PURE__*/jsxs("div", {
|
|
43951
|
-
className: "flex items-center gap-2 mt-0.5",
|
|
43952
|
-
children: [/*#__PURE__*/jsxs("span", {
|
|
43953
|
-
className: "text-sm opacity-60",
|
|
43954
|
-
children: ["by ", widget.packageAuthor || "Unknown"]
|
|
43955
|
-
}), /*#__PURE__*/jsxs("span", {
|
|
43956
|
-
className: "text-xs px-2 py-0.5 rounded ".concat(currentTheme["bg-primary-medium"], " opacity-70"),
|
|
43957
|
-
children: ["v", widget.packageVersion]
|
|
43958
|
-
})]
|
|
43959
|
-
})]
|
|
43960
|
-
})]
|
|
43961
|
-
}), /*#__PURE__*/jsx("hr", {
|
|
43962
|
-
className: currentTheme["border-primary-medium"]
|
|
43963
|
-
}), widget.packageDescription && /*#__PURE__*/jsx("p", {
|
|
43964
|
-
className: "text-sm",
|
|
43965
|
-
children: widget.packageDescription
|
|
43966
|
-
}), widget.packageTags && widget.packageTags.length > 0 && /*#__PURE__*/jsx("div", {
|
|
43967
|
-
className: "flex flex-wrap gap-1",
|
|
43968
|
-
children: widget.packageTags.map(function (tag) {
|
|
43969
|
-
return /*#__PURE__*/jsx("span", {
|
|
43970
|
-
className: "text-xs px-2 py-0.5 rounded ".concat(currentTheme["bg-primary-medium"], " opacity-60"),
|
|
43971
|
-
children: tag
|
|
43972
|
-
}, tag);
|
|
43973
|
-
})
|
|
43974
|
-
}), /*#__PURE__*/jsxs("div", {
|
|
43975
|
-
children: [/*#__PURE__*/jsx("span", {
|
|
43976
|
-
className: "text-xs font-semibold opacity-50 mb-1 block",
|
|
43977
|
-
children: "INCLUDED WIDGETS"
|
|
43978
|
-
}), /*#__PURE__*/jsx("div", {
|
|
43979
|
-
className: "space-y-1.5",
|
|
43980
|
-
children: (widget.packageWidgets || []).map(function (w, idx) {
|
|
43981
|
-
return /*#__PURE__*/jsxs("div", {
|
|
43982
|
-
className: "p-2 rounded ".concat(currentTheme["bg-primary-medium"]),
|
|
43983
|
-
children: [/*#__PURE__*/jsx("div", {
|
|
43984
|
-
className: "text-sm font-medium",
|
|
43985
|
-
children: w.displayName || w.name
|
|
43986
|
-
}), w.description && /*#__PURE__*/jsx("div", {
|
|
43987
|
-
className: "text-xs opacity-50 mt-0.5",
|
|
43988
|
-
children: w.description
|
|
43989
|
-
}), getUserConfigurableProviders(w.providers).length > 0 && /*#__PURE__*/jsxs("div", {
|
|
43990
|
-
className: "space-y-1 mt-1",
|
|
43991
|
-
children: [/*#__PURE__*/jsx("div", {
|
|
43992
|
-
className: "flex gap-1 flex-wrap",
|
|
43993
|
-
children: getUserConfigurableProviders(w.providers).map(function (p, pidx) {
|
|
43994
|
-
return /*#__PURE__*/jsxs("span", {
|
|
43995
|
-
className: "text-xs px-1.5 py-0.5 rounded bg-blue-900/30 text-blue-400",
|
|
43996
|
-
children: [p.type, p.required ? " *" : ""]
|
|
43997
|
-
}, pidx);
|
|
43998
|
-
})
|
|
43999
|
-
}), getUserConfigurableProviders(w.providers).some(function (p) {
|
|
44000
|
-
var _p$requiredTools;
|
|
44001
|
-
return ((_p$requiredTools = p.requiredTools) === null || _p$requiredTools === void 0 ? void 0 : _p$requiredTools.length) > 0;
|
|
44002
|
-
}) && /*#__PURE__*/jsx("div", {
|
|
44003
|
-
className: "flex flex-wrap gap-1 ml-1",
|
|
44004
|
-
children: getUserConfigurableProviders(w.providers).filter(function (p) {
|
|
44005
|
-
var _p$requiredTools2;
|
|
44006
|
-
return ((_p$requiredTools2 = p.requiredTools) === null || _p$requiredTools2 === void 0 ? void 0 : _p$requiredTools2.length) > 0;
|
|
44007
|
-
}).flatMap(function (p) {
|
|
44008
|
-
return p.requiredTools.map(function (tool) {
|
|
44009
|
-
return /*#__PURE__*/jsx("span", {
|
|
44010
|
-
className: "text-[10px] font-mono px-1.5 py-0.5 rounded bg-white/5 opacity-60",
|
|
44011
|
-
children: tool
|
|
44012
|
-
}, "".concat(p.type, "-").concat(tool));
|
|
44013
|
-
});
|
|
44014
|
-
})
|
|
44015
|
-
})]
|
|
44016
|
-
})]
|
|
44017
|
-
}, idx);
|
|
44018
|
-
})
|
|
44019
|
-
})]
|
|
44020
|
-
}), widget.appOrigin && /*#__PURE__*/jsxs("div", {
|
|
44021
|
-
className: "flex items-center gap-1.5 text-xs opacity-50",
|
|
44022
|
-
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
44023
|
-
icon: "laptop",
|
|
44024
|
-
className: "h-3 w-3"
|
|
44025
|
-
}), /*#__PURE__*/jsxs("span", {
|
|
44026
|
-
children: ["Built for ", widget.appOrigin]
|
|
44027
|
-
})]
|
|
44028
|
-
}), widget.missingApis && widget.missingApis.length > 0 && /*#__PURE__*/jsx("div", {
|
|
44029
|
-
className: "p-2 rounded bg-yellow-900/30 border border-yellow-700",
|
|
44030
|
-
children: /*#__PURE__*/jsxs("p", {
|
|
44031
|
-
className: "text-xs text-yellow-400",
|
|
44032
|
-
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
44033
|
-
icon: "triangle-exclamation",
|
|
44034
|
-
className: "mr-1"
|
|
44035
|
-
}), "Incompatible \u2014 requires ", widget.missingApis.join(", "), " API", widget.missingApis.length !== 1 ? "s" : ""]
|
|
44036
|
-
})
|
|
44037
|
-
}), widget.repository && /*#__PURE__*/jsxs("div", {
|
|
44038
|
-
children: [/*#__PURE__*/jsx("span", {
|
|
44039
|
-
className: "text-xs font-semibold opacity-50 mb-1 block",
|
|
44040
|
-
children: "REPOSITORY"
|
|
44041
|
-
}), /*#__PURE__*/jsx("button", {
|
|
44042
|
-
type: "button",
|
|
44043
|
-
onClick: function onClick() {
|
|
44044
|
-
var _window$mainApi;
|
|
44045
|
-
return (_window$mainApi = window.mainApi) === null || _window$mainApi === void 0 || (_window$mainApi = _window$mainApi.shell) === null || _window$mainApi === void 0 ? void 0 : _window$mainApi.openExternal(widget.repository);
|
|
44046
|
-
},
|
|
44047
|
-
className: "text-sm text-blue-400 hover:text-blue-300 hover:underline transition-colors break-all text-left",
|
|
44048
|
-
children: widget.repository
|
|
44049
|
-
})]
|
|
44050
|
-
}), installError && /*#__PURE__*/jsx("div", {
|
|
44051
|
-
className: "p-2 rounded bg-red-900/30 border border-red-700",
|
|
44052
|
-
children: /*#__PURE__*/jsx("p", {
|
|
44053
|
-
className: "text-xs text-red-400",
|
|
44054
|
-
children: installError
|
|
44055
|
-
})
|
|
44056
|
-
})]
|
|
44057
|
-
}), /*#__PURE__*/jsx("div", {
|
|
44058
|
-
className: "flex items-center justify-end px-6 py-3 border-t ".concat(currentTheme["border-primary-medium"]),
|
|
44059
|
-
children: /*#__PURE__*/jsx(Button, {
|
|
44060
|
-
title: isInstalled ? "Installed" : isInstalling ? "Installing..." : "Install Package",
|
|
44061
|
-
bgColor: isInstalled ? "bg-emerald-600/50" : "bg-blue-600",
|
|
44062
|
-
hoverBackgroundColor: isInstalled || isInstalling ? "" : "hover:bg-blue-700",
|
|
44063
|
-
textSize: "text-sm",
|
|
44064
|
-
padding: "py-1.5 px-4",
|
|
44065
|
-
onClick: onInstall,
|
|
44066
|
-
disabled: isInstalling || isInstalled
|
|
44067
|
-
})
|
|
44068
|
-
})]
|
|
44069
|
-
});
|
|
44070
|
-
};
|
|
44071
|
-
|
|
44072
44289
|
function _createForOfIteratorHelper$2(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$2(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
44073
44290
|
function _unsupportedIterableToArray$2(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$2(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$2(r, a) : void 0; } }
|
|
44074
44291
|
function _arrayLikeToArray$2(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
@@ -50782,5 +50999,5 @@ var WorkspaceMenu = function WorkspaceMenu(_ref) {
|
|
|
50782
50999
|
|
|
50783
51000
|
ComponentManager.registerContainerTypes(LayoutContainer, LayoutGridContainer);
|
|
50784
51001
|
|
|
50785
|
-
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, DashboardWizardModal, 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, WELCOME_STORAGE_KEY, 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, WelcomePrompt, Widget, WidgetApi, WidgetConfigPanel, WidgetContext, WidgetFactory, WidgetPopoutStage, WidgetProviderWrapper, WidgetSidebar, WizardCustomizeStep, WizardDiscoverStep, 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, useWizardState, validateCellMerge, validateGridCell, validateGridPlacement, validateWidgetPlacement, widgetCountToTemplate, withProviderDetection };
|
|
51002
|
+
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, DashboardWizardModal, 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, WELCOME_STORAGE_KEY, 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, WelcomePrompt, Widget, WidgetApi, WidgetConfigPanel, WidgetContext, WidgetFactory, WidgetNotFound, WidgetPopoutStage, WidgetProviderWrapper, WidgetSidebar, WizardCustomizeStep, WizardDiscoverStep, 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, useWizardState, validateCellMerge, validateGridCell, validateGridPlacement, validateWidgetPlacement, widgetCountToTemplate, withProviderDetection };
|
|
50786
51003
|
//# sourceMappingURL=index.esm.js.map
|