@trops/dash-core 0.1.456 → 0.1.457
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 +138 -114
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +97 -82
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -47227,71 +47227,75 @@ var ProvidersSection = function ProvidersSection(_ref) {
|
|
|
47227
47227
|
if (result !== null && result !== void 0 && result.catalog) setCatalog(result.catalog);
|
|
47228
47228
|
}, function () {});
|
|
47229
47229
|
}, [dashApi]);
|
|
47230
|
-
var _useState3 = React.useState("
|
|
47230
|
+
var _useState3 = React.useState("all"),
|
|
47231
47231
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
47232
47232
|
providerTab = _useState4[0],
|
|
47233
47233
|
setProviderTab = _useState4[1];
|
|
47234
|
-
var _useState5 = React.useState(
|
|
47234
|
+
var _useState5 = React.useState(""),
|
|
47235
47235
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
47236
|
-
|
|
47237
|
-
|
|
47238
|
-
var _useState7 = React.useState(
|
|
47236
|
+
searchQuery = _useState6[0],
|
|
47237
|
+
setSearchQuery = _useState6[1];
|
|
47238
|
+
var _useState7 = React.useState(null),
|
|
47239
47239
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
47240
|
-
|
|
47241
|
-
|
|
47240
|
+
selectedName = _useState8[0],
|
|
47241
|
+
setSelectedName = _useState8[1];
|
|
47242
|
+
var _useState9 = React.useState(false),
|
|
47243
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
47244
|
+
isCreating = _useState0[0],
|
|
47245
|
+
setIsCreating = _useState0[1];
|
|
47242
47246
|
// When the user clicks "+ New Provider" without a pre-selected
|
|
47243
47247
|
// class (Settings header button), show the class chooser
|
|
47244
47248
|
// (Credential / MCP / WebSocket) instead of defaulting to the
|
|
47245
47249
|
// credential form. Widget Builder's deep-link path passes a class
|
|
47246
47250
|
// explicitly and bypasses this chooser.
|
|
47247
|
-
var
|
|
47248
|
-
|
|
47249
|
-
isShowingClassChooser =
|
|
47250
|
-
setIsShowingClassChooser =
|
|
47251
|
+
var _useState1 = React.useState(false),
|
|
47252
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
47253
|
+
isShowingClassChooser = _useState10[0],
|
|
47254
|
+
setIsShowingClassChooser = _useState10[1];
|
|
47251
47255
|
// Tracks whether the current create-flow detail was reached via the
|
|
47252
47256
|
// chooser (vs. the Widget Builder deep-link or list-edit). Only the
|
|
47253
47257
|
// chooser-entry path renders the "← Back" affordance, since that's
|
|
47254
47258
|
// the only path that has somewhere to go back to.
|
|
47255
|
-
var _useState1 = React.useState(false),
|
|
47256
|
-
_useState10 = _slicedToArray(_useState1, 2),
|
|
47257
|
-
cameFromClassChooser = _useState10[0],
|
|
47258
|
-
setCameFromClassChooser = _useState10[1];
|
|
47259
47259
|
var _useState11 = React.useState(false),
|
|
47260
47260
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
47261
|
-
|
|
47262
|
-
|
|
47263
|
-
var _useState13 = React.useState(
|
|
47261
|
+
cameFromClassChooser = _useState12[0],
|
|
47262
|
+
setCameFromClassChooser = _useState12[1];
|
|
47263
|
+
var _useState13 = React.useState(false),
|
|
47264
47264
|
_useState14 = _slicedToArray(_useState13, 2),
|
|
47265
|
-
|
|
47266
|
-
|
|
47265
|
+
isEditing = _useState14[0],
|
|
47266
|
+
setIsEditing = _useState14[1];
|
|
47267
47267
|
var _useState15 = React.useState(""),
|
|
47268
47268
|
_useState16 = _slicedToArray(_useState15, 2),
|
|
47269
|
-
|
|
47270
|
-
|
|
47271
|
-
var _useState17 = React.useState(
|
|
47269
|
+
formName = _useState16[0],
|
|
47270
|
+
setFormName = _useState16[1];
|
|
47271
|
+
var _useState17 = React.useState(""),
|
|
47272
47272
|
_useState18 = _slicedToArray(_useState17, 2),
|
|
47273
|
-
|
|
47274
|
-
|
|
47275
|
-
var _useState19 = React.useState(
|
|
47273
|
+
formType = _useState18[0],
|
|
47274
|
+
setFormType = _useState18[1];
|
|
47275
|
+
var _useState19 = React.useState({}),
|
|
47276
47276
|
_useState20 = _slicedToArray(_useState19, 2),
|
|
47277
|
-
|
|
47278
|
-
|
|
47279
|
-
var _useState21 = React.useState(
|
|
47277
|
+
formCredentials = _useState20[0],
|
|
47278
|
+
setFormCredentials = _useState20[1];
|
|
47279
|
+
var _useState21 = React.useState(null),
|
|
47280
47280
|
_useState22 = _slicedToArray(_useState21, 2),
|
|
47281
|
-
|
|
47282
|
-
|
|
47281
|
+
deleteTarget = _useState22[0],
|
|
47282
|
+
setDeleteTarget = _useState22[1];
|
|
47283
47283
|
var _useState23 = React.useState(false),
|
|
47284
47284
|
_useState24 = _slicedToArray(_useState23, 2),
|
|
47285
|
-
|
|
47286
|
-
|
|
47285
|
+
isAddingMcp = _useState24[0],
|
|
47286
|
+
setIsAddingMcp = _useState24[1];
|
|
47287
47287
|
var _useState25 = React.useState(false),
|
|
47288
47288
|
_useState26 = _slicedToArray(_useState25, 2),
|
|
47289
|
-
|
|
47290
|
-
|
|
47289
|
+
isEditingMcp = _useState26[0],
|
|
47290
|
+
setIsEditingMcp = _useState26[1];
|
|
47291
47291
|
var _useState27 = React.useState(false),
|
|
47292
47292
|
_useState28 = _slicedToArray(_useState27, 2),
|
|
47293
|
-
|
|
47294
|
-
|
|
47293
|
+
isAddingWs = _useState28[0],
|
|
47294
|
+
setIsAddingWs = _useState28[1];
|
|
47295
|
+
var _useState29 = React.useState(false),
|
|
47296
|
+
_useState30 = _slicedToArray(_useState29, 2),
|
|
47297
|
+
isEditingWs = _useState30[0],
|
|
47298
|
+
setIsEditingWs = _useState30[1];
|
|
47295
47299
|
|
|
47296
47300
|
// Row ID counter for env/header rows in MCP edit mode
|
|
47297
47301
|
var nextRowIdRef = React.useRef(0);
|
|
@@ -47615,11 +47619,42 @@ var ProvidersSection = function ProvidersSection(_ref) {
|
|
|
47615
47619
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
47616
47620
|
}, [createRequested]);
|
|
47617
47621
|
var selectedProvider = selectedName && providers[selectedName] ? providers[selectedName] : null;
|
|
47618
|
-
|
|
47619
|
-
|
|
47622
|
+
|
|
47623
|
+
// Class filter (All + 3 classes). "All" merges every group so the
|
|
47624
|
+
// user gets one alphabetized list by default — mirrors the Widgets
|
|
47625
|
+
// sidebar pattern.
|
|
47626
|
+
var tabFilteredProviders = providerTab === "all" ? [].concat(_toConsumableArray(credentialProviders), _toConsumableArray(mcpProviders), _toConsumableArray(wsProviders)) : providerTab === "credentials" ? credentialProviders : providerTab === "mcp" ? mcpProviders : wsProviders;
|
|
47627
|
+
var trimmedQuery = searchQuery.trim().toLowerCase();
|
|
47628
|
+
var visibleProviders = tabFilteredProviders.filter(function (_ref0) {
|
|
47629
|
+
var _ref1 = _slicedToArray(_ref0, 2),
|
|
47630
|
+
name = _ref1[0],
|
|
47631
|
+
provider = _ref1[1];
|
|
47632
|
+
if (!trimmedQuery) return true;
|
|
47633
|
+
return name.toLowerCase().includes(trimmedQuery) || (provider.type || "").toLowerCase().includes(trimmedQuery);
|
|
47634
|
+
}).slice().sort(function (_ref10, _ref11) {
|
|
47635
|
+
var _ref12 = _slicedToArray(_ref10, 1),
|
|
47636
|
+
a = _ref12[0];
|
|
47637
|
+
var _ref13 = _slicedToArray(_ref11, 1),
|
|
47638
|
+
b = _ref13[0];
|
|
47639
|
+
return a.localeCompare(b, undefined, {
|
|
47640
|
+
sensitivity: "base"
|
|
47641
|
+
});
|
|
47642
|
+
});
|
|
47643
|
+
var iconForClass = function iconForClass(cls) {
|
|
47644
|
+
return cls === "mcp" ? "server" : cls === "websocket" ? "plug" : "key";
|
|
47645
|
+
};
|
|
47620
47646
|
var listContent = /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
47621
47647
|
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
47622
|
-
className: "px-2 pt-2",
|
|
47648
|
+
className: "px-2 pt-2 pb-2",
|
|
47649
|
+
children: /*#__PURE__*/jsxRuntime.jsx(DashReact.InputText, {
|
|
47650
|
+
value: searchQuery,
|
|
47651
|
+
onChange: function onChange(value) {
|
|
47652
|
+
return setSearchQuery(value);
|
|
47653
|
+
},
|
|
47654
|
+
placeholder: "Search providers..."
|
|
47655
|
+
})
|
|
47656
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
47657
|
+
className: "px-2",
|
|
47623
47658
|
children: /*#__PURE__*/jsxRuntime.jsx(DashReact.Tabs3, {
|
|
47624
47659
|
value: providerTab,
|
|
47625
47660
|
onValueChange: setProviderTab,
|
|
@@ -47629,6 +47664,10 @@ var ProvidersSection = function ProvidersSection(_ref) {
|
|
|
47629
47664
|
className: "w-full flex",
|
|
47630
47665
|
spacing: "p-0.5",
|
|
47631
47666
|
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Tabs3.Trigger, {
|
|
47667
|
+
value: "all",
|
|
47668
|
+
className: "flex-1",
|
|
47669
|
+
children: "All"
|
|
47670
|
+
}), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tabs3.Trigger, {
|
|
47632
47671
|
value: "credentials",
|
|
47633
47672
|
className: "flex-1",
|
|
47634
47673
|
children: "Credentials"
|
|
@@ -47643,15 +47682,22 @@ var ProvidersSection = function ProvidersSection(_ref) {
|
|
|
47643
47682
|
})]
|
|
47644
47683
|
})
|
|
47645
47684
|
})
|
|
47685
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
47686
|
+
className: "px-3 pt-2 pb-1",
|
|
47687
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
47688
|
+
className: "text-xs opacity-40",
|
|
47689
|
+
children: [visibleProviders.length, " provider", visibleProviders.length === 1 ? "" : "s"]
|
|
47690
|
+
})
|
|
47646
47691
|
}), /*#__PURE__*/jsxRuntime.jsxs(DashReact.Sidebar.Content, {
|
|
47647
|
-
children: [
|
|
47648
|
-
var
|
|
47649
|
-
name =
|
|
47650
|
-
provider =
|
|
47692
|
+
children: [visibleProviders.map(function (_ref14) {
|
|
47693
|
+
var _ref15 = _slicedToArray(_ref14, 2),
|
|
47694
|
+
name = _ref15[0],
|
|
47695
|
+
provider = _ref15[1];
|
|
47651
47696
|
var isSelected = selectedName === name && !isCreating;
|
|
47697
|
+
var cls = provider.providerClass || "credential";
|
|
47652
47698
|
return /*#__PURE__*/jsxRuntime.jsx(DashReact.Sidebar.Item, {
|
|
47653
47699
|
icon: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
47654
|
-
icon:
|
|
47700
|
+
icon: iconForClass(cls),
|
|
47655
47701
|
className: "h-3.5 w-3.5"
|
|
47656
47702
|
}),
|
|
47657
47703
|
active: isSelected,
|
|
@@ -47673,40 +47719,9 @@ var ProvidersSection = function ProvidersSection(_ref) {
|
|
|
47673
47719
|
className: isSelected ? "bg-white/10 opacity-100" : "",
|
|
47674
47720
|
children: name
|
|
47675
47721
|
}, name);
|
|
47676
|
-
}),
|
|
47722
|
+
}), visibleProviders.length === 0 && /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
47677
47723
|
className: "text-sm opacity-40 py-8 text-center",
|
|
47678
|
-
children: providerTab === "credentials" ? "No API credentials configured" : providerTab === "mcp" ? "No MCP servers configured" : "No WebSocket providers configured"
|
|
47679
|
-
}), providerTab === "mcp" && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
47680
|
-
className: "px-3 py-3 mt-2 border-t border-white/10",
|
|
47681
|
-
children: /*#__PURE__*/jsxRuntime.jsxs("button", {
|
|
47682
|
-
onClick: function onClick() {
|
|
47683
|
-
setIsAddingMcp(true);
|
|
47684
|
-
setSelectedName(null);
|
|
47685
|
-
setIsCreating(false);
|
|
47686
|
-
setIsEditing(false);
|
|
47687
|
-
},
|
|
47688
|
-
className: "flex items-center gap-2 text-sm text-blue-400 hover:text-blue-300 transition-colors w-full",
|
|
47689
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
47690
|
-
icon: "plus",
|
|
47691
|
-
className: "h-3 w-3"
|
|
47692
|
-
}), "Add MCP Server"]
|
|
47693
|
-
})
|
|
47694
|
-
}), providerTab === "websocket" && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
47695
|
-
className: "px-3 py-3 mt-2 border-t border-white/10",
|
|
47696
|
-
children: /*#__PURE__*/jsxRuntime.jsxs("button", {
|
|
47697
|
-
onClick: function onClick() {
|
|
47698
|
-
setIsAddingWs(true);
|
|
47699
|
-
setSelectedName(null);
|
|
47700
|
-
setIsCreating(false);
|
|
47701
|
-
setIsEditing(false);
|
|
47702
|
-
setIsAddingMcp(false);
|
|
47703
|
-
},
|
|
47704
|
-
className: "flex items-center gap-2 text-sm text-blue-400 hover:text-blue-300 transition-colors w-full",
|
|
47705
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
47706
|
-
icon: "plus",
|
|
47707
|
-
className: "h-3 w-3"
|
|
47708
|
-
}), "Add WebSocket Provider"]
|
|
47709
|
-
})
|
|
47724
|
+
children: trimmedQuery ? "No providers match \"".concat(searchQuery.trim(), "\"") : providerTab === "all" ? "No providers configured" : providerTab === "credentials" ? "No API credentials configured" : providerTab === "mcp" ? "No MCP servers configured" : "No WebSocket providers configured"
|
|
47710
47725
|
})]
|
|
47711
47726
|
})]
|
|
47712
47727
|
});
|
|
@@ -47733,10 +47748,10 @@ var ProvidersSection = function ProvidersSection(_ref) {
|
|
|
47733
47748
|
});
|
|
47734
47749
|
} else if (isEditingWs && selectedName && selectedProvider) {
|
|
47735
47750
|
var wc = selectedProvider.wsConfig || {};
|
|
47736
|
-
var editHeaderRows = wc.headers ? Object.entries(wc.headers).map(function (
|
|
47737
|
-
var
|
|
47738
|
-
key =
|
|
47739
|
-
value =
|
|
47751
|
+
var editHeaderRows = wc.headers ? Object.entries(wc.headers).map(function (_ref16, i) {
|
|
47752
|
+
var _ref17 = _slicedToArray(_ref16, 2),
|
|
47753
|
+
key = _ref17[0],
|
|
47754
|
+
value = _ref17[1];
|
|
47740
47755
|
return {
|
|
47741
47756
|
id: "ws_edit_".concat(i),
|
|
47742
47757
|
key: key,
|