@trops/dash-core 0.1.14 → 0.1.15
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 +154 -9
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +154 -9
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -25015,6 +25015,83 @@ var ProviderDetail = function ProviderDetail(_ref) {
|
|
|
25015
25015
|
if (isMcp || !(provider !== null && provider !== void 0 && provider.credentials)) return [];
|
|
25016
25016
|
return Object.keys(provider.credentials);
|
|
25017
25017
|
}, [isMcp, provider]);
|
|
25018
|
+
|
|
25019
|
+
// Dynamic credential fields for create mode
|
|
25020
|
+
var _useState5 = React.useState(isCreating ? [{
|
|
25021
|
+
id: "default_apiKey",
|
|
25022
|
+
key: "apiKey",
|
|
25023
|
+
secret: true
|
|
25024
|
+
}] : []),
|
|
25025
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
25026
|
+
credentialFields = _useState6[0],
|
|
25027
|
+
setCredentialFields = _useState6[1];
|
|
25028
|
+
var fieldIdRef = React.useRef(0);
|
|
25029
|
+
var handleFieldKeyChange = function handleFieldKeyChange(id, newKey) {
|
|
25030
|
+
setCredentialFields(function (prev) {
|
|
25031
|
+
return prev.map(function (f) {
|
|
25032
|
+
if (f.id !== id) return f;
|
|
25033
|
+
var oldKey = f.key;
|
|
25034
|
+
if (oldKey && formCredentials[oldKey] !== undefined) {
|
|
25035
|
+
setFormCredentials(function (creds) {
|
|
25036
|
+
var updated = _objectSpread$4({}, creds);
|
|
25037
|
+
var val = updated[oldKey];
|
|
25038
|
+
delete updated[oldKey];
|
|
25039
|
+
if (newKey.trim()) updated[newKey] = val;
|
|
25040
|
+
return updated;
|
|
25041
|
+
});
|
|
25042
|
+
}
|
|
25043
|
+
return _objectSpread$4(_objectSpread$4({}, f), {}, {
|
|
25044
|
+
key: newKey
|
|
25045
|
+
});
|
|
25046
|
+
});
|
|
25047
|
+
});
|
|
25048
|
+
};
|
|
25049
|
+
var handleFieldValueChange = function handleFieldValueChange(id, value) {
|
|
25050
|
+
var field = credentialFields.find(function (f) {
|
|
25051
|
+
return f.id === id;
|
|
25052
|
+
});
|
|
25053
|
+
if (field !== null && field !== void 0 && field.key) {
|
|
25054
|
+
setFormCredentials(function (prev) {
|
|
25055
|
+
return _objectSpread$4(_objectSpread$4({}, prev), {}, _defineProperty({}, field.key, value));
|
|
25056
|
+
});
|
|
25057
|
+
}
|
|
25058
|
+
};
|
|
25059
|
+
var handleFieldSecretToggle = function handleFieldSecretToggle(id) {
|
|
25060
|
+
setCredentialFields(function (prev) {
|
|
25061
|
+
return prev.map(function (f) {
|
|
25062
|
+
return f.id === id ? _objectSpread$4(_objectSpread$4({}, f), {}, {
|
|
25063
|
+
secret: !f.secret
|
|
25064
|
+
}) : f;
|
|
25065
|
+
});
|
|
25066
|
+
});
|
|
25067
|
+
};
|
|
25068
|
+
var handleAddField = function handleAddField() {
|
|
25069
|
+
fieldIdRef.current += 1;
|
|
25070
|
+
setCredentialFields(function (prev) {
|
|
25071
|
+
return [].concat(_toConsumableArray(prev), [{
|
|
25072
|
+
id: "field_".concat(fieldIdRef.current),
|
|
25073
|
+
key: "",
|
|
25074
|
+
secret: false
|
|
25075
|
+
}]);
|
|
25076
|
+
});
|
|
25077
|
+
};
|
|
25078
|
+
var handleRemoveField = function handleRemoveField(id) {
|
|
25079
|
+
var field = credentialFields.find(function (f) {
|
|
25080
|
+
return f.id === id;
|
|
25081
|
+
});
|
|
25082
|
+
if (field !== null && field !== void 0 && field.key) {
|
|
25083
|
+
setFormCredentials(function (prev) {
|
|
25084
|
+
var updated = _objectSpread$4({}, prev);
|
|
25085
|
+
delete updated[field.key];
|
|
25086
|
+
return updated;
|
|
25087
|
+
});
|
|
25088
|
+
}
|
|
25089
|
+
setCredentialFields(function (prev) {
|
|
25090
|
+
return prev.filter(function (f) {
|
|
25091
|
+
return f.id !== id;
|
|
25092
|
+
});
|
|
25093
|
+
});
|
|
25094
|
+
};
|
|
25018
25095
|
var handleCredentialChange = function handleCredentialChange(key, value) {
|
|
25019
25096
|
setFormCredentials(function (prev) {
|
|
25020
25097
|
return _objectSpread$4(_objectSpread$4({}, prev), {}, _defineProperty({}, key, value));
|
|
@@ -25135,6 +25212,65 @@ var ProviderDetail = function ProviderDetail(_ref) {
|
|
|
25135
25212
|
},
|
|
25136
25213
|
placeholder: "Provider type (e.g. algolia, openai)"
|
|
25137
25214
|
})]
|
|
25215
|
+
}), isCreating && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
25216
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
25217
|
+
className: "border-t border-white/10 pt-4",
|
|
25218
|
+
children: /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
25219
|
+
className: "text-xs font-semibold opacity-40 uppercase tracking-wider",
|
|
25220
|
+
children: "Credentials"
|
|
25221
|
+
})
|
|
25222
|
+
}), credentialFields.map(function (field) {
|
|
25223
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
25224
|
+
className: "flex flex-col gap-2",
|
|
25225
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
25226
|
+
className: "flex items-center gap-2",
|
|
25227
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
25228
|
+
className: "flex-1",
|
|
25229
|
+
children: /*#__PURE__*/jsxRuntime.jsx(DashReact.InputText, {
|
|
25230
|
+
value: field.key,
|
|
25231
|
+
onChange: function onChange(value) {
|
|
25232
|
+
return handleFieldKeyChange(field.id, value);
|
|
25233
|
+
},
|
|
25234
|
+
placeholder: "Field name (e.g. apiKey)"
|
|
25235
|
+
})
|
|
25236
|
+
}), /*#__PURE__*/jsxRuntime.jsx("button", {
|
|
25237
|
+
onClick: function onClick() {
|
|
25238
|
+
return handleFieldSecretToggle(field.id);
|
|
25239
|
+
},
|
|
25240
|
+
className: "p-2 rounded hover:bg-white/10 transition-colors opacity-50 hover:opacity-100",
|
|
25241
|
+
title: field.secret ? "Show as text" : "Mark as secret",
|
|
25242
|
+
children: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
25243
|
+
icon: field.secret ? "eye-slash" : "eye",
|
|
25244
|
+
className: "h-3.5 w-3.5"
|
|
25245
|
+
})
|
|
25246
|
+
}), /*#__PURE__*/jsxRuntime.jsx("button", {
|
|
25247
|
+
onClick: function onClick() {
|
|
25248
|
+
return handleRemoveField(field.id);
|
|
25249
|
+
},
|
|
25250
|
+
className: "p-2 rounded hover:bg-red-500/20 transition-colors opacity-50 hover:opacity-100 text-red-400",
|
|
25251
|
+
title: "Remove field",
|
|
25252
|
+
children: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
25253
|
+
icon: "trash",
|
|
25254
|
+
className: "h-3.5 w-3.5"
|
|
25255
|
+
})
|
|
25256
|
+
})]
|
|
25257
|
+
}), field.key.trim() && /*#__PURE__*/jsxRuntime.jsx(DashReact.InputText, {
|
|
25258
|
+
type: field.secret ? "password" : "text",
|
|
25259
|
+
value: formCredentials[field.key] || "",
|
|
25260
|
+
onChange: function onChange(value) {
|
|
25261
|
+
return handleFieldValueChange(field.id, value);
|
|
25262
|
+
},
|
|
25263
|
+
placeholder: "Enter ".concat(field.key)
|
|
25264
|
+
})]
|
|
25265
|
+
}, field.id);
|
|
25266
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("button", {
|
|
25267
|
+
onClick: handleAddField,
|
|
25268
|
+
className: "flex items-center gap-2 text-sm text-blue-400 hover:text-blue-300 transition-colors",
|
|
25269
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
25270
|
+
icon: "plus",
|
|
25271
|
+
className: "h-3 w-3"
|
|
25272
|
+
}), "Add Credential Field"]
|
|
25273
|
+
})]
|
|
25138
25274
|
}), isEditing && isMcp && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
25139
25275
|
children: [mcpConfigBlock, mcpFormFields.length > 0 && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
25140
25276
|
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
@@ -26542,9 +26678,16 @@ var ProvidersSection = function ProvidersSection(_ref) {
|
|
|
26542
26678
|
}
|
|
26543
26679
|
function handleSave() {
|
|
26544
26680
|
if (!formName.trim() || !dashApi || !appId) return;
|
|
26681
|
+
var credentials = {};
|
|
26682
|
+
Object.entries(formCredentials).forEach(function (_ref6) {
|
|
26683
|
+
var _ref7 = _slicedToArray(_ref6, 2),
|
|
26684
|
+
key = _ref7[0],
|
|
26685
|
+
value = _ref7[1];
|
|
26686
|
+
if (key.trim()) credentials[key.trim()] = value;
|
|
26687
|
+
});
|
|
26545
26688
|
dashApi.saveProvider(appId, formName.trim(), {
|
|
26546
26689
|
providerType: formType.trim(),
|
|
26547
|
-
credentials:
|
|
26690
|
+
credentials: credentials
|
|
26548
26691
|
}, function () {
|
|
26549
26692
|
resetForm();
|
|
26550
26693
|
refreshProviders && refreshProviders();
|
|
@@ -26638,10 +26781,10 @@ var ProvidersSection = function ProvidersSection(_ref) {
|
|
|
26638
26781
|
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
26639
26782
|
className: "px-3 py-2 text-xs font-semibold opacity-40 uppercase tracking-wider",
|
|
26640
26783
|
children: "API Credentials"
|
|
26641
|
-
}), credentialProviders.map(function (
|
|
26642
|
-
var
|
|
26643
|
-
name =
|
|
26644
|
-
provider =
|
|
26784
|
+
}), credentialProviders.map(function (_ref8) {
|
|
26785
|
+
var _ref9 = _slicedToArray(_ref8, 2),
|
|
26786
|
+
name = _ref9[0],
|
|
26787
|
+
provider = _ref9[1];
|
|
26645
26788
|
var isSelected = selectedName === name && !isCreating;
|
|
26646
26789
|
return /*#__PURE__*/jsxRuntime.jsx(DashReact.Sidebar.Item, {
|
|
26647
26790
|
icon: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
@@ -26667,10 +26810,10 @@ var ProvidersSection = function ProvidersSection(_ref) {
|
|
|
26667
26810
|
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
26668
26811
|
className: "px-3 py-2 text-xs font-semibold opacity-40 uppercase tracking-wider mt-2",
|
|
26669
26812
|
children: "MCP Servers"
|
|
26670
|
-
}), mcpProviders.map(function (
|
|
26671
|
-
var
|
|
26672
|
-
name =
|
|
26673
|
-
provider =
|
|
26813
|
+
}), mcpProviders.map(function (_ref0) {
|
|
26814
|
+
var _ref1 = _slicedToArray(_ref0, 2),
|
|
26815
|
+
name = _ref1[0],
|
|
26816
|
+
provider = _ref1[1];
|
|
26674
26817
|
var isSelected = selectedName === name && !isCreating;
|
|
26675
26818
|
return /*#__PURE__*/jsxRuntime.jsx(DashReact.Sidebar.Item, {
|
|
26676
26819
|
icon: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
@@ -26727,6 +26870,8 @@ var ProvidersSection = function ProvidersSection(_ref) {
|
|
|
26727
26870
|
setFormName: setFormName,
|
|
26728
26871
|
formType: formType,
|
|
26729
26872
|
setFormType: setFormType,
|
|
26873
|
+
formCredentials: formCredentials,
|
|
26874
|
+
setFormCredentials: setFormCredentials,
|
|
26730
26875
|
onCreate: handleSave,
|
|
26731
26876
|
onCancelEdit: function onCancelEdit() {
|
|
26732
26877
|
resetForm();
|