@trops/dash-core 0.1.159 → 0.1.161

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
@@ -49,8 +49,8 @@ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
49
49
  var jsxRuntime__namespace = /*#__PURE__*/_interopNamespaceDefault(jsxRuntime);
50
50
  var ReactDOM__namespace = /*#__PURE__*/_interopNamespaceDefault(ReactDOM);
51
51
 
52
- function ownKeys$D(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; }
53
- function _objectSpread$D(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$D(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$D(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
52
+ function ownKeys$E(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; }
53
+ function _objectSpread$E(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$E(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$E(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
54
54
  var event = {
55
55
  list: new Map(),
56
56
  // Map(1) { '<widget-UUID>' => { 'CustomSearchbar[10].searchQueryChanged': [] } }
@@ -112,7 +112,7 @@ var event = {
112
112
  uuid: subscriber["uuid"]
113
113
  };
114
114
  if ("action" in subscriber && subscriber.action !== undefined) {
115
- subscriber["action"](_objectSpread$D({}, objectToSend));
115
+ subscriber["action"](_objectSpread$E({}, objectToSend));
116
116
  }
117
117
  });
118
118
  }
@@ -2613,8 +2613,8 @@ var DashboardWrapper = function DashboardWrapper(_ref) {
2613
2613
  });
2614
2614
  };
2615
2615
 
2616
- function ownKeys$C(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; }
2617
- function _objectSpread$C(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$C(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$C(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2616
+ function ownKeys$D(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; }
2617
+ function _objectSpread$D(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$D(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$D(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2618
2618
  var DashboardThemeProvider = function DashboardThemeProvider(_ref) {
2619
2619
  var themeKey = _ref.themeKey,
2620
2620
  children = _ref.children;
@@ -2626,7 +2626,7 @@ var DashboardThemeProvider = function DashboardThemeProvider(_ref) {
2626
2626
  var dashboardTheme = themes[themeKey];
2627
2627
  var themeValue = dashboardTheme ? dashboardTheme[themeVariant] || null : null;
2628
2628
  if (!themeValue) return null;
2629
- return _objectSpread$C(_objectSpread$C({}, parentContext), {}, {
2629
+ return _objectSpread$D(_objectSpread$D({}, parentContext), {}, {
2630
2630
  currentTheme: themeValue,
2631
2631
  currentThemeKey: themeKey,
2632
2632
  theme: themeValue,
@@ -2644,8 +2644,8 @@ var DashboardThemeProvider = function DashboardThemeProvider(_ref) {
2644
2644
  });
2645
2645
  };
2646
2646
 
2647
- function ownKeys$B(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; }
2648
- function _objectSpread$B(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$B(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$B(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2647
+ function ownKeys$C(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; }
2648
+ function _objectSpread$C(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$C(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$C(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2649
2649
  var AppThemeScope = function AppThemeScope(_ref) {
2650
2650
  var children = _ref.children;
2651
2651
  var ctx = React.useContext(DashReact.ThemeContext);
@@ -2653,7 +2653,7 @@ var AppThemeScope = function AppThemeScope(_ref) {
2653
2653
  children: children
2654
2654
  });
2655
2655
  return /*#__PURE__*/jsxRuntime.jsx(DashReact.ThemeContext.Provider, {
2656
- value: _objectSpread$B(_objectSpread$B({}, ctx), {}, {
2656
+ value: _objectSpread$C(_objectSpread$C({}, ctx), {}, {
2657
2657
  currentTheme: ctx.appTheme,
2658
2658
  currentThemeKey: ctx.appThemeKey,
2659
2659
  theme: ctx.appTheme,
@@ -2765,11 +2765,11 @@ var LayoutContainer = function LayoutContainer(_ref) {
2765
2765
  });
2766
2766
  };
2767
2767
 
2768
- function ownKeys$A(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; }
2769
- function _objectSpread$A(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$A(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$A(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2770
- function _createForOfIteratorHelper$e(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$e(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; } } }; }
2771
- function _unsupportedIterableToArray$e(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$e(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$e(r, a) : void 0; } }
2772
- function _arrayLikeToArray$e(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; }
2768
+ function ownKeys$B(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; }
2769
+ function _objectSpread$B(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$B(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$B(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2770
+ function _createForOfIteratorHelper$f(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$f(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; } } }; }
2771
+ function _unsupportedIterableToArray$f(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$f(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$f(r, a) : void 0; } }
2772
+ function _arrayLikeToArray$f(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; }
2773
2773
  /**
2774
2774
  * Layout template definitions for the dashboard template picker.
2775
2775
  *
@@ -3005,12 +3005,12 @@ function createLayoutFromTemplate(template) {
3005
3005
  cols: template.cols,
3006
3006
  gap: "gap-2"
3007
3007
  };
3008
- var _iterator = _createForOfIteratorHelper$e(template.cells),
3008
+ var _iterator = _createForOfIteratorHelper$f(template.cells),
3009
3009
  _step;
3010
3010
  try {
3011
3011
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
3012
3012
  var cell = _step.value;
3013
- grid[cell.key] = _objectSpread$A({
3013
+ grid[cell.key] = _objectSpread$B({
3014
3014
  component: null,
3015
3015
  hide: cell.hide || false
3016
3016
  }, cell.span ? {
@@ -4024,8 +4024,8 @@ var DiscoverDashboardsDetail = function DiscoverDashboardsDetail(_ref) {
4024
4024
  });
4025
4025
  };
4026
4026
 
4027
- function ownKeys$z(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; }
4028
- function _objectSpread$z(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$z(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$z(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4027
+ function ownKeys$A(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; }
4028
+ function _objectSpread$A(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$A(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$A(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4029
4029
  var LayoutManagerModal = function LayoutManagerModal(_ref) {
4030
4030
  var open = _ref.open,
4031
4031
  setIsOpen = _ref.setIsOpen,
@@ -4261,7 +4261,7 @@ var LayoutManagerModal = function LayoutManagerModal(_ref) {
4261
4261
  }
4262
4262
  return _context2.abrupt("return");
4263
4263
  case 6:
4264
- updatedWorkspace = _objectSpread$z(_objectSpread$z({}, importedWorkspace), {}, {
4264
+ updatedWorkspace = _objectSpread$A(_objectSpread$A({}, importedWorkspace), {}, {
4265
4265
  name: dashboardName.trim(),
4266
4266
  menuId: menuId,
4267
4267
  themeKey: selectedThemeKey
@@ -9616,8 +9616,8 @@ var deepEqual = function deepEqual(a, b, opts) {
9616
9616
 
9617
9617
  var deepEqual$1 = /*@__PURE__*/getDefaultExportFromCjs(deepEqual);
9618
9618
 
9619
- function ownKeys$y(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; }
9620
- function _objectSpread$y(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$y(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$y(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
9619
+ function ownKeys$z(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; }
9620
+ function _objectSpread$z(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$z(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$z(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
9621
9621
  var PanelEditItem = function PanelEditItem(_ref) {
9622
9622
  var _ComponentManager$get;
9623
9623
  var workspace = _ref.workspace,
@@ -9677,7 +9677,7 @@ var PanelEditItem = function PanelEditItem(_ref) {
9677
9677
  var uuid = newItem.uuid || newItem.uuidString;
9678
9678
  if (uuid) {
9679
9679
  workspaceTemp.selectedProviders = workspaceTemp.selectedProviders || {};
9680
- workspaceTemp.selectedProviders[uuid] = _objectSpread$y(_objectSpread$y({}, workspaceTemp.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
9680
+ workspaceTemp.selectedProviders[uuid] = _objectSpread$z(_objectSpread$z({}, workspaceTemp.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
9681
9681
  }
9682
9682
  onUpdate(newItem, workspaceTemp);
9683
9683
  forceUpdate();
@@ -9806,7 +9806,7 @@ var PanelEditItem = function PanelEditItem(_ref) {
9806
9806
  var _ref5 = _slicedToArray(_ref4, 2),
9807
9807
  name = _ref5[0],
9808
9808
  p = _ref5[1];
9809
- return _objectSpread$y({
9809
+ return _objectSpread$z({
9810
9810
  name: name
9811
9811
  }, p);
9812
9812
  });
@@ -9848,11 +9848,11 @@ var PanelEditItem = function PanelEditItem(_ref) {
9848
9848
  };
9849
9849
 
9850
9850
  var _excluded$5 = ["rows", "cols"];
9851
- function _createForOfIteratorHelper$d(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$d(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; } } }; }
9852
- function _unsupportedIterableToArray$d(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$d(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$d(r, a) : void 0; } }
9853
- function _arrayLikeToArray$d(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; }
9854
- function ownKeys$x(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; }
9855
- function _objectSpread$x(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$x(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$x(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
9851
+ function _createForOfIteratorHelper$e(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$e(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; } } }; }
9852
+ function _unsupportedIterableToArray$e(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$e(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$e(r, a) : void 0; } }
9853
+ function _arrayLikeToArray$e(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; }
9854
+ function ownKeys$y(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; }
9855
+ function _objectSpread$y(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$y(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$y(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
9856
9856
  var defaultGrid = {
9857
9857
  rows: 1,
9858
9858
  cols: 1,
@@ -9873,7 +9873,7 @@ function GridEditor(_ref) {
9873
9873
  setGrid = _useState2[1];
9874
9874
  var addRow = function addRow() {
9875
9875
  var newRow = grid.rows;
9876
- var newGrid = _objectSpread$x(_objectSpread$x({}, grid), {}, {
9876
+ var newGrid = _objectSpread$y(_objectSpread$y({}, grid), {}, {
9877
9877
  rows: grid.rows + 1
9878
9878
  });
9879
9879
  for (var col = 0; col < grid.cols; col++) {
@@ -9888,7 +9888,7 @@ function GridEditor(_ref) {
9888
9888
  };
9889
9889
  var addColumn = function addColumn() {
9890
9890
  var newCol = grid.cols;
9891
- var newGrid = _objectSpread$x(_objectSpread$x({}, grid), {}, {
9891
+ var newGrid = _objectSpread$y(_objectSpread$y({}, grid), {}, {
9892
9892
  cols: grid.cols + 1
9893
9893
  });
9894
9894
  for (var row = 0; row < grid.rows; row++) {
@@ -9921,8 +9921,8 @@ function GridEditor(_ref) {
9921
9921
  });
9922
9922
  }
9923
9923
  if (grid[nextKey]) {
9924
- var newGrid = _objectSpread$x({}, grid);
9925
- newGrid[currentKey] = _objectSpread$x(_objectSpread$x({}, newGrid[currentKey]), {}, {
9924
+ var newGrid = _objectSpread$y({}, grid);
9925
+ newGrid[currentKey] = _objectSpread$y(_objectSpread$y({}, newGrid[currentKey]), {}, {
9926
9926
  colSpan: newGrid[currentKey].colSpan + 1
9927
9927
  });
9928
9928
  delete newGrid[nextKey];
@@ -9935,8 +9935,8 @@ function GridEditor(_ref) {
9935
9935
  var currentKey = "".concat(row, ".").concat(col);
9936
9936
  var belowKey = "".concat(row + 1, ".").concat(col);
9937
9937
  if (grid[belowKey]) {
9938
- var newGrid = _objectSpread$x({}, grid);
9939
- newGrid[currentKey] = _objectSpread$x(_objectSpread$x({}, newGrid[currentKey]), {}, {
9938
+ var newGrid = _objectSpread$y({}, grid);
9939
+ newGrid[currentKey] = _objectSpread$y(_objectSpread$y({}, newGrid[currentKey]), {}, {
9940
9940
  rowSpan: newGrid[currentKey].rowSpan + 1
9941
9941
  });
9942
9942
  delete newGrid[belowKey];
@@ -9953,7 +9953,7 @@ function GridEditor(_ref) {
9953
9953
  var splitCell = function splitCell(row, col) {
9954
9954
  var key = "".concat(row, ".").concat(col);
9955
9955
  var cell = grid[key];
9956
- var newGrid = _objectSpread$x({}, grid);
9956
+ var newGrid = _objectSpread$y({}, grid);
9957
9957
 
9958
9958
  // we have to check the colspan, and since the colspan is greater than 1
9959
9959
  // Only handle horizontal split if colSpan > 1
@@ -9969,13 +9969,13 @@ function GridEditor(_ref) {
9969
9969
  var oldKey = "".concat(row, ".").concat(c);
9970
9970
  var newKey = "".concat(row, ".").concat(c + 1);
9971
9971
  if (newGrid[oldKey]) {
9972
- newGrid[newKey] = _objectSpread$x({}, newGrid[oldKey]);
9972
+ newGrid[newKey] = _objectSpread$y({}, newGrid[oldKey]);
9973
9973
  delete newGrid[oldKey];
9974
9974
  }
9975
9975
  }
9976
9976
 
9977
9977
  // Update the original cell's colSpan
9978
- newGrid[key] = _objectSpread$x(_objectSpread$x({}, cell), {}, {
9978
+ newGrid[key] = _objectSpread$y(_objectSpread$y({}, cell), {}, {
9979
9979
  colSpan: cell.colSpan - 1
9980
9980
  });
9981
9981
 
@@ -9987,7 +9987,7 @@ function GridEditor(_ref) {
9987
9987
  };
9988
9988
  }
9989
9989
  if (cell.rowSpan > 1) {
9990
- newGrid[key] = _objectSpread$x(_objectSpread$x({}, newGrid[key]), {}, {
9990
+ newGrid[key] = _objectSpread$y(_objectSpread$y({}, newGrid[key]), {}, {
9991
9991
  rowSpan: cell.rowSpan - 1
9992
9992
  });
9993
9993
  newGrid["".concat(row + 1, ".").concat(col)] = {
@@ -10003,7 +10003,7 @@ function GridEditor(_ref) {
10003
10003
  function sortObjectByKeys(obj) {
10004
10004
  var sortedKeys = Object.keys(obj).sort();
10005
10005
  var sortedObj = {};
10006
- var _iterator = _createForOfIteratorHelper$d(sortedKeys),
10006
+ var _iterator = _createForOfIteratorHelper$e(sortedKeys),
10007
10007
  _step;
10008
10008
  try {
10009
10009
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -10106,7 +10106,7 @@ function GridEditor(_ref) {
10106
10106
  var fromKey = "".concat(from.row, ".").concat(from.col);
10107
10107
  var toKey = "".concat(to.row, ".").concat(to.col);
10108
10108
  if (fromKey === toKey) return;
10109
- var newGrid = _objectSpread$x({}, grid);
10109
+ var newGrid = _objectSpread$y({}, grid);
10110
10110
 
10111
10111
  // Swap the cells
10112
10112
  var temp = newGrid[fromKey];
@@ -10132,7 +10132,7 @@ function GridEditor(_ref) {
10132
10132
  // console.log("Grid updated:", sequencedGrid);
10133
10133
  }
10134
10134
  function resetGridLayout() {
10135
- var newGrid = _objectSpread$x({}, defaultGrid);
10135
+ var newGrid = _objectSpread$y({}, defaultGrid);
10136
10136
  setGrid(newGrid);
10137
10137
  onUpdate(newGrid);
10138
10138
  }
@@ -10410,8 +10410,8 @@ var PanelEditItemGrid = function PanelEditItemGrid(_ref) {
10410
10410
  });
10411
10411
  };
10412
10412
 
10413
- 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; }
10414
- 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; }
10413
+ function ownKeys$x(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; }
10414
+ function _objectSpread$x(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$x(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$x(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10415
10415
  var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
10416
10416
  var item = _ref.item;
10417
10417
  _ref.workspace;
@@ -10434,7 +10434,7 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
10434
10434
  }, [widgetUuid, notificationDefs.length]);
10435
10435
  function handleNotifToggle(typeKey, value) {
10436
10436
  var _window$mainApi2;
10437
- var updated = _objectSpread$w(_objectSpread$w({}, notifPrefs), {}, _defineProperty({}, typeKey, value));
10437
+ var updated = _objectSpread$x(_objectSpread$x({}, notifPrefs), {}, _defineProperty({}, typeKey, value));
10438
10438
  setNotifPrefs(updated);
10439
10439
  if ((_window$mainApi2 = window.mainApi) !== null && _window$mainApi2 !== void 0 && (_window$mainApi2 = _window$mainApi2.notifications) !== null && _window$mainApi2 !== void 0 && _window$mainApi2.setPreferences && widgetUuid) {
10440
10440
  window.mainApi.notifications.setPreferences(widgetUuid, _defineProperty({}, typeKey, value));
@@ -10476,11 +10476,11 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
10476
10476
  });
10477
10477
  };
10478
10478
 
10479
- function _createForOfIteratorHelper$c(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$c(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; } } }; }
10480
- function _unsupportedIterableToArray$c(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$c(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$c(r, a) : void 0; } }
10481
- function _arrayLikeToArray$c(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; }
10482
- 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; }
10483
- 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; }
10479
+ function _createForOfIteratorHelper$d(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$d(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; } } }; }
10480
+ function _unsupportedIterableToArray$d(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$d(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$d(r, a) : void 0; } }
10481
+ function _arrayLikeToArray$d(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; }
10482
+ 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; }
10483
+ 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; }
10484
10484
  var DAYS = [{
10485
10485
  key: "mon",
10486
10486
  label: "Mon"
@@ -10581,7 +10581,7 @@ function TaskScheduleEditor(_ref) {
10581
10581
  var _window$mainApi;
10582
10582
  var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
10583
10583
  if (!((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && (_window$mainApi = _window$mainApi.scheduler) !== null && _window$mainApi !== void 0 && _window$mainApi.registerTask)) return;
10584
- var payload = _objectSpread$v({
10584
+ var payload = _objectSpread$w({
10585
10585
  widgetId: widgetId,
10586
10586
  widgetName: widgetName,
10587
10587
  workspaceId: workspaceId || "",
@@ -10807,7 +10807,7 @@ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
10807
10807
  setIsLoading(true);
10808
10808
  window.mainApi.scheduler.getTasks(widgetUuid).then(function (tasks) {
10809
10809
  var stateMap = {};
10810
- var _iterator = _createForOfIteratorHelper$c(tasks || []),
10810
+ var _iterator = _createForOfIteratorHelper$d(tasks || []),
10811
10811
  _step;
10812
10812
  try {
10813
10813
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -12852,8 +12852,8 @@ var WidgetIcon = function WidgetIcon(_ref) {
12852
12852
  });
12853
12853
  };
12854
12854
 
12855
- 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; }
12856
- 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; }
12855
+ 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; }
12856
+ 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; }
12857
12857
  var ProviderForm = function ProviderForm(_ref) {
12858
12858
  var credentialSchema = _ref.credentialSchema,
12859
12859
  _ref$initialValues = _ref.initialValues,
@@ -12898,14 +12898,14 @@ var ProviderForm = function ProviderForm(_ref) {
12898
12898
  var oldKey = f.key;
12899
12899
  if (oldKey && formData[oldKey] !== undefined) {
12900
12900
  setFormData(function (fd) {
12901
- var updated = _objectSpread$u({}, fd);
12901
+ var updated = _objectSpread$v({}, fd);
12902
12902
  var val = updated[oldKey];
12903
12903
  delete updated[oldKey];
12904
12904
  if (newKey.trim()) updated[newKey] = val;
12905
12905
  return updated;
12906
12906
  });
12907
12907
  }
12908
- return _objectSpread$u(_objectSpread$u({}, f), {}, {
12908
+ return _objectSpread$v(_objectSpread$v({}, f), {}, {
12909
12909
  key: newKey
12910
12910
  });
12911
12911
  });
@@ -12917,14 +12917,14 @@ var ProviderForm = function ProviderForm(_ref) {
12917
12917
  });
12918
12918
  if (field !== null && field !== void 0 && field.key) {
12919
12919
  setFormData(function (prev) {
12920
- return _objectSpread$u(_objectSpread$u({}, prev), {}, _defineProperty({}, field.key, value));
12920
+ return _objectSpread$v(_objectSpread$v({}, prev), {}, _defineProperty({}, field.key, value));
12921
12921
  });
12922
12922
  }
12923
12923
  };
12924
12924
  var handleDynamicSecretToggle = function handleDynamicSecretToggle(id) {
12925
12925
  setDynamicFields(function (prev) {
12926
12926
  return prev.map(function (f) {
12927
- return f.id === id ? _objectSpread$u(_objectSpread$u({}, f), {}, {
12927
+ return f.id === id ? _objectSpread$v(_objectSpread$v({}, f), {}, {
12928
12928
  secret: !f.secret
12929
12929
  }) : f;
12930
12930
  });
@@ -12946,7 +12946,7 @@ var ProviderForm = function ProviderForm(_ref) {
12946
12946
  });
12947
12947
  if (field !== null && field !== void 0 && field.key) {
12948
12948
  setFormData(function (prev) {
12949
- var updated = _objectSpread$u({}, prev);
12949
+ var updated = _objectSpread$v({}, prev);
12950
12950
  delete updated[field.key];
12951
12951
  return updated;
12952
12952
  });
@@ -12988,13 +12988,13 @@ var ProviderForm = function ProviderForm(_ref) {
12988
12988
  */
12989
12989
  var handleInputChange = function handleInputChange(fieldName, value) {
12990
12990
  setFormData(function (prev) {
12991
- return _objectSpread$u(_objectSpread$u({}, prev), {}, _defineProperty({}, fieldName, value));
12991
+ return _objectSpread$v(_objectSpread$v({}, prev), {}, _defineProperty({}, fieldName, value));
12992
12992
  });
12993
12993
 
12994
12994
  // Clear error for this field if it was filled
12995
12995
  if (errors[fieldName] && value !== null && value !== void 0 && value.trim()) {
12996
12996
  setErrors(function (prev) {
12997
- var newErrors = _objectSpread$u({}, prev);
12997
+ var newErrors = _objectSpread$v({}, prev);
12998
12998
  delete newErrors[fieldName];
12999
12999
  return newErrors;
13000
13000
  });
@@ -13032,7 +13032,7 @@ var ProviderForm = function ProviderForm(_ref) {
13032
13032
  // Clear error if filled
13033
13033
  if (errors.providerName && value !== null && value !== void 0 && value.trim()) {
13034
13034
  setErrors(function (prev) {
13035
- var newErrors = _objectSpread$u({}, prev);
13035
+ var newErrors = _objectSpread$v({}, prev);
13036
13036
  delete newErrors.providerName;
13037
13037
  return newErrors;
13038
13038
  });
@@ -13269,8 +13269,8 @@ var ToolSelector = function ToolSelector(_ref) {
13269
13269
  });
13270
13270
  };
13271
13271
 
13272
- 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; }
13273
- 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; }
13272
+ 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; }
13273
+ 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; }
13274
13274
  /**
13275
13275
  * Shared MCP utility functions.
13276
13276
  *
@@ -13398,7 +13398,7 @@ function buildMcpConfigFromOverrides(baseMcpConfig, envMappingRows, headerRows)
13398
13398
  headerTemplate[name] = value;
13399
13399
  }
13400
13400
  });
13401
- var config = _objectSpread$t({}, baseMcpConfig);
13401
+ var config = _objectSpread$u({}, baseMcpConfig);
13402
13402
  if (Object.keys(headerTemplate).length > 0) {
13403
13403
  config.headerTemplate = headerTemplate;
13404
13404
  } else {
@@ -13416,7 +13416,7 @@ function buildMcpConfigFromOverrides(baseMcpConfig, envMappingRows, headerRows)
13416
13416
  envMapping[env] = cred;
13417
13417
  }
13418
13418
  });
13419
- return _objectSpread$t(_objectSpread$t({}, baseMcpConfig), {}, {
13419
+ return _objectSpread$u(_objectSpread$u({}, baseMcpConfig), {}, {
13420
13420
  envMapping: envMapping
13421
13421
  });
13422
13422
  }
@@ -13657,11 +13657,11 @@ var getUserConfigurableProviders = function getUserConfigurableProviders(provide
13657
13657
  });
13658
13658
  };
13659
13659
 
13660
- function _createForOfIteratorHelper$b(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$b(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; } } }; }
13661
- function _unsupportedIterableToArray$b(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$b(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$b(r, a) : void 0; } }
13662
- function _arrayLikeToArray$b(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; }
13663
- 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; }
13664
- 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; }
13660
+ function _createForOfIteratorHelper$c(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$c(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; } } }; }
13661
+ function _unsupportedIterableToArray$c(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$c(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$c(r, a) : void 0; } }
13662
+ function _arrayLikeToArray$c(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; }
13663
+ 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; }
13664
+ 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; }
13665
13665
  var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
13666
13666
  var isOpen = _ref.isOpen,
13667
13667
  onClose = _ref.onClose,
@@ -13838,7 +13838,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
13838
13838
  .map(function (entry) {
13839
13839
  var widget = allWidgets[entry.widgetKey];
13840
13840
  if (!widget) return null; // Widget no longer exists
13841
- return _objectSpread$s(_objectSpread$s({
13841
+ return _objectSpread$t(_objectSpread$t({
13842
13842
  key: entry.widgetKey
13843
13843
  }, widget), {}, {
13844
13844
  savedProviders: entry.providers || {},
@@ -13926,11 +13926,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
13926
13926
 
13927
13927
  // Flatten all widgets from all packages for the widget list
13928
13928
  flatWidgets = [];
13929
- _iterator = _createForOfIteratorHelper$b(result.packages || []);
13929
+ _iterator = _createForOfIteratorHelper$c(result.packages || []);
13930
13930
  try {
13931
13931
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
13932
13932
  pkg = _step.value;
13933
- _iterator2 = _createForOfIteratorHelper$b(pkg.widgets || []);
13933
+ _iterator2 = _createForOfIteratorHelper$c(pkg.widgets || []);
13934
13934
  try {
13935
13935
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
13936
13936
  widget = _step2.value;
@@ -13989,7 +13989,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
13989
13989
  // Get widgets from ComponentManager
13990
13990
  var allWidgets = ComponentManager.map();
13991
13991
  var widgetList = Object.keys(allWidgets).map(function (key) {
13992
- return _objectSpread$s({
13992
+ return _objectSpread$t({
13993
13993
  key: key
13994
13994
  }, allWidgets[key]);
13995
13995
  }).filter(function (widget) {
@@ -14220,7 +14220,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14220
14220
  setInlineCreateType(null);
14221
14221
  setInlineCreateSchema({});
14222
14222
  setInlineCreateError(null);
14223
- setSelectedProviders(_objectSpread$s(_objectSpread$s({}, selectedProviders), {}, _defineProperty({}, providerType, providerName)));
14223
+ setSelectedProviders(_objectSpread$t(_objectSpread$t({}, selectedProviders), {}, _defineProperty({}, providerType, providerName)));
14224
14224
  }
14225
14225
  };
14226
14226
  var handleInlineProviderSubmit = function handleInlineProviderSubmit(formData) {
@@ -14241,7 +14241,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14241
14241
 
14242
14242
  // Auto-select the newly created provider
14243
14243
  setSelectedProviders(function (prev) {
14244
- return _objectSpread$s(_objectSpread$s({}, prev), {}, _defineProperty({}, providerType, providerName));
14244
+ return _objectSpread$t(_objectSpread$t({}, prev), {}, _defineProperty({}, providerType, providerName));
14245
14245
  });
14246
14246
 
14247
14247
  // Collapse the inline form
@@ -14295,11 +14295,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14295
14295
  };
14296
14296
  var inlineHandleCredentialChange = function inlineHandleCredentialChange(fieldName, value) {
14297
14297
  setInlineCredentialData(function (prev) {
14298
- return _objectSpread$s(_objectSpread$s({}, prev), {}, _defineProperty({}, fieldName, value));
14298
+ return _objectSpread$t(_objectSpread$t({}, prev), {}, _defineProperty({}, fieldName, value));
14299
14299
  });
14300
14300
  if (inlineFormErrors[fieldName] && value !== null && value !== void 0 && value.trim()) {
14301
14301
  setInlineFormErrors(function (prev) {
14302
- var next = _objectSpread$s({}, prev);
14302
+ var next = _objectSpread$t({}, prev);
14303
14303
  delete next[fieldName];
14304
14304
  return next;
14305
14305
  });
@@ -14392,7 +14392,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14392
14392
  refreshProviders();
14393
14393
  }
14394
14394
  setSelectedProviders(function (prev) {
14395
- return _objectSpread$s(_objectSpread$s({}, prev), {}, _defineProperty({}, providerType, providerName));
14395
+ return _objectSpread$t(_objectSpread$t({}, prev), {}, _defineProperty({}, providerType, providerName));
14396
14396
  });
14397
14397
 
14398
14398
  // Reset stepper state
@@ -14413,7 +14413,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14413
14413
  });
14414
14414
  };
14415
14415
  var handleConfigChange = function handleConfigChange(key, value) {
14416
- setUserConfigValues(_objectSpread$s(_objectSpread$s({}, userConfigValues), {}, _defineProperty({}, key, value)));
14416
+ setUserConfigValues(_objectSpread$t(_objectSpread$t({}, userConfigValues), {}, _defineProperty({}, key, value)));
14417
14417
  };
14418
14418
 
14419
14419
  // Install a package from the registry
@@ -14503,7 +14503,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14503
14503
 
14504
14504
  // Phase 3: Save to recent widgets
14505
14505
  saveToRecent(selectedWidget, selectedProviders, userConfigValues);
14506
- onSelectWidget(_objectSpread$s(_objectSpread$s({}, selectedWidget), {}, {
14506
+ onSelectWidget(_objectSpread$t(_objectSpread$t({}, selectedWidget), {}, {
14507
14507
  selectedProviders: selectedProviders,
14508
14508
  // Pass to parent
14509
14509
  userConfigValues: userConfigValues // Pass to parent
@@ -15139,7 +15139,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
15139
15139
  setInlineProviderName(value);
15140
15140
  if (inlineFormErrors.providerName && value !== null && value !== void 0 && value.trim()) {
15141
15141
  setInlineFormErrors(function (prev) {
15142
- var next = _objectSpread$s({}, prev);
15142
+ var next = _objectSpread$t({}, prev);
15143
15143
  delete next.providerName;
15144
15144
  return next;
15145
15145
  });
@@ -15486,9 +15486,9 @@ var ProviderBadge = function ProviderBadge(_ref) {
15486
15486
  });
15487
15487
  };
15488
15488
 
15489
- function _createForOfIteratorHelper$a(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$a(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; } } }; }
15490
- function _unsupportedIterableToArray$a(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$a(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$a(r, a) : void 0; } }
15491
- function _arrayLikeToArray$a(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; }
15489
+ function _createForOfIteratorHelper$b(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$b(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; } } }; }
15490
+ function _unsupportedIterableToArray$b(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$b(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$b(r, a) : void 0; } }
15491
+ function _arrayLikeToArray$b(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; }
15492
15492
  var WidgetCardHeader = function WidgetCardHeader(_ref) {
15493
15493
  var item = _ref.item,
15494
15494
  widget = _ref.widget,
@@ -15532,7 +15532,7 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
15532
15532
  var el = headerRef.current;
15533
15533
  if (!el) return;
15534
15534
  var observer = new ResizeObserver(function (entries) {
15535
- var _iterator = _createForOfIteratorHelper$a(entries),
15535
+ var _iterator = _createForOfIteratorHelper$b(entries),
15536
15536
  _step;
15537
15537
  try {
15538
15538
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -15889,9 +15889,9 @@ var useWidgetSchedulerStatus = function useWidgetSchedulerStatus(widgetId) {
15889
15889
  };
15890
15890
  };
15891
15891
 
15892
- function _createForOfIteratorHelper$9(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$9(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; } } }; }
15893
- function _unsupportedIterableToArray$9(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$9(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$9(r, a) : void 0; } }
15894
- function _arrayLikeToArray$9(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; }
15892
+ function _createForOfIteratorHelper$a(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$a(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; } } }; }
15893
+ function _unsupportedIterableToArray$a(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$a(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$a(r, a) : void 0; } }
15894
+ function _arrayLikeToArray$a(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; }
15895
15895
  function formatCountdown(ms) {
15896
15896
  if (ms == null || ms < 0) return "--";
15897
15897
  if (ms < 1000) return "< 1s";
@@ -16008,7 +16008,7 @@ var WidgetCardStatusBar = function WidgetCardStatusBar(_ref) {
16008
16008
 
16009
16009
  // Find soonest countdown among enabled tasks
16010
16010
  var soonestMs = null;
16011
- var _iterator = _createForOfIteratorHelper$9(enabledTasks),
16011
+ var _iterator = _createForOfIteratorHelper$a(enabledTasks),
16012
16012
  _step;
16013
16013
  try {
16014
16014
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -16459,8 +16459,8 @@ var ProviderSelector = function ProviderSelector(_ref) {
16459
16459
  });
16460
16460
  };
16461
16461
 
16462
- 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; }
16463
- 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; }
16462
+ 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; }
16463
+ 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; }
16464
16464
  var AdvancedMcpConfig = function AdvancedMcpConfig(_ref) {
16465
16465
  var transport = _ref.transport,
16466
16466
  envMappingRows = _ref.envMappingRows,
@@ -16489,7 +16489,7 @@ var AdvancedMcpConfig = function AdvancedMcpConfig(_ref) {
16489
16489
  var updateEnvRow = function updateEnvRow(id, field, value) {
16490
16490
  onEnvMappingRowsChange(function (prev) {
16491
16491
  return prev.map(function (row) {
16492
- return row.id === id ? _objectSpread$r(_objectSpread$r({}, row), {}, _defineProperty({}, field, value)) : row;
16492
+ return row.id === id ? _objectSpread$s(_objectSpread$s({}, row), {}, _defineProperty({}, field, value)) : row;
16493
16493
  });
16494
16494
  });
16495
16495
  };
@@ -16514,7 +16514,7 @@ var AdvancedMcpConfig = function AdvancedMcpConfig(_ref) {
16514
16514
  var updateHeaderRow = function updateHeaderRow(id, field, value) {
16515
16515
  onHeaderRowsChange(function (prev) {
16516
16516
  return prev.map(function (row) {
16517
- return row.id === id ? _objectSpread$r(_objectSpread$r({}, row), {}, _defineProperty({}, field, value)) : row;
16517
+ return row.id === id ? _objectSpread$s(_objectSpread$s({}, row), {}, _defineProperty({}, field, value)) : row;
16518
16518
  });
16519
16519
  });
16520
16520
  };
@@ -16663,8 +16663,8 @@ var AdvancedMcpConfig = function AdvancedMcpConfig(_ref) {
16663
16663
  });
16664
16664
  };
16665
16665
 
16666
- 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; }
16667
- 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; }
16666
+ 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; }
16667
+ 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; }
16668
16668
  var McpServerPicker = function McpServerPicker(_ref) {
16669
16669
  var _testResult$tools;
16670
16670
  var isOpen = _ref.isOpen,
@@ -16843,11 +16843,11 @@ var McpServerPicker = function McpServerPicker(_ref) {
16843
16843
  // Handle credential field changes
16844
16844
  var handleCredentialChange = function handleCredentialChange(fieldName, value) {
16845
16845
  setCredentialData(function (prev) {
16846
- return _objectSpread$q(_objectSpread$q({}, prev), {}, _defineProperty({}, fieldName, value));
16846
+ return _objectSpread$r(_objectSpread$r({}, prev), {}, _defineProperty({}, fieldName, value));
16847
16847
  });
16848
16848
  if (formErrors[fieldName] && value !== null && value !== void 0 && value.trim()) {
16849
16849
  setFormErrors(function (prev) {
16850
- var next = _objectSpread$q({}, prev);
16850
+ var next = _objectSpread$r({}, prev);
16851
16851
  delete next[fieldName];
16852
16852
  return next;
16853
16853
  });
@@ -17185,7 +17185,7 @@ var McpServerPicker = function McpServerPicker(_ref) {
17185
17185
  setProviderName(value);
17186
17186
  if (formErrors.providerName && value !== null && value !== void 0 && value.trim()) {
17187
17187
  setFormErrors(function (prev) {
17188
- var next = _objectSpread$q({}, prev);
17188
+ var next = _objectSpread$r({}, prev);
17189
17189
  delete next.providerName;
17190
17190
  return next;
17191
17191
  });
@@ -17375,8 +17375,8 @@ var McpServerPicker = function McpServerPicker(_ref) {
17375
17375
  });
17376
17376
  };
17377
17377
 
17378
- 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; }
17379
- 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; }
17378
+ 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; }
17379
+ 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; }
17380
17380
  var USE_ENHANCED_WIDGET_SELECTOR = true; // Set to false to use original modal
17381
17381
 
17382
17382
  /**
@@ -17422,7 +17422,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
17422
17422
  var _ref3 = _slicedToArray(_ref2, 2),
17423
17423
  id = _ref3[0],
17424
17424
  p = _ref3[1];
17425
- return _objectSpread$p(_objectSpread$p({}, p), {}, {
17425
+ return _objectSpread$q(_objectSpread$q({}, p), {}, {
17426
17426
  id: id,
17427
17427
  name: p.name || id
17428
17428
  });
@@ -17509,7 +17509,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
17509
17509
  // so we use its layout to replace any corrupted grid data.
17510
17510
  if (workspace && workspace["layout"]) {
17511
17511
  var model = new DashboardModel(workspace);
17512
- setCurrentWorkspace(_objectSpread$p(_objectSpread$p({}, workspace), {}, {
17512
+ setCurrentWorkspace(_objectSpread$q(_objectSpread$q({}, workspace), {}, {
17513
17513
  layout: model.layout
17514
17514
  }));
17515
17515
  } else {
@@ -17900,7 +17900,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
17900
17900
  var uuid = widget.uuid || widget.uuidString;
17901
17901
  if (uuid) {
17902
17902
  newWorkspace.selectedProviders = newWorkspace.selectedProviders || {};
17903
- newWorkspace.selectedProviders[uuid] = _objectSpread$p(_objectSpread$p({}, newWorkspace.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
17903
+ newWorkspace.selectedProviders[uuid] = _objectSpread$q(_objectSpread$q({}, newWorkspace.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
17904
17904
  }
17905
17905
  setCurrentWorkspace(newWorkspace);
17906
17906
  }
@@ -18035,7 +18035,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
18035
18035
  try {
18036
18036
  var config = ComponentManager.config(widgetKey);
18037
18037
  if (!config) return;
18038
- var widgetItem = _objectSpread$p(_objectSpread$p({}, config), {}, {
18038
+ var widgetItem = _objectSpread$q(_objectSpread$q({}, config), {}, {
18039
18039
  component: widgetKey,
18040
18040
  key: widgetKey
18041
18041
  });
@@ -18264,7 +18264,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
18264
18264
  onSelectWidget: function onSelectWidget(widget) {
18265
18265
 
18266
18266
  // Add component property from widget.key
18267
- var widgetWithComponent = _objectSpread$p(_objectSpread$p({}, widget), {}, {
18267
+ var widgetWithComponent = _objectSpread$q(_objectSpread$q({}, widget), {}, {
18268
18268
  component: widget.key
18269
18269
  });
18270
18270
  handleClickConfirmAdd(widgetWithComponent, dropdownTarget);
@@ -19892,8 +19892,8 @@ var MissingProviderPrompt = function MissingProviderPrompt(_ref) {
19892
19892
  });
19893
19893
  };
19894
19894
 
19895
- 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; }
19896
- 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; }
19895
+ 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; }
19896
+ 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; }
19897
19897
  function _callSuper$4(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$4() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
19898
19898
  function _isNativeReflectConstruct$4() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$4 = function _isNativeReflectConstruct() { return !!t; })(); }
19899
19899
  var ProviderErrorBoundary = /*#__PURE__*/function (_Component) {
@@ -19948,7 +19948,7 @@ var ProviderErrorBoundary = /*#__PURE__*/function (_Component) {
19948
19948
  _defineProperty(_this, "handleProviderSelect", function (providerType, providerName, credentials) {
19949
19949
 
19950
19950
  // Update local selected providers state
19951
- var updatedSelected = _objectSpread$o(_objectSpread$o({}, _this.state.selectedProviders), {}, _defineProperty({}, providerType, providerName));
19951
+ var updatedSelected = _objectSpread$p(_objectSpread$p({}, _this.state.selectedProviders), {}, _defineProperty({}, providerType, providerName));
19952
19952
  _this.setState({
19953
19953
  selectedProviders: updatedSelected
19954
19954
  }, function () {
@@ -20022,8 +20022,8 @@ var ProviderErrorBoundary = /*#__PURE__*/function (_Component) {
20022
20022
  }(React.Component);
20023
20023
  _defineProperty(ProviderErrorBoundary, "contextType", ProviderContext);
20024
20024
 
20025
- 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; }
20026
- 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; }
20025
+ 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; }
20026
+ 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; }
20027
20027
  var withProviderDetection = function withProviderDetection(Component) {
20028
20028
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
20029
20029
  _ref$requiredProvider = _ref.requiredProviders,
@@ -20048,7 +20048,7 @@ var withProviderDetection = function withProviderDetection(Component) {
20048
20048
  onProviderSelect: onProviderSelect
20049
20049
  });
20050
20050
  }
20051
- return /*#__PURE__*/jsxRuntime.jsx(Component, _objectSpread$n({}, props));
20051
+ return /*#__PURE__*/jsxRuntime.jsx(Component, _objectSpread$o({}, props));
20052
20052
  };
20053
20053
  };
20054
20054
 
@@ -20262,8 +20262,8 @@ var WidgetHelpers = /*#__PURE__*/function () {
20262
20262
  }]);
20263
20263
  }();
20264
20264
 
20265
- 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; }
20266
- 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; }
20265
+ 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; }
20266
+ 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; }
20267
20267
  function _callSuper$2(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$2() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
20268
20268
  function _isNativeReflectConstruct$2() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$2 = function _isNativeReflectConstruct() { return !!t; })(); }
20269
20269
  var WidgetErrorBoundary = /*#__PURE__*/function (_Component) {
@@ -20390,7 +20390,7 @@ var WidgetRenderer = function WidgetRenderer(_ref) {
20390
20390
 
20391
20391
  // Build widgetData for WidgetContext — hooks read from this
20392
20392
  var uuidString = DashReact.getUUID(params.uuid);
20393
- var widgetData = _objectSpread$m(_objectSpread$m({}, params), {}, {
20393
+ var widgetData = _objectSpread$n(_objectSpread$n({}, params), {}, {
20394
20394
  uuidString: uuidString,
20395
20395
  providers: (config === null || config === void 0 ? void 0 : config.providers) || [],
20396
20396
  notifications: (config === null || config === void 0 ? void 0 : config.notifications) || []
@@ -20414,7 +20414,7 @@ var WidgetRenderer = function WidgetRenderer(_ref) {
20414
20414
  widgetData: widgetData
20415
20415
  };
20416
20416
  var hasScheduledTasks = ((config === null || config === void 0 ? void 0 : config.scheduledTasks) || []).length > 0;
20417
- var widgetElement = children === null ? /*#__PURE__*/jsxRuntime.jsx(WidgetComponent, _objectSpread$m(_objectSpread$m(_objectSpread$m({
20417
+ var widgetElement = children === null ? /*#__PURE__*/jsxRuntime.jsx(WidgetComponent, _objectSpread$n(_objectSpread$n(_objectSpread$n({
20418
20418
  id: "widget-nokids-".concat(widgetKey),
20419
20419
  listen: function listen(listeners, handlers) {
20420
20420
  return helpers.listen(listeners, handlers);
@@ -20427,7 +20427,7 @@ var WidgetRenderer = function WidgetRenderer(_ref) {
20427
20427
  backgroundColor: bgColor,
20428
20428
  widgetConfig: helpers.config(),
20429
20429
  widgetEventNames: helpers.events()
20430
- }), "widget-nokids-".concat(widgetKey)) : /*#__PURE__*/jsxRuntime.jsx(WidgetComponent, _objectSpread$m(_objectSpread$m(_objectSpread$m({
20430
+ }), "widget-nokids-".concat(widgetKey)) : /*#__PURE__*/jsxRuntime.jsx(WidgetComponent, _objectSpread$n(_objectSpread$n(_objectSpread$n({
20431
20431
  listen: function listen(listeners, handlers) {
20432
20432
  return helpers.listen(listeners, handlers);
20433
20433
  },
@@ -20621,11 +20621,11 @@ var ExternalWidget = function ExternalWidget(_ref) {
20621
20621
  var GRID_CELL_WIDGET_TYPE = "grid-cell-widget";
20622
20622
  var SIDEBAR_WIDGET_TYPE = "sidebar-widget";
20623
20623
 
20624
- function _createForOfIteratorHelper$8(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$8(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; } } }; }
20625
- function _unsupportedIterableToArray$8(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$8(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$8(r, a) : void 0; } }
20626
- function _arrayLikeToArray$8(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; }
20627
- function ownKeys$l(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; }
20628
- function _objectSpread$l(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$l(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$l(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
20624
+ function _createForOfIteratorHelper$9(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$9(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; } } }; }
20625
+ function _unsupportedIterableToArray$9(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$9(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$9(r, a) : void 0; } }
20626
+ function _arrayLikeToArray$9(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; }
20627
+ 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; }
20628
+ 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; }
20629
20629
  var DraggableDroppableCellBody = function DraggableDroppableCellBody(_ref) {
20630
20630
  var cellNumber = _ref.cellNumber,
20631
20631
  gridContainerId = _ref.gridContainerId,
@@ -20812,7 +20812,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
20812
20812
  var _ref5 = _slicedToArray(_ref4, 2),
20813
20813
  id = _ref5[0],
20814
20814
  provider = _ref5[1];
20815
- return _objectSpread$l({
20815
+ return _objectSpread$m({
20816
20816
  id: id
20817
20817
  }, provider);
20818
20818
  }) : [];
@@ -21187,7 +21187,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
21187
21187
  return selectable["delete"](cn);
21188
21188
  });
21189
21189
  var resolved = new Set();
21190
- var _iterator = _createForOfIteratorHelper$8(selectable),
21190
+ var _iterator = _createForOfIteratorHelper$9(selectable),
21191
21191
  _step;
21192
21192
  try {
21193
21193
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -21812,7 +21812,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
21812
21812
  var widgetSpecificSelections = (workspace === null || workspace === void 0 || (_workspace$selectedPr = workspace.selectedProviders) === null || _workspace$selectedPr === void 0 ? void 0 : _workspace$selectedPr[id]) || {};
21813
21813
 
21814
21814
  // Add provider-related props from workspace
21815
- var itemWithProviders = _objectSpread$l(_objectSpread$l({}, item), {}, {
21815
+ var itemWithProviders = _objectSpread$m(_objectSpread$m({}, item), {}, {
21816
21816
  selectedProviders: widgetSpecificSelections,
21817
21817
  onProviderSelect: onProviderSelect
21818
21818
  });
@@ -23325,11 +23325,11 @@ function isWidgetResolvable(componentKey) {
23325
23325
  // isMinOrderForItem
23326
23326
  // }
23327
23327
 
23328
- function ownKeys$k(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; }
23329
- function _objectSpread$k(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$k(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$k(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
23330
- 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; } } }; }
23331
- 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; } }
23332
- 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; }
23328
+ function ownKeys$l(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; }
23329
+ function _objectSpread$l(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$l(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$l(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
23330
+ function _createForOfIteratorHelper$8(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$8(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; } } }; }
23331
+ function _unsupportedIterableToArray$8(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$8(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$8(r, a) : void 0; } }
23332
+ function _arrayLikeToArray$8(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; }
23333
23333
  /**
23334
23334
  * The model for all layout components used primarily in the renderLayout method
23335
23335
  * @param {Object} layoutItem an object containing various attributes of the layout item
@@ -23341,7 +23341,7 @@ function _arrayLikeToArray$7(r, a) { (null == a || a > r.length) && (a = r.lengt
23341
23341
  function sortObjectByKeys(obj) {
23342
23342
  var sortedKeys = Object.keys(obj).sort();
23343
23343
  var sortedObj = {};
23344
- var _iterator = _createForOfIteratorHelper$7(sortedKeys),
23344
+ var _iterator = _createForOfIteratorHelper$8(sortedKeys),
23345
23345
  _step;
23346
23346
  try {
23347
23347
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -23482,7 +23482,7 @@ var LayoutModel = function LayoutModel(layoutItem, workspaceLayout, dashboardId)
23482
23482
 
23483
23483
  // Merge user-entered config values (from EnhancedWidgetDropdown) into userPrefs
23484
23484
  if ("userConfigValues" in obj && obj.userConfigValues) {
23485
- layout.userPrefs = _objectSpread$k(_objectSpread$k({}, layout.userPrefs), obj.userConfigValues);
23485
+ layout.userPrefs = _objectSpread$l(_objectSpread$l({}, layout.userPrefs), obj.userConfigValues);
23486
23486
  }
23487
23487
 
23488
23488
  // Preserve provider selections for this widget
@@ -24010,8 +24010,8 @@ var MenuItemModel = function MenuItemModel() {
24010
24010
  return m;
24011
24011
  };
24012
24012
 
24013
- function ownKeys$j(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; }
24014
- function _objectSpread$j(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$j(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$j(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
24013
+ function ownKeys$k(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; }
24014
+ function _objectSpread$k(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$k(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$k(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
24015
24015
  /**
24016
24016
  * A Model for a Workspace (Dashboard)
24017
24017
  * The Dashboard in this instance is the entire Layout inclusive of the workspaces and widgets
@@ -25275,7 +25275,7 @@ var DashboardModel = /*#__PURE__*/function () {
25275
25275
  visibleCells.push({
25276
25276
  row: r,
25277
25277
  col: c,
25278
- data: _objectSpread$j({}, cell),
25278
+ data: _objectSpread$k({}, cell),
25279
25279
  spanCol: ((_cell$span = cell.span) === null || _cell$span === void 0 ? void 0 : _cell$span.col) || 1,
25280
25280
  spanRow: ((_cell$span2 = cell.span) === null || _cell$span2 === void 0 ? void 0 : _cell$span2.row) || 1
25281
25281
  });
@@ -25297,7 +25297,7 @@ var DashboardModel = /*#__PURE__*/function () {
25297
25297
  var vc = _visibleCells[_i5];
25298
25298
  var newCol = (vc.col - 1) * count + 1;
25299
25299
  var _key7 = "".concat(vc.row, ".").concat(newCol);
25300
- grid[_key7] = _objectSpread$j(_objectSpread$j({}, vc.data), {}, {
25300
+ grid[_key7] = _objectSpread$k(_objectSpread$k({}, vc.data), {}, {
25301
25301
  hide: false,
25302
25302
  span: {
25303
25303
  row: vc.spanRow,
@@ -25372,7 +25372,7 @@ var DashboardModel = /*#__PURE__*/function () {
25372
25372
  _visibleCells2.push({
25373
25373
  row: _r1,
25374
25374
  col: _c10,
25375
- data: _objectSpread$j({}, _cell6),
25375
+ data: _objectSpread$k({}, _cell6),
25376
25376
  spanRow: ((_cell6$span = _cell6.span) === null || _cell6$span === void 0 ? void 0 : _cell6$span.row) || 1,
25377
25377
  spanCol: ((_cell6$span2 = _cell6.span) === null || _cell6$span2 === void 0 ? void 0 : _cell6$span2.col) || 1
25378
25378
  });
@@ -25394,7 +25394,7 @@ var DashboardModel = /*#__PURE__*/function () {
25394
25394
  var _vc = _visibleCells3[_i9];
25395
25395
  var newRow = (_vc.row - 1) * count + 1;
25396
25396
  var _key10 = "".concat(newRow, ".").concat(_vc.col);
25397
- grid[_key10] = _objectSpread$j(_objectSpread$j({}, _vc.data), {}, {
25397
+ grid[_key10] = _objectSpread$k(_objectSpread$k({}, _vc.data), {}, {
25398
25398
  hide: false,
25399
25399
  span: {
25400
25400
  row: _vc.spanRow * count,
@@ -26541,8 +26541,8 @@ var ErrorBoundary = /*#__PURE__*/function (_React$Component) {
26541
26541
  }]);
26542
26542
  }(React.Component);
26543
26543
 
26544
- function ownKeys$i(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; }
26545
- function _objectSpread$i(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$i(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$i(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26544
+ function ownKeys$j(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; }
26545
+ function _objectSpread$j(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$j(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$j(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26546
26546
 
26547
26547
  /**
26548
26548
  * useDashboard Hook
@@ -26598,7 +26598,7 @@ var useDashboard = function useDashboard() {
26598
26598
  }
26599
26599
  });
26600
26600
  }
26601
- return _objectSpread$i({
26601
+ return _objectSpread$j({
26602
26602
  app: app,
26603
26603
  dashboard: dashboard,
26604
26604
  theme: theme
@@ -26607,9 +26607,9 @@ var useDashboard = function useDashboard() {
26607
26607
  });
26608
26608
  };
26609
26609
 
26610
- 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; } } }; }
26611
- 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; } }
26612
- 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; }
26610
+ 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; } } }; }
26611
+ 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; } }
26612
+ 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; }
26613
26613
 
26614
26614
  /**
26615
26615
  * useWidgetProviders Hook
@@ -26660,7 +26660,7 @@ var useWidgetProviders = function useWidgetProviders() {
26660
26660
  // 1. Widget-level: stored directly on the layout item by handleSelectProvider
26661
26661
  // 2. Workspace-level: stored as workspace.selectedProviders[widgetId][providerType]
26662
26662
  var providers = {};
26663
- var _iterator = _createForOfIteratorHelper$6(providerDeclarations),
26663
+ var _iterator = _createForOfIteratorHelper$7(providerDeclarations),
26664
26664
  _step;
26665
26665
  try {
26666
26666
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -26713,7 +26713,7 @@ var useWidgetProviders = function useWidgetProviders() {
26713
26713
  var serverStates = new Map();
26714
26714
  // Map<serverName, { status, tools, resources, consumerCount }>
26715
26715
 
26716
- var pendingConnects = new Map();
26716
+ var pendingConnects$1 = new Map();
26717
26717
  // Map<serverName, Promise<result>>
26718
26718
 
26719
26719
  /**
@@ -26928,13 +26928,13 @@ var useMcpProvider = function useMcpProvider(providerType) {
26928
26928
  setError(null);
26929
26929
 
26930
26930
  // 2. Another hook instance already connecting? Piggyback on its promise
26931
- if (!pendingConnects.has(selectedProviderName)) {
26931
+ if (!pendingConnects$1.has(selectedProviderName)) {
26932
26932
  _context.next = 17;
26933
26933
  break;
26934
26934
  }
26935
26935
  _context.prev = 10;
26936
26936
  _context.next = 11;
26937
- return pendingConnects.get(selectedProviderName);
26937
+ return pendingConnects$1.get(selectedProviderName);
26938
26938
  case 11:
26939
26939
  result = _context.sent;
26940
26940
  if (mountedRef.current) {
@@ -26976,7 +26976,7 @@ var useMcpProvider = function useMcpProvider(providerType) {
26976
26976
  // 3. First caller — fire the IPC call and share the promise
26977
26977
  connectPromise = new Promise(function (resolve, reject) {
26978
26978
  dashApi.mcpStartServer(selectedProviderName, provider.mcpConfig, provider.credentials, function (event, result) {
26979
- pendingConnects["delete"](selectedProviderName);
26979
+ pendingConnects$1["delete"](selectedProviderName);
26980
26980
  if (result.error) {
26981
26981
  serverStates.set(selectedProviderName, {
26982
26982
  status: "error",
@@ -26997,7 +26997,7 @@ var useMcpProvider = function useMcpProvider(providerType) {
26997
26997
  });
26998
26998
  resolve(result);
26999
26999
  }, function (event, err) {
27000
- pendingConnects["delete"](selectedProviderName);
27000
+ pendingConnects$1["delete"](selectedProviderName);
27001
27001
  serverStates.set(selectedProviderName, {
27002
27002
  status: "error",
27003
27003
  tools: [],
@@ -27007,7 +27007,7 @@ var useMcpProvider = function useMcpProvider(providerType) {
27007
27007
  reject(err);
27008
27008
  });
27009
27009
  });
27010
- pendingConnects.set(selectedProviderName, connectPromise);
27010
+ pendingConnects$1.set(selectedProviderName, connectPromise);
27011
27011
  _context.prev = 18;
27012
27012
  _context.next = 19;
27013
27013
  return connectPromise;
@@ -27093,7 +27093,7 @@ var useMcpProvider = function useMcpProvider(providerType) {
27093
27093
  setResources([]);
27094
27094
  setStatus("disconnected");
27095
27095
  connectedRef.current = false;
27096
- pendingConnects["delete"](selectedProviderName);
27096
+ pendingConnects$1["delete"](selectedProviderName);
27097
27097
  return _context2.abrupt("return", new Promise(function (resolve) {
27098
27098
  dashApi.mcpStopServer(selectedProviderName, function () {
27099
27099
  return resolve();
@@ -27395,9 +27395,9 @@ var useNotifications = function useNotifications() {
27395
27395
  };
27396
27396
  };
27397
27397
 
27398
- 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; } } }; }
27399
- 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; } }
27400
- 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; }
27398
+ 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; } } }; }
27399
+ 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; } }
27400
+ 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; }
27401
27401
 
27402
27402
  /**
27403
27403
  * useScheduler Hook
@@ -27470,7 +27470,7 @@ var useScheduler = function useScheduler() {
27470
27470
  if (pending && pending.length > 0) {
27471
27471
  setPendingResults(pending);
27472
27472
  // Call handlers for each pending result
27473
- var _iterator = _createForOfIteratorHelper$5(pending),
27473
+ var _iterator = _createForOfIteratorHelper$6(pending),
27474
27474
  _step;
27475
27475
  try {
27476
27476
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -27535,8 +27535,530 @@ var useScheduler = function useScheduler() {
27535
27535
  };
27536
27536
  };
27537
27537
 
27538
- function ownKeys$h(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; }
27539
- function _objectSpread$h(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$h(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$h(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
27538
+ /**
27539
+ * Module-level shared state for WebSocket connections.
27540
+ * Prevents multiple hook instances (e.g., 4 widgets using the same WS provider)
27541
+ * from each firing their own IPC connect call.
27542
+ *
27543
+ * connectionStates: tracks connection status + consumer reference count per provider
27544
+ * pendingConnects: deduplicates in-flight IPC calls so only 1 fires per provider
27545
+ */
27546
+ var connectionStates = new Map();
27547
+ // Map<providerName, { status, consumerCount }>
27548
+
27549
+ var pendingConnects = new Map();
27550
+ // Map<providerName, Promise<result>>
27551
+
27552
+ var STATUS = {
27553
+ DISCONNECTED: "disconnected",
27554
+ CONNECTING: "connecting",
27555
+ CONNECTED: "connected",
27556
+ ERROR: "error"
27557
+ };
27558
+
27559
+ /**
27560
+ * useWebSocketProvider Hook
27561
+ *
27562
+ * Provides access to a WebSocket connection for a widget.
27563
+ * Handles connection lifecycle, shared-connection ref counting,
27564
+ * message buffering, and bidirectional communication.
27565
+ *
27566
+ * Mirrors useMcpProvider.js patterns exactly:
27567
+ * - Module-level Maps (not component state) for connection sharing
27568
+ * - consumerCount determines socket lifecycle
27569
+ * - pendingConnects prevents duplicate connect calls during mount storms
27570
+ *
27571
+ * @param {string} providerType - The WebSocket provider type (e.g., "crypto-ws")
27572
+ * @param {Object} options - Optional configuration
27573
+ * @param {boolean} options.autoConnect - Whether to auto-connect on mount (default: true)
27574
+ * @param {number} options.maxMessages - Max messages in buffer (default: 100)
27575
+ *
27576
+ * @returns {Object} WebSocket provider interface
27577
+ */
27578
+ var useWebSocketProvider = function useWebSocketProvider(providerType) {
27579
+ var _app$providers;
27580
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
27581
+ var _options$autoConnect = options.autoConnect,
27582
+ autoConnect = _options$autoConnect === void 0 ? true : _options$autoConnect,
27583
+ _options$maxMessages = options.maxMessages,
27584
+ maxMessages = _options$maxMessages === void 0 ? 100 : _options$maxMessages;
27585
+ var app = React.useContext(AppContext);
27586
+ var workspace = React.useContext(WorkspaceContext);
27587
+ var widgetContext = React.useContext(WidgetContext);
27588
+ var _useState = React.useState(false),
27589
+ _useState2 = _slicedToArray(_useState, 2),
27590
+ isConnected = _useState2[0],
27591
+ setIsConnected = _useState2[1];
27592
+ var _useState3 = React.useState(false),
27593
+ _useState4 = _slicedToArray(_useState3, 2),
27594
+ isConnecting = _useState4[0],
27595
+ setIsConnecting = _useState4[1];
27596
+ var _useState5 = React.useState(null),
27597
+ _useState6 = _slicedToArray(_useState5, 2),
27598
+ error = _useState6[0],
27599
+ setError = _useState6[1];
27600
+ var _useState7 = React.useState(null),
27601
+ _useState8 = _slicedToArray(_useState7, 2),
27602
+ lastMessage = _useState8[0],
27603
+ setLastMessage = _useState8[1];
27604
+ var _useState9 = React.useState([]),
27605
+ _useState0 = _slicedToArray(_useState9, 2),
27606
+ messages = _useState0[0],
27607
+ setMessages = _useState0[1];
27608
+ var _useState1 = React.useState(STATUS.DISCONNECTED),
27609
+ _useState10 = _slicedToArray(_useState1, 2),
27610
+ status = _useState10[0],
27611
+ setStatus = _useState10[1];
27612
+ var connectedRef = React.useRef(false);
27613
+ var mountedRef = React.useRef(true);
27614
+ var messagesRef = React.useRef([]);
27615
+ var maxMessagesRef = React.useRef(maxMessages);
27616
+ maxMessagesRef.current = maxMessages;
27617
+ var dashApi = app === null || app === void 0 ? void 0 : app.dashApi;
27618
+
27619
+ // Get the widget data
27620
+ var widgetData = widgetContext === null || widgetContext === void 0 ? void 0 : widgetContext.widgetData;
27621
+
27622
+ // Get the selected WebSocket provider for this widget
27623
+ // Same two-layer lookup as useMcpProvider:
27624
+ // 1. Widget-level: stored directly on the layout item
27625
+ // 2. Workspace-level: stored as workspace.selectedProviders[widgetId][providerType]
27626
+ var widgetId = widgetData === null || widgetData === void 0 ? void 0 : widgetData.uuidString;
27627
+ var selectedProviderName = function (_widgetData$selectedP, _workspace$workspaceD) {
27628
+ if (widgetData !== null && widgetData !== void 0 && (_widgetData$selectedP = widgetData.selectedProviders) !== null && _widgetData$selectedP !== void 0 && _widgetData$selectedP[providerType]) {
27629
+ return widgetData.selectedProviders[providerType];
27630
+ }
27631
+ if (widgetId && workspace !== null && workspace !== void 0 && (_workspace$workspaceD = workspace.workspaceData) !== null && _workspace$workspaceD !== void 0 && (_workspace$workspaceD = _workspace$workspaceD.selectedProviders) !== null && _workspace$workspaceD !== void 0 && (_workspace$workspaceD = _workspace$workspaceD[widgetId]) !== null && _workspace$workspaceD !== void 0 && _workspace$workspaceD[providerType]) {
27632
+ return workspace.workspaceData.selectedProviders[widgetId][providerType];
27633
+ }
27634
+ return null;
27635
+ }();
27636
+
27637
+ // Get the provider data (including credentials)
27638
+ // Read from AppContext.providers (not DashboardContext)
27639
+ var provider = selectedProviderName ? app === null || app === void 0 || (_app$providers = app.providers) === null || _app$providers === void 0 ? void 0 : _app$providers[selectedProviderName] : null;
27640
+
27641
+ /**
27642
+ * Apply connection result to this hook instance's local state.
27643
+ */
27644
+ var applyConnected = React.useCallback(function () {
27645
+ if (!mountedRef.current) return;
27646
+ setIsConnected(true);
27647
+ setIsConnecting(false);
27648
+ setStatus(STATUS.CONNECTED);
27649
+ connectedRef.current = true;
27650
+ }, []);
27651
+
27652
+ /**
27653
+ * Connect to the WebSocket server.
27654
+ * Uses module-level deduplication so only one IPC call fires per provider,
27655
+ * even when multiple hook instances call connect() simultaneously.
27656
+ */
27657
+ var connect = React.useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
27658
+ var _provider$wsConfig;
27659
+ var cached, statusResult, result, state, connectPromise, _result2, _t3, _t4;
27660
+ return _regeneratorRuntime.wrap(function (_context2) {
27661
+ while (1) switch (_context2.prev = _context2.next) {
27662
+ case 0:
27663
+ if (!connectedRef.current) {
27664
+ _context2.next = 1;
27665
+ break;
27666
+ }
27667
+ return _context2.abrupt("return");
27668
+ case 1:
27669
+ if (!(!(dashApi !== null && dashApi !== void 0 && dashApi.webSocket) || !provider)) {
27670
+ _context2.next = 2;
27671
+ break;
27672
+ }
27673
+ setError(!provider ? "No ".concat(providerType, " WebSocket provider selected for this widget") : "Dashboard API not available");
27674
+ return _context2.abrupt("return");
27675
+ case 2:
27676
+ if (!(provider.providerClass !== "websocket")) {
27677
+ _context2.next = 3;
27678
+ break;
27679
+ }
27680
+ setError("Provider \"".concat(selectedProviderName, "\" is not a WebSocket provider"));
27681
+ return _context2.abrupt("return");
27682
+ case 3:
27683
+ if ((_provider$wsConfig = provider.wsConfig) !== null && _provider$wsConfig !== void 0 && _provider$wsConfig.url) {
27684
+ _context2.next = 4;
27685
+ break;
27686
+ }
27687
+ setError("Provider \"".concat(selectedProviderName, "\" has no WebSocket URL configured"));
27688
+ return _context2.abrupt("return");
27689
+ case 4:
27690
+ // 1. Already connected at module level? Verify with main process.
27691
+ cached = connectionStates.get(selectedProviderName);
27692
+ if (!(cached && cached.status === STATUS.CONNECTED)) {
27693
+ _context2.next = 9;
27694
+ break;
27695
+ }
27696
+ _context2.prev = 5;
27697
+ _context2.next = 6;
27698
+ return dashApi.webSocket.getStatus(selectedProviderName);
27699
+ case 6:
27700
+ statusResult = _context2.sent;
27701
+ if (!((statusResult === null || statusResult === void 0 ? void 0 : statusResult.status) === "connected")) {
27702
+ _context2.next = 7;
27703
+ break;
27704
+ }
27705
+ cached.consumerCount++;
27706
+ applyConnected();
27707
+ return _context2.abrupt("return");
27708
+ case 7:
27709
+ // Server was stopped externally — clear stale cache and reconnect
27710
+ connectionStates["delete"](selectedProviderName);
27711
+ _context2.next = 9;
27712
+ break;
27713
+ case 8:
27714
+ _context2.prev = 8;
27715
+ _context2["catch"](5);
27716
+ connectionStates["delete"](selectedProviderName);
27717
+ case 9:
27718
+ setIsConnecting(true);
27719
+ setError(null);
27720
+ setStatus(STATUS.CONNECTING);
27721
+
27722
+ // 2. Another hook instance already connecting? Piggyback on its promise
27723
+ if (!pendingConnects.has(selectedProviderName)) {
27724
+ _context2.next = 17;
27725
+ break;
27726
+ }
27727
+ _context2.prev = 10;
27728
+ _context2.next = 11;
27729
+ return pendingConnects.get(selectedProviderName);
27730
+ case 11:
27731
+ result = _context2.sent;
27732
+ if (mountedRef.current) {
27733
+ _context2.next = 12;
27734
+ break;
27735
+ }
27736
+ return _context2.abrupt("return");
27737
+ case 12:
27738
+ if (!result.error) {
27739
+ _context2.next = 13;
27740
+ break;
27741
+ }
27742
+ setError(result.message);
27743
+ setIsConnecting(false);
27744
+ setStatus(STATUS.ERROR);
27745
+ return _context2.abrupt("return");
27746
+ case 13:
27747
+ state = connectionStates.get(selectedProviderName);
27748
+ if (state) state.consumerCount++;
27749
+ applyConnected();
27750
+ _context2.next = 16;
27751
+ break;
27752
+ case 14:
27753
+ _context2.prev = 14;
27754
+ _t3 = _context2["catch"](10);
27755
+ if (mountedRef.current) {
27756
+ _context2.next = 15;
27757
+ break;
27758
+ }
27759
+ return _context2.abrupt("return");
27760
+ case 15:
27761
+ setError((_t3 === null || _t3 === void 0 ? void 0 : _t3.message) || "Failed to connect to WebSocket server");
27762
+ setIsConnecting(false);
27763
+ setStatus(STATUS.ERROR);
27764
+ case 16:
27765
+ return _context2.abrupt("return");
27766
+ case 17:
27767
+ // 3. First caller — fire the IPC call and share the promise
27768
+ connectPromise = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
27769
+ var _result, _t;
27770
+ return _regeneratorRuntime.wrap(function (_context) {
27771
+ while (1) switch (_context.prev = _context.next) {
27772
+ case 0:
27773
+ _context.prev = 0;
27774
+ _context.next = 1;
27775
+ return dashApi.webSocket.connect(selectedProviderName, {
27776
+ url: provider.wsConfig.url,
27777
+ headers: provider.wsConfig.headers || null,
27778
+ subprotocols: provider.wsConfig.subprotocols || null,
27779
+ credentials: provider.credentials || null
27780
+ });
27781
+ case 1:
27782
+ _result = _context.sent;
27783
+ pendingConnects["delete"](selectedProviderName);
27784
+ if (!_result.error) {
27785
+ _context.next = 2;
27786
+ break;
27787
+ }
27788
+ connectionStates.set(selectedProviderName, {
27789
+ status: STATUS.ERROR,
27790
+ consumerCount: 0
27791
+ });
27792
+ return _context.abrupt("return", _result);
27793
+ case 2:
27794
+ connectionStates.set(selectedProviderName, {
27795
+ status: STATUS.CONNECTED,
27796
+ consumerCount: 1
27797
+ });
27798
+ return _context.abrupt("return", _result);
27799
+ case 3:
27800
+ _context.prev = 3;
27801
+ _t = _context["catch"](0);
27802
+ pendingConnects["delete"](selectedProviderName);
27803
+ connectionStates.set(selectedProviderName, {
27804
+ status: STATUS.ERROR,
27805
+ consumerCount: 0
27806
+ });
27807
+ throw _t;
27808
+ case 4:
27809
+ case "end":
27810
+ return _context.stop();
27811
+ }
27812
+ }, _callee, null, [[0, 3]]);
27813
+ }))();
27814
+ pendingConnects.set(selectedProviderName, connectPromise);
27815
+ _context2.prev = 18;
27816
+ _context2.next = 19;
27817
+ return connectPromise;
27818
+ case 19:
27819
+ _result2 = _context2.sent;
27820
+ if (mountedRef.current) {
27821
+ _context2.next = 20;
27822
+ break;
27823
+ }
27824
+ return _context2.abrupt("return");
27825
+ case 20:
27826
+ if (!_result2.error) {
27827
+ _context2.next = 21;
27828
+ break;
27829
+ }
27830
+ setError(_result2.message);
27831
+ setIsConnecting(false);
27832
+ setStatus(STATUS.ERROR);
27833
+ return _context2.abrupt("return");
27834
+ case 21:
27835
+ applyConnected();
27836
+ _context2.next = 24;
27837
+ break;
27838
+ case 22:
27839
+ _context2.prev = 22;
27840
+ _t4 = _context2["catch"](18);
27841
+ if (mountedRef.current) {
27842
+ _context2.next = 23;
27843
+ break;
27844
+ }
27845
+ return _context2.abrupt("return");
27846
+ case 23:
27847
+ setError((_t4 === null || _t4 === void 0 ? void 0 : _t4.message) || "Failed to connect to WebSocket server");
27848
+ setIsConnecting(false);
27849
+ setStatus(STATUS.ERROR);
27850
+ case 24:
27851
+ case "end":
27852
+ return _context2.stop();
27853
+ }
27854
+ }, _callee2, null, [[5, 8], [10, 14], [18, 22]]);
27855
+ })), [dashApi, provider, providerType, selectedProviderName, applyConnected]);
27856
+
27857
+ /**
27858
+ * Disconnect from the WebSocket server.
27859
+ * Only sends the IPC disconnect call when this is the last consumer.
27860
+ */
27861
+ var disconnect = React.useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
27862
+ var state;
27863
+ return _regeneratorRuntime.wrap(function (_context3) {
27864
+ while (1) switch (_context3.prev = _context3.next) {
27865
+ case 0:
27866
+ if (!(!(dashApi !== null && dashApi !== void 0 && dashApi.webSocket) || !selectedProviderName)) {
27867
+ _context3.next = 1;
27868
+ break;
27869
+ }
27870
+ return _context3.abrupt("return");
27871
+ case 1:
27872
+ state = connectionStates.get(selectedProviderName);
27873
+ if (!state) {
27874
+ _context3.next = 3;
27875
+ break;
27876
+ }
27877
+ state.consumerCount = Math.max(0, state.consumerCount - 1);
27878
+ if (!(state.consumerCount > 0)) {
27879
+ _context3.next = 2;
27880
+ break;
27881
+ }
27882
+ // Other widgets still using this connection — just update local state
27883
+ setIsConnected(false);
27884
+ setLastMessage(null);
27885
+ setMessages([]);
27886
+ messagesRef.current = [];
27887
+ setStatus(STATUS.DISCONNECTED);
27888
+ connectedRef.current = false;
27889
+ return _context3.abrupt("return");
27890
+ case 2:
27891
+ // Last consumer — actually disconnect
27892
+ connectionStates["delete"](selectedProviderName);
27893
+ case 3:
27894
+ // Clear state synchronously before the IPC call
27895
+ setIsConnected(false);
27896
+ setLastMessage(null);
27897
+ setMessages([]);
27898
+ messagesRef.current = [];
27899
+ setStatus(STATUS.DISCONNECTED);
27900
+ connectedRef.current = false;
27901
+ pendingConnects["delete"](selectedProviderName);
27902
+ _context3.prev = 4;
27903
+ _context3.next = 5;
27904
+ return dashApi.webSocket.disconnect(selectedProviderName);
27905
+ case 5:
27906
+ _context3.next = 7;
27907
+ break;
27908
+ case 6:
27909
+ _context3.prev = 6;
27910
+ _context3["catch"](4);
27911
+ case 7:
27912
+ case "end":
27913
+ return _context3.stop();
27914
+ }
27915
+ }, _callee3, null, [[4, 6]]);
27916
+ })), [dashApi, selectedProviderName]);
27917
+
27918
+ /**
27919
+ * Send data through the WebSocket connection
27920
+ */
27921
+ var send = React.useCallback(/*#__PURE__*/function () {
27922
+ var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(data) {
27923
+ var result;
27924
+ return _regeneratorRuntime.wrap(function (_context4) {
27925
+ while (1) switch (_context4.prev = _context4.next) {
27926
+ case 0:
27927
+ if (!(!(dashApi !== null && dashApi !== void 0 && dashApi.webSocket) || !selectedProviderName)) {
27928
+ _context4.next = 1;
27929
+ break;
27930
+ }
27931
+ throw new Error("WebSocket not connected");
27932
+ case 1:
27933
+ _context4.next = 2;
27934
+ return dashApi.webSocket.send(selectedProviderName, data);
27935
+ case 2:
27936
+ result = _context4.sent;
27937
+ if (!result.error) {
27938
+ _context4.next = 3;
27939
+ break;
27940
+ }
27941
+ throw new Error(result.message);
27942
+ case 3:
27943
+ return _context4.abrupt("return", result);
27944
+ case 4:
27945
+ case "end":
27946
+ return _context4.stop();
27947
+ }
27948
+ }, _callee4);
27949
+ }));
27950
+ return function (_x) {
27951
+ return _ref4.apply(this, arguments);
27952
+ };
27953
+ }(), [dashApi, selectedProviderName]);
27954
+
27955
+ // Keep a ref to connect so the auto-connect effect doesn't depend on it
27956
+ var connectRef = React.useRef(connect);
27957
+ connectRef.current = connect;
27958
+
27959
+ // Listen for incoming messages from main process
27960
+ React.useEffect(function () {
27961
+ if (!(dashApi !== null && dashApi !== void 0 && dashApi.webSocket) || !selectedProviderName) return;
27962
+ var handleMessage = function handleMessage(_event, payload) {
27963
+ if (payload.provider !== selectedProviderName) return;
27964
+ if (!mountedRef.current) return;
27965
+ var msg = payload.data;
27966
+
27967
+ // Update circular buffer
27968
+ var next = [].concat(_toConsumableArray(messagesRef.current), [msg]);
27969
+ if (next.length > maxMessagesRef.current) {
27970
+ next.splice(0, next.length - maxMessagesRef.current);
27971
+ }
27972
+ messagesRef.current = next;
27973
+ setMessages(next);
27974
+ setLastMessage(msg);
27975
+ };
27976
+ dashApi.webSocket.onMessage(handleMessage);
27977
+ return function () {
27978
+ return dashApi.webSocket.offMessage(handleMessage);
27979
+ };
27980
+ }, [dashApi, selectedProviderName]);
27981
+
27982
+ // Listen for status changes from main process
27983
+ React.useEffect(function () {
27984
+ if (!(dashApi !== null && dashApi !== void 0 && dashApi.webSocket) || !selectedProviderName) return;
27985
+ var handleStatusChange = function handleStatusChange(_event, payload) {
27986
+ if (payload.provider !== selectedProviderName) return;
27987
+ if (!mountedRef.current) return;
27988
+ var newStatus = payload.status;
27989
+ setStatus(newStatus);
27990
+ if (newStatus === STATUS.CONNECTED) {
27991
+ setIsConnected(true);
27992
+ setIsConnecting(false);
27993
+ setError(null);
27994
+ connectedRef.current = true;
27995
+ } else if (newStatus === STATUS.DISCONNECTED) {
27996
+ setIsConnected(false);
27997
+ setIsConnecting(false);
27998
+ connectedRef.current = false;
27999
+ } else if (newStatus === STATUS.ERROR) {
28000
+ setIsConnected(false);
28001
+ setIsConnecting(false);
28002
+ setError(payload.error || "WebSocket error");
28003
+ connectedRef.current = false;
28004
+ } else if (newStatus === STATUS.CONNECTING) {
28005
+ setIsConnecting(true);
28006
+ }
28007
+ };
28008
+ dashApi.webSocket.onStatusChange(handleStatusChange);
28009
+ return function () {
28010
+ return dashApi.webSocket.offStatusChange(handleStatusChange);
28011
+ };
28012
+ }, [dashApi, selectedProviderName]);
28013
+
28014
+ // Auto-connect on mount or when provider selection changes
28015
+ React.useEffect(function () {
28016
+ if (autoConnect && selectedProviderName && !connectedRef.current) {
28017
+ connectRef.current();
28018
+ }
28019
+ // eslint-disable-next-line react-hooks/exhaustive-deps
28020
+ }, [autoConnect, selectedProviderName]);
28021
+
28022
+ // Track mounted state and cleanup on unmount
28023
+ React.useEffect(function () {
28024
+ mountedRef.current = true;
28025
+ return function () {
28026
+ mountedRef.current = false;
28027
+
28028
+ // Decrement consumer count; only disconnect if last consumer
28029
+ if (connectedRef.current && dashApi !== null && dashApi !== void 0 && dashApi.webSocket && selectedProviderName) {
28030
+ var state = connectionStates.get(selectedProviderName);
28031
+ if (state) {
28032
+ state.consumerCount = Math.max(0, state.consumerCount - 1);
28033
+ if (state.consumerCount > 0) {
28034
+ // Other widgets still using this connection — don't disconnect
28035
+ return;
28036
+ }
28037
+
28038
+ // Last consumer — disconnect
28039
+ connectionStates["delete"](selectedProviderName);
28040
+ }
28041
+ dashApi.webSocket.disconnect(selectedProviderName)["catch"](function () {});
28042
+ }
28043
+ };
28044
+ }, [dashApi, selectedProviderName]);
28045
+ return {
28046
+ isConnected: isConnected,
28047
+ isConnecting: isConnecting,
28048
+ error: error,
28049
+ lastMessage: lastMessage,
28050
+ messages: messages,
28051
+ send: send,
28052
+ connect: connect,
28053
+ disconnect: disconnect,
28054
+ status: status,
28055
+ provider: provider,
28056
+ serverName: selectedProviderName
28057
+ };
28058
+ };
28059
+
28060
+ function ownKeys$i(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; }
28061
+ function _objectSpread$i(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$i(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$i(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
27540
28062
  var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
27541
28063
  var theme = _ref.theme,
27542
28064
  themeVariant = _ref.themeVariant,
@@ -27585,13 +28107,13 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
27585
28107
  className: "flex flex-col space-y-4 p-4",
27586
28108
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
27587
28109
  className: "flex flex-row bg-gray-900 p-4 space-x-4 rounded justify-between",
27588
- children: [/*#__PURE__*/jsxRuntime.jsxs(DashReact.Panel, _objectSpread$h(_objectSpread$h({}, styles), {}, {
28110
+ children: [/*#__PURE__*/jsxRuntime.jsxs(DashReact.Panel, _objectSpread$i(_objectSpread$i({}, styles), {}, {
27589
28111
  scrollable: false,
27590
28112
  className: "rounded",
27591
28113
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Panel.Header, {
27592
28114
  className: "text-xs uppercase font-bold",
27593
28115
  children: "Panel"
27594
- }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Panel.Body, _objectSpread$h(_objectSpread$h({}, styles), {}, {
28116
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Panel.Body, _objectSpread$i(_objectSpread$i({}, styles), {}, {
27595
28117
  onClick: function onClick() {
27596
28118
  handleClickItem(DashReact.themeObjects.PANEL, styles);
27597
28119
  }
@@ -27599,14 +28121,14 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
27599
28121
  className: "text-xs uppercase font-light",
27600
28122
  children: DashReact.getCSSStyleForClassname("backgroundColor", DashReact.themeObjects.PANEL)
27601
28123
  })]
27602
- })), /*#__PURE__*/jsxRuntime.jsxs(DashReact.Panel2, _objectSpread$h(_objectSpread$h({
28124
+ })), /*#__PURE__*/jsxRuntime.jsxs(DashReact.Panel2, _objectSpread$i(_objectSpread$i({
27603
28125
  className: "rounded"
27604
28126
  }, styles2), {}, {
27605
28127
  scrollable: false,
27606
28128
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Panel2.Header, {
27607
28129
  className: "text-xs uppercase font-bold",
27608
28130
  children: "Panel 2"
27609
- }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Panel2.Body, _objectSpread$h(_objectSpread$h({}, styles2), {}, {
28131
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Panel2.Body, _objectSpread$i(_objectSpread$i({}, styles2), {}, {
27610
28132
  onClick: function onClick() {
27611
28133
  handleClickItem(DashReact.themeObjects.PANEL_2, styles2);
27612
28134
  }
@@ -27614,14 +28136,14 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
27614
28136
  className: "text-xs uppercase font-light",
27615
28137
  children: DashReact.getCSSStyleForClassname("backgroundColor", DashReact.themeObjects.PANEL_2)
27616
28138
  })]
27617
- })), /*#__PURE__*/jsxRuntime.jsxs(DashReact.Panel3, _objectSpread$h(_objectSpread$h({
28139
+ })), /*#__PURE__*/jsxRuntime.jsxs(DashReact.Panel3, _objectSpread$i(_objectSpread$i({
27618
28140
  className: "rounded"
27619
28141
  }, styles3), {}, {
27620
28142
  scrollable: false,
27621
28143
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Panel3.Header, {
27622
28144
  className: "text-xs uppercase font-bold",
27623
28145
  children: "Panel 3"
27624
- }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Panel3.Body, _objectSpread$h(_objectSpread$h({}, styles3), {}, {
28146
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Panel3.Body, _objectSpread$i(_objectSpread$i({}, styles3), {}, {
27625
28147
  onClick: function onClick() {
27626
28148
  handleClickItem(DashReact.themeObjects.PANEL_3, styles3);
27627
28149
  }
@@ -27630,68 +28152,68 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
27630
28152
  children: DashReact.getCSSStyleForClassname("backgroundColor", DashReact.themeObjects.PANEL_3)
27631
28153
  })]
27632
28154
  }))]
27633
- }), /*#__PURE__*/jsxRuntime.jsxs(DashReact.Panel, _objectSpread$h(_objectSpread$h({
28155
+ }), /*#__PURE__*/jsxRuntime.jsxs(DashReact.Panel, _objectSpread$i(_objectSpread$i({
27634
28156
  className: "p-6 rounded border-4 space-y-4",
27635
28157
  scrollable: false,
27636
28158
  height: "h-fit"
27637
28159
  }, styles), {}, {
27638
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Heading, _objectSpread$h(_objectSpread$h({
28160
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Heading, _objectSpread$i(_objectSpread$i({
27639
28161
  title: "Heading"
27640
28162
  }, headingStyles), {}, {
27641
28163
  padding: false,
27642
28164
  onClick: function onClick() {
27643
28165
  return handleClickItem(DashReact.themeObjects.HEADING, headingStyles);
27644
28166
  }
27645
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Heading2, _objectSpread$h(_objectSpread$h({
28167
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Heading2, _objectSpread$i(_objectSpread$i({
27646
28168
  title: "Heading 2"
27647
28169
  }, heading2Styles), {}, {
27648
28170
  padding: false,
27649
28171
  onClick: function onClick() {
27650
28172
  return handleClickItem(DashReact.themeObjects.HEADING_2, heading2Styles);
27651
28173
  }
27652
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Heading3, _objectSpread$h(_objectSpread$h({
28174
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Heading3, _objectSpread$i(_objectSpread$i({
27653
28175
  title: "Heading 3"
27654
28176
  }, heading3Styles), {}, {
27655
28177
  padding: false,
27656
28178
  onClick: function onClick() {
27657
28179
  return handleClickItem(DashReact.themeObjects.HEADING_3, heading3Styles);
27658
28180
  }
27659
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading, _objectSpread$h(_objectSpread$h({
28181
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading, _objectSpread$i(_objectSpread$i({
27660
28182
  title: "Subheading"
27661
28183
  }, subHeadingStyles), {}, {
27662
28184
  padding: false,
27663
28185
  onClick: function onClick() {
27664
28186
  return handleClickItem(DashReact.themeObjects.SUBHEADING, subHeadingStyles);
27665
28187
  }
27666
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading2, _objectSpread$h(_objectSpread$h({
28188
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading2, _objectSpread$i(_objectSpread$i({
27667
28189
  title: "Subheading 2"
27668
28190
  }, subHeading2Styles), {}, {
27669
28191
  padding: false,
27670
28192
  onClick: function onClick() {
27671
28193
  return handleClickItem(DashReact.themeObjects.SUBHEADING_2, subHeading2Styles);
27672
28194
  }
27673
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading3, _objectSpread$h(_objectSpread$h({
28195
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading3, _objectSpread$i(_objectSpread$i({
27674
28196
  title: "Subheading"
27675
28197
  }, subHeading3Styles), {}, {
27676
28198
  padding: false,
27677
28199
  onClick: function onClick() {
27678
28200
  return handleClickItem(DashReact.themeObjects.SUBHEADING_3, subHeading3Styles);
27679
28201
  }
27680
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Paragraph, _objectSpread$h(_objectSpread$h({
28202
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Paragraph, _objectSpread$i(_objectSpread$i({
27681
28203
  text: "The quick brown fox jumps over the lazy dog."
27682
28204
  }, paragraphStyles), {}, {
27683
28205
  padding: false,
27684
28206
  onClick: function onClick() {
27685
28207
  return handleClickItem(DashReact.themeObjects.PARAGRAPH, paragraphStyles);
27686
28208
  }
27687
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Paragraph2, _objectSpread$h(_objectSpread$h({
28209
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Paragraph2, _objectSpread$i(_objectSpread$i({
27688
28210
  text: "The quick brown fox jumps over the lazy dog."
27689
28211
  }, paragraph2Styles), {}, {
27690
28212
  padding: false,
27691
28213
  onClick: function onClick() {
27692
28214
  return handleClickItem(DashReact.themeObjects.PARAGRAPH_2, paragraph2Styles);
27693
28215
  }
27694
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Paragraph3, _objectSpread$h(_objectSpread$h({
28216
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Paragraph3, _objectSpread$i(_objectSpread$i({
27695
28217
  text: "The quick brown fox jumps over the lazy dog."
27696
28218
  }, paragraph3Styles), {}, {
27697
28219
  padding: false,
@@ -27700,19 +28222,19 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
27700
28222
  }
27701
28223
  })), /*#__PURE__*/jsxRuntime.jsxs("div", {
27702
28224
  className: "flex flex-row space-x-2 w-full",
27703
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Button, _objectSpread$h(_objectSpread$h({
28225
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Button, _objectSpread$i(_objectSpread$i({
27704
28226
  title: "Button"
27705
28227
  }, buttonStyles), {}, {
27706
28228
  onClick: function onClick() {
27707
28229
  return handleClickItem(DashReact.themeObjects.BUTTON, buttonStyles);
27708
28230
  }
27709
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Button2, _objectSpread$h(_objectSpread$h({
28231
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Button2, _objectSpread$i(_objectSpread$i({
27710
28232
  title: "Button 2"
27711
28233
  }, button2Styles), {}, {
27712
28234
  onClick: function onClick() {
27713
28235
  return handleClickItem(DashReact.themeObjects.BUTTON_2, button2Styles);
27714
28236
  }
27715
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Button3, _objectSpread$h(_objectSpread$h({
28237
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Button3, _objectSpread$i(_objectSpread$i({
27716
28238
  title: "Button 3"
27717
28239
  }, button3Styles), {}, {
27718
28240
  onClick: function onClick() {
@@ -27723,14 +28245,14 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
27723
28245
  className: "flex flex-row space-x-4 w-full h-fit",
27724
28246
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
27725
28247
  className: "flex flex-row space-x-2",
27726
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$h(_objectSpread$h({
28248
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$i(_objectSpread$i({
27727
28249
  text: "Button Icon",
27728
28250
  icon: "pencil"
27729
28251
  }, buttonIconStyles), {}, {
27730
28252
  onClick: function onClick() {
27731
28253
  return handleClickItem(DashReact.themeObjects.BUTTON_ICON, buttonIconStyles);
27732
28254
  }
27733
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$h(_objectSpread$h({
28255
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$i(_objectSpread$i({
27734
28256
  icon: "pencil"
27735
28257
  }, buttonIconStyles), {}, {
27736
28258
  onClick: function onClick() {
@@ -27739,14 +28261,14 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
27739
28261
  }))]
27740
28262
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
27741
28263
  className: "flex flex-row space-x-2",
27742
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$h(_objectSpread$h({
28264
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$i(_objectSpread$i({
27743
28265
  text: "Button Icon 2",
27744
28266
  icon: "pencil"
27745
28267
  }, buttonIconStyles), {}, {
27746
28268
  onClick: function onClick() {
27747
28269
  return handleClickItem(DashReact.themeObjects.BUTTON_ICON_2, buttonIcon2Styles);
27748
28270
  }
27749
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$h(_objectSpread$h({
28271
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$i(_objectSpread$i({
27750
28272
  icon: "pencil"
27751
28273
  }, buttonIconStyles), {}, {
27752
28274
  onClick: function onClick() {
@@ -27755,14 +28277,14 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
27755
28277
  }))]
27756
28278
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
27757
28279
  className: "flex flex-row space-x-2",
27758
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$h(_objectSpread$h({
28280
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$i(_objectSpread$i({
27759
28281
  text: "Button Icon 3",
27760
28282
  icon: "pencil"
27761
28283
  }, buttonIcon3Styles), {}, {
27762
28284
  onClick: function onClick() {
27763
28285
  return handleClickItem(DashReact.themeObjects.BUTTON_ICON_3, buttonIcon3Styles);
27764
28286
  }
27765
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$h(_objectSpread$h({
28287
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$i(_objectSpread$i({
27766
28288
  icon: "pencil"
27767
28289
  }, buttonIcon3Styles), {}, {
27768
28290
  onClick: function onClick() {
@@ -27772,17 +28294,17 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
27772
28294
  })]
27773
28295
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
27774
28296
  className: "flex flex-col space-y-2 w-full",
27775
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.MenuItem, _objectSpread$h(_objectSpread$h({}, menuItemStyles), {}, {
28297
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.MenuItem, _objectSpread$i(_objectSpread$i({}, menuItemStyles), {}, {
27776
28298
  onClick: function onClick() {
27777
28299
  return handleClickItem(DashReact.themeObjects.MENU_ITEM, menuItemStyles);
27778
28300
  },
27779
28301
  children: "Menu Item"
27780
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.MenuItem2, _objectSpread$h(_objectSpread$h({}, menuItem2Styles), {}, {
28302
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.MenuItem2, _objectSpread$i(_objectSpread$i({}, menuItem2Styles), {}, {
27781
28303
  onClick: function onClick() {
27782
28304
  return handleClickItem(DashReact.themeObjects.MENU_ITEM_2, menuItem2Styles);
27783
28305
  },
27784
28306
  children: "Menu Item 2"
27785
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.MenuItem3, _objectSpread$h(_objectSpread$h({}, menuItem3Styles), {}, {
28307
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.MenuItem3, _objectSpread$i(_objectSpread$i({}, menuItem3Styles), {}, {
27786
28308
  onClick: function onClick() {
27787
28309
  return handleClickItem(DashReact.themeObjects.MENU_ITEM_3, menuItem3Styles);
27788
28310
  },
@@ -27790,21 +28312,21 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
27790
28312
  }))]
27791
28313
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
27792
28314
  className: "flex flex-row space-x-2 w-full",
27793
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Tag, _objectSpread$h(_objectSpread$h({
28315
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Tag, _objectSpread$i(_objectSpread$i({
27794
28316
  text: "Tag",
27795
28317
  icon: "pencil"
27796
28318
  }, tagStyles), {}, {
27797
28319
  onClick: function onClick() {
27798
28320
  return handleClickItem(DashReact.themeObjects.TAG, tagStyles);
27799
28321
  }
27800
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag2, _objectSpread$h(_objectSpread$h({
28322
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag2, _objectSpread$i(_objectSpread$i({
27801
28323
  text: "Tag 2",
27802
28324
  icon: "pencil"
27803
28325
  }, tag2Styles), {}, {
27804
28326
  onClick: function onClick() {
27805
28327
  return handleClickItem(DashReact.themeObjects.TAG_2, tag2Styles);
27806
28328
  }
27807
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag3, _objectSpread$h(_objectSpread$h({
28329
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag3, _objectSpread$i(_objectSpread$i({
27808
28330
  text: "Tag 3",
27809
28331
  icon: "pencil"
27810
28332
  }, tag3Styles), {}, {
@@ -27813,67 +28335,67 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
27813
28335
  }
27814
28336
  }))]
27815
28337
  })]
27816
- })), /*#__PURE__*/jsxRuntime.jsxs(DashReact.Panel2, _objectSpread$h(_objectSpread$h({
28338
+ })), /*#__PURE__*/jsxRuntime.jsxs(DashReact.Panel2, _objectSpread$i(_objectSpread$i({
27817
28339
  className: "p-6 rounded border-4 space-y-4",
27818
28340
  height: "h-fit"
27819
28341
  }, styles2), {}, {
27820
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Heading, _objectSpread$h(_objectSpread$h({
28342
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Heading, _objectSpread$i(_objectSpread$i({
27821
28343
  title: "Heading"
27822
28344
  }, headingStyles), {}, {
27823
28345
  padding: false,
27824
28346
  onClick: function onClick() {
27825
28347
  return handleClickItem(DashReact.themeObjects.HEADING, headingStyles);
27826
28348
  }
27827
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Heading2, _objectSpread$h(_objectSpread$h({
28349
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Heading2, _objectSpread$i(_objectSpread$i({
27828
28350
  title: "Heading 2"
27829
28351
  }, heading2Styles), {}, {
27830
28352
  padding: false,
27831
28353
  onClick: function onClick() {
27832
28354
  return handleClickItem(DashReact.themeObjects.HEADING_2, heading2Styles);
27833
28355
  }
27834
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Heading3, _objectSpread$h(_objectSpread$h({
28356
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Heading3, _objectSpread$i(_objectSpread$i({
27835
28357
  title: "Heading 3"
27836
28358
  }, heading3Styles), {}, {
27837
28359
  padding: false,
27838
28360
  onClick: function onClick() {
27839
28361
  return handleClickItem(DashReact.themeObjects.HEADING_3, heading3Styles);
27840
28362
  }
27841
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading, _objectSpread$h(_objectSpread$h({
28363
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading, _objectSpread$i(_objectSpread$i({
27842
28364
  title: "Subheading"
27843
28365
  }, subHeadingStyles), {}, {
27844
28366
  padding: false,
27845
28367
  onClick: function onClick() {
27846
28368
  return handleClickItem(DashReact.themeObjects.SUBHEADING, subHeadingStyles);
27847
28369
  }
27848
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading2, _objectSpread$h(_objectSpread$h({
28370
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading2, _objectSpread$i(_objectSpread$i({
27849
28371
  title: "Subheading 2"
27850
28372
  }, subHeading2Styles), {}, {
27851
28373
  padding: false,
27852
28374
  onClick: function onClick() {
27853
28375
  return handleClickItem(DashReact.themeObjects.SUBHEADING_2, subHeading2Styles);
27854
28376
  }
27855
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading3, _objectSpread$h(_objectSpread$h({
28377
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading3, _objectSpread$i(_objectSpread$i({
27856
28378
  title: "Subheading"
27857
28379
  }, subHeading3Styles), {}, {
27858
28380
  padding: false,
27859
28381
  onClick: function onClick() {
27860
28382
  return handleClickItem(DashReact.themeObjects.SUBHEADING_3, subHeading3Styles);
27861
28383
  }
27862
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Paragraph, _objectSpread$h(_objectSpread$h({
28384
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Paragraph, _objectSpread$i(_objectSpread$i({
27863
28385
  text: "The quick brown fox jumps over the lazy dog."
27864
28386
  }, paragraphStyles), {}, {
27865
28387
  padding: false,
27866
28388
  onClick: function onClick() {
27867
28389
  return handleClickItem(DashReact.themeObjects.PARAGRAPH, paragraphStyles);
27868
28390
  }
27869
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Paragraph2, _objectSpread$h(_objectSpread$h({
28391
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Paragraph2, _objectSpread$i(_objectSpread$i({
27870
28392
  text: "The quick brown fox jumps over the lazy dog."
27871
28393
  }, paragraph2Styles), {}, {
27872
28394
  padding: false,
27873
28395
  onClick: function onClick() {
27874
28396
  return handleClickItem(DashReact.themeObjects.PARAGRAPH_2, paragraph2Styles);
27875
28397
  }
27876
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Paragraph3, _objectSpread$h(_objectSpread$h({
28398
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Paragraph3, _objectSpread$i(_objectSpread$i({
27877
28399
  text: "The quick brown fox jumps over the lazy dog."
27878
28400
  }, paragraph3Styles), {}, {
27879
28401
  padding: false,
@@ -27882,19 +28404,19 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
27882
28404
  }
27883
28405
  })), /*#__PURE__*/jsxRuntime.jsxs("div", {
27884
28406
  className: "flex flex-row space-x-2 w-full",
27885
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Button, _objectSpread$h(_objectSpread$h({
28407
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Button, _objectSpread$i(_objectSpread$i({
27886
28408
  title: "Button"
27887
28409
  }, buttonStyles), {}, {
27888
28410
  onClick: function onClick() {
27889
28411
  return handleClickItem(DashReact.themeObjects.BUTTON, buttonStyles);
27890
28412
  }
27891
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Button2, _objectSpread$h(_objectSpread$h({
28413
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Button2, _objectSpread$i(_objectSpread$i({
27892
28414
  title: "Button 2"
27893
28415
  }, button2Styles), {}, {
27894
28416
  onClick: function onClick() {
27895
28417
  return handleClickItem(DashReact.themeObjects.BUTTON_2, button2Styles);
27896
28418
  }
27897
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Button3, _objectSpread$h(_objectSpread$h({
28419
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Button3, _objectSpread$i(_objectSpread$i({
27898
28420
  title: "Button 3"
27899
28421
  }, button3Styles), {}, {
27900
28422
  onClick: function onClick() {
@@ -27905,14 +28427,14 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
27905
28427
  className: "flex flex-row space-x-4 w-full",
27906
28428
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
27907
28429
  className: "flex flex-row space-x-2",
27908
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$h(_objectSpread$h({
28430
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$i(_objectSpread$i({
27909
28431
  text: "Button Icon",
27910
28432
  icon: "pencil"
27911
28433
  }, buttonIconStyles), {}, {
27912
28434
  onClick: function onClick() {
27913
28435
  return handleClickItem(DashReact.themeObjects.BUTTON_ICON, buttonIconStyles);
27914
28436
  }
27915
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$h(_objectSpread$h({
28437
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$i(_objectSpread$i({
27916
28438
  icon: "pencil"
27917
28439
  }, buttonIconStyles), {}, {
27918
28440
  onClick: function onClick() {
@@ -27921,14 +28443,14 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
27921
28443
  }))]
27922
28444
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
27923
28445
  className: "flex flex-row space-x-2",
27924
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$h(_objectSpread$h({
28446
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$i(_objectSpread$i({
27925
28447
  text: "Button Icon 2",
27926
28448
  icon: "pencil"
27927
28449
  }, buttonIconStyles), {}, {
27928
28450
  onClick: function onClick() {
27929
28451
  return handleClickItem(DashReact.themeObjects.BUTTON_ICON_2, buttonIcon2Styles);
27930
28452
  }
27931
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$h(_objectSpread$h({
28453
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$i(_objectSpread$i({
27932
28454
  icon: "pencil"
27933
28455
  }, buttonIconStyles), {}, {
27934
28456
  onClick: function onClick() {
@@ -27937,14 +28459,14 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
27937
28459
  }))]
27938
28460
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
27939
28461
  className: "flex flex-row space-x-2",
27940
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$h(_objectSpread$h({
28462
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$i(_objectSpread$i({
27941
28463
  text: "Button Icon 3",
27942
28464
  icon: "pencil"
27943
28465
  }, buttonIcon3Styles), {}, {
27944
28466
  onClick: function onClick() {
27945
28467
  return handleClickItem(DashReact.themeObjects.BUTTON_ICON_3, buttonIcon3Styles);
27946
28468
  }
27947
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$h(_objectSpread$h({
28469
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$i(_objectSpread$i({
27948
28470
  icon: "pencil"
27949
28471
  }, buttonIcon3Styles), {}, {
27950
28472
  onClick: function onClick() {
@@ -27954,17 +28476,17 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
27954
28476
  })]
27955
28477
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
27956
28478
  className: "flex flex-col space-y-2 w-full",
27957
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.MenuItem, _objectSpread$h(_objectSpread$h({}, menuItemStyles), {}, {
28479
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.MenuItem, _objectSpread$i(_objectSpread$i({}, menuItemStyles), {}, {
27958
28480
  onClick: function onClick() {
27959
28481
  return handleClickItem(DashReact.themeObjects.MENU_ITEM, menuItemStyles);
27960
28482
  },
27961
28483
  children: "Menu Item"
27962
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.MenuItem2, _objectSpread$h(_objectSpread$h({}, menuItem2Styles), {}, {
28484
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.MenuItem2, _objectSpread$i(_objectSpread$i({}, menuItem2Styles), {}, {
27963
28485
  onClick: function onClick() {
27964
28486
  return handleClickItem(DashReact.themeObjects.MENU_ITEM_2, menuItem2Styles);
27965
28487
  },
27966
28488
  children: "Menu Item 2"
27967
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.MenuItem3, _objectSpread$h(_objectSpread$h({}, menuItem3Styles), {}, {
28489
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.MenuItem3, _objectSpread$i(_objectSpread$i({}, menuItem3Styles), {}, {
27968
28490
  onClick: function onClick() {
27969
28491
  return handleClickItem(DashReact.themeObjects.MENU_ITEM_3, menuItem3Styles);
27970
28492
  },
@@ -27972,21 +28494,21 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
27972
28494
  }))]
27973
28495
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
27974
28496
  className: "flex flex-row space-x-2 w-full",
27975
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Tag, _objectSpread$h(_objectSpread$h({
28497
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Tag, _objectSpread$i(_objectSpread$i({
27976
28498
  text: "Tag",
27977
28499
  icon: "pencil"
27978
28500
  }, tagStyles), {}, {
27979
28501
  onClick: function onClick() {
27980
28502
  return handleClickItem(DashReact.themeObjects.TAG, tagStyles);
27981
28503
  }
27982
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag2, _objectSpread$h(_objectSpread$h({
28504
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag2, _objectSpread$i(_objectSpread$i({
27983
28505
  text: "Tag 2",
27984
28506
  icon: "pencil"
27985
28507
  }, tag2Styles), {}, {
27986
28508
  onClick: function onClick() {
27987
28509
  return handleClickItem(DashReact.themeObjects.TAG_2, tag2Styles);
27988
28510
  }
27989
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag3, _objectSpread$h(_objectSpread$h({
28511
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag3, _objectSpread$i(_objectSpread$i({
27990
28512
  text: "Tag 3",
27991
28513
  icon: "pencil"
27992
28514
  }, tag3Styles), {}, {
@@ -27995,68 +28517,68 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
27995
28517
  }
27996
28518
  }))]
27997
28519
  })]
27998
- })), /*#__PURE__*/jsxRuntime.jsxs(DashReact.Panel3, _objectSpread$h(_objectSpread$h({
28520
+ })), /*#__PURE__*/jsxRuntime.jsxs(DashReact.Panel3, _objectSpread$i(_objectSpread$i({
27999
28521
  className: "p-6 rounded border-4 space-y-4"
28000
28522
  }, styles3), {}, {
28001
28523
  padding: false,
28002
28524
  height: "h-fit",
28003
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Heading, _objectSpread$h(_objectSpread$h({
28525
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Heading, _objectSpread$i(_objectSpread$i({
28004
28526
  title: "Heading"
28005
28527
  }, headingStyles), {}, {
28006
28528
  padding: false,
28007
28529
  onClick: function onClick() {
28008
28530
  return handleClickItem(DashReact.themeObjects.HEADING, headingStyles);
28009
28531
  }
28010
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Heading2, _objectSpread$h(_objectSpread$h({
28532
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Heading2, _objectSpread$i(_objectSpread$i({
28011
28533
  title: "Heading 2"
28012
28534
  }, heading2Styles), {}, {
28013
28535
  padding: false,
28014
28536
  onClick: function onClick() {
28015
28537
  return handleClickItem(DashReact.themeObjects.HEADING_2, heading2Styles);
28016
28538
  }
28017
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Heading3, _objectSpread$h(_objectSpread$h({
28539
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Heading3, _objectSpread$i(_objectSpread$i({
28018
28540
  title: "Heading 3"
28019
28541
  }, heading3Styles), {}, {
28020
28542
  padding: false,
28021
28543
  onClick: function onClick() {
28022
28544
  return handleClickItem(DashReact.themeObjects.HEADING_3, heading3Styles);
28023
28545
  }
28024
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading, _objectSpread$h(_objectSpread$h({
28546
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading, _objectSpread$i(_objectSpread$i({
28025
28547
  title: "Subheading"
28026
28548
  }, subHeadingStyles), {}, {
28027
28549
  padding: false,
28028
28550
  onClick: function onClick() {
28029
28551
  return handleClickItem(DashReact.themeObjects.SUBHEADING, subHeadingStyles);
28030
28552
  }
28031
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading2, _objectSpread$h(_objectSpread$h({
28553
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading2, _objectSpread$i(_objectSpread$i({
28032
28554
  title: "Subheading 2"
28033
28555
  }, subHeading2Styles), {}, {
28034
28556
  padding: false,
28035
28557
  onClick: function onClick() {
28036
28558
  return handleClickItem(DashReact.themeObjects.SUBHEADING_2, subHeading2Styles);
28037
28559
  }
28038
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading3, _objectSpread$h(_objectSpread$h({
28560
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading3, _objectSpread$i(_objectSpread$i({
28039
28561
  title: "Subheading"
28040
28562
  }, subHeading3Styles), {}, {
28041
28563
  padding: false,
28042
28564
  onClick: function onClick() {
28043
28565
  return handleClickItem(DashReact.themeObjects.SUBHEADING_3, subHeading3Styles);
28044
28566
  }
28045
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Paragraph, _objectSpread$h(_objectSpread$h({
28567
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Paragraph, _objectSpread$i(_objectSpread$i({
28046
28568
  text: "The quick brown fox jumps over the lazy dog."
28047
28569
  }, paragraphStyles), {}, {
28048
28570
  padding: false,
28049
28571
  onClick: function onClick() {
28050
28572
  return handleClickItem(DashReact.themeObjects.PARAGRAPH, paragraphStyles);
28051
28573
  }
28052
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Paragraph2, _objectSpread$h(_objectSpread$h({
28574
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Paragraph2, _objectSpread$i(_objectSpread$i({
28053
28575
  text: "The quick brown fox jumps over the lazy dog."
28054
28576
  }, paragraph2Styles), {}, {
28055
28577
  padding: false,
28056
28578
  onClick: function onClick() {
28057
28579
  return handleClickItem(DashReact.themeObjects.PARAGRAPH, paragraph2Styles);
28058
28580
  }
28059
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Paragraph3, _objectSpread$h(_objectSpread$h({
28581
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Paragraph3, _objectSpread$i(_objectSpread$i({
28060
28582
  text: "The quick brown fox jumps over the lazy dog."
28061
28583
  }, paragraph3Styles), {}, {
28062
28584
  padding: false,
@@ -28065,19 +28587,19 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
28065
28587
  }
28066
28588
  })), /*#__PURE__*/jsxRuntime.jsxs("div", {
28067
28589
  className: "flex flex-row space-x-2 w-full",
28068
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Button, _objectSpread$h(_objectSpread$h({
28590
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Button, _objectSpread$i(_objectSpread$i({
28069
28591
  title: "Button"
28070
28592
  }, buttonStyles), {}, {
28071
28593
  onClick: function onClick() {
28072
28594
  return handleClickItem(DashReact.themeObjects.BUTTON, buttonStyles);
28073
28595
  }
28074
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Button2, _objectSpread$h(_objectSpread$h({
28596
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Button2, _objectSpread$i(_objectSpread$i({
28075
28597
  title: "Button 2"
28076
28598
  }, button2Styles), {}, {
28077
28599
  onClick: function onClick() {
28078
28600
  return handleClickItem(DashReact.themeObjects.BUTTON_2, button2Styles);
28079
28601
  }
28080
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Button3, _objectSpread$h(_objectSpread$h({
28602
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Button3, _objectSpread$i(_objectSpread$i({
28081
28603
  title: "Button 3"
28082
28604
  }, button3Styles), {}, {
28083
28605
  onClick: function onClick() {
@@ -28088,14 +28610,14 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
28088
28610
  className: "flex flex-row space-x-4 w-full",
28089
28611
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
28090
28612
  className: "flex flex-row space-x-2",
28091
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$h(_objectSpread$h({
28613
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$i(_objectSpread$i({
28092
28614
  text: "Button Icon",
28093
28615
  icon: "pencil"
28094
28616
  }, buttonIconStyles), {}, {
28095
28617
  onClick: function onClick() {
28096
28618
  return handleClickItem(DashReact.themeObjects.BUTTON_ICON, buttonIconStyles);
28097
28619
  }
28098
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$h(_objectSpread$h({
28620
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$i(_objectSpread$i({
28099
28621
  icon: "pencil"
28100
28622
  }, buttonIconStyles), {}, {
28101
28623
  onClick: function onClick() {
@@ -28104,14 +28626,14 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
28104
28626
  }))]
28105
28627
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
28106
28628
  className: "flex flex-row space-x-2",
28107
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$h(_objectSpread$h({
28629
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$i(_objectSpread$i({
28108
28630
  text: "Button Icon 2",
28109
28631
  icon: "pencil"
28110
28632
  }, buttonIconStyles), {}, {
28111
28633
  onClick: function onClick() {
28112
28634
  return handleClickItem(DashReact.themeObjects.BUTTON_ICON_2, buttonIcon2Styles);
28113
28635
  }
28114
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$h(_objectSpread$h({
28636
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$i(_objectSpread$i({
28115
28637
  icon: "pencil"
28116
28638
  }, buttonIconStyles), {}, {
28117
28639
  onClick: function onClick() {
@@ -28120,14 +28642,14 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
28120
28642
  }))]
28121
28643
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
28122
28644
  className: "flex flex-row space-x-2",
28123
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$h(_objectSpread$h({
28645
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$i(_objectSpread$i({
28124
28646
  text: "Button Icon 3",
28125
28647
  icon: "pencil"
28126
28648
  }, buttonIcon3Styles), {}, {
28127
28649
  onClick: function onClick() {
28128
28650
  return handleClickItem(DashReact.themeObjects.BUTTON_ICON_3, buttonIcon3Styles);
28129
28651
  }
28130
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$h(_objectSpread$h({
28652
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon, _objectSpread$i(_objectSpread$i({
28131
28653
  icon: "pencil"
28132
28654
  }, buttonIcon3Styles), {}, {
28133
28655
  onClick: function onClick() {
@@ -28137,17 +28659,17 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
28137
28659
  })]
28138
28660
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
28139
28661
  className: "flex flex-col space-y-2 w-full",
28140
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.MenuItem, _objectSpread$h(_objectSpread$h({}, menuItemStyles), {}, {
28662
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.MenuItem, _objectSpread$i(_objectSpread$i({}, menuItemStyles), {}, {
28141
28663
  onClick: function onClick() {
28142
28664
  return handleClickItem(DashReact.themeObjects.MENU_ITEM, menuItemStyles);
28143
28665
  },
28144
28666
  children: "Menu Item"
28145
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.MenuItem2, _objectSpread$h(_objectSpread$h({}, menuItem2Styles), {}, {
28667
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.MenuItem2, _objectSpread$i(_objectSpread$i({}, menuItem2Styles), {}, {
28146
28668
  onClick: function onClick() {
28147
28669
  return handleClickItem(DashReact.themeObjects.MENU_ITEM_2, menuItem2Styles);
28148
28670
  },
28149
28671
  children: "Menu Item 2"
28150
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.MenuItem3, _objectSpread$h(_objectSpread$h({}, menuItem3Styles), {}, {
28672
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.MenuItem3, _objectSpread$i(_objectSpread$i({}, menuItem3Styles), {}, {
28151
28673
  onClick: function onClick() {
28152
28674
  return handleClickItem(DashReact.themeObjects.MENU_ITEM_3, menuItem3Styles);
28153
28675
  },
@@ -28155,21 +28677,21 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
28155
28677
  }))]
28156
28678
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
28157
28679
  className: "flex flex-row space-x-2 w-full",
28158
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Tag, _objectSpread$h(_objectSpread$h({
28680
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Tag, _objectSpread$i(_objectSpread$i({
28159
28681
  text: "Tag",
28160
28682
  icon: "pencil"
28161
28683
  }, tagStyles), {}, {
28162
28684
  onClick: function onClick() {
28163
28685
  return handleClickItem(DashReact.themeObjects.TAG, tagStyles);
28164
28686
  }
28165
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag2, _objectSpread$h(_objectSpread$h({
28687
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag2, _objectSpread$i(_objectSpread$i({
28166
28688
  text: "Tag 2",
28167
28689
  icon: "pencil"
28168
28690
  }, tag2Styles), {}, {
28169
28691
  onClick: function onClick() {
28170
28692
  return handleClickItem(DashReact.themeObjects.TAG_2, tag2Styles);
28171
28693
  }
28172
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag3, _objectSpread$h(_objectSpread$h({
28694
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag3, _objectSpread$i(_objectSpread$i({
28173
28695
  text: "Tag 3",
28174
28696
  icon: "pencil"
28175
28697
  }, tag3Styles), {}, {
@@ -28178,57 +28700,57 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
28178
28700
  }
28179
28701
  }))]
28180
28702
  })]
28181
- })), /*#__PURE__*/jsxRuntime.jsxs(DashReact.Panel2, _objectSpread$h(_objectSpread$h({
28703
+ })), /*#__PURE__*/jsxRuntime.jsxs(DashReact.Panel2, _objectSpread$i(_objectSpread$i({
28182
28704
  className: "p-6 rounded border-4 space-y-4"
28183
28705
  }, styles2), {}, {
28184
28706
  height: "h-fit",
28185
28707
  padding: false,
28186
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Heading2, _objectSpread$h(_objectSpread$h({
28708
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Heading2, _objectSpread$i(_objectSpread$i({
28187
28709
  title: "Heading 2"
28188
28710
  }, heading2Styles), {}, {
28189
28711
  padding: false,
28190
28712
  onClick: function onClick() {
28191
28713
  return handleClickItem(DashReact.themeObjects.HEADING_2, heading2Styles);
28192
28714
  }
28193
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading2, _objectSpread$h(_objectSpread$h({
28715
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading2, _objectSpread$i(_objectSpread$i({
28194
28716
  title: "Subheading 2"
28195
28717
  }, subHeading2Styles), {}, {
28196
28718
  padding: false,
28197
28719
  onClick: function onClick() {
28198
28720
  return handleClickItem(DashReact.themeObjects.SUBHEADING_2, subHeading2Styles);
28199
28721
  }
28200
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Paragraph2, _objectSpread$h(_objectSpread$h({
28722
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Paragraph2, _objectSpread$i(_objectSpread$i({
28201
28723
  text: "Paragraph 2 - The quick brown fox jumps over the lazy dog."
28202
28724
  }, paragraph2Styles), {}, {
28203
28725
  padding: false,
28204
28726
  onClick: function onClick() {
28205
28727
  return handleClickItem(DashReact.themeObjects.PARAGRAPH_2, paragraph2Styles);
28206
28728
  }
28207
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Button2, _objectSpread$h(_objectSpread$h({
28729
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Button2, _objectSpread$i(_objectSpread$i({
28208
28730
  title: "Button"
28209
28731
  }, button2Styles), {}, {
28210
28732
  onClick: function onClick() {
28211
28733
  return handleClickItem(DashReact.themeObjects.BUTTON_2, button2Styles);
28212
28734
  }
28213
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon2, _objectSpread$h(_objectSpread$h({
28735
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon2, _objectSpread$i(_objectSpread$i({
28214
28736
  text: "Button Icon",
28215
28737
  icon: "pencil"
28216
28738
  }, buttonIcon2Styles), {}, {
28217
28739
  onClick: function onClick() {
28218
28740
  return handleClickItem(DashReact.themeObjects.BUTTON_ICON_2, buttonIcon2Styles);
28219
28741
  }
28220
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon2, _objectSpread$h(_objectSpread$h({
28742
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon2, _objectSpread$i(_objectSpread$i({
28221
28743
  icon: "pencil"
28222
28744
  }, buttonIcon2Styles), {}, {
28223
28745
  onClick: function onClick() {
28224
28746
  return handleClickItem(DashReact.themeObjects.BUTTON_ICON_2, buttonIconStyles);
28225
28747
  }
28226
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.MenuItem2, _objectSpread$h(_objectSpread$h({}, menuItem2Styles), {}, {
28748
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.MenuItem2, _objectSpread$i(_objectSpread$i({}, menuItem2Styles), {}, {
28227
28749
  onClick: function onClick() {
28228
28750
  return handleClickItem(DashReact.themeObjects.MENU_ITEM_2, menuItem2Styles);
28229
28751
  },
28230
28752
  children: "Menu Item"
28231
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag2, _objectSpread$h(_objectSpread$h({
28753
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag2, _objectSpread$i(_objectSpread$i({
28232
28754
  text: "Tag 2",
28233
28755
  icon: "pencil"
28234
28756
  }, tag2Styles), {}, {
@@ -28236,57 +28758,57 @@ var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
28236
28758
  return handleClickItem(DashReact.themeObjects.TAG_2, tag2Styles);
28237
28759
  }
28238
28760
  }))]
28239
- })), /*#__PURE__*/jsxRuntime.jsxs(DashReact.Panel3, _objectSpread$h(_objectSpread$h({
28761
+ })), /*#__PURE__*/jsxRuntime.jsxs(DashReact.Panel3, _objectSpread$i(_objectSpread$i({
28240
28762
  className: "p-6 rounded border-4 space-y-4"
28241
28763
  }, styles3), {}, {
28242
28764
  height: "h-fit",
28243
28765
  padding: false,
28244
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Heading3, _objectSpread$h(_objectSpread$h({
28766
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Heading3, _objectSpread$i(_objectSpread$i({
28245
28767
  title: "Heading 3"
28246
28768
  }, heading3Styles), {}, {
28247
28769
  padding: false,
28248
28770
  onClick: function onClick() {
28249
28771
  return handleClickItem(DashReact.themeObjects.HEADING_3, heading3Styles);
28250
28772
  }
28251
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading3, _objectSpread$h(_objectSpread$h({
28773
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading3, _objectSpread$i(_objectSpread$i({
28252
28774
  title: "Subheading"
28253
28775
  }, subHeading3Styles), {}, {
28254
28776
  padding: false,
28255
28777
  onClick: function onClick() {
28256
28778
  return handleClickItem(DashReact.themeObjects.SUBHEADING_3, subHeading3Styles);
28257
28779
  }
28258
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Paragraph3, _objectSpread$h(_objectSpread$h({
28780
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Paragraph3, _objectSpread$i(_objectSpread$i({
28259
28781
  text: "Paragraph 3 - The quick brown fox jumps over the lazy dog."
28260
28782
  }, paragraph3Styles), {}, {
28261
28783
  padding: false,
28262
28784
  onClick: function onClick() {
28263
28785
  return handleClickItem(DashReact.themeObjects.PARAGRAPH_3, paragraph3Styles);
28264
28786
  }
28265
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Button3, _objectSpread$h(_objectSpread$h({
28787
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Button3, _objectSpread$i(_objectSpread$i({
28266
28788
  title: "Button"
28267
28789
  }, button3Styles), {}, {
28268
28790
  onClick: function onClick() {
28269
28791
  return handleClickItem(DashReact.themeObjects.BUTTON_3, button3Styles);
28270
28792
  }
28271
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon3, _objectSpread$h(_objectSpread$h({
28793
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon3, _objectSpread$i(_objectSpread$i({
28272
28794
  text: "Button Icon 3",
28273
28795
  icon: "pencil"
28274
28796
  }, buttonIcon3Styles), {}, {
28275
28797
  onClick: function onClick() {
28276
28798
  return handleClickItem(DashReact.themeObjects.BUTTON_ICON_3, buttonIcon3Styles);
28277
28799
  }
28278
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon3, _objectSpread$h(_objectSpread$h({
28800
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ButtonIcon3, _objectSpread$i(_objectSpread$i({
28279
28801
  icon: "pencil"
28280
28802
  }, buttonIcon3Styles), {}, {
28281
28803
  onClick: function onClick() {
28282
28804
  return handleClickItem(DashReact.themeObjects.BUTTON_ICON_3, buttonIcon3Styles);
28283
28805
  }
28284
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.MenuItem3, _objectSpread$h(_objectSpread$h({}, menuItem3Styles), {}, {
28806
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.MenuItem3, _objectSpread$i(_objectSpread$i({}, menuItem3Styles), {}, {
28285
28807
  onClick: function onClick() {
28286
28808
  return handleClickItem(DashReact.themeObjects.MENU_ITEM_3, menuItem3Styles);
28287
28809
  },
28288
28810
  children: "Menu Item"
28289
- })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag3, _objectSpread$h(_objectSpread$h({
28811
+ })), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag3, _objectSpread$i(_objectSpread$i({
28290
28812
  text: "Tag",
28291
28813
  icon: "pencil"
28292
28814
  }, tag3Styles), {}, {
@@ -28335,8 +28857,8 @@ var ThemePane = function ThemePane(_ref) {
28335
28857
  };
28336
28858
 
28337
28859
  var _excluded$2 = ["colorFromTheme", "colorName", "shade", "variant", "colorType", "colorLevelName", "selected", "onClick", "onMouseOver", "width", "height"];
28338
- function ownKeys$g(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; }
28339
- function _objectSpread$g(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$g(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$g(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
28860
+ function ownKeys$h(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; }
28861
+ function _objectSpread$h(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$h(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$h(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
28340
28862
  var ColorTile = function ColorTile(_ref) {
28341
28863
  var _ref$colorFromTheme = _ref.colorFromTheme,
28342
28864
  colorFromTheme = _ref$colorFromTheme === void 0 ? null : _ref$colorFromTheme,
@@ -28361,7 +28883,7 @@ var ColorTile = function ColorTile(_ref) {
28361
28883
  _ref$height = _ref.height,
28362
28884
  height = _ref$height === void 0 ? "h-10" : _ref$height,
28363
28885
  rest = _objectWithoutProperties(_ref, _excluded$2);
28364
- var c = ColorModel(_objectSpread$g({
28886
+ var c = ColorModel(_objectSpread$h({
28365
28887
  colorFromTheme: colorFromTheme,
28366
28888
  colorName: colorName,
28367
28889
  colorType: colorType,
@@ -28389,10 +28911,10 @@ var ColorTile = function ColorTile(_ref) {
28389
28911
  return /*#__PURE__*/jsxRuntime.jsx("div", {
28390
28912
  className: "flex flex-col rounded-lg cursor-pointer items-center justify-center border-2 text-xs ".concat(selected === true ? "border-yellow-500" : "border-gray-800", " hover:border-yellow-500 border-gray-800 ").concat(c["class"], " ").concat(width, " ").concat(height),
28391
28913
  onClick: function onClick() {
28392
- return _onClick !== null ? _onClick(_objectSpread$g(_objectSpread$g({}, c), rest)) : null;
28914
+ return _onClick !== null ? _onClick(_objectSpread$h(_objectSpread$h({}, c), rest)) : null;
28393
28915
  },
28394
28916
  onMouseOver: function onMouseOver() {
28395
- return _onMouseOver !== null ? _onMouseOver(_objectSpread$g(_objectSpread$g({}, c), rest)) : null;
28917
+ return _onMouseOver !== null ? _onMouseOver(_objectSpread$h(_objectSpread$h({}, c), rest)) : null;
28396
28918
  },
28397
28919
  children: "\xA0"
28398
28920
  });
@@ -29575,8 +30097,8 @@ if (process.env.NODE_ENV !== 'production') {
29575
30097
  var propTypesExports = propTypes.exports;
29576
30098
  var PropTypes = /*@__PURE__*/getDefaultExportFromCjs(propTypesExports);
29577
30099
 
29578
- function ownKeys$f(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; }
29579
- function _objectSpread$f(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$f(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$f(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
30100
+ function ownKeys$g(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; }
30101
+ function _objectSpread$g(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$g(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$g(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
29580
30102
 
29581
30103
  // Host-injected module references (e.g., "@trops/dash-core").
29582
30104
  // Set by the host app via setHostModules() after all modules are fully loaded,
@@ -29612,7 +30134,7 @@ var BASE_MODULE_MAP = {
29612
30134
  function evaluateBundle(source, widgetName) {
29613
30135
  // Merge base modules with host-provided modules (e.g., "@trops/dash-core")
29614
30136
  // at call time so _hostModules is populated by the time widgets load.
29615
- var moduleMap = _objectSpread$f(_objectSpread$f({}, BASE_MODULE_MAP), _hostModules);
30137
+ var moduleMap = _objectSpread$g(_objectSpread$g({}, BASE_MODULE_MAP), _hostModules);
29616
30138
  var module = {
29617
30139
  exports: {}
29618
30140
  };
@@ -29625,7 +30147,7 @@ function evaluateBundle(source, widgetName) {
29625
30147
  // CJS bundles expect `require("pkg").Widget` to work, so merge
29626
30148
  // `.default` properties onto the returned object.
29627
30149
  if (mod["default"] && _typeof(mod["default"]) === "object") {
29628
- return _objectSpread$f(_objectSpread$f(_objectSpread$f({}, mod["default"]), mod), {}, {
30150
+ return _objectSpread$g(_objectSpread$g(_objectSpread$g({}, mod["default"]), mod), {}, {
29629
30151
  "default": mod["default"]
29630
30152
  });
29631
30153
  }
@@ -29724,9 +30246,9 @@ var resolveIcon = function resolveIcon(iconName) {
29724
30246
  return FALLBACK;
29725
30247
  };
29726
30248
 
29727
- function _createForOfIteratorHelper$4(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$4(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; } } }; }
29728
- function _unsupportedIterableToArray$4(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$4(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$4(r, a) : void 0; } }
29729
- function _arrayLikeToArray$4(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; }
30249
+ 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; } } }; }
30250
+ 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; } }
30251
+ 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; }
29730
30252
  /**
29731
30253
  * Validation utilities for grid-first dashboard architecture
29732
30254
  *
@@ -29965,7 +30487,7 @@ var validateCellMerge = function validateCellMerge(cellNumbers, grid) {
29965
30487
 
29966
30488
  // Validate each cell
29967
30489
  var cells = [];
29968
- var _iterator = _createForOfIteratorHelper$4(cellNumbers),
30490
+ var _iterator = _createForOfIteratorHelper$5(cellNumbers),
29969
30491
  _step;
29970
30492
  try {
29971
30493
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -30313,8 +30835,8 @@ var HARMONY_STRATEGIES = [{
30313
30835
  label: "Custom"
30314
30836
  }];
30315
30837
 
30316
- function ownKeys$e(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; }
30317
- function _objectSpread$e(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$e(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$e(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
30838
+ function ownKeys$f(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; }
30839
+ function _objectSpread$f(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$f(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$f(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
30318
30840
  var COLOR_PROPERTIES$1 = new Set(["backgroundColor", "textColor", "borderColor", "hoverBackgroundColor", "hoverTextColor", "hoverBorderColor", "focusRingColor", "focusBorderColor", "activeBackgroundColor", "activeTextColor", "placeholderTextColor"]);
30319
30841
  var PreviewColorsPane = function PreviewColorsPane(_ref) {
30320
30842
  var _ref$styles = _ref.styles,
@@ -30331,7 +30853,7 @@ var PreviewColorsPane = function PreviewColorsPane(_ref) {
30331
30853
  function handleClickItem(data, styleNameCss, itemType, objectType) {
30332
30854
  // override the object type
30333
30855
  data["objectType"] = objectType;
30334
- onClickItem(_objectSpread$e(_objectSpread$e({}, data), {}, {
30856
+ onClickItem(_objectSpread$f(_objectSpread$f({}, data), {}, {
30335
30857
  itemType: itemType,
30336
30858
  styleName: styleNameCss
30337
30859
  }));
@@ -30741,8 +31263,8 @@ var ThemeMenuPane = function ThemeMenuPane(_ref) {
30741
31263
  });
30742
31264
  };
30743
31265
 
30744
- function ownKeys$d(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; }
30745
- function _objectSpread$d(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$d(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$d(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
31266
+ function ownKeys$e(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; }
31267
+ function _objectSpread$e(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$e(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$e(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
30746
31268
  var COMPONENT_GROUPS$1 = {
30747
31269
  Typography: [DashReact.themeObjects.HEADING, DashReact.themeObjects.HEADING_2, DashReact.themeObjects.HEADING_3, DashReact.themeObjects.SUBHEADING, DashReact.themeObjects.SUBHEADING_2, DashReact.themeObjects.SUBHEADING_3, DashReact.themeObjects.PARAGRAPH, DashReact.themeObjects.PARAGRAPH_2, DashReact.themeObjects.PARAGRAPH_3],
30748
31270
  Buttons: [DashReact.themeObjects.BUTTON, DashReact.themeObjects.BUTTON_2, DashReact.themeObjects.BUTTON_3, DashReact.themeObjects.BUTTON_ICON, DashReact.themeObjects.BUTTON_ICON_2, DashReact.themeObjects.BUTTON_ICON_3],
@@ -30773,7 +31295,7 @@ var ComponentSelectorPane = function ComponentSelectorPane(_ref) {
30773
31295
  setCollapsedGroups = _useState2[1];
30774
31296
  function toggleGroup(groupName) {
30775
31297
  setCollapsedGroups(function (prev) {
30776
- return _objectSpread$d(_objectSpread$d({}, prev), {}, _defineProperty({}, groupName, !prev[groupName]));
31298
+ return _objectSpread$e(_objectSpread$e({}, prev), {}, _defineProperty({}, groupName, !prev[groupName]));
30777
31299
  });
30778
31300
  }
30779
31301
  function hasOverrides(itemKey) {
@@ -31010,8 +31532,8 @@ var NonColorPickerPane = function NonColorPickerPane(_ref) {
31010
31532
  };
31011
31533
 
31012
31534
  var _excluded$1 = ["children"];
31013
- function ownKeys$c(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; }
31014
- function _objectSpread$c(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$c(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$c(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
31535
+ function ownKeys$d(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; }
31536
+ function _objectSpread$d(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$d(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$d(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
31015
31537
  var COLOR_PROPERTIES = new Set(["backgroundColor", "textColor", "borderColor", "hoverBackgroundColor", "hoverTextColor", "hoverBorderColor", "focusRingColor", "focusBorderColor", "activeBackgroundColor", "activeTextColor", "placeholderTextColor"]);
31016
31538
  var isColorProperty = function isColorProperty(name) {
31017
31539
  return COLOR_PROPERTIES.has(name);
@@ -31571,7 +32093,7 @@ var PanelTheme = function PanelTheme(_ref) {
31571
32093
  if (itemSelected && themeSelected && themeVariant) {
31572
32094
  var updatedStyles = DashReact.getStylesForItem(itemSelected.item, themeSelected[themeVariant]);
31573
32095
  setItemSelected(function (prev) {
31574
- return _objectSpread$c(_objectSpread$c({}, prev), {}, {
32096
+ return _objectSpread$d(_objectSpread$d({}, prev), {}, {
31575
32097
  styles: updatedStyles
31576
32098
  });
31577
32099
  });
@@ -31742,7 +32264,7 @@ var PanelTheme = function PanelTheme(_ref) {
31742
32264
  styles: clickStyles
31743
32265
  });
31744
32266
  },
31745
- children: /*#__PURE__*/jsxRuntime.jsx(PanelComponent, _objectSpread$c(_objectSpread$c({}, panelStyles), {}, {
32267
+ children: /*#__PURE__*/jsxRuntime.jsx(PanelComponent, _objectSpread$d(_objectSpread$d({}, panelStyles), {}, {
31746
32268
  scrollable: false,
31747
32269
  className: "rounded",
31748
32270
  height: "",
@@ -31756,9 +32278,9 @@ var PanelTheme = function PanelTheme(_ref) {
31756
32278
  var _comp$props = comp.props,
31757
32279
  childContent = _comp$props.children,
31758
32280
  restProps = _objectWithoutProperties(_comp$props, _excluded$1);
31759
- var renderedComponent = childContent !== undefined ? /*#__PURE__*/jsxRuntime.jsx(comp.Component, _objectSpread$c(_objectSpread$c({}, restProps), {}, {
32281
+ var renderedComponent = childContent !== undefined ? /*#__PURE__*/jsxRuntime.jsx(comp.Component, _objectSpread$d(_objectSpread$d({}, restProps), {}, {
31760
32282
  children: childContent
31761
- })) : /*#__PURE__*/jsxRuntime.jsx(comp.Component, _objectSpread$c({}, restProps));
32283
+ })) : /*#__PURE__*/jsxRuntime.jsx(comp.Component, _objectSpread$d({}, restProps));
31762
32284
  return renderComponentRow(comp.key, renderedComponent);
31763
32285
  })
31764
32286
  })
@@ -31774,7 +32296,7 @@ var PanelTheme = function PanelTheme(_ref) {
31774
32296
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {
31775
32297
  className: "text-xs uppercase font-bold text-gray-500 tracking-wider",
31776
32298
  children: "Forms & Inputs"
31777
- }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Panel, _objectSpread$c(_objectSpread$c({}, DashReact.getStylesForItem("panel", themeData)), {}, {
32299
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Panel, _objectSpread$d(_objectSpread$d({}, DashReact.getStylesForItem("panel", themeData)), {}, {
31778
32300
  scrollable: false,
31779
32301
  className: "rounded",
31780
32302
  height: "",
@@ -31802,7 +32324,7 @@ var PanelTheme = function PanelTheme(_ref) {
31802
32324
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {
31803
32325
  className: "text-xs uppercase font-bold text-gray-500 tracking-wider",
31804
32326
  children: "Data & Stats"
31805
- }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Panel, _objectSpread$c(_objectSpread$c({}, DashReact.getStylesForItem("panel", themeData)), {}, {
32327
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Panel, _objectSpread$d(_objectSpread$d({}, DashReact.getStylesForItem("panel", themeData)), {}, {
31806
32328
  scrollable: false,
31807
32329
  className: "rounded",
31808
32330
  height: "",
@@ -31907,7 +32429,7 @@ var PanelTheme = function PanelTheme(_ref) {
31907
32429
  }), themeSelected && /*#__PURE__*/jsxRuntime.jsx("div", {
31908
32430
  className: "flex flex-col flex-1 min-w-0",
31909
32431
  children: /*#__PURE__*/jsxRuntime.jsx(DashReact.ThemeContext.Provider, {
31910
- value: _objectSpread$c(_objectSpread$c({}, themeContextValue), {}, {
32432
+ value: _objectSpread$d(_objectSpread$d({}, themeContextValue), {}, {
31911
32433
  currentTheme: (themeSelected === null || themeSelected === void 0 ? void 0 : themeSelected[themeVariant]) || themeContextValue.currentTheme
31912
32434
  }),
31913
32435
  children: showPreview ? /*#__PURE__*/jsxRuntime.jsx(PreviewComponentsPane, {
@@ -33252,8 +33774,8 @@ var DiscoverThemesDetail = function DiscoverThemesDetail(_ref) {
33252
33774
  });
33253
33775
  };
33254
33776
 
33255
- function ownKeys$b(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; }
33256
- function _objectSpread$b(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$b(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$b(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
33777
+ function ownKeys$c(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; }
33778
+ function _objectSpread$c(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$c(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$c(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
33257
33779
  var ThemeManagerModal = function ThemeManagerModal(_ref) {
33258
33780
  var open = _ref.open,
33259
33781
  setIsOpen = _ref.setIsOpen;
@@ -33446,7 +33968,7 @@ var ThemeManagerModal = function ThemeManagerModal(_ref) {
33446
33968
  }
33447
33969
  function handleUrlThemeGenerated(theme) {
33448
33970
  var key = theme.id || "theme-".concat(Date.now());
33449
- var finalTheme = _objectSpread$b(_objectSpread$b({}, theme), {}, {
33971
+ var finalTheme = _objectSpread$c(_objectSpread$c({}, theme), {}, {
33450
33972
  id: key
33451
33973
  });
33452
33974
  if (dashApi) {
@@ -33465,7 +33987,7 @@ var ThemeManagerModal = function ThemeManagerModal(_ref) {
33465
33987
  function handleWizardComplete() {
33466
33988
  if (!wizardTheme || !wizardName.trim()) return;
33467
33989
  var key = wizardTheme.id || "theme-".concat(Date.now());
33468
- var finalTheme = _objectSpread$b(_objectSpread$b({}, wizardTheme), {}, {
33990
+ var finalTheme = _objectSpread$c(_objectSpread$c({}, wizardTheme), {}, {
33469
33991
  id: key,
33470
33992
  name: wizardName.trim()
33471
33993
  });
@@ -34416,8 +34938,8 @@ var PublishDashboardModal = function PublishDashboardModal(_ref) {
34416
34938
  });
34417
34939
  };
34418
34940
 
34419
- function ownKeys$a(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; }
34420
- function _objectSpread$a(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$a(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$a(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
34941
+ function ownKeys$b(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; }
34942
+ function _objectSpread$b(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$b(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$b(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
34421
34943
  var LayoutPreview = function LayoutPreview(_ref) {
34422
34944
  var layout = _ref.layout;
34423
34945
  var gridRoot = (layout || []).find(function (item) {
@@ -34599,7 +35121,7 @@ var DashboardDetail = function DashboardDetail(_ref2) {
34599
35121
  updated.menuId = val ? Number(val) : null;
34600
35122
  // Strip widgetConfig from layout before saving
34601
35123
  updated.layout = (updated.layout || []).map(function (layoutItem) {
34602
- var cleaned = _objectSpread$a({}, layoutItem);
35124
+ var cleaned = _objectSpread$b({}, layoutItem);
34603
35125
  delete cleaned.widgetConfig;
34604
35126
  return cleaned;
34605
35127
  });
@@ -34614,7 +35136,7 @@ var DashboardDetail = function DashboardDetail(_ref2) {
34614
35136
  var updated = DashReact.deepCopy(ws);
34615
35137
  updated.themeKey = val || null;
34616
35138
  updated.layout = (updated.layout || []).map(function (layoutItem) {
34617
- var cleaned = _objectSpread$a({}, layoutItem);
35139
+ var cleaned = _objectSpread$b({}, layoutItem);
34618
35140
  delete cleaned.widgetConfig;
34619
35141
  return cleaned;
34620
35142
  });
@@ -34767,8 +35289,8 @@ var DashboardDetail = function DashboardDetail(_ref2) {
34767
35289
  });
34768
35290
  };
34769
35291
 
34770
- function ownKeys$9(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; }
34771
- function _objectSpread$9(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$9(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$9(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
35292
+ function ownKeys$a(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; }
35293
+ function _objectSpread$a(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$a(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$a(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
34772
35294
  var DashboardsSection = function DashboardsSection(_ref) {
34773
35295
  var _ref$workspaces = _ref.workspaces,
34774
35296
  workspaces = _ref$workspaces === void 0 ? [] : _ref$workspaces,
@@ -34854,7 +35376,7 @@ var DashboardsSection = function DashboardsSection(_ref) {
34854
35376
  updated.name = editName.trim();
34855
35377
  // Strip widgetConfig from layout before saving
34856
35378
  updated.layout = (updated.layout || []).map(function (layoutItem) {
34857
- var cleaned = _objectSpread$9({}, layoutItem);
35379
+ var cleaned = _objectSpread$a({}, layoutItem);
34858
35380
  delete cleaned.widgetConfig;
34859
35381
  return cleaned;
34860
35382
  });
@@ -34874,7 +35396,7 @@ var DashboardsSection = function DashboardsSection(_ref) {
34874
35396
  copy.version = Date.now();
34875
35397
  // Strip widgetConfig from layout before saving
34876
35398
  copy.layout = (copy.layout || []).map(function (layoutItem) {
34877
- var cleaned = _objectSpread$9({}, layoutItem);
35399
+ var cleaned = _objectSpread$a({}, layoutItem);
34878
35400
  delete cleaned.widgetConfig;
34879
35401
  return cleaned;
34880
35402
  });
@@ -35262,8 +35784,8 @@ var FoldersSection = function FoldersSection(_ref) {
35262
35784
  });
35263
35785
  };
35264
35786
 
35265
- function ownKeys$8(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; }
35266
- function _objectSpread$8(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$8(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$8(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
35787
+ function ownKeys$9(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; }
35788
+ function _objectSpread$9(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$9(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$9(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
35267
35789
  var ProviderDetail = function ProviderDetail(_ref) {
35268
35790
  var _provider$mcpConfig, _testResult$tools;
35269
35791
  var _ref$providerName = _ref.providerName,
@@ -35296,6 +35818,7 @@ var ProviderDetail = function ProviderDetail(_ref) {
35296
35818
  var appContext = React.useContext(AppContext);
35297
35819
  var dashApi = appContext === null || appContext === void 0 ? void 0 : appContext.dashApi;
35298
35820
  var isMcp = (provider === null || provider === void 0 ? void 0 : provider.providerClass) === "mcp";
35821
+ var isWs = (provider === null || provider === void 0 ? void 0 : provider.providerClass) === "websocket";
35299
35822
 
35300
35823
  // MCP test connection state
35301
35824
  var _useState = React.useState(false),
@@ -35353,14 +35876,14 @@ var ProviderDetail = function ProviderDetail(_ref) {
35353
35876
  var oldKey = f.key;
35354
35877
  if (oldKey && formCredentials[oldKey] !== undefined) {
35355
35878
  setFormCredentials(function (creds) {
35356
- var updated = _objectSpread$8({}, creds);
35879
+ var updated = _objectSpread$9({}, creds);
35357
35880
  var val = updated[oldKey];
35358
35881
  delete updated[oldKey];
35359
35882
  if (newKey.trim()) updated[newKey] = val;
35360
35883
  return updated;
35361
35884
  });
35362
35885
  }
35363
- return _objectSpread$8(_objectSpread$8({}, f), {}, {
35886
+ return _objectSpread$9(_objectSpread$9({}, f), {}, {
35364
35887
  key: newKey
35365
35888
  });
35366
35889
  });
@@ -35372,14 +35895,14 @@ var ProviderDetail = function ProviderDetail(_ref) {
35372
35895
  });
35373
35896
  if (field !== null && field !== void 0 && field.key) {
35374
35897
  setFormCredentials(function (prev) {
35375
- return _objectSpread$8(_objectSpread$8({}, prev), {}, _defineProperty({}, field.key, value));
35898
+ return _objectSpread$9(_objectSpread$9({}, prev), {}, _defineProperty({}, field.key, value));
35376
35899
  });
35377
35900
  }
35378
35901
  };
35379
35902
  var handleFieldSecretToggle = function handleFieldSecretToggle(id) {
35380
35903
  setCredentialFields(function (prev) {
35381
35904
  return prev.map(function (f) {
35382
- return f.id === id ? _objectSpread$8(_objectSpread$8({}, f), {}, {
35905
+ return f.id === id ? _objectSpread$9(_objectSpread$9({}, f), {}, {
35383
35906
  secret: !f.secret
35384
35907
  }) : f;
35385
35908
  });
@@ -35401,7 +35924,7 @@ var ProviderDetail = function ProviderDetail(_ref) {
35401
35924
  });
35402
35925
  if (field !== null && field !== void 0 && field.key) {
35403
35926
  setFormCredentials(function (prev) {
35404
- var updated = _objectSpread$8({}, prev);
35927
+ var updated = _objectSpread$9({}, prev);
35405
35928
  delete updated[field.key];
35406
35929
  return updated;
35407
35930
  });
@@ -35414,7 +35937,7 @@ var ProviderDetail = function ProviderDetail(_ref) {
35414
35937
  };
35415
35938
  var handleCredentialChange = function handleCredentialChange(key, value) {
35416
35939
  setFormCredentials(function (prev) {
35417
- return _objectSpread$8(_objectSpread$8({}, prev), {}, _defineProperty({}, key, value));
35940
+ return _objectSpread$9(_objectSpread$9({}, prev), {}, _defineProperty({}, key, value));
35418
35941
  });
35419
35942
  };
35420
35943
  var handleTestConnection = function handleTestConnection() {
@@ -35484,6 +36007,84 @@ var ProviderDetail = function ProviderDetail(_ref) {
35484
36007
  setIsAuthorizing(false);
35485
36008
  });
35486
36009
  };
36010
+
36011
+ // WebSocket test connection state
36012
+ var _useState11 = React.useState(false),
36013
+ _useState12 = _slicedToArray(_useState11, 2),
36014
+ isWsTesting = _useState12[0],
36015
+ setIsWsTesting = _useState12[1];
36016
+ var _useState13 = React.useState(null),
36017
+ _useState14 = _slicedToArray(_useState13, 2),
36018
+ wsTestResult = _useState14[0],
36019
+ setWsTestResult = _useState14[1];
36020
+ var handleWsTestConnection = /*#__PURE__*/function () {
36021
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
36022
+ var _provider$wsConfig;
36023
+ var startTime, result, latency, _t;
36024
+ return _regeneratorRuntime.wrap(function (_context) {
36025
+ while (1) switch (_context.prev = _context.next) {
36026
+ case 0:
36027
+ if (!(!(dashApi !== null && dashApi !== void 0 && dashApi.webSocket) || !(provider !== null && provider !== void 0 && (_provider$wsConfig = provider.wsConfig) !== null && _provider$wsConfig !== void 0 && _provider$wsConfig.url) || !providerName)) {
36028
+ _context.next = 1;
36029
+ break;
36030
+ }
36031
+ return _context.abrupt("return");
36032
+ case 1:
36033
+ setIsWsTesting(true);
36034
+ setWsTestResult(null);
36035
+ startTime = Date.now();
36036
+ _context.prev = 2;
36037
+ _context.next = 3;
36038
+ return dashApi.webSocket.connect(providerName, {
36039
+ url: provider.wsConfig.url,
36040
+ headers: provider.wsConfig.headers || null,
36041
+ subprotocols: provider.wsConfig.subprotocols || null,
36042
+ credentials: provider.credentials || null
36043
+ });
36044
+ case 3:
36045
+ result = _context.sent;
36046
+ latency = Date.now() - startTime;
36047
+ if (!result.error) {
36048
+ _context.next = 4;
36049
+ break;
36050
+ }
36051
+ setWsTestResult({
36052
+ success: false,
36053
+ message: result.message || "Connection failed"
36054
+ });
36055
+ _context.next = 5;
36056
+ break;
36057
+ case 4:
36058
+ setWsTestResult({
36059
+ success: true,
36060
+ message: "Connected in ".concat(latency, "ms")
36061
+ });
36062
+
36063
+ // Disconnect after test
36064
+ _context.next = 5;
36065
+ return dashApi.webSocket.disconnect(providerName)["catch"](function () {});
36066
+ case 5:
36067
+ _context.next = 7;
36068
+ break;
36069
+ case 6:
36070
+ _context.prev = 6;
36071
+ _t = _context["catch"](2);
36072
+ setWsTestResult({
36073
+ success: false,
36074
+ message: (_t === null || _t === void 0 ? void 0 : _t.message) || "Connection failed"
36075
+ });
36076
+ case 7:
36077
+ setIsWsTesting(false);
36078
+ case 8:
36079
+ case "end":
36080
+ return _context.stop();
36081
+ }
36082
+ }, _callee, null, [[2, 6]]);
36083
+ }));
36084
+ return function handleWsTestConnection() {
36085
+ return _ref2.apply(this, arguments);
36086
+ };
36087
+ }();
35487
36088
  var isFormMode = isEditing || isCreating;
35488
36089
 
35489
36090
  // ── MCP config info block (shared between read-only view and edit form) ──
@@ -35658,21 +36259,21 @@ var ProviderDetail = function ProviderDetail(_ref) {
35658
36259
  placeholder: field.type === "file" ? "Select a file..." : "Enter ".concat(field.displayName.toLowerCase())
35659
36260
  })
35660
36261
  }), field.type === "file" && /*#__PURE__*/jsxRuntime.jsx("button", {
35661
- onClick: /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
36262
+ onClick: /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
35662
36263
  var filepath;
35663
- return _regeneratorRuntime.wrap(function (_context) {
35664
- while (1) switch (_context.prev = _context.next) {
36264
+ return _regeneratorRuntime.wrap(function (_context2) {
36265
+ while (1) switch (_context2.prev = _context2.next) {
35665
36266
  case 0:
35666
- _context.next = 1;
36267
+ _context2.next = 1;
35667
36268
  return window.mainApi.dialog.chooseFile(true, ["json"]);
35668
36269
  case 1:
35669
- filepath = _context.sent;
36270
+ filepath = _context2.sent;
35670
36271
  if (filepath) handleCredentialChange(field.key, filepath);
35671
36272
  case 2:
35672
36273
  case "end":
35673
- return _context.stop();
36274
+ return _context2.stop();
35674
36275
  }
35675
- }, _callee);
36276
+ }, _callee2);
35676
36277
  })),
35677
36278
  className: "px-3 py-1.5 text-sm rounded bg-white/10 hover:bg-white/20 transition-colors",
35678
36279
  children: "Browse"
@@ -35745,7 +36346,7 @@ var ProviderDetail = function ProviderDetail(_ref) {
35745
36346
  className: "text-sm opacity-50",
35746
36347
  children: "Class:"
35747
36348
  }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag, {
35748
- text: isMcp ? "MCP Server" : "API Credentials"
36349
+ text: isWs ? "WebSocket" : isMcp ? "MCP Server" : "API Credentials"
35749
36350
  })]
35750
36351
  })]
35751
36352
  }), isMcp && provider.mcpConfig && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
@@ -35849,6 +36450,57 @@ var ProviderDetail = function ProviderDetail(_ref) {
35849
36450
  children: "No tools configured \u2014 use Test Connection to discover available tools."
35850
36451
  })]
35851
36452
  })]
36453
+ }), isWs && provider.wsConfig && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
36454
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
36455
+ className: "space-y-4",
36456
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
36457
+ className: "border-t border-white/10 pt-4",
36458
+ children: [/*#__PURE__*/jsxRuntime.jsx("p", {
36459
+ className: "text-xs font-semibold opacity-40 uppercase tracking-wider mb-3",
36460
+ children: "Connection"
36461
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
36462
+ className: "space-y-2 text-sm",
36463
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
36464
+ className: "flex gap-2",
36465
+ children: [/*#__PURE__*/jsxRuntime.jsx("span", {
36466
+ className: "opacity-50 w-24 shrink-0",
36467
+ children: "URL:"
36468
+ }), /*#__PURE__*/jsxRuntime.jsx("code", {
36469
+ className: "text-xs bg-white/5 px-2 py-0.5 rounded break-all",
36470
+ children: provider.wsConfig.url
36471
+ })]
36472
+ }), provider.wsConfig.headers && Object.keys(provider.wsConfig.headers).length > 0 && /*#__PURE__*/jsxRuntime.jsxs("div", {
36473
+ className: "flex gap-2",
36474
+ children: [/*#__PURE__*/jsxRuntime.jsx("span", {
36475
+ className: "opacity-50 w-24 shrink-0",
36476
+ children: "Headers:"
36477
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
36478
+ className: "text-xs opacity-70",
36479
+ children: Object.keys(provider.wsConfig.headers).join(", ")
36480
+ })]
36481
+ }), provider.wsConfig.subprotocols && provider.wsConfig.subprotocols.length > 0 && /*#__PURE__*/jsxRuntime.jsxs("div", {
36482
+ className: "flex gap-2",
36483
+ children: [/*#__PURE__*/jsxRuntime.jsx("span", {
36484
+ className: "opacity-50 w-24 shrink-0",
36485
+ children: "Subprotocols:"
36486
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
36487
+ className: "text-xs opacity-70",
36488
+ children: provider.wsConfig.subprotocols.join(", ")
36489
+ })]
36490
+ })]
36491
+ })]
36492
+ })
36493
+ }), wsTestResult && /*#__PURE__*/jsxRuntime.jsx("div", {
36494
+ className: "p-3 rounded-lg text-sm ".concat(wsTestResult.success ? "bg-green-900/30 border border-green-700 text-green-300" : "bg-red-900/30 border border-red-700 text-red-300"),
36495
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
36496
+ className: "flex items-center gap-2",
36497
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
36498
+ icon: wsTestResult.success ? "circle-check" : "circle-exclamation"
36499
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
36500
+ children: wsTestResult.message
36501
+ })]
36502
+ })
36503
+ })]
35852
36504
  })]
35853
36505
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
35854
36506
  className: "flex-shrink-0 flex flex-row justify-end gap-2 px-6 py-4 border-t border-white/10",
@@ -35860,6 +36512,10 @@ var ProviderDetail = function ProviderDetail(_ref) {
35860
36512
  title: isTesting ? "Testing..." : "Test Connection",
35861
36513
  onClick: handleTestConnection,
35862
36514
  size: "sm"
36515
+ }), isWs && /*#__PURE__*/jsxRuntime.jsx(DashReact.Button, {
36516
+ title: isWsTesting ? "Testing..." : "Test Connection",
36517
+ onClick: handleWsTestConnection,
36518
+ size: "sm"
35863
36519
  }), isMcp && selectedTools && onSaveAllowedTools && /*#__PURE__*/jsxRuntime.jsx(DashReact.Button, {
35864
36520
  title: "Update Allowed Tools",
35865
36521
  onClick: function onClick() {
@@ -35883,8 +36539,8 @@ var ProviderDetail = function ProviderDetail(_ref) {
35883
36539
  });
35884
36540
  };
35885
36541
 
35886
- function ownKeys$7(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; }
35887
- function _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$7(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$7(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
36542
+ function ownKeys$8(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; }
36543
+ function _objectSpread$8(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$8(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$8(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
35888
36544
  var rowIdCounter = 0;
35889
36545
  var nextRowId = function nextRowId() {
35890
36546
  return "row_".concat(++rowIdCounter);
@@ -36145,7 +36801,7 @@ var CustomMcpServerForm = function CustomMcpServerForm(_ref2) {
36145
36801
  var updateEnvRow = function updateEnvRow(id, field, value) {
36146
36802
  setEnvMappingRows(function (prev) {
36147
36803
  return prev.map(function (row) {
36148
- return row.id === id ? _objectSpread$7(_objectSpread$7({}, row), {}, _defineProperty({}, field, value)) : row;
36804
+ return row.id === id ? _objectSpread$8(_objectSpread$8({}, row), {}, _defineProperty({}, field, value)) : row;
36149
36805
  });
36150
36806
  });
36151
36807
  };
@@ -36170,7 +36826,7 @@ var CustomMcpServerForm = function CustomMcpServerForm(_ref2) {
36170
36826
  var updateHeaderRow = function updateHeaderRow(id, field, value) {
36171
36827
  setHeaderRows(function (prev) {
36172
36828
  return prev.map(function (row) {
36173
- return row.id === id ? _objectSpread$7(_objectSpread$7({}, row), {}, _defineProperty({}, field, value)) : row;
36829
+ return row.id === id ? _objectSpread$8(_objectSpread$8({}, row), {}, _defineProperty({}, field, value)) : row;
36174
36830
  });
36175
36831
  });
36176
36832
  };
@@ -36185,11 +36841,11 @@ var CustomMcpServerForm = function CustomMcpServerForm(_ref2) {
36185
36841
  // --- credential field change ---
36186
36842
  var handleCredentialChange = function handleCredentialChange(fieldName, value) {
36187
36843
  setCredentialData(function (prev) {
36188
- return _objectSpread$7(_objectSpread$7({}, prev), {}, _defineProperty({}, fieldName, value));
36844
+ return _objectSpread$8(_objectSpread$8({}, prev), {}, _defineProperty({}, fieldName, value));
36189
36845
  });
36190
36846
  if (formErrors[fieldName] && value !== null && value !== void 0 && value.trim()) {
36191
36847
  setFormErrors(function (prev) {
36192
- var next = _objectSpread$7({}, prev);
36848
+ var next = _objectSpread$8({}, prev);
36193
36849
  delete next[fieldName];
36194
36850
  return next;
36195
36851
  });
@@ -36397,7 +37053,7 @@ var CustomMcpServerForm = function CustomMcpServerForm(_ref2) {
36397
37053
  setProviderName(value);
36398
37054
  if (formErrors.providerName && value !== null && value !== void 0 && value.trim()) {
36399
37055
  setFormErrors(function (prev) {
36400
- var next = _objectSpread$7({}, prev);
37056
+ var next = _objectSpread$8({}, prev);
36401
37057
  delete next.providerName;
36402
37058
  return next;
36403
37059
  });
@@ -36513,7 +37169,7 @@ var CustomMcpServerForm = function CustomMcpServerForm(_ref2) {
36513
37169
  setCommand(value);
36514
37170
  if (formErrors.command && value !== null && value !== void 0 && value.trim()) {
36515
37171
  setFormErrors(function (prev) {
36516
- var next = _objectSpread$7({}, prev);
37172
+ var next = _objectSpread$8({}, prev);
36517
37173
  delete next.command;
36518
37174
  return next;
36519
37175
  });
@@ -36619,7 +37275,7 @@ var CustomMcpServerForm = function CustomMcpServerForm(_ref2) {
36619
37275
  setUrl(value);
36620
37276
  if (formErrors.url && value !== null && value !== void 0 && value.trim()) {
36621
37277
  setFormErrors(function (prev) {
36622
- var next = _objectSpread$7({}, prev);
37278
+ var next = _objectSpread$8({}, prev);
36623
37279
  delete next.url;
36624
37280
  return next;
36625
37281
  });
@@ -36864,8 +37520,8 @@ var CustomMcpServerForm = function CustomMcpServerForm(_ref2) {
36864
37520
  });
36865
37521
  };
36866
37522
 
36867
- function ownKeys$6(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; }
36868
- function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
37523
+ function ownKeys$7(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; }
37524
+ function _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$7(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$7(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
36869
37525
  var getIconForServer = function getIconForServer(server) {
36870
37526
  var iconMap = {
36871
37527
  github: "code-branch",
@@ -37052,11 +37708,11 @@ var McpCatalogDetail = function McpCatalogDetail(_ref) {
37052
37708
  // Handle credential field changes
37053
37709
  var handleCredentialChange = function handleCredentialChange(fieldName, value) {
37054
37710
  setCredentialData(function (prev) {
37055
- return _objectSpread$6(_objectSpread$6({}, prev), {}, _defineProperty({}, fieldName, value));
37711
+ return _objectSpread$7(_objectSpread$7({}, prev), {}, _defineProperty({}, fieldName, value));
37056
37712
  });
37057
37713
  if (formErrors[fieldName] && value !== null && value !== void 0 && value.trim()) {
37058
37714
  setFormErrors(function (prev) {
37059
- var next = _objectSpread$6({}, prev);
37715
+ var next = _objectSpread$7({}, prev);
37060
37716
  delete next[fieldName];
37061
37717
  return next;
37062
37718
  });
@@ -37304,7 +37960,7 @@ var McpCatalogDetail = function McpCatalogDetail(_ref) {
37304
37960
  setProviderName(value);
37305
37961
  if (formErrors.providerName && value !== null && value !== void 0 && value.trim()) {
37306
37962
  setFormErrors(function (prev) {
37307
- var next = _objectSpread$6({}, prev);
37963
+ var next = _objectSpread$7({}, prev);
37308
37964
  delete next.providerName;
37309
37965
  return next;
37310
37966
  });
@@ -37566,6 +38222,387 @@ var McpCatalogDetail = function McpCatalogDetail(_ref) {
37566
38222
  });
37567
38223
  };
37568
38224
 
38225
+ function ownKeys$6(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; }
38226
+ function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
38227
+ function _createForOfIteratorHelper$4(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$4(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; } } }; }
38228
+ function _unsupportedIterableToArray$4(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$4(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$4(r, a) : void 0; } }
38229
+ function _arrayLikeToArray$4(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; }
38230
+ function isValidWsUrl(url) {
38231
+ if (!url) return false;
38232
+ try {
38233
+ var u = new URL(url);
38234
+ return u.protocol === "ws:" || u.protocol === "wss:";
38235
+ } catch (_unused) {
38236
+ return false;
38237
+ }
38238
+ }
38239
+
38240
+ /**
38241
+ * Check if a URL is targeting localhost
38242
+ */
38243
+ function isLocalhostUrl(url) {
38244
+ try {
38245
+ var u = new URL(url);
38246
+ return u.hostname === "localhost" || u.hostname === "127.0.0.1" || u.hostname === "::1" || u.hostname === "0.0.0.0";
38247
+ } catch (_unused2) {
38248
+ return false;
38249
+ }
38250
+ }
38251
+
38252
+ /**
38253
+ * Check if credentials are present in headers or URL template
38254
+ */
38255
+ function hasCredentials(url, headerRows) {
38256
+ var hasUrlCreds = url && /\{\{.+?\}\}/.test(url);
38257
+ var hasHeaderCreds = headerRows.some(function (r) {
38258
+ return r.value && /\{\{.+?\}\}/.test(r.value);
38259
+ });
38260
+ return hasUrlCreds || hasHeaderCreds;
38261
+ }
38262
+
38263
+ /**
38264
+ * Extract credential field names from URL and header templates
38265
+ * e.g., wss://api.example.com?token={{apiKey}} → ["apiKey"]
38266
+ */
38267
+ function extractCredentialFields(url, headerRows) {
38268
+ var fields = new Set();
38269
+ var pattern = /\{\{(.+?)\}\}/g;
38270
+ if (url) {
38271
+ var match;
38272
+ while ((match = pattern.exec(url)) !== null) {
38273
+ fields.add(match[1]);
38274
+ }
38275
+ }
38276
+ var _iterator = _createForOfIteratorHelper$4(headerRows),
38277
+ _step;
38278
+ try {
38279
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
38280
+ var row = _step.value;
38281
+ if (row.value) {
38282
+ var _match = void 0;
38283
+ pattern.lastIndex = 0;
38284
+ while ((_match = pattern.exec(row.value)) !== null) {
38285
+ fields.add(_match[1]);
38286
+ }
38287
+ }
38288
+ }
38289
+ } catch (err) {
38290
+ _iterator.e(err);
38291
+ } finally {
38292
+ _iterator.f();
38293
+ }
38294
+ return Array.from(fields);
38295
+ }
38296
+
38297
+ /**
38298
+ * WebSocketProviderForm
38299
+ *
38300
+ * Form for creating or editing WebSocket providers.
38301
+ * Matches existing Settings UI patterns (ProviderDetail, CustomMcpServerForm).
38302
+ *
38303
+ * @param {Object} props
38304
+ * @param {boolean} props.isEditMode - Whether editing an existing provider
38305
+ * @param {string} props.initialName - Provider name (edit mode)
38306
+ * @param {string} props.initialUrl - WebSocket URL (edit mode)
38307
+ * @param {Array} props.initialHeaderRows - Header key-value rows (edit mode)
38308
+ * @param {Array} props.initialSubprotocols - Subprotocol strings (edit mode)
38309
+ * @param {Object} props.initialCredentials - Credential values (edit mode)
38310
+ * @param {Function} props.onSave - (name, wsConfig, credentials) => void
38311
+ * @param {Function} props.onCancel - Cancel handler
38312
+ */
38313
+ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
38314
+ var _ref$isEditMode = _ref.isEditMode,
38315
+ isEditMode = _ref$isEditMode === void 0 ? false : _ref$isEditMode,
38316
+ _ref$initialName = _ref.initialName,
38317
+ initialName = _ref$initialName === void 0 ? "" : _ref$initialName,
38318
+ _ref$initialUrl = _ref.initialUrl,
38319
+ initialUrl = _ref$initialUrl === void 0 ? "" : _ref$initialUrl,
38320
+ _ref$initialHeaderRow = _ref.initialHeaderRows,
38321
+ initialHeaderRows = _ref$initialHeaderRow === void 0 ? [] : _ref$initialHeaderRow,
38322
+ _ref$initialSubprotoc = _ref.initialSubprotocols,
38323
+ initialSubprotocols = _ref$initialSubprotoc === void 0 ? [] : _ref$initialSubprotoc,
38324
+ _ref$initialCredentia = _ref.initialCredentials,
38325
+ initialCredentials = _ref$initialCredentia === void 0 ? {} : _ref$initialCredentia,
38326
+ onSave = _ref.onSave,
38327
+ onCancel = _ref.onCancel;
38328
+ var _useState = React.useState(initialName),
38329
+ _useState2 = _slicedToArray(_useState, 2),
38330
+ name = _useState2[0],
38331
+ setName = _useState2[1];
38332
+ var _useState3 = React.useState(initialUrl),
38333
+ _useState4 = _slicedToArray(_useState3, 2),
38334
+ url = _useState4[0],
38335
+ setUrl = _useState4[1];
38336
+ var _useState5 = React.useState(initialHeaderRows.length > 0 ? initialHeaderRows : []),
38337
+ _useState6 = _slicedToArray(_useState5, 2),
38338
+ headerRows = _useState6[0],
38339
+ setHeaderRows = _useState6[1];
38340
+ var _useState7 = React.useState(initialSubprotocols.join(", ")),
38341
+ _useState8 = _slicedToArray(_useState7, 2),
38342
+ subprotocols = _useState8[0],
38343
+ setSubprotocols = _useState8[1];
38344
+ var _useState9 = React.useState(initialCredentials),
38345
+ _useState0 = _slicedToArray(_useState9, 2),
38346
+ credentials = _useState0[0],
38347
+ setCredentials = _useState0[1];
38348
+ var _useState1 = React.useState({}),
38349
+ _useState10 = _slicedToArray(_useState1, 2),
38350
+ errors = _useState10[0],
38351
+ setErrors = _useState10[1];
38352
+ var nextRowIdRef = React.useRef(0);
38353
+ var nextRowId = function nextRowId() {
38354
+ return "ws_hdr_".concat(++nextRowIdRef.current);
38355
+ };
38356
+
38357
+ // Derived state
38358
+ var credentialFields = extractCredentialFields(url, headerRows);
38359
+ var hasCreds = hasCredentials(url, headerRows);
38360
+ var isWs = url.startsWith("ws://");
38361
+ var isLocalhost = isLocalhostUrl(url);
38362
+ var showSecurityWarning = hasCreds && isWs && !isLocalhost;
38363
+ function validate() {
38364
+ var errs = {};
38365
+ if (!name.trim()) errs.name = "Provider name is required";
38366
+ if (!url.trim()) errs.url = "WebSocket URL is required";else if (!isValidWsUrl(url)) errs.url = "URL must start with ws:// or wss://";
38367
+
38368
+ // Check required credential fields are filled
38369
+ var _iterator2 = _createForOfIteratorHelper$4(credentialFields),
38370
+ _step2;
38371
+ try {
38372
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
38373
+ var _credentials$field;
38374
+ var field = _step2.value;
38375
+ if (!((_credentials$field = credentials[field]) !== null && _credentials$field !== void 0 && _credentials$field.trim())) {
38376
+ errs["cred_".concat(field)] = "".concat(field, " is required");
38377
+ }
38378
+ }
38379
+ } catch (err) {
38380
+ _iterator2.e(err);
38381
+ } finally {
38382
+ _iterator2.f();
38383
+ }
38384
+ setErrors(errs);
38385
+ return Object.keys(errs).length === 0;
38386
+ }
38387
+ function handleSave() {
38388
+ if (!validate()) return;
38389
+
38390
+ // Build headers object from rows
38391
+ var headers = {};
38392
+ var _iterator3 = _createForOfIteratorHelper$4(headerRows),
38393
+ _step3;
38394
+ try {
38395
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
38396
+ var row = _step3.value;
38397
+ if (row.key.trim()) {
38398
+ headers[row.key.trim()] = row.value;
38399
+ }
38400
+ }
38401
+
38402
+ // Parse subprotocols
38403
+ } catch (err) {
38404
+ _iterator3.e(err);
38405
+ } finally {
38406
+ _iterator3.f();
38407
+ }
38408
+ var subprotoArray = subprotocols.split(",").map(function (s) {
38409
+ return s.trim();
38410
+ }).filter(Boolean);
38411
+ var wsConfig = {
38412
+ url: url.trim(),
38413
+ headers: Object.keys(headers).length > 0 ? headers : null,
38414
+ subprotocols: subprotoArray.length > 0 ? subprotoArray : null
38415
+ };
38416
+ onSave(name.trim(), wsConfig, credentials);
38417
+ }
38418
+ function handleAddHeader() {
38419
+ setHeaderRows(function (prev) {
38420
+ return [].concat(_toConsumableArray(prev), [{
38421
+ id: nextRowId(),
38422
+ key: "",
38423
+ value: ""
38424
+ }]);
38425
+ });
38426
+ }
38427
+ function handleRemoveHeader(id) {
38428
+ setHeaderRows(function (prev) {
38429
+ return prev.filter(function (r) {
38430
+ return r.id !== id;
38431
+ });
38432
+ });
38433
+ }
38434
+ function handleHeaderChange(id, field, value) {
38435
+ setHeaderRows(function (prev) {
38436
+ return prev.map(function (r) {
38437
+ return r.id === id ? _objectSpread$6(_objectSpread$6({}, r), {}, _defineProperty({}, field, value)) : r;
38438
+ });
38439
+ });
38440
+ }
38441
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
38442
+ className: "flex flex-col flex-1 min-h-0",
38443
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
38444
+ className: "flex-1 min-h-0 overflow-y-auto p-6 space-y-5",
38445
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading3, {
38446
+ title: isEditMode ? "Edit WebSocket Provider" : "New WebSocket Provider",
38447
+ padding: false
38448
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
38449
+ className: "flex flex-col gap-2",
38450
+ children: [/*#__PURE__*/jsxRuntime.jsx("label", {
38451
+ className: "text-sm font-medium text-gray-400",
38452
+ children: "Provider Name"
38453
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.InputText, {
38454
+ value: name,
38455
+ onChange: function onChange(value) {
38456
+ return setName(value);
38457
+ },
38458
+ placeholder: "e.g., crypto-ws, stock-feed",
38459
+ error: !!errors.name
38460
+ }), errors.name && /*#__PURE__*/jsxRuntime.jsx("span", {
38461
+ className: "text-xs text-red-400",
38462
+ children: errors.name
38463
+ })]
38464
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
38465
+ className: "flex flex-col gap-2",
38466
+ children: [/*#__PURE__*/jsxRuntime.jsx("label", {
38467
+ className: "text-sm font-medium text-gray-400",
38468
+ children: "WebSocket URL"
38469
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.InputText, {
38470
+ value: url,
38471
+ onChange: function onChange(value) {
38472
+ return setUrl(value);
38473
+ },
38474
+ placeholder: "wss://api.example.com/ws or ws://localhost:8080",
38475
+ error: !!errors.url
38476
+ }), errors.url && /*#__PURE__*/jsxRuntime.jsx("span", {
38477
+ className: "text-xs text-red-400",
38478
+ children: errors.url
38479
+ }), /*#__PURE__*/jsxRuntime.jsxs("p", {
38480
+ className: "text-xs opacity-40",
38481
+ children: ["Use ", "{{fieldName}}", " for credential interpolation (e.g., wss://api.example.com?token=", "{{apiKey}}", ")"]
38482
+ })]
38483
+ }), showSecurityWarning && /*#__PURE__*/jsxRuntime.jsx("div", {
38484
+ className: "p-3 rounded-lg text-sm bg-yellow-900/30 border border-yellow-700 text-yellow-300",
38485
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
38486
+ className: "flex items-center gap-2",
38487
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
38488
+ icon: "triangle-exclamation"
38489
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
38490
+ children: "Credentials detected over unencrypted ws:// connection. Use wss:// for non-localhost URLs to protect your credentials."
38491
+ })]
38492
+ })
38493
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
38494
+ className: "border-t border-white/10 pt-4",
38495
+ children: [/*#__PURE__*/jsxRuntime.jsxs("p", {
38496
+ className: "text-xs font-semibold opacity-40 uppercase tracking-wider mb-3",
38497
+ children: ["Headers ", /*#__PURE__*/jsxRuntime.jsx("span", {
38498
+ className: "normal-case font-normal",
38499
+ children: "(optional)"
38500
+ })]
38501
+ }), headerRows.map(function (row) {
38502
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
38503
+ className: "flex items-center gap-2 mb-2",
38504
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
38505
+ className: "flex-1",
38506
+ children: /*#__PURE__*/jsxRuntime.jsx(DashReact.InputText, {
38507
+ value: row.key,
38508
+ onChange: function onChange(value) {
38509
+ return handleHeaderChange(row.id, "key", value);
38510
+ },
38511
+ placeholder: "Header name"
38512
+ })
38513
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
38514
+ className: "flex-1",
38515
+ children: /*#__PURE__*/jsxRuntime.jsx(DashReact.InputText, {
38516
+ value: row.value,
38517
+ onChange: function onChange(value) {
38518
+ return handleHeaderChange(row.id, "value", value);
38519
+ },
38520
+ placeholder: "Header value"
38521
+ })
38522
+ }), /*#__PURE__*/jsxRuntime.jsx("button", {
38523
+ onClick: function onClick() {
38524
+ return handleRemoveHeader(row.id);
38525
+ },
38526
+ className: "p-2 rounded hover:bg-red-500/20 transition-colors opacity-50 hover:opacity-100 text-red-400",
38527
+ title: "Remove header",
38528
+ children: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
38529
+ icon: "trash",
38530
+ className: "h-3.5 w-3.5"
38531
+ })
38532
+ })]
38533
+ }, row.id);
38534
+ }), /*#__PURE__*/jsxRuntime.jsxs("button", {
38535
+ onClick: handleAddHeader,
38536
+ className: "flex items-center gap-2 text-sm text-blue-400 hover:text-blue-300 transition-colors",
38537
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
38538
+ icon: "plus",
38539
+ className: "h-3 w-3"
38540
+ }), "Add Header"]
38541
+ })]
38542
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
38543
+ className: "border-t border-white/10 pt-4",
38544
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
38545
+ className: "flex flex-col gap-2",
38546
+ children: [/*#__PURE__*/jsxRuntime.jsxs("label", {
38547
+ className: "text-sm font-medium text-gray-400",
38548
+ children: ["Subprotocols", " ", /*#__PURE__*/jsxRuntime.jsx("span", {
38549
+ className: "font-normal opacity-50",
38550
+ children: "(optional)"
38551
+ })]
38552
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.InputText, {
38553
+ value: subprotocols,
38554
+ onChange: function onChange(value) {
38555
+ return setSubprotocols(value);
38556
+ },
38557
+ placeholder: "Comma-separated, e.g., graphql-ws, json"
38558
+ })]
38559
+ })
38560
+ }), credentialFields.length > 0 && /*#__PURE__*/jsxRuntime.jsxs("div", {
38561
+ className: "border-t border-white/10 pt-4",
38562
+ children: [/*#__PURE__*/jsxRuntime.jsx("p", {
38563
+ className: "text-xs font-semibold opacity-40 uppercase tracking-wider mb-3",
38564
+ children: "Credentials"
38565
+ }), /*#__PURE__*/jsxRuntime.jsxs("p", {
38566
+ className: "text-xs opacity-40 mb-3",
38567
+ children: ["These fields were detected from ", "{{...}}", " placeholders in the URL and headers."]
38568
+ }), credentialFields.map(function (field) {
38569
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
38570
+ className: "flex flex-col gap-2 mb-3",
38571
+ children: [/*#__PURE__*/jsxRuntime.jsx("label", {
38572
+ className: "text-sm font-medium text-gray-400",
38573
+ children: field
38574
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.InputText, {
38575
+ type: "password",
38576
+ value: credentials[field] || "",
38577
+ onChange: function onChange(value) {
38578
+ return setCredentials(function (prev) {
38579
+ return _objectSpread$6(_objectSpread$6({}, prev), {}, _defineProperty({}, field, value));
38580
+ });
38581
+ },
38582
+ placeholder: "Enter ".concat(field),
38583
+ error: !!errors["cred_".concat(field)]
38584
+ }), errors["cred_".concat(field)] && /*#__PURE__*/jsxRuntime.jsx("span", {
38585
+ className: "text-xs text-red-400",
38586
+ children: errors["cred_".concat(field)]
38587
+ })]
38588
+ }, field);
38589
+ })]
38590
+ })]
38591
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
38592
+ className: "flex-shrink-0 flex flex-row justify-end gap-2 px-6 py-4 border-t border-white/10",
38593
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Button, {
38594
+ title: "Cancel",
38595
+ onClick: onCancel,
38596
+ size: "sm"
38597
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Button, {
38598
+ title: isEditMode ? "Save" : "Create",
38599
+ onClick: handleSave,
38600
+ size: "sm"
38601
+ })]
38602
+ })]
38603
+ });
38604
+ };
38605
+
37569
38606
  var ProvidersSection = function ProvidersSection(_ref) {
37570
38607
  var _ref$dashApi = _ref.dashApi,
37571
38608
  dashApi = _ref$dashApi === void 0 ? null : _ref$dashApi,
@@ -37630,6 +38667,14 @@ var ProvidersSection = function ProvidersSection(_ref) {
37630
38667
  _useState20 = _slicedToArray(_useState19, 2),
37631
38668
  isEditingMcp = _useState20[0],
37632
38669
  setIsEditingMcp = _useState20[1];
38670
+ var _useState21 = React.useState(false),
38671
+ _useState22 = _slicedToArray(_useState21, 2),
38672
+ isAddingWs = _useState22[0],
38673
+ setIsAddingWs = _useState22[1];
38674
+ var _useState23 = React.useState(false),
38675
+ _useState24 = _slicedToArray(_useState23, 2),
38676
+ isEditingWs = _useState24[0],
38677
+ setIsEditingWs = _useState24[1];
37633
38678
 
37634
38679
  // Row ID counter for env/header rows in MCP edit mode
37635
38680
  var nextRowIdRef = React.useRef(0);
@@ -37650,6 +38695,11 @@ var ProvidersSection = function ProvidersSection(_ref) {
37650
38695
  p = _ref5[1];
37651
38696
  return p.providerClass === "mcp";
37652
38697
  });
38698
+ var wsProviders = providerEntries.filter(function (_ref6) {
38699
+ var _ref7 = _slicedToArray(_ref6, 2),
38700
+ p = _ref7[1];
38701
+ return p.providerClass === "websocket";
38702
+ });
37653
38703
  function resetForm() {
37654
38704
  setFormName("");
37655
38705
  setFormType("");
@@ -37657,14 +38707,15 @@ var ProvidersSection = function ProvidersSection(_ref) {
37657
38707
  setIsCreating(false);
37658
38708
  setIsEditing(false);
37659
38709
  setIsEditingMcp(false);
38710
+ setIsEditingWs(false);
37660
38711
  }
37661
38712
  function handleSave() {
37662
38713
  if (!formName.trim() || !dashApi || !appId) return;
37663
38714
  var credentials = {};
37664
- Object.entries(formCredentials).forEach(function (_ref6) {
37665
- var _ref7 = _slicedToArray(_ref6, 2),
37666
- key = _ref7[0],
37667
- value = _ref7[1];
38715
+ Object.entries(formCredentials).forEach(function (_ref8) {
38716
+ var _ref9 = _slicedToArray(_ref8, 2),
38717
+ key = _ref9[0],
38718
+ value = _ref9[1];
37668
38719
  if (key.trim()) credentials[key.trim()] = value;
37669
38720
  });
37670
38721
  dashApi.saveProvider(appId, formName.trim(), {
@@ -37681,16 +38732,24 @@ var ProvidersSection = function ProvidersSection(_ref) {
37681
38732
  function handleStartEdit(name, provider) {
37682
38733
  setSelectedName(name);
37683
38734
  setIsCreating(false);
37684
- setProviderTab(provider.providerClass === "mcp" ? "mcp" : "credentials");
37685
- if (provider.providerClass === "mcp") {
38735
+ if (provider.providerClass === "websocket") {
38736
+ setProviderTab("websocket");
38737
+ setIsEditingWs(true);
38738
+ setIsEditing(false);
38739
+ setIsEditingMcp(false);
38740
+ } else if (provider.providerClass === "mcp") {
38741
+ setProviderTab("mcp");
37686
38742
  setIsEditingMcp(true);
37687
38743
  setIsEditing(false);
38744
+ setIsEditingWs(false);
37688
38745
  } else {
38746
+ setProviderTab("credentials");
37689
38747
  setFormName(name);
37690
38748
  setFormType(provider.type || "");
37691
38749
  setFormCredentials(provider.credentials || {});
37692
38750
  setIsEditing(true);
37693
38751
  setIsEditingMcp(false);
38752
+ setIsEditingWs(false);
37694
38753
  }
37695
38754
  }
37696
38755
  function handleSaveEdit() {
@@ -37722,6 +38781,11 @@ var ProvidersSection = function ProvidersSection(_ref) {
37722
38781
  if ((targetProvider === null || targetProvider === void 0 ? void 0 : targetProvider.providerClass) === "mcp") {
37723
38782
  dashApi.mcpStopServer(deleteTarget, function () {}, function () {});
37724
38783
  }
38784
+
38785
+ // If it's a WebSocket provider, disconnect first
38786
+ if ((targetProvider === null || targetProvider === void 0 ? void 0 : targetProvider.providerClass) === "websocket" && dashApi !== null && dashApi !== void 0 && dashApi.webSocket) {
38787
+ dashApi.webSocket.disconnect(deleteTarget)["catch"](function () {});
38788
+ }
37725
38789
  dashApi.deleteProvider(appId, deleteTarget, function () {
37726
38790
  if (selectedName === deleteTarget) {
37727
38791
  setSelectedName(null);
@@ -37799,6 +38863,49 @@ var ProvidersSection = function ProvidersSection(_ref) {
37799
38863
  });
37800
38864
  }
37801
38865
 
38866
+ // Handle WebSocket provider creation
38867
+ function handleWsSave(providerName, wsConfig, wsCredentials) {
38868
+ if (!dashApi || !appId) return;
38869
+ dashApi.saveProvider(appId, providerName, {
38870
+ providerType: "websocket",
38871
+ credentials: wsCredentials,
38872
+ providerClass: "websocket",
38873
+ wsConfig: wsConfig
38874
+ }, function () {
38875
+ setIsAddingWs(false);
38876
+ refreshProviders && refreshProviders();
38877
+ setSelectedName(providerName);
38878
+ setProviderTab("websocket");
38879
+ }, function (e, err) {
38880
+ return (void 0);
38881
+ });
38882
+ }
38883
+
38884
+ // Handle WebSocket provider editing
38885
+ function handleWsEditSave(providerName, wsConfig, wsCredentials) {
38886
+ if (!dashApi || !appId) return;
38887
+ var originalName = selectedName;
38888
+
38889
+ // Delete old if name changed
38890
+ if (originalName && originalName !== providerName) {
38891
+ dashApi.deleteProvider(appId, originalName, function () {}, function () {});
38892
+ }
38893
+ dashApi.saveProvider(appId, providerName, {
38894
+ providerType: "websocket",
38895
+ credentials: wsCredentials,
38896
+ providerClass: "websocket",
38897
+ wsConfig: wsConfig
38898
+ }, function () {
38899
+ setSelectedName(providerName);
38900
+ setProviderTab("websocket");
38901
+ setIsEditingWs(false);
38902
+ resetForm();
38903
+ refreshProviders && refreshProviders();
38904
+ }, function (e, err) {
38905
+ return (void 0);
38906
+ });
38907
+ }
38908
+
37802
38909
  // Respond to external create trigger from header
37803
38910
  var prevCreateRequested = React.useRef(false);
37804
38911
  React.useEffect(function () {
@@ -37815,8 +38922,8 @@ var ProvidersSection = function ProvidersSection(_ref) {
37815
38922
  // eslint-disable-next-line react-hooks/exhaustive-deps
37816
38923
  }, [createRequested]);
37817
38924
  var selectedProvider = selectedName && providers[selectedName] ? providers[selectedName] : null;
37818
- var activeProviders = providerTab === "credentials" ? credentialProviders : mcpProviders;
37819
- var activeIcon = providerTab === "credentials" ? "key" : "server";
38925
+ var activeProviders = providerTab === "credentials" ? credentialProviders : providerTab === "mcp" ? mcpProviders : wsProviders;
38926
+ var activeIcon = providerTab === "credentials" ? "key" : providerTab === "mcp" ? "server" : "plug";
37820
38927
  var listContent = /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
37821
38928
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {
37822
38929
  className: "px-2 pt-2",
@@ -37831,19 +38938,23 @@ var ProvidersSection = function ProvidersSection(_ref) {
37831
38938
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Tabs3.Trigger, {
37832
38939
  value: "credentials",
37833
38940
  className: "flex-1",
37834
- children: "API Credentials"
38941
+ children: "Credentials"
37835
38942
  }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tabs3.Trigger, {
37836
38943
  value: "mcp",
37837
38944
  className: "flex-1",
37838
- children: "MCP Servers"
38945
+ children: "MCP"
38946
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tabs3.Trigger, {
38947
+ value: "websocket",
38948
+ className: "flex-1",
38949
+ children: "WebSocket"
37839
38950
  })]
37840
38951
  })
37841
38952
  })
37842
38953
  }), /*#__PURE__*/jsxRuntime.jsxs(DashReact.Sidebar.Content, {
37843
- children: [activeProviders.map(function (_ref8) {
37844
- var _ref9 = _slicedToArray(_ref8, 2),
37845
- name = _ref9[0],
37846
- provider = _ref9[1];
38954
+ children: [activeProviders.map(function (_ref0) {
38955
+ var _ref1 = _slicedToArray(_ref0, 2),
38956
+ name = _ref1[0],
38957
+ provider = _ref1[1];
37847
38958
  var isSelected = selectedName === name && !isCreating;
37848
38959
  return /*#__PURE__*/jsxRuntime.jsx(DashReact.Sidebar.Item, {
37849
38960
  icon: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
@@ -37866,7 +38977,7 @@ var ProvidersSection = function ProvidersSection(_ref) {
37866
38977
  }, name);
37867
38978
  }), activeProviders.length === 0 && /*#__PURE__*/jsxRuntime.jsx("span", {
37868
38979
  className: "text-sm opacity-40 py-8 text-center",
37869
- children: providerTab === "credentials" ? "No API credentials configured" : "No MCP servers configured"
38980
+ children: providerTab === "credentials" ? "No API credentials configured" : providerTab === "mcp" ? "No MCP servers configured" : "No WebSocket providers configured"
37870
38981
  }), providerTab === "mcp" && /*#__PURE__*/jsxRuntime.jsx("div", {
37871
38982
  className: "px-3 py-3 mt-2 border-t border-white/10",
37872
38983
  children: /*#__PURE__*/jsxRuntime.jsxs("button", {
@@ -37882,11 +38993,58 @@ var ProvidersSection = function ProvidersSection(_ref) {
37882
38993
  className: "h-3 w-3"
37883
38994
  }), "Add MCP Server"]
37884
38995
  })
38996
+ }), providerTab === "websocket" && /*#__PURE__*/jsxRuntime.jsx("div", {
38997
+ className: "px-3 py-3 mt-2 border-t border-white/10",
38998
+ children: /*#__PURE__*/jsxRuntime.jsxs("button", {
38999
+ onClick: function onClick() {
39000
+ setIsAddingWs(true);
39001
+ setSelectedName(null);
39002
+ setIsCreating(false);
39003
+ setIsEditing(false);
39004
+ setIsAddingMcp(false);
39005
+ },
39006
+ className: "flex items-center gap-2 text-sm text-blue-400 hover:text-blue-300 transition-colors w-full",
39007
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
39008
+ icon: "plus",
39009
+ className: "h-3 w-3"
39010
+ }), "Add WebSocket Provider"]
39011
+ })
37885
39012
  })]
37886
39013
  })]
37887
39014
  });
37888
39015
  var detailContent = null;
37889
- if (isAddingMcp) {
39016
+ if (isAddingWs) {
39017
+ detailContent = /*#__PURE__*/jsxRuntime.jsx(WebSocketProviderForm, {
39018
+ onSave: handleWsSave,
39019
+ onCancel: function onCancel() {
39020
+ return setIsAddingWs(false);
39021
+ }
39022
+ });
39023
+ } else if (isEditingWs && selectedName && selectedProvider) {
39024
+ var wc = selectedProvider.wsConfig || {};
39025
+ var editHeaderRows = wc.headers ? Object.entries(wc.headers).map(function (_ref10, i) {
39026
+ var _ref11 = _slicedToArray(_ref10, 2),
39027
+ key = _ref11[0],
39028
+ value = _ref11[1];
39029
+ return {
39030
+ id: "ws_edit_".concat(i),
39031
+ key: key,
39032
+ value: value
39033
+ };
39034
+ }) : [];
39035
+ detailContent = /*#__PURE__*/jsxRuntime.jsx(WebSocketProviderForm, {
39036
+ isEditMode: true,
39037
+ initialName: selectedName,
39038
+ initialUrl: wc.url || "",
39039
+ initialHeaderRows: editHeaderRows,
39040
+ initialSubprotocols: wc.subprotocols || [],
39041
+ initialCredentials: selectedProvider.credentials || {},
39042
+ onSave: handleWsEditSave,
39043
+ onCancel: function onCancel() {
39044
+ return setIsEditingWs(false);
39045
+ }
39046
+ }, selectedName);
39047
+ } else if (isAddingMcp) {
37890
39048
  detailContent = /*#__PURE__*/jsxRuntime.jsx(McpCatalogDetail, {
37891
39049
  onSave: handleMcpSave,
37892
39050
  onCancel: function onCancel() {
@@ -46555,6 +47713,7 @@ exports.useNotifications = useNotifications;
46555
47713
  exports.useProvider = useProvider;
46556
47714
  exports.useProviderClient = useProviderClient;
46557
47715
  exports.useScheduler = useScheduler;
47716
+ exports.useWebSocketProvider = useWebSocketProvider;
46558
47717
  exports.useWidgetEvents = useWidgetEvents;
46559
47718
  exports.useWidgetProviders = useWidgetProviders;
46560
47719
  exports.useWidgetSchedulerStatus = useWidgetSchedulerStatus;