@trops/dash-core 0.1.6 → 0.1.8

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.js CHANGED
@@ -29,20 +29,20 @@ var reactInstantsearchHooksWeb = require('react-instantsearch-hooks-web');
29
29
  var reactRouterDom = require('react-router-dom');
30
30
 
31
31
  function _interopNamespaceDefault(e) {
32
- var n = Object.create(null);
33
- if (e) {
34
- Object.keys(e).forEach(function (k) {
35
- if (k !== 'default') {
36
- var d = Object.getOwnPropertyDescriptor(e, k);
37
- Object.defineProperty(n, k, d.get ? d : {
38
- enumerable: true,
39
- get: function () { return e[k]; }
40
- });
41
- }
32
+ var n = Object.create(null);
33
+ if (e) {
34
+ Object.keys(e).forEach(function (k) {
35
+ if (k !== 'default') {
36
+ var d = Object.getOwnPropertyDescriptor(e, k);
37
+ Object.defineProperty(n, k, d.get ? d : {
38
+ enumerable: true,
39
+ get: function () { return e[k]; }
42
40
  });
43
- }
44
- n.default = e;
45
- return Object.freeze(n);
41
+ }
42
+ });
43
+ }
44
+ n.default = e;
45
+ return Object.freeze(n);
46
46
  }
47
47
 
48
48
  var DashReact__namespace = /*#__PURE__*/_interopNamespaceDefault(DashReact);
@@ -50,8 +50,8 @@ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
50
50
  var jsxRuntime__namespace = /*#__PURE__*/_interopNamespaceDefault(jsxRuntime);
51
51
  var ReactDOM__namespace = /*#__PURE__*/_interopNamespaceDefault(ReactDOM);
52
52
 
53
- function ownKeys$u(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
54
- function _objectSpread$u(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$u(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$u(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
53
+ function ownKeys$w(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
54
+ function _objectSpread$w(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$w(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$w(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
55
55
  var event = {
56
56
  list: new Map(),
57
57
  // Map(1) { '<widget-UUID>' => { 'CustomSearchbar[10].searchQueryChanged': [] } }
@@ -113,7 +113,7 @@ var event = {
113
113
  uuid: subscriber["uuid"]
114
114
  };
115
115
  if ("action" in subscriber && subscriber.action !== undefined) {
116
- subscriber["action"](_objectSpread$u({}, objectToSend));
116
+ subscriber["action"](_objectSpread$w({}, objectToSend));
117
117
  }
118
118
  });
119
119
  }
@@ -739,103 +739,103 @@ var CHOOSE_FILE_ERROR = "choose-file-error";
739
739
  // };
740
740
 
741
741
  var apiEvents = /*#__PURE__*/Object.freeze({
742
- __proto__: null,
743
- ALGOLIA_ANALYTICS_FOR_QUERY: ALGOLIA_ANALYTICS_FOR_QUERY,
744
- ALGOLIA_ANALYTICS_FOR_QUERY_COMPLETE: ALGOLIA_ANALYTICS_FOR_QUERY_COMPLETE,
745
- ALGOLIA_ANALYTICS_FOR_QUERY_ERROR: ALGOLIA_ANALYTICS_FOR_QUERY_ERROR,
746
- ALGOLIA_LIST_INDICES: ALGOLIA_LIST_INDICES,
747
- ALGOLIA_LIST_INDICES_COMPLETE: ALGOLIA_LIST_INDICES_COMPLETE,
748
- ALGOLIA_LIST_INDICES_ERROR: ALGOLIA_LIST_INDICES_ERROR,
749
- CHOOSE_FILE: CHOOSE_FILE,
750
- CHOOSE_FILE_COMPLETE: CHOOSE_FILE_COMPLETE,
751
- CHOOSE_FILE_ERROR: CHOOSE_FILE_ERROR,
752
- DATA_JSON_TO_CSV_FILE: DATA_JSON_TO_CSV_FILE,
753
- DATA_JSON_TO_CSV_FILE_COMPLETE: DATA_JSON_TO_CSV_FILE_COMPLETE,
754
- DATA_JSON_TO_CSV_FILE_ERROR: DATA_JSON_TO_CSV_FILE_ERROR,
755
- DATA_JSON_TO_CSV_STRING: DATA_JSON_TO_CSV_STRING,
756
- DATA_JSON_TO_CSV_STRING_COMPLETE: DATA_JSON_TO_CSV_STRING_COMPLETE,
757
- DATA_JSON_TO_CSV_STRING_ERROR: DATA_JSON_TO_CSV_STRING_ERROR,
758
- DATA_READ_FROM_FILE: DATA_READ_FROM_FILE,
759
- DATA_READ_FROM_FILE_COMPLETE: DATA_READ_FROM_FILE_COMPLETE,
760
- DATA_READ_FROM_FILE_ERROR: DATA_READ_FROM_FILE_ERROR,
761
- DATA_SAVE_TO_FILE: DATA_SAVE_TO_FILE,
762
- DATA_SAVE_TO_FILE_COMPLETE: DATA_SAVE_TO_FILE_COMPLETE,
763
- DATA_SAVE_TO_FILE_ERROR: DATA_SAVE_TO_FILE_ERROR,
764
- LAYOUT_LIST: LAYOUT_LIST,
765
- LAYOUT_LIST_COMPLETE: LAYOUT_LIST_COMPLETE,
766
- LAYOUT_LIST_ERROR: LAYOUT_LIST_ERROR,
767
- LAYOUT_SAVE: LAYOUT_SAVE,
768
- LAYOUT_SAVE_COMPLETE: LAYOUT_SAVE_COMPLETE,
769
- LAYOUT_SAVE_ERROR: LAYOUT_SAVE_ERROR,
770
- MCP_CALL_TOOL_COMPLETE: MCP_CALL_TOOL_COMPLETE,
771
- MCP_CALL_TOOL_ERROR: MCP_CALL_TOOL_ERROR,
772
- MCP_GET_CATALOG_COMPLETE: MCP_GET_CATALOG_COMPLETE,
773
- MCP_GET_CATALOG_ERROR: MCP_GET_CATALOG_ERROR,
774
- MCP_LIST_RESOURCES_COMPLETE: MCP_LIST_RESOURCES_COMPLETE,
775
- MCP_LIST_RESOURCES_ERROR: MCP_LIST_RESOURCES_ERROR,
776
- MCP_LIST_TOOLS_COMPLETE: MCP_LIST_TOOLS_COMPLETE,
777
- MCP_LIST_TOOLS_ERROR: MCP_LIST_TOOLS_ERROR,
778
- MCP_READ_RESOURCE_COMPLETE: MCP_READ_RESOURCE_COMPLETE,
779
- MCP_READ_RESOURCE_ERROR: MCP_READ_RESOURCE_ERROR,
780
- MCP_SERVER_STATUS_COMPLETE: MCP_SERVER_STATUS_COMPLETE,
781
- MCP_SERVER_STATUS_ERROR: MCP_SERVER_STATUS_ERROR,
782
- MCP_START_SERVER_COMPLETE: MCP_START_SERVER_COMPLETE,
783
- MCP_START_SERVER_ERROR: MCP_START_SERVER_ERROR,
784
- MCP_STOP_SERVER_COMPLETE: MCP_STOP_SERVER_COMPLETE,
785
- MCP_STOP_SERVER_ERROR: MCP_STOP_SERVER_ERROR,
786
- MENU_ITEMS_DELETE: MENU_ITEMS_DELETE,
787
- MENU_ITEMS_DELETE_COMPLETE: MENU_ITEMS_DELETE_COMPLETE,
788
- MENU_ITEMS_DELETE_ERROR: MENU_ITEMS_DELETE_ERROR,
789
- MENU_ITEMS_LIST: MENU_ITEMS_LIST,
790
- MENU_ITEMS_LIST_COMPLETE: MENU_ITEMS_LIST_COMPLETE,
791
- MENU_ITEMS_LIST_ERROR: MENU_ITEMS_LIST_ERROR,
792
- MENU_ITEMS_SAVE: MENU_ITEMS_SAVE,
793
- MENU_ITEMS_SAVE_COMPLETE: MENU_ITEMS_SAVE_COMPLETE,
794
- MENU_ITEMS_SAVE_ERROR: MENU_ITEMS_SAVE_ERROR,
795
- PROVIDER_DELETE_COMPLETE: PROVIDER_DELETE_COMPLETE,
796
- PROVIDER_DELETE_ERROR: PROVIDER_DELETE_ERROR,
797
- PROVIDER_GET_COMPLETE: PROVIDER_GET_COMPLETE,
798
- PROVIDER_GET_ERROR: PROVIDER_GET_ERROR,
799
- PROVIDER_LIST_COMPLETE: PROVIDER_LIST_COMPLETE,
800
- PROVIDER_LIST_ERROR: PROVIDER_LIST_ERROR,
801
- PROVIDER_SAVE_COMPLETE: PROVIDER_SAVE_COMPLETE,
802
- PROVIDER_SAVE_ERROR: PROVIDER_SAVE_ERROR,
803
- SECURE_STORAGE_ENCRYPT_STRING: SECURE_STORAGE_ENCRYPT_STRING,
804
- SECURE_STORAGE_ENCRYPT_STRING_COMPLETE: SECURE_STORAGE_ENCRYPT_STRING_COMPLETE,
805
- SECURE_STORAGE_ENCRYPT_STRING_ERROR: SECURE_STORAGE_ENCRYPT_STRING_ERROR,
806
- SECURE_STORE_ENCRYPTION_CHECK: SECURE_STORE_ENCRYPTION_CHECK,
807
- SECURE_STORE_ENCRYPTION_CHECK_COMPLETE: SECURE_STORE_ENCRYPTION_CHECK_COMPLETE,
808
- SECURE_STORE_ENCRYPTION_CHECK_ERROR: SECURE_STORE_ENCRYPTION_CHECK_ERROR,
809
- SECURE_STORE_GET_DATA: SECURE_STORE_GET_DATA,
810
- SECURE_STORE_GET_DATA_COMPLETE: SECURE_STORE_GET_DATA_COMPLETE,
811
- SECURE_STORE_GET_DATA_ERROR: SECURE_STORE_GET_DATA_ERROR,
812
- SECURE_STORE_SET_DATA: SECURE_STORE_SET_DATA,
813
- SECURE_STORE_SET_DATA_COMPLETE: SECURE_STORE_SET_DATA_COMPLETE,
814
- SECURE_STORE_SET_DATA_ERROR: SECURE_STORE_SET_DATA_ERROR,
815
- SETTINGS_GET: SETTINGS_GET,
816
- SETTINGS_GET_COMPLETE: SETTINGS_GET_COMPLETE,
817
- SETTINGS_GET_ERROR: SETTINGS_GET_ERROR,
818
- SETTINGS_SAVE: SETTINGS_SAVE,
819
- SETTINGS_SAVE_COMPLETE: SETTINGS_SAVE_COMPLETE,
820
- SETTINGS_SAVE_ERROR: SETTINGS_SAVE_ERROR,
821
- THEME_DELETE: THEME_DELETE,
822
- THEME_DELETE_COMPLETE: THEME_DELETE_COMPLETE,
823
- THEME_DELETE_ERROR: THEME_DELETE_ERROR,
824
- THEME_LIST: THEME_LIST,
825
- THEME_LIST_COMPLETE: THEME_LIST_COMPLETE,
826
- THEME_LIST_ERROR: THEME_LIST_ERROR,
827
- THEME_SAVE: THEME_SAVE,
828
- THEME_SAVE_COMPLETE: THEME_SAVE_COMPLETE,
829
- THEME_SAVE_ERROR: THEME_SAVE_ERROR,
830
- WORKSPACE_DELETE: WORKSPACE_DELETE,
831
- WORKSPACE_DELETE_COMPLETE: WORKSPACE_DELETE_COMPLETE,
832
- WORKSPACE_DELETE_ERROR: WORKSPACE_DELETE_ERROR,
833
- WORKSPACE_LIST: WORKSPACE_LIST,
834
- WORKSPACE_LIST_COMPLETE: WORKSPACE_LIST_COMPLETE,
835
- WORKSPACE_LIST_ERROR: WORKSPACE_LIST_ERROR,
836
- WORKSPACE_SAVE: WORKSPACE_SAVE,
837
- WORKSPACE_SAVE_COMPLETE: WORKSPACE_SAVE_COMPLETE,
838
- WORKSPACE_SAVE_ERROR: WORKSPACE_SAVE_ERROR
742
+ __proto__: null,
743
+ ALGOLIA_ANALYTICS_FOR_QUERY: ALGOLIA_ANALYTICS_FOR_QUERY,
744
+ ALGOLIA_ANALYTICS_FOR_QUERY_COMPLETE: ALGOLIA_ANALYTICS_FOR_QUERY_COMPLETE,
745
+ ALGOLIA_ANALYTICS_FOR_QUERY_ERROR: ALGOLIA_ANALYTICS_FOR_QUERY_ERROR,
746
+ ALGOLIA_LIST_INDICES: ALGOLIA_LIST_INDICES,
747
+ ALGOLIA_LIST_INDICES_COMPLETE: ALGOLIA_LIST_INDICES_COMPLETE,
748
+ ALGOLIA_LIST_INDICES_ERROR: ALGOLIA_LIST_INDICES_ERROR,
749
+ CHOOSE_FILE: CHOOSE_FILE,
750
+ CHOOSE_FILE_COMPLETE: CHOOSE_FILE_COMPLETE,
751
+ CHOOSE_FILE_ERROR: CHOOSE_FILE_ERROR,
752
+ DATA_JSON_TO_CSV_FILE: DATA_JSON_TO_CSV_FILE,
753
+ DATA_JSON_TO_CSV_FILE_COMPLETE: DATA_JSON_TO_CSV_FILE_COMPLETE,
754
+ DATA_JSON_TO_CSV_FILE_ERROR: DATA_JSON_TO_CSV_FILE_ERROR,
755
+ DATA_JSON_TO_CSV_STRING: DATA_JSON_TO_CSV_STRING,
756
+ DATA_JSON_TO_CSV_STRING_COMPLETE: DATA_JSON_TO_CSV_STRING_COMPLETE,
757
+ DATA_JSON_TO_CSV_STRING_ERROR: DATA_JSON_TO_CSV_STRING_ERROR,
758
+ DATA_READ_FROM_FILE: DATA_READ_FROM_FILE,
759
+ DATA_READ_FROM_FILE_COMPLETE: DATA_READ_FROM_FILE_COMPLETE,
760
+ DATA_READ_FROM_FILE_ERROR: DATA_READ_FROM_FILE_ERROR,
761
+ DATA_SAVE_TO_FILE: DATA_SAVE_TO_FILE,
762
+ DATA_SAVE_TO_FILE_COMPLETE: DATA_SAVE_TO_FILE_COMPLETE,
763
+ DATA_SAVE_TO_FILE_ERROR: DATA_SAVE_TO_FILE_ERROR,
764
+ LAYOUT_LIST: LAYOUT_LIST,
765
+ LAYOUT_LIST_COMPLETE: LAYOUT_LIST_COMPLETE,
766
+ LAYOUT_LIST_ERROR: LAYOUT_LIST_ERROR,
767
+ LAYOUT_SAVE: LAYOUT_SAVE,
768
+ LAYOUT_SAVE_COMPLETE: LAYOUT_SAVE_COMPLETE,
769
+ LAYOUT_SAVE_ERROR: LAYOUT_SAVE_ERROR,
770
+ MCP_CALL_TOOL_COMPLETE: MCP_CALL_TOOL_COMPLETE,
771
+ MCP_CALL_TOOL_ERROR: MCP_CALL_TOOL_ERROR,
772
+ MCP_GET_CATALOG_COMPLETE: MCP_GET_CATALOG_COMPLETE,
773
+ MCP_GET_CATALOG_ERROR: MCP_GET_CATALOG_ERROR,
774
+ MCP_LIST_RESOURCES_COMPLETE: MCP_LIST_RESOURCES_COMPLETE,
775
+ MCP_LIST_RESOURCES_ERROR: MCP_LIST_RESOURCES_ERROR,
776
+ MCP_LIST_TOOLS_COMPLETE: MCP_LIST_TOOLS_COMPLETE,
777
+ MCP_LIST_TOOLS_ERROR: MCP_LIST_TOOLS_ERROR,
778
+ MCP_READ_RESOURCE_COMPLETE: MCP_READ_RESOURCE_COMPLETE,
779
+ MCP_READ_RESOURCE_ERROR: MCP_READ_RESOURCE_ERROR,
780
+ MCP_SERVER_STATUS_COMPLETE: MCP_SERVER_STATUS_COMPLETE,
781
+ MCP_SERVER_STATUS_ERROR: MCP_SERVER_STATUS_ERROR,
782
+ MCP_START_SERVER_COMPLETE: MCP_START_SERVER_COMPLETE,
783
+ MCP_START_SERVER_ERROR: MCP_START_SERVER_ERROR,
784
+ MCP_STOP_SERVER_COMPLETE: MCP_STOP_SERVER_COMPLETE,
785
+ MCP_STOP_SERVER_ERROR: MCP_STOP_SERVER_ERROR,
786
+ MENU_ITEMS_DELETE: MENU_ITEMS_DELETE,
787
+ MENU_ITEMS_DELETE_COMPLETE: MENU_ITEMS_DELETE_COMPLETE,
788
+ MENU_ITEMS_DELETE_ERROR: MENU_ITEMS_DELETE_ERROR,
789
+ MENU_ITEMS_LIST: MENU_ITEMS_LIST,
790
+ MENU_ITEMS_LIST_COMPLETE: MENU_ITEMS_LIST_COMPLETE,
791
+ MENU_ITEMS_LIST_ERROR: MENU_ITEMS_LIST_ERROR,
792
+ MENU_ITEMS_SAVE: MENU_ITEMS_SAVE,
793
+ MENU_ITEMS_SAVE_COMPLETE: MENU_ITEMS_SAVE_COMPLETE,
794
+ MENU_ITEMS_SAVE_ERROR: MENU_ITEMS_SAVE_ERROR,
795
+ PROVIDER_DELETE_COMPLETE: PROVIDER_DELETE_COMPLETE,
796
+ PROVIDER_DELETE_ERROR: PROVIDER_DELETE_ERROR,
797
+ PROVIDER_GET_COMPLETE: PROVIDER_GET_COMPLETE,
798
+ PROVIDER_GET_ERROR: PROVIDER_GET_ERROR,
799
+ PROVIDER_LIST_COMPLETE: PROVIDER_LIST_COMPLETE,
800
+ PROVIDER_LIST_ERROR: PROVIDER_LIST_ERROR,
801
+ PROVIDER_SAVE_COMPLETE: PROVIDER_SAVE_COMPLETE,
802
+ PROVIDER_SAVE_ERROR: PROVIDER_SAVE_ERROR,
803
+ SECURE_STORAGE_ENCRYPT_STRING: SECURE_STORAGE_ENCRYPT_STRING,
804
+ SECURE_STORAGE_ENCRYPT_STRING_COMPLETE: SECURE_STORAGE_ENCRYPT_STRING_COMPLETE,
805
+ SECURE_STORAGE_ENCRYPT_STRING_ERROR: SECURE_STORAGE_ENCRYPT_STRING_ERROR,
806
+ SECURE_STORE_ENCRYPTION_CHECK: SECURE_STORE_ENCRYPTION_CHECK,
807
+ SECURE_STORE_ENCRYPTION_CHECK_COMPLETE: SECURE_STORE_ENCRYPTION_CHECK_COMPLETE,
808
+ SECURE_STORE_ENCRYPTION_CHECK_ERROR: SECURE_STORE_ENCRYPTION_CHECK_ERROR,
809
+ SECURE_STORE_GET_DATA: SECURE_STORE_GET_DATA,
810
+ SECURE_STORE_GET_DATA_COMPLETE: SECURE_STORE_GET_DATA_COMPLETE,
811
+ SECURE_STORE_GET_DATA_ERROR: SECURE_STORE_GET_DATA_ERROR,
812
+ SECURE_STORE_SET_DATA: SECURE_STORE_SET_DATA,
813
+ SECURE_STORE_SET_DATA_COMPLETE: SECURE_STORE_SET_DATA_COMPLETE,
814
+ SECURE_STORE_SET_DATA_ERROR: SECURE_STORE_SET_DATA_ERROR,
815
+ SETTINGS_GET: SETTINGS_GET,
816
+ SETTINGS_GET_COMPLETE: SETTINGS_GET_COMPLETE,
817
+ SETTINGS_GET_ERROR: SETTINGS_GET_ERROR,
818
+ SETTINGS_SAVE: SETTINGS_SAVE,
819
+ SETTINGS_SAVE_COMPLETE: SETTINGS_SAVE_COMPLETE,
820
+ SETTINGS_SAVE_ERROR: SETTINGS_SAVE_ERROR,
821
+ THEME_DELETE: THEME_DELETE,
822
+ THEME_DELETE_COMPLETE: THEME_DELETE_COMPLETE,
823
+ THEME_DELETE_ERROR: THEME_DELETE_ERROR,
824
+ THEME_LIST: THEME_LIST,
825
+ THEME_LIST_COMPLETE: THEME_LIST_COMPLETE,
826
+ THEME_LIST_ERROR: THEME_LIST_ERROR,
827
+ THEME_SAVE: THEME_SAVE,
828
+ THEME_SAVE_COMPLETE: THEME_SAVE_COMPLETE,
829
+ THEME_SAVE_ERROR: THEME_SAVE_ERROR,
830
+ WORKSPACE_DELETE: WORKSPACE_DELETE,
831
+ WORKSPACE_DELETE_COMPLETE: WORKSPACE_DELETE_COMPLETE,
832
+ WORKSPACE_DELETE_ERROR: WORKSPACE_DELETE_ERROR,
833
+ WORKSPACE_LIST: WORKSPACE_LIST,
834
+ WORKSPACE_LIST_COMPLETE: WORKSPACE_LIST_COMPLETE,
835
+ WORKSPACE_LIST_ERROR: WORKSPACE_LIST_ERROR,
836
+ WORKSPACE_SAVE: WORKSPACE_SAVE,
837
+ WORKSPACE_SAVE_COMPLETE: WORKSPACE_SAVE_COMPLETE,
838
+ WORKSPACE_SAVE_ERROR: WORKSPACE_SAVE_ERROR
839
839
  });
840
840
 
841
841
  var ElectronDashboardApi = /*#__PURE__*/function () {
@@ -2501,8 +2501,8 @@ var DashboardWrapper = function DashboardWrapper(_ref) {
2501
2501
  });
2502
2502
  };
2503
2503
 
2504
- function ownKeys$t(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2505
- function _objectSpread$t(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$t(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$t(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2504
+ function ownKeys$v(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2505
+ function _objectSpread$v(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$v(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$v(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2506
2506
  var DashboardThemeProvider = function DashboardThemeProvider(_ref) {
2507
2507
  var themeKey = _ref.themeKey,
2508
2508
  children = _ref.children;
@@ -2514,7 +2514,7 @@ var DashboardThemeProvider = function DashboardThemeProvider(_ref) {
2514
2514
  var dashboardTheme = themes[themeKey];
2515
2515
  var themeValue = dashboardTheme ? dashboardTheme[themeVariant] || null : null;
2516
2516
  if (!themeValue) return null;
2517
- return _objectSpread$t(_objectSpread$t({}, parentContext), {}, {
2517
+ return _objectSpread$v(_objectSpread$v({}, parentContext), {}, {
2518
2518
  currentTheme: themeValue,
2519
2519
  currentThemeKey: themeKey,
2520
2520
  theme: themeValue,
@@ -2532,8 +2532,8 @@ var DashboardThemeProvider = function DashboardThemeProvider(_ref) {
2532
2532
  });
2533
2533
  };
2534
2534
 
2535
- function ownKeys$s(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2536
- function _objectSpread$s(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$s(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$s(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2535
+ function ownKeys$u(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2536
+ function _objectSpread$u(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$u(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$u(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2537
2537
  var AppThemeScope = function AppThemeScope(_ref) {
2538
2538
  var children = _ref.children;
2539
2539
  var ctx = React.useContext(DashReact.ThemeContext);
@@ -2541,7 +2541,7 @@ var AppThemeScope = function AppThemeScope(_ref) {
2541
2541
  children: children
2542
2542
  });
2543
2543
  return /*#__PURE__*/jsxRuntime.jsx(DashReact.ThemeContext.Provider, {
2544
- value: _objectSpread$s(_objectSpread$s({}, ctx), {}, {
2544
+ value: _objectSpread$u(_objectSpread$u({}, ctx), {}, {
2545
2545
  currentTheme: ctx.appTheme,
2546
2546
  currentThemeKey: ctx.appThemeKey,
2547
2547
  theme: ctx.appTheme,
@@ -2653,8 +2653,8 @@ var LayoutContainer = function LayoutContainer(_ref) {
2653
2653
  });
2654
2654
  };
2655
2655
 
2656
- function ownKeys$r(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2657
- function _objectSpread$r(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$r(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$r(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2656
+ function ownKeys$t(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2657
+ function _objectSpread$t(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$t(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$t(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2658
2658
  function _createForOfIteratorHelper$7(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$7(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; } } }; }
2659
2659
  function _unsupportedIterableToArray$7(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$7(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$7(r, a) : void 0; } }
2660
2660
  function _arrayLikeToArray$7(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; }
@@ -2898,7 +2898,7 @@ function createLayoutFromTemplate(template) {
2898
2898
  try {
2899
2899
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
2900
2900
  var cell = _step.value;
2901
- grid[cell.key] = _objectSpread$r({
2901
+ grid[cell.key] = _objectSpread$t({
2902
2902
  component: null,
2903
2903
  hide: cell.hide || false
2904
2904
  }, cell.span ? {
@@ -3000,7 +3000,7 @@ var LayoutManagerPicker = function LayoutManagerPicker(_ref2) {
3000
3000
  children: selectedTemplate.description
3001
3001
  }), /*#__PURE__*/jsxRuntime.jsxs("p", {
3002
3002
  className: "text-sm text-gray-600 mt-4",
3003
- children: [selectedTemplate.rows, " row", selectedTemplate.rows !== 1 ? "s" : "", " x", " ", selectedTemplate.cols, " column", selectedTemplate.cols !== 1 ? "s" : ""]
3003
+ children: [selectedTemplate.rows, " row", selectedTemplate.rows !== 1 ? "s" : "", " x ", selectedTemplate.cols, " ", "column", selectedTemplate.cols !== 1 ? "s" : ""]
3004
3004
  })]
3005
3005
  }) : /*#__PURE__*/jsxRuntime.jsx("p", {
3006
3006
  className: "text-base font-normal text-gray-400",
@@ -4173,8 +4173,8 @@ var LayoutBuilderAddItemModal = function LayoutBuilderAddItemModal(_ref) {
4173
4173
  });
4174
4174
  };
4175
4175
 
4176
- function ownKeys$q(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4177
- function _objectSpread$q(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$q(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$q(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4176
+ function ownKeys$s(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4177
+ function _objectSpread$s(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$s(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$s(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4178
4178
  var PanelEditItem = function PanelEditItem(_ref) {
4179
4179
  var _ComponentManager$get;
4180
4180
  var workspace = _ref.workspace,
@@ -4234,7 +4234,7 @@ var PanelEditItem = function PanelEditItem(_ref) {
4234
4234
  var uuid = newItem.uuid || newItem.uuidString;
4235
4235
  if (uuid) {
4236
4236
  workspaceTemp.selectedProviders = workspaceTemp.selectedProviders || {};
4237
- workspaceTemp.selectedProviders[uuid] = _objectSpread$q(_objectSpread$q({}, workspaceTemp.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
4237
+ workspaceTemp.selectedProviders[uuid] = _objectSpread$s(_objectSpread$s({}, workspaceTemp.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
4238
4238
  }
4239
4239
  onUpdate(newItem, workspaceTemp);
4240
4240
  forceUpdate();
@@ -4344,7 +4344,7 @@ var PanelEditItem = function PanelEditItem(_ref) {
4344
4344
  var _ref5 = _slicedToArray(_ref4, 2),
4345
4345
  name = _ref5[0],
4346
4346
  p = _ref5[1];
4347
- return _objectSpread$q({
4347
+ return _objectSpread$s({
4348
4348
  name: name
4349
4349
  }, p);
4350
4350
  });
@@ -4352,9 +4352,9 @@ var PanelEditItem = function PanelEditItem(_ref) {
4352
4352
  className: "flex flex-col space-y-1",
4353
4353
  children: [/*#__PURE__*/jsxRuntime.jsxs("span", {
4354
4354
  className: "text-sm font-medium opacity-70",
4355
- children: [providerType, req.required && /*#__PURE__*/jsxRuntime.jsxs("span", {
4355
+ children: [providerType, req.required && /*#__PURE__*/jsxRuntime.jsx("span", {
4356
4356
  className: "text-red-500",
4357
- children: [" ", "*"]
4357
+ children: " *"
4358
4358
  })]
4359
4359
  }), /*#__PURE__*/jsxRuntime.jsxs(DashReact.SelectMenu, {
4360
4360
  name: "provider-".concat(providerType),
@@ -4386,8 +4386,8 @@ var _excluded$5 = ["rows", "cols"];
4386
4386
  function _createForOfIteratorHelper$6(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$6(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; } } }; }
4387
4387
  function _unsupportedIterableToArray$6(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$6(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$6(r, a) : void 0; } }
4388
4388
  function _arrayLikeToArray$6(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; }
4389
- function ownKeys$p(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4390
- function _objectSpread$p(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$p(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$p(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4389
+ function ownKeys$r(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4390
+ function _objectSpread$r(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$r(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$r(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4391
4391
  var defaultGrid = {
4392
4392
  rows: 1,
4393
4393
  cols: 1,
@@ -4408,7 +4408,7 @@ function GridEditor(_ref) {
4408
4408
  setGrid = _useState2[1];
4409
4409
  var addRow = function addRow() {
4410
4410
  var newRow = grid.rows;
4411
- var newGrid = _objectSpread$p(_objectSpread$p({}, grid), {}, {
4411
+ var newGrid = _objectSpread$r(_objectSpread$r({}, grid), {}, {
4412
4412
  rows: grid.rows + 1
4413
4413
  });
4414
4414
  for (var col = 0; col < grid.cols; col++) {
@@ -4423,7 +4423,7 @@ function GridEditor(_ref) {
4423
4423
  };
4424
4424
  var addColumn = function addColumn() {
4425
4425
  var newCol = grid.cols;
4426
- var newGrid = _objectSpread$p(_objectSpread$p({}, grid), {}, {
4426
+ var newGrid = _objectSpread$r(_objectSpread$r({}, grid), {}, {
4427
4427
  cols: grid.cols + 1
4428
4428
  });
4429
4429
  for (var row = 0; row < grid.rows; row++) {
@@ -4456,8 +4456,8 @@ function GridEditor(_ref) {
4456
4456
  });
4457
4457
  }
4458
4458
  if (grid[nextKey]) {
4459
- var newGrid = _objectSpread$p({}, grid);
4460
- newGrid[currentKey] = _objectSpread$p(_objectSpread$p({}, newGrid[currentKey]), {}, {
4459
+ var newGrid = _objectSpread$r({}, grid);
4460
+ newGrid[currentKey] = _objectSpread$r(_objectSpread$r({}, newGrid[currentKey]), {}, {
4461
4461
  colSpan: newGrid[currentKey].colSpan + 1
4462
4462
  });
4463
4463
  delete newGrid[nextKey];
@@ -4470,8 +4470,8 @@ function GridEditor(_ref) {
4470
4470
  var currentKey = "".concat(row, ".").concat(col);
4471
4471
  var belowKey = "".concat(row + 1, ".").concat(col);
4472
4472
  if (grid[belowKey]) {
4473
- var newGrid = _objectSpread$p({}, grid);
4474
- newGrid[currentKey] = _objectSpread$p(_objectSpread$p({}, newGrid[currentKey]), {}, {
4473
+ var newGrid = _objectSpread$r({}, grid);
4474
+ newGrid[currentKey] = _objectSpread$r(_objectSpread$r({}, newGrid[currentKey]), {}, {
4475
4475
  rowSpan: newGrid[currentKey].rowSpan + 1
4476
4476
  });
4477
4477
  delete newGrid[belowKey];
@@ -4488,7 +4488,7 @@ function GridEditor(_ref) {
4488
4488
  var splitCell = function splitCell(row, col) {
4489
4489
  var key = "".concat(row, ".").concat(col);
4490
4490
  var cell = grid[key];
4491
- var newGrid = _objectSpread$p({}, grid);
4491
+ var newGrid = _objectSpread$r({}, grid);
4492
4492
 
4493
4493
  // we have to check the colspan, and since the colspan is greater than 1
4494
4494
  // Only handle horizontal split if colSpan > 1
@@ -4504,13 +4504,13 @@ function GridEditor(_ref) {
4504
4504
  var oldKey = "".concat(row, ".").concat(c);
4505
4505
  var newKey = "".concat(row, ".").concat(c + 1);
4506
4506
  if (newGrid[oldKey]) {
4507
- newGrid[newKey] = _objectSpread$p({}, newGrid[oldKey]);
4507
+ newGrid[newKey] = _objectSpread$r({}, newGrid[oldKey]);
4508
4508
  delete newGrid[oldKey];
4509
4509
  }
4510
4510
  }
4511
4511
 
4512
4512
  // Update the original cell's colSpan
4513
- newGrid[key] = _objectSpread$p(_objectSpread$p({}, cell), {}, {
4513
+ newGrid[key] = _objectSpread$r(_objectSpread$r({}, cell), {}, {
4514
4514
  colSpan: cell.colSpan - 1
4515
4515
  });
4516
4516
 
@@ -4522,7 +4522,7 @@ function GridEditor(_ref) {
4522
4522
  };
4523
4523
  }
4524
4524
  if (cell.rowSpan > 1) {
4525
- newGrid[key] = _objectSpread$p(_objectSpread$p({}, newGrid[key]), {}, {
4525
+ newGrid[key] = _objectSpread$r(_objectSpread$r({}, newGrid[key]), {}, {
4526
4526
  rowSpan: cell.rowSpan - 1
4527
4527
  });
4528
4528
  newGrid["".concat(row + 1, ".").concat(col)] = {
@@ -4641,7 +4641,7 @@ function GridEditor(_ref) {
4641
4641
  var fromKey = "".concat(from.row, ".").concat(from.col);
4642
4642
  var toKey = "".concat(to.row, ".").concat(to.col);
4643
4643
  if (fromKey === toKey) return;
4644
- var newGrid = _objectSpread$p({}, grid);
4644
+ var newGrid = _objectSpread$r({}, grid);
4645
4645
 
4646
4646
  // Swap the cells
4647
4647
  var temp = newGrid[fromKey];
@@ -4667,7 +4667,7 @@ function GridEditor(_ref) {
4667
4667
  // console.log("Grid updated:", sequencedGrid);
4668
4668
  }
4669
4669
  function resetGridLayout() {
4670
- var newGrid = _objectSpread$p({}, defaultGrid);
4670
+ var newGrid = _objectSpread$r({}, defaultGrid);
4671
4671
  setGrid(newGrid);
4672
4672
  onUpdate(newGrid);
4673
4673
  }
@@ -6712,7 +6712,7 @@ var MergeCellsModal = function MergeCellsModal(_ref) {
6712
6712
  children: "Merged Cell"
6713
6713
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
6714
6714
  className: "text-gray-500 text-xs mt-1",
6715
- children: [rowSpan, " row", rowSpan > 1 ? "s" : "", " \xD7 ", colSpan, " ", "column", colSpan > 1 ? "s" : ""]
6715
+ children: [rowSpan, " row", rowSpan > 1 ? "s" : "", " \xD7 ", colSpan, " column", colSpan > 1 ? "s" : ""]
6716
6716
  })]
6717
6717
  })
6718
6718
  }), /*#__PURE__*/jsxRuntime.jsxs(DashReact.Paragraph, {
@@ -6793,7 +6793,7 @@ var MergeCellsModal = function MergeCellsModal(_ref) {
6793
6793
  children: "Keep first widget"
6794
6794
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
6795
6795
  className: "text-xs text-gray-400",
6796
- children: ["Widget from cell", " ", cellNumbers[0]]
6796
+ children: ["Widget from cell ", cellNumbers[0]]
6797
6797
  })]
6798
6798
  })]
6799
6799
  }), /*#__PURE__*/jsxRuntime.jsxs("button", {
@@ -6813,7 +6813,7 @@ var MergeCellsModal = function MergeCellsModal(_ref) {
6813
6813
  children: "Keep last widget"
6814
6814
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
6815
6815
  className: "text-xs text-gray-400",
6816
- children: ["Widget from cell", " ", cellNumbers[cellNumbers.length - 1]]
6816
+ children: ["Widget from cell ", cellNumbers[cellNumbers.length - 1]]
6817
6817
  })]
6818
6818
  })]
6819
6819
  }), /*#__PURE__*/jsxRuntime.jsxs("button", {
@@ -6899,8 +6899,8 @@ var WidgetIcon = function WidgetIcon(_ref) {
6899
6899
  });
6900
6900
  };
6901
6901
 
6902
- function ownKeys$o(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6903
- function _objectSpread$o(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$o(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$o(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6902
+ function ownKeys$q(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6903
+ function _objectSpread$q(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$q(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$q(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6904
6904
  var ProviderForm = function ProviderForm(_ref) {
6905
6905
  var credentialSchema = _ref.credentialSchema,
6906
6906
  _ref$initialValues = _ref.initialValues,
@@ -6957,13 +6957,13 @@ var ProviderForm = function ProviderForm(_ref) {
6957
6957
  */
6958
6958
  var handleInputChange = function handleInputChange(fieldName, value) {
6959
6959
  setFormData(function (prev) {
6960
- return _objectSpread$o(_objectSpread$o({}, prev), {}, _defineProperty({}, fieldName, value));
6960
+ return _objectSpread$q(_objectSpread$q({}, prev), {}, _defineProperty({}, fieldName, value));
6961
6961
  });
6962
6962
 
6963
6963
  // Clear error for this field if it was filled
6964
6964
  if (errors[fieldName] && value !== null && value !== void 0 && value.trim()) {
6965
6965
  setErrors(function (prev) {
6966
- var newErrors = _objectSpread$o({}, prev);
6966
+ var newErrors = _objectSpread$q({}, prev);
6967
6967
  delete newErrors[fieldName];
6968
6968
  return newErrors;
6969
6969
  });
@@ -7001,7 +7001,7 @@ var ProviderForm = function ProviderForm(_ref) {
7001
7001
  // Clear error if filled
7002
7002
  if (errors.providerName && value !== null && value !== void 0 && value.trim()) {
7003
7003
  setErrors(function (prev) {
7004
- var newErrors = _objectSpread$o({}, prev);
7004
+ var newErrors = _objectSpread$q({}, prev);
7005
7005
  delete newErrors.providerName;
7006
7006
  return newErrors;
7007
7007
  });
@@ -7080,8 +7080,8 @@ var ProviderForm = function ProviderForm(_ref) {
7080
7080
  function _createForOfIteratorHelper$5(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$5(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; } } }; }
7081
7081
  function _unsupportedIterableToArray$5(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$5(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$5(r, a) : void 0; } }
7082
7082
  function _arrayLikeToArray$5(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; }
7083
- function ownKeys$n(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
7084
- function _objectSpread$n(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$n(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$n(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7083
+ function ownKeys$p(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
7084
+ function _objectSpread$p(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$p(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$p(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7085
7085
  var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
7086
7086
  var isOpen = _ref.isOpen,
7087
7087
  onClose = _ref.onClose,
@@ -7204,7 +7204,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
7204
7204
  .map(function (entry) {
7205
7205
  var widget = allWidgets[entry.widgetKey];
7206
7206
  if (!widget) return null; // Widget no longer exists
7207
- return _objectSpread$n(_objectSpread$n({
7207
+ return _objectSpread$p(_objectSpread$p({
7208
7208
  key: entry.widgetKey
7209
7209
  }, widget), {}, {
7210
7210
  savedProviders: entry.providers || {},
@@ -7344,7 +7344,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
7344
7344
  // Get widgets from ComponentManager
7345
7345
  var allWidgets = ComponentManager.map();
7346
7346
  var widgetList = Object.keys(allWidgets).map(function (key) {
7347
- return _objectSpread$n({
7347
+ return _objectSpread$p({
7348
7348
  key: key
7349
7349
  }, allWidgets[key]);
7350
7350
  }).filter(function (widget) {
@@ -7522,7 +7522,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
7522
7522
  setInlineCreateType(null);
7523
7523
  setInlineCreateSchema({});
7524
7524
  setInlineCreateError(null);
7525
- setSelectedProviders(_objectSpread$n(_objectSpread$n({}, selectedProviders), {}, _defineProperty({}, providerType, providerName)));
7525
+ setSelectedProviders(_objectSpread$p(_objectSpread$p({}, selectedProviders), {}, _defineProperty({}, providerType, providerName)));
7526
7526
  }
7527
7527
  };
7528
7528
  var handleInlineProviderSubmit = function handleInlineProviderSubmit(formData) {
@@ -7543,7 +7543,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
7543
7543
 
7544
7544
  // Auto-select the newly created provider
7545
7545
  setSelectedProviders(function (prev) {
7546
- return _objectSpread$n(_objectSpread$n({}, prev), {}, _defineProperty({}, providerType, providerName));
7546
+ return _objectSpread$p(_objectSpread$p({}, prev), {}, _defineProperty({}, providerType, providerName));
7547
7547
  });
7548
7548
 
7549
7549
  // Collapse the inline form
@@ -7561,7 +7561,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
7561
7561
  setInlineCreateError(null);
7562
7562
  };
7563
7563
  var handleConfigChange = function handleConfigChange(key, value) {
7564
- setUserConfigValues(_objectSpread$n(_objectSpread$n({}, userConfigValues), {}, _defineProperty({}, key, value)));
7564
+ setUserConfigValues(_objectSpread$p(_objectSpread$p({}, userConfigValues), {}, _defineProperty({}, key, value)));
7565
7565
  };
7566
7566
 
7567
7567
  // Install a package from the registry
@@ -7649,7 +7649,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
7649
7649
 
7650
7650
  // Phase 3: Save to recent widgets
7651
7651
  saveToRecent(selectedWidget, selectedProviders, userConfigValues);
7652
- onSelectWidget(_objectSpread$n(_objectSpread$n({}, selectedWidget), {}, {
7652
+ onSelectWidget(_objectSpread$p(_objectSpread$p({}, selectedWidget), {}, {
7653
7653
  selectedProviders: selectedProviders,
7654
7654
  // Pass to parent
7655
7655
  userConfigValues: userConfigValues // Pass to parent
@@ -7732,7 +7732,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
7732
7732
  children: group.displayName
7733
7733
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
7734
7734
  className: "text-xs text-gray-500",
7735
- children: [group.widgets.length, " widget", group.widgets.length !== 1 ? "s" : "", " ", "\xB7 v", group.version]
7735
+ children: [group.widgets.length, " widget", group.widgets.length !== 1 ? "s" : "", " \xB7 v", group.version]
7736
7736
  })]
7737
7737
  })]
7738
7738
  })
@@ -8102,7 +8102,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
8102
8102
  }, p.name);
8103
8103
  }), /*#__PURE__*/jsxRuntime.jsxs("option", {
8104
8104
  value: "__create_new__",
8105
- children: ["+ Create New", " ", providerReq.type]
8105
+ children: ["+ Create New ", providerReq.type]
8106
8106
  })]
8107
8107
  }), providerReq.required && !selectedProviders[providerReq.type] && inlineCreateType !== providerReq.type && /*#__PURE__*/jsxRuntime.jsx("p", {
8108
8108
  className: "text-xs text-red-400",
@@ -8883,7 +8883,7 @@ var ProviderSelector = function ProviderSelector(_ref) {
8883
8883
  children: [/*#__PURE__*/jsxRuntime.jsx("h2", {
8884
8884
  className: "text-2xl font-bold text-gray-100",
8885
8885
  children: providerType ? /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
8886
- children: ["Manage", " ", /*#__PURE__*/jsxRuntime.jsx("span", {
8886
+ children: ["Manage ", /*#__PURE__*/jsxRuntime.jsx("span", {
8887
8887
  className: "capitalize",
8888
8888
  children: providerType
8889
8889
  }), " ", "Providers"]
@@ -8984,6 +8984,8 @@ var ProviderSelector = function ProviderSelector(_ref) {
8984
8984
  });
8985
8985
  };
8986
8986
 
8987
+ function ownKeys$o(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
8988
+ function _objectSpread$o(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$o(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$o(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
8987
8989
  /**
8988
8990
  * Shared MCP utility functions.
8989
8991
  *
@@ -9090,6 +9092,296 @@ function isLikelySecret(name) {
9090
9092
  return /key|token|secret|password|credential|auth/.test(lower);
9091
9093
  }
9092
9094
 
9095
+ /**
9096
+ * Build an mcpConfig by overlaying advanced-section rows onto a catalog base config.
9097
+ *
9098
+ * For stdio: replaces `envMapping` with the rows from the advanced section.
9099
+ * For streamable_http: replaces `headerTemplate` with the rows from the advanced section.
9100
+ *
9101
+ * @param {object} baseMcpConfig - The catalog's original mcpConfig
9102
+ * @param {Array<{ envVar: string, credField: string }>} envMappingRows - Current env var rows
9103
+ * @param {Array<{ headerName: string, headerValue: string }>} headerRows - Current header rows
9104
+ * @returns {object} A new mcpConfig with overridden envMapping or headerTemplate
9105
+ */
9106
+ function buildMcpConfigFromOverrides(baseMcpConfig, envMappingRows, headerRows) {
9107
+ if (baseMcpConfig.transport === "streamable_http") {
9108
+ var headerTemplate = {};
9109
+ headerRows.forEach(function (row) {
9110
+ var name = row.headerName.trim();
9111
+ var value = row.headerValue.trim();
9112
+ if (name && value) {
9113
+ headerTemplate[name] = value;
9114
+ }
9115
+ });
9116
+ var config = _objectSpread$o({}, baseMcpConfig);
9117
+ if (Object.keys(headerTemplate).length > 0) {
9118
+ config.headerTemplate = headerTemplate;
9119
+ } else {
9120
+ delete config.headerTemplate;
9121
+ }
9122
+ return config;
9123
+ }
9124
+
9125
+ // stdio
9126
+ var envMapping = {};
9127
+ envMappingRows.forEach(function (row) {
9128
+ var env = row.envVar.trim();
9129
+ var cred = row.credField.trim();
9130
+ if (env && cred) {
9131
+ envMapping[env] = cred;
9132
+ }
9133
+ });
9134
+ return _objectSpread$o(_objectSpread$o({}, baseMcpConfig), {}, {
9135
+ envMapping: envMapping
9136
+ });
9137
+ }
9138
+
9139
+ /**
9140
+ * Convert an envMapping object into row state for the advanced config UI.
9141
+ *
9142
+ * @param {object} envMapping - e.g. { SLACK_BOT_TOKEN: "botToken" }
9143
+ * @param {Function} nextRowId - Function that returns a unique row ID
9144
+ * @returns {Array<{ id: string, envVar: string, credField: string }>}
9145
+ */
9146
+ function envMappingToRows(envMapping, nextRowId) {
9147
+ if (!envMapping) return [];
9148
+ return Object.entries(envMapping).map(function (_ref) {
9149
+ var _ref2 = _slicedToArray(_ref, 2),
9150
+ envVar = _ref2[0],
9151
+ credField = _ref2[1];
9152
+ return {
9153
+ id: nextRowId(),
9154
+ envVar: envVar,
9155
+ credField: credField
9156
+ };
9157
+ });
9158
+ }
9159
+
9160
+ /**
9161
+ * Convert a headerTemplate object into row state for the advanced config UI.
9162
+ *
9163
+ * @param {object} headerTemplate - e.g. { "Authorization": "Bearer {{apiKey}}" }
9164
+ * @param {Function} nextRowId - Function that returns a unique row ID
9165
+ * @returns {Array<{ id: string, headerName: string, headerValue: string }>}
9166
+ */
9167
+ function headerTemplateToRows(headerTemplate, nextRowId) {
9168
+ if (!headerTemplate) return [];
9169
+ return Object.entries(headerTemplate).map(function (_ref3) {
9170
+ var _ref4 = _slicedToArray(_ref3, 2),
9171
+ headerName = _ref4[0],
9172
+ headerValue = _ref4[1];
9173
+ return {
9174
+ id: nextRowId(),
9175
+ headerName: headerName,
9176
+ headerValue: headerValue
9177
+ };
9178
+ });
9179
+ }
9180
+
9181
+ function ownKeys$n(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9182
+ function _objectSpread$n(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$n(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$n(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
9183
+ var AdvancedMcpConfig = function AdvancedMcpConfig(_ref) {
9184
+ var transport = _ref.transport,
9185
+ envMappingRows = _ref.envMappingRows,
9186
+ onEnvMappingRowsChange = _ref.onEnvMappingRowsChange,
9187
+ headerRows = _ref.headerRows,
9188
+ onHeaderRowsChange = _ref.onHeaderRowsChange;
9189
+ var _useState = React.useState(false),
9190
+ _useState2 = _slicedToArray(_useState, 2),
9191
+ isExpanded = _useState2[0],
9192
+ setIsExpanded = _useState2[1];
9193
+ var rowIdRef = React.useRef(0);
9194
+ var nextRowId = function nextRowId() {
9195
+ return "adv_".concat(++rowIdRef.current);
9196
+ };
9197
+
9198
+ // --- env mapping row handlers ---
9199
+ var addEnvRow = function addEnvRow() {
9200
+ onEnvMappingRowsChange(function (prev) {
9201
+ return [].concat(_toConsumableArray(prev), [{
9202
+ id: nextRowId(),
9203
+ envVar: "",
9204
+ credField: ""
9205
+ }]);
9206
+ });
9207
+ };
9208
+ var updateEnvRow = function updateEnvRow(id, field, value) {
9209
+ onEnvMappingRowsChange(function (prev) {
9210
+ return prev.map(function (row) {
9211
+ return row.id === id ? _objectSpread$n(_objectSpread$n({}, row), {}, _defineProperty({}, field, value)) : row;
9212
+ });
9213
+ });
9214
+ };
9215
+ var removeEnvRow = function removeEnvRow(id) {
9216
+ onEnvMappingRowsChange(function (prev) {
9217
+ return prev.filter(function (row) {
9218
+ return row.id !== id;
9219
+ });
9220
+ });
9221
+ };
9222
+
9223
+ // --- header row handlers ---
9224
+ var addHeaderRow = function addHeaderRow() {
9225
+ onHeaderRowsChange(function (prev) {
9226
+ return [].concat(_toConsumableArray(prev), [{
9227
+ id: nextRowId(),
9228
+ headerName: "",
9229
+ headerValue: ""
9230
+ }]);
9231
+ });
9232
+ };
9233
+ var updateHeaderRow = function updateHeaderRow(id, field, value) {
9234
+ onHeaderRowsChange(function (prev) {
9235
+ return prev.map(function (row) {
9236
+ return row.id === id ? _objectSpread$n(_objectSpread$n({}, row), {}, _defineProperty({}, field, value)) : row;
9237
+ });
9238
+ });
9239
+ };
9240
+ var removeHeaderRow = function removeHeaderRow(id) {
9241
+ onHeaderRowsChange(function (prev) {
9242
+ return prev.filter(function (row) {
9243
+ return row.id !== id;
9244
+ });
9245
+ });
9246
+ };
9247
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
9248
+ className: "border border-white/10 rounded-lg overflow-hidden",
9249
+ children: [/*#__PURE__*/jsxRuntime.jsxs("button", {
9250
+ onClick: function onClick() {
9251
+ return setIsExpanded(function (prev) {
9252
+ return !prev;
9253
+ });
9254
+ },
9255
+ className: "flex items-center gap-2 w-full px-4 py-3 text-left text-sm hover:bg-white/5 transition-colors",
9256
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
9257
+ icon: isExpanded ? "chevron-down" : "chevron-right",
9258
+ className: "text-xs opacity-50"
9259
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
9260
+ className: "font-semibold opacity-70",
9261
+ children: "Advanced Configuration"
9262
+ })]
9263
+ }), isExpanded && /*#__PURE__*/jsxRuntime.jsx("div", {
9264
+ className: "px-4 pb-4 space-y-3",
9265
+ children: transport === "streamable_http" ?
9266
+ /*#__PURE__*/
9267
+ // HTTP headers
9268
+ jsxRuntime.jsxs(jsxRuntime.Fragment, {
9269
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
9270
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FormLabel, {
9271
+ label: "Request Headers"
9272
+ }), /*#__PURE__*/jsxRuntime.jsxs("p", {
9273
+ className: "text-sm opacity-50 mt-1",
9274
+ children: ["Use", " ", /*#__PURE__*/jsxRuntime.jsx("code", {
9275
+ className: "text-xs bg-white/10 px-1 py-0.5 rounded",
9276
+ children: "{{fieldName}}"
9277
+ }), " ", "in values for credential placeholders"]
9278
+ })]
9279
+ }), headerRows.map(function (row) {
9280
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
9281
+ className: "flex items-center gap-2",
9282
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
9283
+ className: "flex-1",
9284
+ children: /*#__PURE__*/jsxRuntime.jsx(DashReact.InputText, {
9285
+ value: row.headerName,
9286
+ onChange: function onChange(value) {
9287
+ return updateHeaderRow(row.id, "headerName", value);
9288
+ },
9289
+ placeholder: "Header-Name"
9290
+ })
9291
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
9292
+ className: "opacity-30 text-sm shrink-0",
9293
+ children: ":"
9294
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
9295
+ className: "flex-1",
9296
+ children: /*#__PURE__*/jsxRuntime.jsx(DashReact.InputText, {
9297
+ value: row.headerValue,
9298
+ onChange: function onChange(value) {
9299
+ return updateHeaderRow(row.id, "headerValue", value);
9300
+ },
9301
+ placeholder: "Bearer {{apiKey}}"
9302
+ })
9303
+ }), /*#__PURE__*/jsxRuntime.jsx("button", {
9304
+ onClick: function onClick() {
9305
+ return removeHeaderRow(row.id);
9306
+ },
9307
+ className: "text-gray-500 hover:text-red-400 transition-colors shrink-0",
9308
+ children: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
9309
+ icon: "times",
9310
+ className: "text-sm"
9311
+ })
9312
+ })]
9313
+ }, row.id);
9314
+ }), /*#__PURE__*/jsxRuntime.jsxs("button", {
9315
+ onClick: addHeaderRow,
9316
+ className: "text-sm text-blue-400 hover:text-blue-300 transition-colors flex items-center gap-1",
9317
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
9318
+ icon: "plus",
9319
+ className: "text-xs"
9320
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
9321
+ children: "Add Header"
9322
+ })]
9323
+ })]
9324
+ }) :
9325
+ /*#__PURE__*/
9326
+ // stdio env var mapping
9327
+ jsxRuntime.jsxs(jsxRuntime.Fragment, {
9328
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
9329
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FormLabel, {
9330
+ label: "Environment Variable Mapping"
9331
+ }), /*#__PURE__*/jsxRuntime.jsx("p", {
9332
+ className: "text-sm opacity-50 mt-1",
9333
+ children: "Map environment variables to credential fields"
9334
+ })]
9335
+ }), envMappingRows.map(function (row) {
9336
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
9337
+ className: "flex items-center gap-2",
9338
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
9339
+ className: "flex-1",
9340
+ children: /*#__PURE__*/jsxRuntime.jsx(DashReact.InputText, {
9341
+ value: row.envVar,
9342
+ onChange: function onChange(value) {
9343
+ return updateEnvRow(row.id, "envVar", value);
9344
+ },
9345
+ placeholder: "ENV_VAR_NAME"
9346
+ })
9347
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
9348
+ className: "opacity-30 text-sm shrink-0",
9349
+ children: "\u2192"
9350
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
9351
+ className: "flex-1",
9352
+ children: /*#__PURE__*/jsxRuntime.jsx(DashReact.InputText, {
9353
+ value: row.credField,
9354
+ onChange: function onChange(value) {
9355
+ return updateEnvRow(row.id, "credField", value);
9356
+ },
9357
+ placeholder: "credentialField"
9358
+ })
9359
+ }), /*#__PURE__*/jsxRuntime.jsx("button", {
9360
+ onClick: function onClick() {
9361
+ return removeEnvRow(row.id);
9362
+ },
9363
+ className: "text-gray-500 hover:text-red-400 transition-colors shrink-0",
9364
+ children: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
9365
+ icon: "times",
9366
+ className: "text-sm"
9367
+ })
9368
+ })]
9369
+ }, row.id);
9370
+ }), /*#__PURE__*/jsxRuntime.jsxs("button", {
9371
+ onClick: addEnvRow,
9372
+ className: "text-sm text-blue-400 hover:text-blue-300 transition-colors flex items-center gap-1",
9373
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
9374
+ icon: "plus",
9375
+ className: "text-xs"
9376
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
9377
+ children: "Add Environment Variable"
9378
+ })]
9379
+ })]
9380
+ })
9381
+ })]
9382
+ });
9383
+ };
9384
+
9093
9385
  function ownKeys$m(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9094
9386
  function _objectSpread$m(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$m(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$m(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
9095
9387
  var McpServerPicker = function McpServerPicker(_ref) {
@@ -9142,11 +9434,31 @@ var McpServerPicker = function McpServerPicker(_ref) {
9142
9434
  formErrors = _useState18[0],
9143
9435
  setFormErrors = _useState18[1];
9144
9436
 
9145
- // Derive form fields from mcpConfig + credentialSchema
9437
+ // Advanced config row state
9438
+ var _useState19 = React.useState([]),
9439
+ _useState20 = _slicedToArray(_useState19, 2),
9440
+ envMappingRows = _useState20[0],
9441
+ setEnvMappingRows = _useState20[1];
9442
+ var _useState21 = React.useState([]),
9443
+ _useState22 = _slicedToArray(_useState21, 2),
9444
+ headerRows = _useState22[0],
9445
+ setHeaderRows = _useState22[1];
9446
+ var rowIdRef = React.useRef(0);
9447
+ var nextRowId = function nextRowId() {
9448
+ return "pick_".concat(++rowIdRef.current);
9449
+ };
9450
+
9451
+ // Compute effective mcpConfig from catalog base + advanced overrides
9452
+ var effectiveMcpConfig = React.useMemo(function () {
9453
+ if (!(selectedServer !== null && selectedServer !== void 0 && selectedServer.mcpConfig)) return {};
9454
+ return buildMcpConfigFromOverrides(selectedServer.mcpConfig, envMappingRows, headerRows);
9455
+ }, [selectedServer, envMappingRows, headerRows]);
9456
+
9457
+ // Derive form fields from effectiveMcpConfig + credentialSchema
9146
9458
  var formFields = React.useMemo(function () {
9147
9459
  if (!selectedServer) return [];
9148
- return deriveFormFields(selectedServer.mcpConfig || {}, selectedServer.credentialSchema || {});
9149
- }, [selectedServer]);
9460
+ return deriveFormFields(effectiveMcpConfig, selectedServer.credentialSchema || {});
9461
+ }, [selectedServer, effectiveMcpConfig]);
9150
9462
 
9151
9463
  // Load catalog on open
9152
9464
  React.useEffect(function () {
@@ -9173,12 +9485,15 @@ var McpServerPicker = function McpServerPicker(_ref) {
9173
9485
 
9174
9486
  // Handle server selection -> show configuration form
9175
9487
  var handleSelectServer = function handleSelectServer(server) {
9488
+ var _server$mcpConfig, _server$mcpConfig2;
9176
9489
  setSelectedServer(server);
9177
9490
  setIsConfiguring(true);
9178
9491
  setTestResult(null);
9179
9492
  setProviderName(server.name);
9180
9493
  setCredentialData({});
9181
9494
  setFormErrors({});
9495
+ setEnvMappingRows(envMappingToRows((_server$mcpConfig = server.mcpConfig) === null || _server$mcpConfig === void 0 ? void 0 : _server$mcpConfig.envMapping, nextRowId));
9496
+ setHeaderRows(headerTemplateToRows((_server$mcpConfig2 = server.mcpConfig) === null || _server$mcpConfig2 === void 0 ? void 0 : _server$mcpConfig2.headerTemplate, nextRowId));
9182
9497
  };
9183
9498
 
9184
9499
  // Handle credential field changes
@@ -9217,7 +9532,7 @@ var McpServerPicker = function McpServerPicker(_ref) {
9217
9532
  setIsTesting(true);
9218
9533
  setTestResult(null);
9219
9534
  var testName = "__test__".concat(selectedServer.id);
9220
- dashApi.mcpStartServer(testName, selectedServer.mcpConfig, credentialData, function (event, result) {
9535
+ dashApi.mcpStartServer(testName, effectiveMcpConfig, credentialData, function (event, result) {
9221
9536
  if (result.error) {
9222
9537
  setTestResult({
9223
9538
  success: false,
@@ -9248,7 +9563,7 @@ var McpServerPicker = function McpServerPicker(_ref) {
9248
9563
  // Handle save - create the MCP provider
9249
9564
  var handleSaveProvider = function handleSaveProvider() {
9250
9565
  if (!selectedServer || !validateForm()) return;
9251
- onSave(providerName.trim(), selectedServer.id, credentialData, selectedServer.mcpConfig);
9566
+ onSave(providerName.trim(), selectedServer.id, credentialData, effectiveMcpConfig);
9252
9567
  handleClose();
9253
9568
  };
9254
9569
  var handleClose = function handleClose() {
@@ -9259,6 +9574,8 @@ var McpServerPicker = function McpServerPicker(_ref) {
9259
9574
  setProviderName("");
9260
9575
  setCredentialData({});
9261
9576
  setFormErrors({});
9577
+ setEnvMappingRows([]);
9578
+ setHeaderRows([]);
9262
9579
  setIsOpen(false);
9263
9580
  };
9264
9581
  var handleBack = function handleBack() {
@@ -9268,8 +9585,27 @@ var McpServerPicker = function McpServerPicker(_ref) {
9268
9585
  setProviderName("");
9269
9586
  setCredentialData({});
9270
9587
  setFormErrors({});
9588
+ setEnvMappingRows([]);
9589
+ setHeaderRows([]);
9271
9590
  };
9272
9591
 
9592
+ // Prune credential data when form fields change (advanced config removed a field)
9593
+ React.useEffect(function () {
9594
+ var validKeys = new Set(formFields.map(function (f) {
9595
+ return f.key;
9596
+ }));
9597
+ setCredentialData(function (prev) {
9598
+ var pruned = {};
9599
+ for (var _i = 0, _Object$keys = Object.keys(prev); _i < _Object$keys.length; _i++) {
9600
+ var key = _Object$keys[_i];
9601
+ if (validKeys.has(key)) {
9602
+ pruned[key] = prev[key];
9603
+ }
9604
+ }
9605
+ return pruned;
9606
+ });
9607
+ }, [formFields]);
9608
+
9273
9609
  // Icon mapping for catalog entries
9274
9610
  var getIconForServer = function getIconForServer(server) {
9275
9611
  var iconMap = {
@@ -9288,7 +9624,6 @@ var McpServerPicker = function McpServerPicker(_ref) {
9288
9624
  };
9289
9625
  return iconMap[server.id] || server.icon || "server";
9290
9626
  };
9291
- var mcpConfig = (selectedServer === null || selectedServer === void 0 ? void 0 : selectedServer.mcpConfig) || {};
9292
9627
  return /*#__PURE__*/jsxRuntime.jsx(DashReact.Modal, {
9293
9628
  isOpen: isOpen,
9294
9629
  setIsOpen: handleClose,
@@ -9403,9 +9738,9 @@ var McpServerPicker = function McpServerPicker(_ref) {
9403
9738
  className: "opacity-50 w-24 shrink-0",
9404
9739
  children: "Transport:"
9405
9740
  }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag, {
9406
- text: mcpConfig.transport === "streamable_http" ? "Streamable HTTP" : "stdio"
9741
+ text: effectiveMcpConfig.transport === "streamable_http" ? "Streamable HTTP" : "stdio"
9407
9742
  })]
9408
- }), mcpConfig.transport === "streamable_http" ? /*#__PURE__*/jsxRuntime.jsxs("div", {
9743
+ }), effectiveMcpConfig.transport === "streamable_http" ? /*#__PURE__*/jsxRuntime.jsxs("div", {
9409
9744
  className: "flex gap-2",
9410
9745
  children: [/*#__PURE__*/jsxRuntime.jsx("span", {
9411
9746
  className: "opacity-50 w-24 shrink-0",
@@ -9422,20 +9757,26 @@ var McpServerPicker = function McpServerPicker(_ref) {
9422
9757
  children: "Command:"
9423
9758
  }), /*#__PURE__*/jsxRuntime.jsxs("code", {
9424
9759
  className: "text-xs bg-white/5 px-2 py-0.5 rounded",
9425
- children: [mcpConfig.command, " ", (mcpConfig.args || []).join(" ")]
9760
+ children: [effectiveMcpConfig.command, " ", (effectiveMcpConfig.args || []).join(" ")]
9426
9761
  })]
9427
- }), mcpConfig.envMapping && Object.keys(mcpConfig.envMapping).length > 0 && /*#__PURE__*/jsxRuntime.jsxs("div", {
9762
+ }), effectiveMcpConfig.envMapping && Object.keys(effectiveMcpConfig.envMapping).length > 0 && /*#__PURE__*/jsxRuntime.jsxs("div", {
9428
9763
  className: "flex gap-2",
9429
9764
  children: [/*#__PURE__*/jsxRuntime.jsx("span", {
9430
9765
  className: "opacity-50 w-24 shrink-0",
9431
9766
  children: "Env Vars:"
9432
9767
  }), /*#__PURE__*/jsxRuntime.jsx("span", {
9433
9768
  className: "text-xs opacity-70",
9434
- children: Object.keys(mcpConfig.envMapping).join(", ")
9769
+ children: Object.keys(effectiveMcpConfig.envMapping).join(", ")
9435
9770
  })]
9436
9771
  })]
9437
9772
  })]
9438
9773
  })]
9774
+ }), /*#__PURE__*/jsxRuntime.jsx(AdvancedMcpConfig, {
9775
+ transport: effectiveMcpConfig.transport || "stdio",
9776
+ envMappingRows: envMappingRows,
9777
+ onEnvMappingRowsChange: setEnvMappingRows,
9778
+ headerRows: headerRows,
9779
+ onHeaderRowsChange: setHeaderRows
9439
9780
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
9440
9781
  className: "flex flex-col gap-2",
9441
9782
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FormLabel, {
@@ -9466,7 +9807,7 @@ var McpServerPicker = function McpServerPicker(_ref) {
9466
9807
  className: "border-t border-white/10 pt-4",
9467
9808
  children: /*#__PURE__*/jsxRuntime.jsx("p", {
9468
9809
  className: "text-xs font-semibold opacity-40 uppercase tracking-wider",
9469
- children: mcpConfig.transport === "streamable_http" ? "Server Configuration" : "Authentication"
9810
+ children: effectiveMcpConfig.transport === "streamable_http" ? "Server Configuration" : "Authentication"
9470
9811
  })
9471
9812
  }), formFields.map(function (field) {
9472
9813
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
@@ -9509,7 +9850,7 @@ var McpServerPicker = function McpServerPicker(_ref) {
9509
9850
  children: tool.name
9510
9851
  }), tool.description && /*#__PURE__*/jsxRuntime.jsxs("span", {
9511
9852
  className: "opacity-60 ml-2",
9512
- children: ["-", " ", tool.description]
9853
+ children: ["- ", tool.description]
9513
9854
  })]
9514
9855
  }, tool.name);
9515
9856
  })
@@ -11936,7 +12277,7 @@ var MissingProviderPrompt = function MissingProviderPrompt(_ref) {
11936
12277
  children: provider.type
11937
12278
  }), /*#__PURE__*/jsxRuntime.jsxs("p", {
11938
12279
  className: "text-xs text-gray-500",
11939
- children: [Object.keys(provider.credentialSchema || {}).length, " ", "field", Object.keys(provider.credentialSchema || {}).length !== 1 ? "s" : ""]
12280
+ children: [Object.keys(provider.credentialSchema || {}).length, " field", Object.keys(provider.credentialSchema || {}).length !== 1 ? "s" : ""]
11940
12281
  })]
11941
12282
  }), /*#__PURE__*/jsxRuntime.jsx("button", {
11942
12283
  onClick: function onClick() {
@@ -12389,9 +12730,9 @@ var WidgetErrorBoundary = /*#__PURE__*/function (_Component) {
12389
12730
  className: "text-sm bg-red-800 border border-red-700 rounded p-3 mt-2",
12390
12731
  children: [/*#__PURE__*/jsxRuntime.jsx("strong", {
12391
12732
  children: "Fix:"
12392
- }), " This widget uses", " ", /*#__PURE__*/jsxRuntime.jsx("code", {
12733
+ }), " This widget uses ", /*#__PURE__*/jsxRuntime.jsx("code", {
12393
12734
  children: "WidgetContext"
12394
- }), " but is missing the", " ", /*#__PURE__*/jsxRuntime.jsx("code", {
12735
+ }), " ", "but is missing the ", /*#__PURE__*/jsxRuntime.jsx("code", {
12395
12736
  children: "<Widget>"
12396
12737
  }), " wrapper.", /*#__PURE__*/jsxRuntime.jsx("br", {}), /*#__PURE__*/jsxRuntime.jsx("br", {}), "Add the wrapper in your widget component:", /*#__PURE__*/jsxRuntime.jsx("pre", {
12397
12738
  className: "bg-gray-900 p-2 rounded mt-2 text-xs overflow-auto",
@@ -15847,62 +16188,62 @@ var DashboardModel = /*#__PURE__*/function () {
15847
16188
 
15848
16189
  // this.updateLayoutItem(childComponent);
15849
16190
  /*
15850
- if (childComponent.parent !== itemId) {
15851
- console.log("parent component ", parentComponent);
15852
- if (parentComponent) {
15853
- if (childComponent.type === "widget") {
15854
- console.log("item being added is a widget", childComponent);
15855
- // add the workspace component to the layout
15856
- const workspaceIdAdded = this.addWorkspaceForWidget(parentComponent, childComponent);
15857
- console.log("workspace added ", workspaceIdAdded, this.layout);
15858
- // get this component as the parent of the widget now?
15859
- const workspaceParent = this.getComponentById(workspaceIdAdded);
15860
- // now we can add the widget to the new workspace.
15861
- const nextId = getNextHighestId(this.layout);
15862
- // then get the next highest ORDER based on the children
15863
- // of the parent
15864
- const nextOrderData = getNextHighestOrder(this.layout, workspaceParent.id);
15865
- const nextOrder = nextOrderData["highest"];
15866
- // 2. Add the element back into the layout
15867
- this.layout.push(childComponent);
15868
- // set the new id and order for the item
15869
- childComponent['id'] = nextId;
15870
- childComponent["order"] = nextOrder;
15871
- this.updateLayoutItem(childComponent);
15872
- const testParent = this.setParentForLayoutItem(workspaceParent.id, childComponent);
15873
- // now we have to update the parent
15874
- workspaceParent.hasChildren = 1;
15875
- this.updateLayoutItem(workspaceParent);
15876
- return childComponent.id;
15877
-
15878
- // return this.addChildToLayoutItem(childComponent, workspaceIdAdded);
15879
- } else {
15880
- console.log("in lower IF");
15881
- // set an id for the new child component
15882
- // to avoid collisions
15883
- const nextId = getNextHighestId(this.layout);
15884
- // then get the next highest ORDER based on the children
15885
- // of the parent
15886
- const nextOrderData = getNextHighestOrder(this.layout, parentComponent.id);
15887
- const nextOrder = nextOrderData["highest"];
15888
- // set the new id and order for the item
15889
- childComponent['id'] = nextId;
15890
- childComponent["order"] = nextOrder;
15891
- // 1. Add the layoutItem as the parentWorkspace of the childComponent
15892
- childComponent["parentWorkspace"] = parentComponent;
15893
- childComponent["parent"] = parentComponent["id"];
15894
- // 2. Add the element back into the layout
15895
- this.layout.push(childComponent);
15896
- // now we have to update the parent
15897
- parentComponent.hasChildren = 1;
15898
- this.replaceItemInLayoutById(parentComponent["id"], parentComponent);
15899
- return childComponent.id;
15900
- }
15901
- } else {
15902
- return null;
15903
- }
15904
- }
15905
- */
16191
+ if (childComponent.parent !== itemId) {
16192
+ console.log("parent component ", parentComponent);
16193
+ if (parentComponent) {
16194
+ if (childComponent.type === "widget") {
16195
+ console.log("item being added is a widget", childComponent);
16196
+ // add the workspace component to the layout
16197
+ const workspaceIdAdded = this.addWorkspaceForWidget(parentComponent, childComponent);
16198
+ console.log("workspace added ", workspaceIdAdded, this.layout);
16199
+ // get this component as the parent of the widget now?
16200
+ const workspaceParent = this.getComponentById(workspaceIdAdded);
16201
+ // now we can add the widget to the new workspace.
16202
+ const nextId = getNextHighestId(this.layout);
16203
+ // then get the next highest ORDER based on the children
16204
+ // of the parent
16205
+ const nextOrderData = getNextHighestOrder(this.layout, workspaceParent.id);
16206
+ const nextOrder = nextOrderData["highest"];
16207
+ // 2. Add the element back into the layout
16208
+ this.layout.push(childComponent);
16209
+ // set the new id and order for the item
16210
+ childComponent['id'] = nextId;
16211
+ childComponent["order"] = nextOrder;
16212
+ this.updateLayoutItem(childComponent);
16213
+ const testParent = this.setParentForLayoutItem(workspaceParent.id, childComponent);
16214
+ // now we have to update the parent
16215
+ workspaceParent.hasChildren = 1;
16216
+ this.updateLayoutItem(workspaceParent);
16217
+ return childComponent.id;
16218
+
16219
+ // return this.addChildToLayoutItem(childComponent, workspaceIdAdded);
16220
+ } else {
16221
+ console.log("in lower IF");
16222
+ // set an id for the new child component
16223
+ // to avoid collisions
16224
+ const nextId = getNextHighestId(this.layout);
16225
+ // then get the next highest ORDER based on the children
16226
+ // of the parent
16227
+ const nextOrderData = getNextHighestOrder(this.layout, parentComponent.id);
16228
+ const nextOrder = nextOrderData["highest"];
16229
+ // set the new id and order for the item
16230
+ childComponent['id'] = nextId;
16231
+ childComponent["order"] = nextOrder;
16232
+ // 1. Add the layoutItem as the parentWorkspace of the childComponent
16233
+ childComponent["parentWorkspace"] = parentComponent;
16234
+ childComponent["parent"] = parentComponent["id"];
16235
+ // 2. Add the element back into the layout
16236
+ this.layout.push(childComponent);
16237
+ // now we have to update the parent
16238
+ parentComponent.hasChildren = 1;
16239
+ this.replaceItemInLayoutById(parentComponent["id"], parentComponent);
16240
+ return childComponent.id;
16241
+ }
16242
+ } else {
16243
+ return null;
16244
+ }
16245
+ }
16246
+ */
15906
16247
  } catch (e) {
15907
16248
  return this.layout;
15908
16249
  }
@@ -25656,11 +25997,31 @@ var McpCatalogDetail = function McpCatalogDetail(_ref) {
25656
25997
  formErrors = _useState20[0],
25657
25998
  setFormErrors = _useState20[1];
25658
25999
 
25659
- // Derive form fields from mcpConfig + credentialSchema
26000
+ // Advanced config row state
26001
+ var _useState21 = React.useState([]),
26002
+ _useState22 = _slicedToArray(_useState21, 2),
26003
+ envMappingRows = _useState22[0],
26004
+ setEnvMappingRows = _useState22[1];
26005
+ var _useState23 = React.useState([]),
26006
+ _useState24 = _slicedToArray(_useState23, 2),
26007
+ headerRows = _useState24[0],
26008
+ setHeaderRows = _useState24[1];
26009
+ var rowIdRef = React.useRef(0);
26010
+ var nextRowId = function nextRowId() {
26011
+ return "cat_".concat(++rowIdRef.current);
26012
+ };
26013
+
26014
+ // Compute effective mcpConfig from catalog base + advanced overrides
26015
+ var effectiveMcpConfig = React.useMemo(function () {
26016
+ if (!(selectedServer !== null && selectedServer !== void 0 && selectedServer.mcpConfig)) return {};
26017
+ return buildMcpConfigFromOverrides(selectedServer.mcpConfig, envMappingRows, headerRows);
26018
+ }, [selectedServer, envMappingRows, headerRows]);
26019
+
26020
+ // Derive form fields from effectiveMcpConfig + credentialSchema
25660
26021
  var formFields = React.useMemo(function () {
25661
26022
  if (!selectedServer) return [];
25662
- return deriveFormFields(selectedServer.mcpConfig || {}, selectedServer.credentialSchema || {});
25663
- }, [selectedServer]);
26023
+ return deriveFormFields(effectiveMcpConfig, selectedServer.credentialSchema || {});
26024
+ }, [selectedServer, effectiveMcpConfig]);
25664
26025
 
25665
26026
  // Load catalog on mount
25666
26027
  React.useEffect(function () {
@@ -25687,12 +26048,15 @@ var McpCatalogDetail = function McpCatalogDetail(_ref) {
25687
26048
 
25688
26049
  // Handle server selection -> show configuration form
25689
26050
  var handleSelectServer = function handleSelectServer(server) {
26051
+ var _server$mcpConfig, _server$mcpConfig2;
25690
26052
  setSelectedServer(server);
25691
26053
  setIsConfiguring(true);
25692
26054
  setTestResult(null);
25693
26055
  setProviderName(server.name);
25694
26056
  setCredentialData({});
25695
26057
  setFormErrors({});
26058
+ setEnvMappingRows(envMappingToRows((_server$mcpConfig = server.mcpConfig) === null || _server$mcpConfig === void 0 ? void 0 : _server$mcpConfig.envMapping, nextRowId));
26059
+ setHeaderRows(headerTemplateToRows((_server$mcpConfig2 = server.mcpConfig) === null || _server$mcpConfig2 === void 0 ? void 0 : _server$mcpConfig2.headerTemplate, nextRowId));
25696
26060
  };
25697
26061
 
25698
26062
  // Handle credential field changes
@@ -25731,7 +26095,7 @@ var McpCatalogDetail = function McpCatalogDetail(_ref) {
25731
26095
  setIsTesting(true);
25732
26096
  setTestResult(null);
25733
26097
  var testName = "__test__".concat(selectedServer.id);
25734
- dashApi.mcpStartServer(testName, selectedServer.mcpConfig, credentialData, function (event, result) {
26098
+ dashApi.mcpStartServer(testName, effectiveMcpConfig, credentialData, function (event, result) {
25735
26099
  if (result.error) {
25736
26100
  setTestResult({
25737
26101
  success: false,
@@ -25762,7 +26126,7 @@ var McpCatalogDetail = function McpCatalogDetail(_ref) {
25762
26126
  // Handle save
25763
26127
  var handleSaveProvider = function handleSaveProvider() {
25764
26128
  if (!selectedServer || !validateForm()) return;
25765
- onSave(providerName.trim(), selectedServer.id, credentialData, selectedServer.mcpConfig);
26129
+ onSave(providerName.trim(), selectedServer.id, credentialData, effectiveMcpConfig);
25766
26130
  };
25767
26131
 
25768
26132
  // Select custom server option
@@ -25785,8 +26149,26 @@ var McpCatalogDetail = function McpCatalogDetail(_ref) {
25785
26149
  setProviderName("");
25786
26150
  setCredentialData({});
25787
26151
  setFormErrors({});
26152
+ setEnvMappingRows([]);
26153
+ setHeaderRows([]);
25788
26154
  };
25789
- var mcpConfig = (selectedServer === null || selectedServer === void 0 ? void 0 : selectedServer.mcpConfig) || {};
26155
+
26156
+ // Prune credential data when form fields change (advanced config removed a field)
26157
+ React.useEffect(function () {
26158
+ var validKeys = new Set(formFields.map(function (f) {
26159
+ return f.key;
26160
+ }));
26161
+ setCredentialData(function (prev) {
26162
+ var pruned = {};
26163
+ for (var _i = 0, _Object$keys = Object.keys(prev); _i < _Object$keys.length; _i++) {
26164
+ var key = _Object$keys[_i];
26165
+ if (validKeys.has(key)) {
26166
+ pruned[key] = prev[key];
26167
+ }
26168
+ }
26169
+ return pruned;
26170
+ });
26171
+ }, [formFields]);
25790
26172
 
25791
26173
  // ── Custom Server Form ──
25792
26174
  if (isCustom) {
@@ -25834,9 +26216,9 @@ var McpCatalogDetail = function McpCatalogDetail(_ref) {
25834
26216
  className: "opacity-50 w-24 shrink-0",
25835
26217
  children: "Transport:"
25836
26218
  }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag, {
25837
- text: mcpConfig.transport === "streamable_http" ? "Streamable HTTP" : "stdio"
26219
+ text: effectiveMcpConfig.transport === "streamable_http" ? "Streamable HTTP" : "stdio"
25838
26220
  })]
25839
- }), mcpConfig.transport === "streamable_http" ? /*#__PURE__*/jsxRuntime.jsxs("div", {
26221
+ }), effectiveMcpConfig.transport === "streamable_http" ? /*#__PURE__*/jsxRuntime.jsxs("div", {
25840
26222
  className: "flex gap-2",
25841
26223
  children: [/*#__PURE__*/jsxRuntime.jsx("span", {
25842
26224
  className: "opacity-50 w-24 shrink-0",
@@ -25853,20 +26235,26 @@ var McpCatalogDetail = function McpCatalogDetail(_ref) {
25853
26235
  children: "Command:"
25854
26236
  }), /*#__PURE__*/jsxRuntime.jsxs("code", {
25855
26237
  className: "text-xs bg-white/5 px-2 py-0.5 rounded",
25856
- children: [mcpConfig.command, " ", (mcpConfig.args || []).join(" ")]
26238
+ children: [effectiveMcpConfig.command, " ", (effectiveMcpConfig.args || []).join(" ")]
25857
26239
  })]
25858
- }), mcpConfig.envMapping && Object.keys(mcpConfig.envMapping).length > 0 && /*#__PURE__*/jsxRuntime.jsxs("div", {
26240
+ }), effectiveMcpConfig.envMapping && Object.keys(effectiveMcpConfig.envMapping).length > 0 && /*#__PURE__*/jsxRuntime.jsxs("div", {
25859
26241
  className: "flex gap-2",
25860
26242
  children: [/*#__PURE__*/jsxRuntime.jsx("span", {
25861
26243
  className: "opacity-50 w-24 shrink-0",
25862
26244
  children: "Env Vars:"
25863
26245
  }), /*#__PURE__*/jsxRuntime.jsx("span", {
25864
26246
  className: "text-xs opacity-70",
25865
- children: Object.keys(mcpConfig.envMapping).join(", ")
26247
+ children: Object.keys(effectiveMcpConfig.envMapping).join(", ")
25866
26248
  })]
25867
26249
  })]
25868
26250
  })]
25869
26251
  })]
26252
+ }), /*#__PURE__*/jsxRuntime.jsx(AdvancedMcpConfig, {
26253
+ transport: effectiveMcpConfig.transport || "stdio",
26254
+ envMappingRows: envMappingRows,
26255
+ onEnvMappingRowsChange: setEnvMappingRows,
26256
+ headerRows: headerRows,
26257
+ onHeaderRowsChange: setHeaderRows
25870
26258
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
25871
26259
  className: "flex flex-col gap-2",
25872
26260
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FormLabel, {
@@ -25897,7 +26285,7 @@ var McpCatalogDetail = function McpCatalogDetail(_ref) {
25897
26285
  className: "border-t border-white/10 pt-4",
25898
26286
  children: /*#__PURE__*/jsxRuntime.jsx("p", {
25899
26287
  className: "text-xs font-semibold opacity-40 uppercase tracking-wider",
25900
- children: mcpConfig.transport === "streamable_http" ? "Server Configuration" : "Authentication"
26288
+ children: effectiveMcpConfig.transport === "streamable_http" ? "Server Configuration" : "Authentication"
25901
26289
  })
25902
26290
  }), formFields.map(function (field) {
25903
26291
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
@@ -31444,7 +31832,7 @@ var AddMenuItemModal = function AddMenuItemModal(_ref) {
31444
31832
  className: "flex flex-row justify-between bg-gray-900 p-4 rounded-br rounded-bl border-t border-gray-800",
31445
31833
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
31446
31834
  className: "flex flex-row text-lg text-gray-600 items-center font-bold px-4",
31447
- children: ["Click the", " ", /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
31835
+ children: ["Click the ", /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
31448
31836
  icon: "plus",
31449
31837
  className: "px-2"
31450
31838
  }), " ", "button to open this window."]
@@ -31586,8 +31974,8 @@ var WorkspaceMenu = function WorkspaceMenu(_ref) {
31586
31974
  ComponentManager.registerContainerTypes(LayoutContainer, LayoutGridContainer);
31587
31975
 
31588
31976
  Object.defineProperty(exports, 'ThemeContext', {
31589
- enumerable: true,
31590
- get: function () { return DashReact.ThemeContext; }
31977
+ enumerable: true,
31978
+ get: function () { return DashReact.ThemeContext; }
31591
31979
  });
31592
31980
  exports.ALGOLIA_ANALYTICS_FOR_QUERY = ALGOLIA_ANALYTICS_FOR_QUERY;
31593
31981
  exports.ALGOLIA_ANALYTICS_FOR_QUERY_COMPLETE = ALGOLIA_ANALYTICS_FOR_QUERY_COMPLETE;
@@ -31597,6 +31985,7 @@ exports.ALGOLIA_LIST_INDICES_COMPLETE = ALGOLIA_LIST_INDICES_COMPLETE;
31597
31985
  exports.ALGOLIA_LIST_INDICES_ERROR = ALGOLIA_LIST_INDICES_ERROR;
31598
31986
  exports.AVAILABLE_COLORS = AVAILABLE_COLORS;
31599
31987
  exports.AddMenuItemModal = AddMenuItemModal;
31988
+ exports.AdvancedMcpConfig = AdvancedMcpConfig;
31600
31989
  exports.AppContext = AppContext;
31601
31990
  exports.AppSettingsModal = AppSettingsModal;
31602
31991
  exports.AppThemeScope = AppThemeScope;
@@ -31771,10 +32160,12 @@ exports.WorkspaceMenu = WorkspaceMenu;
31771
32160
  exports.WorkspaceModel = WorkspaceModel;
31772
32161
  exports.addChildToLayoutItem = addChildToLayoutItem;
31773
32162
  exports.addItemToItemLayout = addItemToItemLayout;
32163
+ exports.buildMcpConfigFromOverrides = buildMcpConfigFromOverrides;
31774
32164
  exports.canHaveChildren = canHaveChildren;
31775
32165
  exports.changeDirectionForLayoutItem = changeDirectionForLayoutItem;
31776
32166
  exports.createProviderRegistry = createProviderRegistry;
31777
32167
  exports.deriveFormFields = deriveFormFields;
32168
+ exports.envMappingToRows = envMappingToRows;
31778
32169
  exports.evaluateBundle = evaluateBundle;
31779
32170
  exports.extractWidgetConfigs = extractWidgetConfigs;
31780
32171
  exports.formatFieldName = formatFieldName;
@@ -31802,6 +32193,7 @@ exports.getParentWorkspaceForItem = getParentWorkspaceForItem;
31802
32193
  exports.getThemePresets = getThemePresets;
31803
32194
  exports.getWidgetsForWorkspace = getWidgetsForWorkspace;
31804
32195
  exports.getWorkspacesForWorkspace = getWorkspacesForWorkspace;
32196
+ exports.headerTemplateToRows = headerTemplateToRows;
31805
32197
  exports.isContainer = isContainer;
31806
32198
  exports.isLikelySecret = isLikelySecret;
31807
32199
  exports.isMaxOrderForItem = isMaxOrderForItem;
@@ -31834,9 +32226,9 @@ exports.validateGridPlacement = validateGridPlacement;
31834
32226
  exports.validateWidgetPlacement = validateWidgetPlacement;
31835
32227
  exports.withProviderDetection = withProviderDetection;
31836
32228
  Object.keys(DashReact).forEach(function (k) {
31837
- if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
31838
- enumerable: true,
31839
- get: function () { return DashReact[k]; }
31840
- });
32229
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
32230
+ enumerable: true,
32231
+ get: function () { return DashReact[k]; }
32232
+ });
31841
32233
  });
31842
32234
  //# sourceMappingURL=index.js.map