@trops/dash-core 0.1.138 → 0.1.140
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 +20368 -19
- package/dist/electron/index.js.map +1 -1
- package/dist/index.esm.js +134 -34
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +134 -34
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
package/dist/index.js
CHANGED
|
@@ -38186,7 +38186,9 @@ var RegistryPackageDetail = function RegistryPackageDetail(_ref) {
|
|
|
38186
38186
|
_ref$isInstalling = _ref.isInstalling,
|
|
38187
38187
|
isInstalling = _ref$isInstalling === void 0 ? false : _ref$isInstalling,
|
|
38188
38188
|
_ref$installError = _ref.installError,
|
|
38189
|
-
installError = _ref$installError === void 0 ? null : _ref$installError
|
|
38189
|
+
installError = _ref$installError === void 0 ? null : _ref$installError,
|
|
38190
|
+
_ref$isInstalled = _ref.isInstalled,
|
|
38191
|
+
isInstalled = _ref$isInstalled === void 0 ? false : _ref$isInstalled;
|
|
38190
38192
|
var _useContext = React.useContext(DashReact.ThemeContext),
|
|
38191
38193
|
currentTheme = _useContext.currentTheme;
|
|
38192
38194
|
var panelStyles = DashReact.getStylesForItem(DashReact.themeObjects.PANEL, currentTheme, {
|
|
@@ -38206,9 +38208,15 @@ var RegistryPackageDetail = function RegistryPackageDetail(_ref) {
|
|
|
38206
38208
|
className: "h-5 w-5"
|
|
38207
38209
|
})
|
|
38208
38210
|
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
38209
|
-
children: [/*#__PURE__*/jsxRuntime.
|
|
38210
|
-
|
|
38211
|
-
|
|
38211
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
38212
|
+
className: "flex items-center gap-2",
|
|
38213
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading3, {
|
|
38214
|
+
title: widget.packageDisplayName,
|
|
38215
|
+
padding: false
|
|
38216
|
+
}), isInstalled && /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
38217
|
+
className: "text-[10px] px-1.5 py-0.5 rounded bg-emerald-500/20 text-emerald-400 flex-shrink-0",
|
|
38218
|
+
children: "Installed"
|
|
38219
|
+
})]
|
|
38212
38220
|
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
38213
38221
|
className: "flex items-center gap-2 mt-0.5",
|
|
38214
38222
|
children: [/*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
@@ -38319,13 +38327,13 @@ var RegistryPackageDetail = function RegistryPackageDetail(_ref) {
|
|
|
38319
38327
|
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
38320
38328
|
className: "flex items-center justify-end px-6 py-3 border-t ".concat(currentTheme["border-primary-medium"]),
|
|
38321
38329
|
children: /*#__PURE__*/jsxRuntime.jsx(DashReact.Button, {
|
|
38322
|
-
title: isInstalling ? "Installing..." : "Install Package",
|
|
38323
|
-
bgColor: "bg-blue-600",
|
|
38324
|
-
hoverBackgroundColor: isInstalling ? "" : "hover:bg-blue-700",
|
|
38330
|
+
title: isInstalled ? "Installed" : isInstalling ? "Installing..." : "Install Package",
|
|
38331
|
+
bgColor: isInstalled ? "bg-emerald-600/50" : "bg-blue-600",
|
|
38332
|
+
hoverBackgroundColor: isInstalled || isInstalling ? "" : "hover:bg-blue-700",
|
|
38325
38333
|
textSize: "text-sm",
|
|
38326
38334
|
padding: "py-1.5 px-4",
|
|
38327
38335
|
onClick: onInstall,
|
|
38328
|
-
disabled: isInstalling
|
|
38336
|
+
disabled: isInstalling || isInstalled
|
|
38329
38337
|
})
|
|
38330
38338
|
})]
|
|
38331
38339
|
});
|
|
@@ -38428,7 +38436,11 @@ var useRegistrySearch = function useRegistrySearch() {
|
|
|
38428
38436
|
return window.mainApi.registry.search(query !== null && query !== void 0 ? query : searchQuery, filters);
|
|
38429
38437
|
case 3:
|
|
38430
38438
|
result = _context.sent;
|
|
38431
|
-
|
|
38439
|
+
// Only include packages that contain at least one widget
|
|
38440
|
+
// (filters out theme-only packages, etc.)
|
|
38441
|
+
pkgs = (result.packages || []).filter(function (pkg) {
|
|
38442
|
+
return pkg.widgets && pkg.widgets.length > 0;
|
|
38443
|
+
});
|
|
38432
38444
|
setPackages(pkgs);
|
|
38433
38445
|
|
|
38434
38446
|
// Flatten packages into widget entries
|
|
@@ -38647,6 +38659,83 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
38647
38659
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
38648
38660
|
toolConflictWarning = _useState4[0],
|
|
38649
38661
|
setToolConflictWarning = _useState4[1];
|
|
38662
|
+
|
|
38663
|
+
// Track installed package names (same pattern as WidgetSidebar)
|
|
38664
|
+
var _useState5 = React.useState(new Set()),
|
|
38665
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
38666
|
+
installedPackageNames = _useState6[0],
|
|
38667
|
+
setInstalledPackageNames = _useState6[1];
|
|
38668
|
+
var loadInstalledPackages = React.useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
38669
|
+
var widgets, names, _iterator, _step, w, folderName, _folderName;
|
|
38670
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
38671
|
+
while (1) switch (_context.prev = _context.next) {
|
|
38672
|
+
case 0:
|
|
38673
|
+
_context.prev = 0;
|
|
38674
|
+
_context.next = 1;
|
|
38675
|
+
return window.mainApi.widgets.list();
|
|
38676
|
+
case 1:
|
|
38677
|
+
widgets = _context.sent;
|
|
38678
|
+
names = new Set();
|
|
38679
|
+
_iterator = _createForOfIteratorHelper$2(widgets);
|
|
38680
|
+
try {
|
|
38681
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
38682
|
+
w = _step.value;
|
|
38683
|
+
if (w.name) names.add(w.name);
|
|
38684
|
+
if (w.path) {
|
|
38685
|
+
folderName = w.path.split("/").pop();
|
|
38686
|
+
if (folderName) names.add(folderName);
|
|
38687
|
+
}
|
|
38688
|
+
if (w.author && w.name) {
|
|
38689
|
+
names.add("".concat(w.author, "/").concat(w.name));
|
|
38690
|
+
}
|
|
38691
|
+
if (w.author && w.path) {
|
|
38692
|
+
_folderName = w.path.split("/").pop();
|
|
38693
|
+
if (_folderName) names.add("".concat(w.author, "/").concat(_folderName));
|
|
38694
|
+
}
|
|
38695
|
+
}
|
|
38696
|
+
} catch (err) {
|
|
38697
|
+
_iterator.e(err);
|
|
38698
|
+
} finally {
|
|
38699
|
+
_iterator.f();
|
|
38700
|
+
}
|
|
38701
|
+
setInstalledPackageNames(names);
|
|
38702
|
+
_context.next = 3;
|
|
38703
|
+
break;
|
|
38704
|
+
case 2:
|
|
38705
|
+
_context.prev = 2;
|
|
38706
|
+
_context["catch"](0);
|
|
38707
|
+
case 3:
|
|
38708
|
+
case "end":
|
|
38709
|
+
return _context.stop();
|
|
38710
|
+
}
|
|
38711
|
+
}, _callee, null, [[0, 2]]);
|
|
38712
|
+
})), []);
|
|
38713
|
+
React.useEffect(function () {
|
|
38714
|
+
loadInstalledPackages();
|
|
38715
|
+
var handleWidgetsUpdated = function handleWidgetsUpdated() {
|
|
38716
|
+
return loadInstalledPackages();
|
|
38717
|
+
};
|
|
38718
|
+
window.addEventListener("dash:widgets-updated", handleWidgetsUpdated);
|
|
38719
|
+
return function () {
|
|
38720
|
+
return window.removeEventListener("dash:widgets-updated", handleWidgetsUpdated);
|
|
38721
|
+
};
|
|
38722
|
+
}, [loadInstalledPackages]);
|
|
38723
|
+
var isPackageInstalled = React.useCallback(function (pkg) {
|
|
38724
|
+
if (installedPackageNames.has(pkg.name) || pkg.scope && installedPackageNames.has("".concat(pkg.scope, "/").concat(pkg.name))) {
|
|
38725
|
+
return true;
|
|
38726
|
+
}
|
|
38727
|
+
var packageWidgets = pkg.widgets || [];
|
|
38728
|
+
if (packageWidgets.length > 0) {
|
|
38729
|
+
var cMap = ComponentManager.componentMap();
|
|
38730
|
+
var cMapKeys = Object.keys(cMap);
|
|
38731
|
+
return packageWidgets.some(function (w) {
|
|
38732
|
+
return w.name in cMap || cMapKeys.some(function (k) {
|
|
38733
|
+
return k === w.name || k.endsWith("_".concat(w.name));
|
|
38734
|
+
});
|
|
38735
|
+
});
|
|
38736
|
+
}
|
|
38737
|
+
return false;
|
|
38738
|
+
}, [installedPackageNames]);
|
|
38650
38739
|
var selectedWidget = selectedPackageName ? flatWidgets.find(function (w) {
|
|
38651
38740
|
return w.packageName === selectedPackageName;
|
|
38652
38741
|
}) : null;
|
|
@@ -38655,31 +38744,31 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
38655
38744
|
var checkToolConflicts = function checkToolConflicts(widget) {
|
|
38656
38745
|
var conflicts = [];
|
|
38657
38746
|
var packageWidgets = widget.packageWidgets || [];
|
|
38658
|
-
var
|
|
38659
|
-
|
|
38747
|
+
var _iterator2 = _createForOfIteratorHelper$2(packageWidgets),
|
|
38748
|
+
_step2;
|
|
38660
38749
|
try {
|
|
38661
|
-
for (
|
|
38662
|
-
var w =
|
|
38663
|
-
var
|
|
38664
|
-
|
|
38750
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
38751
|
+
var w = _step2.value;
|
|
38752
|
+
var _iterator3 = _createForOfIteratorHelper$2(w.providers || []),
|
|
38753
|
+
_step3;
|
|
38665
38754
|
try {
|
|
38666
38755
|
var _loop = function _loop() {
|
|
38667
38756
|
var _p$requiredTools;
|
|
38668
|
-
var p =
|
|
38757
|
+
var p = _step3.value;
|
|
38669
38758
|
if (!((_p$requiredTools = p.requiredTools) !== null && _p$requiredTools !== void 0 && _p$requiredTools.length) || p.providerClass !== "mcp") return 1; // continue
|
|
38670
38759
|
// Find matching user provider
|
|
38671
|
-
var matchingProviders = Object.entries(providers).filter(function (
|
|
38672
|
-
var
|
|
38673
|
-
prov =
|
|
38760
|
+
var matchingProviders = Object.entries(providers).filter(function (_ref3) {
|
|
38761
|
+
var _ref4 = _slicedToArray(_ref3, 2),
|
|
38762
|
+
prov = _ref4[1];
|
|
38674
38763
|
return prov.type === p.type && prov.providerClass === "mcp" && prov.allowedTools;
|
|
38675
38764
|
});
|
|
38676
|
-
var
|
|
38677
|
-
|
|
38765
|
+
var _iterator4 = _createForOfIteratorHelper$2(matchingProviders),
|
|
38766
|
+
_step4;
|
|
38678
38767
|
try {
|
|
38679
38768
|
var _loop2 = function _loop2() {
|
|
38680
|
-
var
|
|
38681
|
-
provName =
|
|
38682
|
-
prov =
|
|
38769
|
+
var _step4$value = _slicedToArray(_step4.value, 2),
|
|
38770
|
+
provName = _step4$value[0],
|
|
38771
|
+
prov = _step4$value[1];
|
|
38683
38772
|
var blocked = p.requiredTools.filter(function (t) {
|
|
38684
38773
|
return !prov.allowedTools.includes(t);
|
|
38685
38774
|
});
|
|
@@ -38691,28 +38780,28 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
38691
38780
|
});
|
|
38692
38781
|
}
|
|
38693
38782
|
};
|
|
38694
|
-
for (
|
|
38783
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
38695
38784
|
_loop2();
|
|
38696
38785
|
}
|
|
38697
38786
|
} catch (err) {
|
|
38698
|
-
|
|
38787
|
+
_iterator4.e(err);
|
|
38699
38788
|
} finally {
|
|
38700
|
-
|
|
38789
|
+
_iterator4.f();
|
|
38701
38790
|
}
|
|
38702
38791
|
};
|
|
38703
|
-
for (
|
|
38792
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
38704
38793
|
if (_loop()) continue;
|
|
38705
38794
|
}
|
|
38706
38795
|
} catch (err) {
|
|
38707
|
-
|
|
38796
|
+
_iterator3.e(err);
|
|
38708
38797
|
} finally {
|
|
38709
|
-
|
|
38798
|
+
_iterator3.f();
|
|
38710
38799
|
}
|
|
38711
38800
|
}
|
|
38712
38801
|
} catch (err) {
|
|
38713
|
-
|
|
38802
|
+
_iterator2.e(err);
|
|
38714
38803
|
} finally {
|
|
38715
|
-
|
|
38804
|
+
_iterator2.f();
|
|
38716
38805
|
}
|
|
38717
38806
|
return conflicts;
|
|
38718
38807
|
};
|
|
@@ -38755,7 +38844,10 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
38755
38844
|
widget: selectedWidget,
|
|
38756
38845
|
onInstall: handleInstall,
|
|
38757
38846
|
isInstalling: isInstalling,
|
|
38758
|
-
installError: installError
|
|
38847
|
+
installError: installError,
|
|
38848
|
+
isInstalled: selectedWidget ? isPackageInstalled(packages.find(function (p) {
|
|
38849
|
+
return p.name === selectedPackageName;
|
|
38850
|
+
}) || {}) : false
|
|
38759
38851
|
})]
|
|
38760
38852
|
});
|
|
38761
38853
|
}
|
|
@@ -38808,6 +38900,7 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
38808
38900
|
return w.packageName === pkg.name;
|
|
38809
38901
|
});
|
|
38810
38902
|
var hasIncompatible = (pkgWidget === null || pkgWidget === void 0 ? void 0 : pkgWidget.missingApis) && pkgWidget.missingApis.length > 0;
|
|
38903
|
+
var isInstalled = isPackageInstalled(pkg);
|
|
38811
38904
|
return /*#__PURE__*/jsxRuntime.jsx(DashReact.Sidebar.Item, {
|
|
38812
38905
|
icon: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
38813
38906
|
icon: hasIncompatible ? "triangle-exclamation" : "cube",
|
|
@@ -38817,7 +38910,14 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
38817
38910
|
return setSelectedPackageName(pkg.name);
|
|
38818
38911
|
},
|
|
38819
38912
|
badge: "".concat(widgetCount),
|
|
38820
|
-
|
|
38913
|
+
className: isInstalled ? "opacity-50" : "",
|
|
38914
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
38915
|
+
className: "flex items-center gap-1.5",
|
|
38916
|
+
children: [pkg.displayName || pkg.name, isInstalled && /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
38917
|
+
className: "text-[10px] text-emerald-400",
|
|
38918
|
+
children: "Installed"
|
|
38919
|
+
})]
|
|
38920
|
+
})
|
|
38821
38921
|
}, pkg.name);
|
|
38822
38922
|
})
|
|
38823
38923
|
});
|