@trops/dash-core 0.1.47 → 0.1.48

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 CHANGED
@@ -6980,6 +6980,84 @@ var ProviderForm = function ProviderForm(_ref) {
6980
6980
  errors = _useState6[0],
6981
6981
  setErrors = _useState6[1];
6982
6982
 
6983
+ // Dynamic fields for unknown provider types (empty schema)
6984
+ var hasSchema = Object.keys(credentialSchema).length > 0;
6985
+ var _useState7 = useState(hasSchema ? [] : [{
6986
+ id: "default_apiKey",
6987
+ key: "apiKey",
6988
+ secret: true
6989
+ }]),
6990
+ _useState8 = _slicedToArray(_useState7, 2),
6991
+ dynamicFields = _useState8[0],
6992
+ setDynamicFields = _useState8[1];
6993
+ var fieldIdRef = useRef(0);
6994
+ var handleDynamicKeyChange = function handleDynamicKeyChange(id, newKey) {
6995
+ setDynamicFields(function (prev) {
6996
+ return prev.map(function (f) {
6997
+ if (f.id !== id) return f;
6998
+ var oldKey = f.key;
6999
+ if (oldKey && formData[oldKey] !== undefined) {
7000
+ setFormData(function (fd) {
7001
+ var updated = _objectSpread$s({}, fd);
7002
+ var val = updated[oldKey];
7003
+ delete updated[oldKey];
7004
+ if (newKey.trim()) updated[newKey] = val;
7005
+ return updated;
7006
+ });
7007
+ }
7008
+ return _objectSpread$s(_objectSpread$s({}, f), {}, {
7009
+ key: newKey
7010
+ });
7011
+ });
7012
+ });
7013
+ };
7014
+ var handleDynamicValueChange = function handleDynamicValueChange(id, value) {
7015
+ var field = dynamicFields.find(function (f) {
7016
+ return f.id === id;
7017
+ });
7018
+ if (field !== null && field !== void 0 && field.key) {
7019
+ setFormData(function (prev) {
7020
+ return _objectSpread$s(_objectSpread$s({}, prev), {}, _defineProperty({}, field.key, value));
7021
+ });
7022
+ }
7023
+ };
7024
+ var handleDynamicSecretToggle = function handleDynamicSecretToggle(id) {
7025
+ setDynamicFields(function (prev) {
7026
+ return prev.map(function (f) {
7027
+ return f.id === id ? _objectSpread$s(_objectSpread$s({}, f), {}, {
7028
+ secret: !f.secret
7029
+ }) : f;
7030
+ });
7031
+ });
7032
+ };
7033
+ var handleAddField = function handleAddField() {
7034
+ fieldIdRef.current += 1;
7035
+ setDynamicFields(function (prev) {
7036
+ return [].concat(_toConsumableArray(prev), [{
7037
+ id: "field_".concat(fieldIdRef.current),
7038
+ key: "",
7039
+ secret: false
7040
+ }]);
7041
+ });
7042
+ };
7043
+ var handleRemoveField = function handleRemoveField(id) {
7044
+ var field = dynamicFields.find(function (f) {
7045
+ return f.id === id;
7046
+ });
7047
+ if (field !== null && field !== void 0 && field.key) {
7048
+ setFormData(function (prev) {
7049
+ var updated = _objectSpread$s({}, prev);
7050
+ delete updated[field.key];
7051
+ return updated;
7052
+ });
7053
+ }
7054
+ setDynamicFields(function (prev) {
7055
+ return prev.filter(function (f) {
7056
+ return f.id !== id;
7057
+ });
7058
+ });
7059
+ };
7060
+
6983
7061
  /**
6984
7062
  * Validate form based on schema requirements
6985
7063
  */
@@ -7097,6 +7175,59 @@ var ProviderForm = function ProviderForm(_ref) {
7097
7175
  children: errors[fieldName]
7098
7176
  })]
7099
7177
  }, fieldName);
7178
+ }), !hasSchema && /*#__PURE__*/jsxs(Fragment, {
7179
+ children: [dynamicFields.map(function (field) {
7180
+ return /*#__PURE__*/jsxs("div", {
7181
+ className: "flex flex-col gap-2",
7182
+ children: [/*#__PURE__*/jsxs("div", {
7183
+ className: "flex items-center gap-2",
7184
+ children: [/*#__PURE__*/jsx("div", {
7185
+ className: "flex-1",
7186
+ children: /*#__PURE__*/jsx(InputText, {
7187
+ value: field.key,
7188
+ onChange: function onChange(value) {
7189
+ return handleDynamicKeyChange(field.id, value);
7190
+ },
7191
+ placeholder: "Field name (e.g. apiKey)"
7192
+ })
7193
+ }), /*#__PURE__*/jsx("button", {
7194
+ onClick: function onClick() {
7195
+ return handleDynamicSecretToggle(field.id);
7196
+ },
7197
+ className: "p-2 rounded hover:bg-white/10 transition-colors opacity-50 hover:opacity-100",
7198
+ title: field.secret ? "Show as text" : "Mark as secret",
7199
+ children: /*#__PURE__*/jsx(FontAwesomeIcon, {
7200
+ icon: field.secret ? "eye-slash" : "eye",
7201
+ className: "h-3.5 w-3.5"
7202
+ })
7203
+ }), /*#__PURE__*/jsx("button", {
7204
+ onClick: function onClick() {
7205
+ return handleRemoveField(field.id);
7206
+ },
7207
+ className: "p-2 rounded hover:bg-red-500/20 transition-colors opacity-50 hover:opacity-100 text-red-400",
7208
+ title: "Remove field",
7209
+ children: /*#__PURE__*/jsx(FontAwesomeIcon, {
7210
+ icon: "trash",
7211
+ className: "h-3.5 w-3.5"
7212
+ })
7213
+ })]
7214
+ }), field.key.trim() && /*#__PURE__*/jsx(InputText, {
7215
+ type: field.secret ? "password" : "text",
7216
+ value: formData[field.key] || "",
7217
+ onChange: function onChange(value) {
7218
+ return handleDynamicValueChange(field.id, value);
7219
+ },
7220
+ placeholder: "Enter ".concat(field.key)
7221
+ })]
7222
+ }, field.id);
7223
+ }), /*#__PURE__*/jsxs("button", {
7224
+ onClick: handleAddField,
7225
+ className: "flex items-center gap-2 text-sm text-blue-400 hover:text-blue-300 transition-colors",
7226
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
7227
+ icon: "plus",
7228
+ className: "h-3 w-3"
7229
+ }), "Add Credential Field"]
7230
+ })]
7100
7231
  }), /*#__PURE__*/jsxs("div", {
7101
7232
  className: "flex gap-3 justify-end pt-4 border-t border-gray-300 dark:border-gray-700",
7102
7233
  children: [/*#__PURE__*/jsx(Button, {
@@ -10574,9 +10705,18 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
10574
10705
  required: true,
10575
10706
  secret: true
10576
10707
  }
10708
+ },
10709
+ anthropic: {
10710
+ apiKey: {
10711
+ type: "text",
10712
+ displayName: "API Key",
10713
+ instructions: "Your Anthropic API key (starts with sk-ant-)",
10714
+ required: true,
10715
+ secret: true
10716
+ }
10577
10717
  }
10578
10718
  };
10579
- var schema = providerSchemas[providerType] || {};
10719
+ var schema = providerSchemas[providerType] || (matchingReq === null || matchingReq === void 0 ? void 0 : matchingReq.credentialSchema) || {};
10580
10720
  setProviderModalConfig({
10581
10721
  widgetId: widgetId,
10582
10722
  providerType: providerType,
@@ -27322,6 +27462,7 @@ var ProvidersSection = function ProvidersSection(_ref) {
27322
27462
  if (createRequested && !prevCreateRequested.current) {
27323
27463
  resetForm();
27324
27464
  setSelectedName(null);
27465
+ setIsAddingMcp(false);
27325
27466
  setIsCreating(true);
27326
27467
  }
27327
27468
  prevCreateRequested.current = createRequested;