@trops/dash-core 0.1.609 → 0.1.611

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
@@ -954,6 +954,8 @@ var MCP_GET_CATALOG_COMPLETE = "mcp:get-catalog:complete";
954
954
  var MCP_GET_CATALOG_ERROR = "mcp:get-catalog:error";
955
955
  var MCP_RUN_AUTH_COMPLETE = "mcp:run-auth:complete";
956
956
  var MCP_RUN_AUTH_ERROR = "mcp:run-auth:error";
957
+ var MCP_AUTHORIZE_COMPLETE = "mcp:authorize:complete";
958
+ var MCP_AUTHORIZE_ERROR = "mcp:authorize:error";
957
959
 
958
960
  var DATA_JSON_TO_CSV_FILE = "data-json-to-csv-file";
959
961
  var DATA_JSON_TO_CSV_FILE_COMPLETE = "data-json-to-csv-file-complete";
@@ -1049,6 +1051,8 @@ var apiEvents = /*#__PURE__*/Object.freeze({
1049
1051
  LAYOUT_LIST: LAYOUT_LIST,
1050
1052
  LAYOUT_LIST_COMPLETE: LAYOUT_LIST_COMPLETE,
1051
1053
  LAYOUT_LIST_ERROR: LAYOUT_LIST_ERROR,
1054
+ MCP_AUTHORIZE_COMPLETE: MCP_AUTHORIZE_COMPLETE,
1055
+ MCP_AUTHORIZE_ERROR: MCP_AUTHORIZE_ERROR,
1052
1056
  MCP_CALL_TOOL_COMPLETE: MCP_CALL_TOOL_COMPLETE,
1053
1057
  MCP_CALL_TOOL_ERROR: MCP_CALL_TOOL_ERROR,
1054
1058
  MCP_GET_CATALOG_COMPLETE: MCP_GET_CATALOG_COMPLETE,
@@ -1653,9 +1657,10 @@ var ElectronDashboardApi = /*#__PURE__*/function () {
1653
1657
  var _this20 = this;
1654
1658
  var workspaceId = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
1655
1659
  var pathScope = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
1660
+ var appId = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : null;
1656
1661
  if (this.api !== null) {
1657
1662
  try {
1658
- this.api.mcp.startServer(serverName, mcpConfig, credentials, workspaceId, pathScope).then(function (result) {
1663
+ this.api.mcp.startServer(serverName, mcpConfig, credentials, workspaceId, pathScope, appId !== null && appId !== void 0 ? appId : this.appId).then(function (result) {
1659
1664
  onSuccess(_this20.events.MCP_START_SERVER_COMPLETE, result);
1660
1665
  })["catch"](function (error) {
1661
1666
  onError(_this20.events.MCP_START_SERVER_ERROR, error);
@@ -1881,6 +1886,28 @@ var ElectronDashboardApi = /*#__PURE__*/function () {
1881
1886
  return false;
1882
1887
  }
1883
1888
  }
1889
+ }, {
1890
+ key: "mcpAuthorize",
1891
+ value: function mcpAuthorize(serverName, mcpConfig, credentials, onSuccess, onError) {
1892
+ var _this30 = this;
1893
+ var appId = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
1894
+ if (this.api !== null) {
1895
+ try {
1896
+ this.api.mcp.authorize(serverName, mcpConfig, credentials, appId !== null && appId !== void 0 ? appId : this.appId).then(function (result) {
1897
+ onSuccess(_this30.events.MCP_AUTHORIZE_COMPLETE, result);
1898
+ })["catch"](function (error) {
1899
+ onError(_this30.events.MCP_AUTHORIZE_ERROR, error);
1900
+ });
1901
+ return true;
1902
+ } catch (e) {
1903
+ onError(this.events.MCP_AUTHORIZE_ERROR, e);
1904
+ return false;
1905
+ }
1906
+ } else {
1907
+ onError(this.events.MCP_AUTHORIZE_ERROR, new Error("No Api found"));
1908
+ return false;
1909
+ }
1910
+ }
1884
1911
  }]);
1885
1912
  }();
1886
1913
 
@@ -2154,6 +2181,12 @@ var WebDashboardApi = /*#__PURE__*/function () {
2154
2181
  onError === null || onError === void 0 ? void 0 : onError("mcp:run-auth:error", new Error("MCP not available in web mode"));
2155
2182
  return false;
2156
2183
  }
2184
+ }, {
2185
+ key: "mcpAuthorize",
2186
+ value: function mcpAuthorize(serverName, mcpConfig, credentials, onSuccess, onError) {
2187
+ onError === null || onError === void 0 ? void 0 : onError("mcp:authorize:error", new Error("MCP not available in web mode"));
2188
+ return false;
2189
+ }
2157
2190
  }]);
2158
2191
  }();
2159
2192
 
@@ -2702,9 +2735,9 @@ function useWidgetRegistryVersion() {
2702
2735
  return version;
2703
2736
  }
2704
2737
 
2705
- function _createForOfIteratorHelper$N(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$N(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; } } }; }
2706
- function _unsupportedIterableToArray$N(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$N(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$N(r, a) : void 0; } }
2707
- function _arrayLikeToArray$N(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; }
2738
+ function _createForOfIteratorHelper$M(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$M(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; } } }; }
2739
+ function _unsupportedIterableToArray$M(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$M(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$M(r, a) : void 0; } }
2740
+ function _arrayLikeToArray$M(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; }
2708
2741
 
2709
2742
  /**
2710
2743
  * Walk a workspace layout and collect widget component keys that are
@@ -2718,7 +2751,7 @@ function collectComponentsFromLayout(layout) {
2718
2751
 
2719
2752
  // Collect IDs of layout items that are actively referenced by grid cells
2720
2753
  var activeItemIds = new Set();
2721
- var _iterator = _createForOfIteratorHelper$N(layout),
2754
+ var _iterator = _createForOfIteratorHelper$M(layout),
2722
2755
  _step;
2723
2756
  try {
2724
2757
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -2738,7 +2771,7 @@ function collectComponentsFromLayout(layout) {
2738
2771
  } finally {
2739
2772
  _iterator.f();
2740
2773
  }
2741
- var _iterator2 = _createForOfIteratorHelper$N(layout),
2774
+ var _iterator2 = _createForOfIteratorHelper$M(layout),
2742
2775
  _step2;
2743
2776
  try {
2744
2777
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -2772,7 +2805,7 @@ function findWidgetUsage(componentNames, workspaces) {
2772
2805
  if (!(componentNames !== null && componentNames !== void 0 && componentNames.length) || !(workspaces !== null && workspaces !== void 0 && workspaces.length)) return [];
2773
2806
  var nameSet = new Set(componentNames);
2774
2807
  var results = [];
2775
- var _iterator3 = _createForOfIteratorHelper$N(workspaces),
2808
+ var _iterator3 = _createForOfIteratorHelper$M(workspaces),
2776
2809
  _step3;
2777
2810
  try {
2778
2811
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -2913,7 +2946,7 @@ var useInstalledWidgets = function useInstalledWidgets() {
2913
2946
  _t = [];
2914
2947
  case 4:
2915
2948
  allDrafts = _t;
2916
- _iterator4 = _createForOfIteratorHelper$N(allDrafts);
2949
+ _iterator4 = _createForOfIteratorHelper$M(allDrafts);
2917
2950
  try {
2918
2951
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
2919
2952
  d = _step4.value;
@@ -3082,9 +3115,9 @@ var useInstalledWidgets = function useInstalledWidgets() {
3082
3115
  };
3083
3116
  };
3084
3117
 
3085
- function _createForOfIteratorHelper$M(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$M(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; } } }; }
3086
- function _unsupportedIterableToArray$M(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$M(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$M(r, a) : void 0; } }
3087
- function _arrayLikeToArray$M(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; }
3118
+ function _createForOfIteratorHelper$L(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$L(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; } } }; }
3119
+ function _unsupportedIterableToArray$L(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$L(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$L(r, a) : void 0; } }
3120
+ function _arrayLikeToArray$L(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; }
3088
3121
  function ownKeys$18(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; }
3089
3122
  function _objectSpread$18(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$18(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$18(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3090
3123
 
@@ -3610,7 +3643,7 @@ function useWidgetUpdates() {
3610
3643
  // (install replaces the entire package, not just one widget)
3611
3644
  setUpdates(function (prev) {
3612
3645
  var next = new Map(prev);
3613
- var _iterator = _createForOfIteratorHelper$M(next),
3646
+ var _iterator = _createForOfIteratorHelper$L(next),
3614
3647
  _step;
3615
3648
  try {
3616
3649
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -3669,7 +3702,7 @@ function useWidgetUpdates() {
3669
3702
  var packagesWithUpdates = React.useMemo(function () {
3670
3703
  if (!updates || updates.size === 0) return [];
3671
3704
  var byPackage = new Map();
3672
- var _iterator2 = _createForOfIteratorHelper$M(updates),
3705
+ var _iterator2 = _createForOfIteratorHelper$L(updates),
3673
3706
  _step2;
3674
3707
  try {
3675
3708
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -3697,7 +3730,7 @@ function useWidgetUpdates() {
3697
3730
  } finally {
3698
3731
  _iterator2.f();
3699
3732
  }
3700
- var _iterator3 = _createForOfIteratorHelper$M(installedWidgets),
3733
+ var _iterator3 = _createForOfIteratorHelper$L(installedWidgets),
3701
3734
  _step3;
3702
3735
  try {
3703
3736
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -3828,7 +3861,7 @@ function useWidgetUpdates() {
3828
3861
  // packageId) → grant rows (which are keyed by widgetId like
3829
3862
  // `trops.slack.SlackChannels`).
3830
3863
  rowByComponentName = new Map();
3831
- _iterator4 = _createForOfIteratorHelper$M(allRows);
3864
+ _iterator4 = _createForOfIteratorHelper$L(allRows);
3832
3865
  try {
3833
3866
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
3834
3867
  r = _step4.value;
@@ -3841,7 +3874,7 @@ function useWidgetUpdates() {
3841
3874
  _iterator4.f();
3842
3875
  }
3843
3876
  widgetsWithMissing = [];
3844
- _iterator5 = _createForOfIteratorHelper$M(manifests);
3877
+ _iterator5 = _createForOfIteratorHelper$L(manifests);
3845
3878
  _context5.prev = 8;
3846
3879
  _loop = /*#__PURE__*/_regeneratorRuntime.mark(function _loop() {
3847
3880
  var _manifest$permissions;
@@ -3864,7 +3897,7 @@ function useWidgetUpdates() {
3864
3897
  pkgWidgets = installedWidgets.filter(function (w) {
3865
3898
  return (w.packageId || w.name) === packageId;
3866
3899
  });
3867
- _iterator6 = _createForOfIteratorHelper$M(pkgWidgets);
3900
+ _iterator6 = _createForOfIteratorHelper$L(pkgWidgets);
3868
3901
  _context4.prev = 2;
3869
3902
  _iterator6.s();
3870
3903
  case 3:
@@ -3976,7 +4009,7 @@ function useWidgetUpdates() {
3976
4009
  // Seed every selected package as pending so the modal renders
3977
4010
  // the full per-row state from the first paint.
3978
4011
  initial = new Map();
3979
- _iterator7 = _createForOfIteratorHelper$M(packageNames);
4012
+ _iterator7 = _createForOfIteratorHelper$L(packageNames);
3980
4013
  try {
3981
4014
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
3982
4015
  name = _step7.value;
@@ -4036,7 +4069,7 @@ function useWidgetUpdates() {
4036
4069
  // loop so the freshly-installed code can immediately use
4037
4070
  // what was approved (and is gated from what wasn't).
4038
4071
  accepted = decision.acceptedByWidgetId || {};
4039
- _iterator8 = _createForOfIteratorHelper$M(preflight.widgets);
4072
+ _iterator8 = _createForOfIteratorHelper$L(preflight.widgets);
4040
4073
  _context7.prev = 6;
4041
4074
  _iterator8.s();
4042
4075
  case 7:
@@ -4120,7 +4153,7 @@ function useWidgetUpdates() {
4120
4153
  // e.g. a stale registry zip or a verify mismatch).
4121
4154
  failedDetails = [];
4122
4155
  _context7.prev = 19;
4123
- _iterator9 = _createForOfIteratorHelper$M(packageNames);
4156
+ _iterator9 = _createForOfIteratorHelper$L(packageNames);
4124
4157
  _context7.prev = 20;
4125
4158
  _loop2 = /*#__PURE__*/_regeneratorRuntime.mark(function _loop2() {
4126
4159
  var pkgName, msg, _t0;
@@ -4227,7 +4260,7 @@ function useWidgetUpdates() {
4227
4260
  succeededSet = new Set(succeeded);
4228
4261
  setUpdates(function (prev) {
4229
4262
  var next = new Map(prev);
4230
- var _iterator0 = _createForOfIteratorHelper$M(next),
4263
+ var _iterator0 = _createForOfIteratorHelper$L(next),
4231
4264
  _step0;
4232
4265
  try {
4233
4266
  for (_iterator0.s(); !(_step0 = _iterator0.n()).done;) {
@@ -4621,9 +4654,9 @@ function useRegistryAuth() {
4621
4654
 
4622
4655
  function ownKeys$16(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; }
4623
4656
  function _objectSpread$16(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$16(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$16(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4624
- function _createForOfIteratorHelper$L(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$L(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; } } }; }
4625
- function _unsupportedIterableToArray$L(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$L(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$L(r, a) : void 0; } }
4626
- function _arrayLikeToArray$L(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; }
4657
+ function _createForOfIteratorHelper$K(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$K(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; } } }; }
4658
+ function _unsupportedIterableToArray$K(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$K(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$K(r, a) : void 0; } }
4659
+ function _arrayLikeToArray$K(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; }
4627
4660
  var secondaryBtnClass = "px-3 py-2 text-sm font-medium rounded bg-gray-700 hover:bg-gray-600 disabled:bg-gray-800 disabled:text-gray-500 disabled:cursor-not-allowed text-gray-100";
4628
4661
  var primaryBtnClass = "px-3 py-2 text-sm font-medium rounded bg-blue-600 hover:bg-blue-500 disabled:bg-gray-700 disabled:text-gray-500 disabled:cursor-not-allowed text-white";
4629
4662
 
@@ -4644,7 +4677,7 @@ function flattenPreflightLines(missing) {
4644
4677
  var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
4645
4678
  serverName = _Object$entries$_i[0],
4646
4679
  perms = _Object$entries$_i[1];
4647
- var _iterator = _createForOfIteratorHelper$L(perms.tools || []),
4680
+ var _iterator = _createForOfIteratorHelper$K(perms.tools || []),
4648
4681
  _step;
4649
4682
  try {
4650
4683
  var _loop2 = function _loop2() {
@@ -4671,7 +4704,7 @@ function flattenPreflightLines(missing) {
4671
4704
  } finally {
4672
4705
  _iterator.f();
4673
4706
  }
4674
- var _iterator2 = _createForOfIteratorHelper$L(perms.readPaths || []),
4707
+ var _iterator2 = _createForOfIteratorHelper$K(perms.readPaths || []),
4675
4708
  _step2;
4676
4709
  try {
4677
4710
  var _loop3 = function _loop3() {
@@ -4698,7 +4731,7 @@ function flattenPreflightLines(missing) {
4698
4731
  } finally {
4699
4732
  _iterator2.f();
4700
4733
  }
4701
- var _iterator3 = _createForOfIteratorHelper$L(perms.writePaths || []),
4734
+ var _iterator3 = _createForOfIteratorHelper$K(perms.writePaths || []),
4702
4735
  _step3;
4703
4736
  try {
4704
4737
  var _loop4 = function _loop4() {
@@ -4861,13 +4894,13 @@ var AppUpdatesModal = function AppUpdatesModal(_ref) {
4861
4894
  var _pendingPreflight$wid;
4862
4895
  if (!pendingPreflight || !((_pendingPreflight$wid = pendingPreflight.widgets) !== null && _pendingPreflight$wid !== void 0 && _pendingPreflight$wid.length)) return;
4863
4896
  var initial = {};
4864
- var _iterator4 = _createForOfIteratorHelper$L(pendingPreflight.widgets),
4897
+ var _iterator4 = _createForOfIteratorHelper$K(pendingPreflight.widgets),
4865
4898
  _step4;
4866
4899
  try {
4867
4900
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
4868
4901
  var w = _step4.value;
4869
4902
  initial[w.widgetId] = {};
4870
- var _iterator5 = _createForOfIteratorHelper$L(flattenPreflightLines(w.missing)),
4903
+ var _iterator5 = _createForOfIteratorHelper$K(flattenPreflightLines(w.missing)),
4871
4904
  _step5;
4872
4905
  try {
4873
4906
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -4973,7 +5006,7 @@ var AppUpdatesModal = function AppUpdatesModal(_ref) {
4973
5006
  // would no-op them anyway, but explicit is cheaper than
4974
5007
  // mysterious).
4975
5008
  var acceptedByWidgetId = {};
4976
- var _iterator6 = _createForOfIteratorHelper$L(pendingPreflight.widgets),
5009
+ var _iterator6 = _createForOfIteratorHelper$K(pendingPreflight.widgets),
4977
5010
  _step6;
4978
5011
  try {
4979
5012
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
@@ -4981,7 +5014,7 @@ var AppUpdatesModal = function AppUpdatesModal(_ref) {
4981
5014
  var lines = flattenPreflightLines(w.missing);
4982
5015
  var acc = {};
4983
5016
  var any = false;
4984
- var _iterator7 = _createForOfIteratorHelper$L(lines),
5017
+ var _iterator7 = _createForOfIteratorHelper$K(lines),
4985
5018
  _step7;
4986
5019
  try {
4987
5020
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
@@ -6058,9 +6091,9 @@ var LayoutContainer = function LayoutContainer(_ref) {
6058
6091
 
6059
6092
  function ownKeys$13(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; }
6060
6093
  function _objectSpread$13(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$13(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$13(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6061
- function _createForOfIteratorHelper$K(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$K(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; } } }; }
6062
- function _unsupportedIterableToArray$K(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$K(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$K(r, a) : void 0; } }
6063
- function _arrayLikeToArray$K(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; }
6094
+ function _createForOfIteratorHelper$J(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$J(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; } } }; }
6095
+ function _unsupportedIterableToArray$J(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$J(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$J(r, a) : void 0; } }
6096
+ function _arrayLikeToArray$J(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; }
6064
6097
  /**
6065
6098
  * Layout template definitions for the dashboard template picker.
6066
6099
  *
@@ -6334,7 +6367,7 @@ function createLayoutFromTemplate(template) {
6334
6367
  cols: template.cols,
6335
6368
  gap: "gap-2"
6336
6369
  };
6337
- var _iterator = _createForOfIteratorHelper$K(template.cells),
6370
+ var _iterator = _createForOfIteratorHelper$J(template.cells),
6338
6371
  _step;
6339
6372
  try {
6340
6373
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -7356,9 +7389,9 @@ var DashboardInstallOptionsModal = function DashboardInstallOptionsModal(_ref) {
7356
7389
  });
7357
7390
  };
7358
7391
 
7359
- function _createForOfIteratorHelper$J(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$J(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; } } }; }
7360
- function _unsupportedIterableToArray$J(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$J(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$J(r, a) : void 0; } }
7361
- function _arrayLikeToArray$J(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; }
7392
+ function _createForOfIteratorHelper$I(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$I(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; } } }; }
7393
+ function _unsupportedIterableToArray$I(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$I(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$I(r, a) : void 0; } }
7394
+ function _arrayLikeToArray$I(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; }
7362
7395
  function ownKeys$12(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; }
7363
7396
  function _objectSpread$12(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$12(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$12(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7364
7397
  var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
@@ -7727,7 +7760,7 @@ var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
7727
7760
  toInstall = 0,
7728
7761
  unavailable = 0,
7729
7762
  hasUnavailableRequired = false;
7730
- var _iterator = _createForOfIteratorHelper$J(widgetDeps),
7763
+ var _iterator = _createForOfIteratorHelper$I(widgetDeps),
7731
7764
  _step;
7732
7765
  try {
7733
7766
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -9428,9 +9461,9 @@ function cleanIpcError(message) {
9428
9461
  return match ? match[1] : message;
9429
9462
  }
9430
9463
 
9431
- function _createForOfIteratorHelper$I(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$I(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; } } }; }
9432
- function _unsupportedIterableToArray$I(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$I(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$I(r, a) : void 0; } }
9433
- function _arrayLikeToArray$I(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; }
9464
+ function _createForOfIteratorHelper$H(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$H(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; } } }; }
9465
+ function _unsupportedIterableToArray$H(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$H(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$H(r, a) : void 0; } }
9466
+ function _arrayLikeToArray$H(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; }
9434
9467
 
9435
9468
  /**
9436
9469
  * useRegistrySearch — shared hook for browsing and installing registry packages.
@@ -9544,13 +9577,13 @@ var useRegistrySearch = function useRegistrySearch() {
9544
9577
  return c.toLowerCase();
9545
9578
  }));
9546
9579
  widgets = [];
9547
- _iterator = _createForOfIteratorHelper$I(pkgs);
9580
+ _iterator = _createForOfIteratorHelper$H(pkgs);
9548
9581
  try {
9549
9582
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
9550
9583
  pkg = _step.value;
9551
9584
  // Compute missing APIs for the entire package
9552
9585
  allApiProviders = [];
9553
- _iterator2 = _createForOfIteratorHelper$I(pkg.providers || []);
9586
+ _iterator2 = _createForOfIteratorHelper$H(pkg.providers || []);
9554
9587
  try {
9555
9588
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
9556
9589
  p = _step2.value;
@@ -9563,11 +9596,11 @@ var useRegistrySearch = function useRegistrySearch() {
9563
9596
  } finally {
9564
9597
  _iterator2.f();
9565
9598
  }
9566
- _iterator3 = _createForOfIteratorHelper$I(pkg.widgets || []);
9599
+ _iterator3 = _createForOfIteratorHelper$H(pkg.widgets || []);
9567
9600
  try {
9568
9601
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
9569
9602
  w = _step3.value;
9570
- _iterator5 = _createForOfIteratorHelper$I(w.providers || []);
9603
+ _iterator5 = _createForOfIteratorHelper$H(w.providers || []);
9571
9604
  try {
9572
9605
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
9573
9606
  _p = _step5.value;
@@ -9589,7 +9622,7 @@ var useRegistrySearch = function useRegistrySearch() {
9589
9622
  missingApis = _toConsumableArray(new Set(allApiProviders)).filter(function (api) {
9590
9623
  return !capSet.has(api.toLowerCase());
9591
9624
  });
9592
- _iterator4 = _createForOfIteratorHelper$I(pkg.widgets || []);
9625
+ _iterator4 = _createForOfIteratorHelper$H(pkg.widgets || []);
9593
9626
  try {
9594
9627
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
9595
9628
  widget = _step4.value;
@@ -10376,9 +10409,9 @@ function WizardThemePreview(_ref) {
10376
10409
  });
10377
10410
  }
10378
10411
 
10379
- function _createForOfIteratorHelper$H(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$H(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; } } }; }
10380
- function _unsupportedIterableToArray$H(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$H(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$H(r, a) : void 0; } }
10381
- function _arrayLikeToArray$H(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; }
10412
+ function _createForOfIteratorHelper$G(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$G(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; } } }; }
10413
+ function _unsupportedIterableToArray$G(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$G(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$G(r, a) : void 0; } }
10414
+ function _arrayLikeToArray$G(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; }
10382
10415
  var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
10383
10416
  var _state$selectedDashbo, _state$selectedDashbo2, _state$layout;
10384
10417
  var state = _ref.state,
@@ -10597,7 +10630,7 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
10597
10630
  installedNames = new Set(installedList.map(function (w) {
10598
10631
  return w.name;
10599
10632
  }));
10600
- _iterator = _createForOfIteratorHelper$H(state.selectedWidgets);
10633
+ _iterator = _createForOfIteratorHelper$G(state.selectedWidgets);
10601
10634
  _context2.prev = 12;
10602
10635
  _iterator.s();
10603
10636
  case 13:
@@ -12285,9 +12318,9 @@ function mergeDownOp(grid, row, col) {
12285
12318
  }
12286
12319
 
12287
12320
  var _excluded$4 = ["rows", "cols"];
12288
- function _createForOfIteratorHelper$G(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$G(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; } } }; }
12289
- function _unsupportedIterableToArray$G(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$G(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$G(r, a) : void 0; } }
12290
- function _arrayLikeToArray$G(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; }
12321
+ 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; } } }; }
12322
+ 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; } }
12323
+ 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; }
12291
12324
  function ownKeys$$(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; }
12292
12325
  function _objectSpread$$(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$$(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$$(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12293
12326
  var defaultGrid = {
@@ -12409,7 +12442,7 @@ function GridEditor(_ref) {
12409
12442
  function sortObjectByKeys(obj) {
12410
12443
  var sortedKeys = Object.keys(obj).sort();
12411
12444
  var sortedObj = {};
12412
- var _iterator = _createForOfIteratorHelper$G(sortedKeys),
12445
+ var _iterator = _createForOfIteratorHelper$F(sortedKeys),
12413
12446
  _step;
12414
12447
  try {
12415
12448
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -12882,9 +12915,9 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
12882
12915
  });
12883
12916
  };
12884
12917
 
12885
- 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; } } }; }
12886
- 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; } }
12887
- 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; }
12918
+ 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; } } }; }
12919
+ 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; } }
12920
+ 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; }
12888
12921
  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; }
12889
12922
  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; }
12890
12923
  var DAYS = [{
@@ -13213,7 +13246,7 @@ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
13213
13246
  setIsLoading(true);
13214
13247
  window.mainApi.scheduler.getTasks(widgetUuid).then(function (tasks) {
13215
13248
  var stateMap = {};
13216
- var _iterator = _createForOfIteratorHelper$F(tasks || []),
13249
+ var _iterator = _createForOfIteratorHelper$E(tasks || []),
13217
13250
  _step;
13218
13251
  try {
13219
13252
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -13472,9 +13505,9 @@ function isUserWidget(item) {
13472
13505
  return true;
13473
13506
  }
13474
13507
 
13475
- 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; } } }; }
13476
- 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; } }
13477
- 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; }
13508
+ 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; } } }; }
13509
+ 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; } }
13510
+ 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; }
13478
13511
 
13479
13512
  /**
13480
13513
  * Resolve which provider name a given widget instance would bind to for
@@ -13506,7 +13539,7 @@ function resolveProviderName(_ref) {
13506
13539
  // array. Support both because different callers shape it either way.
13507
13540
  if (appProviders) {
13508
13541
  if (Array.isArray(appProviders)) {
13509
- var _iterator = _createForOfIteratorHelper$E(appProviders),
13542
+ var _iterator = _createForOfIteratorHelper$D(appProviders),
13510
13543
  _step;
13511
13544
  try {
13512
13545
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -13566,7 +13599,7 @@ function forEachWidget(workspace, visit) {
13566
13599
  };
13567
13600
  var _walk = function walk(items) {
13568
13601
  if (!Array.isArray(items)) return;
13569
- var _iterator2 = _createForOfIteratorHelper$E(items),
13602
+ var _iterator2 = _createForOfIteratorHelper$D(items),
13570
13603
  _step2;
13571
13604
  try {
13572
13605
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -13607,7 +13640,7 @@ function forEachWidget(workspace, visit) {
13607
13640
  // widgets that only live there (e.g. AI-place writes that bypass
13608
13641
  // the page handler).
13609
13642
  if (Array.isArray(workspace.pages)) {
13610
- var _iterator3 = _createForOfIteratorHelper$E(workspace.pages),
13643
+ var _iterator3 = _createForOfIteratorHelper$D(workspace.pages),
13611
13644
  _step3;
13612
13645
  try {
13613
13646
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -13658,7 +13691,7 @@ function getUnresolvedProviders(_ref2) {
13658
13691
  // the same `type` listed twice (a Claude code-gen quirk), which
13659
13692
  // would otherwise produce duplicate rows in the Providers tab.
13660
13693
  var seenTypes = new Set();
13661
- var _iterator4 = _createForOfIteratorHelper$E(requirements),
13694
+ var _iterator4 = _createForOfIteratorHelper$D(requirements),
13662
13695
  _step4;
13663
13696
  try {
13664
13697
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -13701,7 +13734,7 @@ function getUnresolvedProviders(_ref2) {
13701
13734
  */
13702
13735
  function groupByProviderType(unresolved) {
13703
13736
  var byType = new Map();
13704
- var _iterator5 = _createForOfIteratorHelper$E(unresolved || []),
13737
+ var _iterator5 = _createForOfIteratorHelper$D(unresolved || []),
13705
13738
  _step5;
13706
13739
  try {
13707
13740
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -13743,7 +13776,7 @@ function getAllProviderBindings(_ref3) {
13743
13776
  // quirk) which would otherwise duplicate the per-widget row in
13744
13777
  // the Providers tab.
13745
13778
  var seenTypes = new Set();
13746
- var _iterator6 = _createForOfIteratorHelper$E(requirements),
13779
+ var _iterator6 = _createForOfIteratorHelper$D(requirements),
13747
13780
  _step6;
13748
13781
  try {
13749
13782
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
@@ -13785,9 +13818,9 @@ function getAllProviderBindings(_ref3) {
13785
13818
 
13786
13819
  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; }
13787
13820
  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; }
13788
- 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; } } }; }
13789
- 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; } }
13790
- 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; }
13821
+ 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; } } }; }
13822
+ 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; } }
13823
+ 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; }
13791
13824
  var EVENT_STRING_RE = /^([^[]+)\[([^\]]+)\]\.(.+)$/;
13792
13825
 
13793
13826
  /** Parse "Component[itemId].event" → { component, itemId, event }. */
@@ -13957,7 +13990,7 @@ function getCurrentWiring(workspace) {
13957
13990
  // Live format is array; defensive guard for legacy object
13958
13991
  // form (a single source widget keyed under the handler).
13959
13992
  var events = Array.isArray(eventList) ? eventList : typeof eventList === "string" ? [eventList] : [];
13960
- var _iterator = _createForOfIteratorHelper$D(events),
13993
+ var _iterator = _createForOfIteratorHelper$C(events),
13961
13994
  _step;
13962
13995
  try {
13963
13996
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -14020,7 +14053,7 @@ function getOrphanedListeners(workspace, getWidgetConfig) {
14020
14053
  if (!byItemId.has(id)) byItemId.set(id, meta);
14021
14054
  });
14022
14055
  var orphans = [];
14023
- var _iterator2 = _createForOfIteratorHelper$D(wiring),
14056
+ var _iterator2 = _createForOfIteratorHelper$C(wiring),
14024
14057
  _step2;
14025
14058
  try {
14026
14059
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -14086,7 +14119,7 @@ function pruneDeadListenerReferences(workspace) {
14086
14119
  var liveKeys = new Set();
14087
14120
  var _walkForLive = function walkForLive(items) {
14088
14121
  if (!Array.isArray(items)) return;
14089
- var _iterator3 = _createForOfIteratorHelper$D(items),
14122
+ var _iterator3 = _createForOfIteratorHelper$C(items),
14090
14123
  _step3;
14091
14124
  try {
14092
14125
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -14107,7 +14140,7 @@ function pruneDeadListenerReferences(workspace) {
14107
14140
  };
14108
14141
  _walkForLive(workspace.layout);
14109
14142
  if (Array.isArray(workspace.pages)) {
14110
- var _iterator4 = _createForOfIteratorHelper$D(workspace.pages),
14143
+ var _iterator4 = _createForOfIteratorHelper$C(workspace.pages),
14111
14144
  _step4;
14112
14145
  try {
14113
14146
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -14124,7 +14157,7 @@ function pruneDeadListenerReferences(workspace) {
14124
14157
  var removed = 0;
14125
14158
  var _pruneListeners = function pruneListeners(items) {
14126
14159
  if (!Array.isArray(items)) return;
14127
- var _iterator5 = _createForOfIteratorHelper$D(items),
14160
+ var _iterator5 = _createForOfIteratorHelper$C(items),
14128
14161
  _step5;
14129
14162
  try {
14130
14163
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -14136,7 +14169,7 @@ function pruneDeadListenerReferences(workspace) {
14136
14169
  var events = item.listeners[handler];
14137
14170
  if (!Array.isArray(events)) continue;
14138
14171
  var kept = [];
14139
- var _iterator6 = _createForOfIteratorHelper$D(events),
14172
+ var _iterator6 = _createForOfIteratorHelper$C(events),
14140
14173
  _step6;
14141
14174
  try {
14142
14175
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
@@ -14171,7 +14204,7 @@ function pruneDeadListenerReferences(workspace) {
14171
14204
  };
14172
14205
  _pruneListeners(workspace.layout);
14173
14206
  if (Array.isArray(workspace.pages)) {
14174
- var _iterator7 = _createForOfIteratorHelper$D(workspace.pages),
14207
+ var _iterator7 = _createForOfIteratorHelper$C(workspace.pages),
14175
14208
  _step7;
14176
14209
  try {
14177
14210
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
@@ -14215,7 +14248,7 @@ function applyWiringChanges(workspace, _ref) {
14215
14248
  });
14216
14249
  return byReceiver.get(id);
14217
14250
  };
14218
- var _iterator8 = _createForOfIteratorHelper$D(adds),
14251
+ var _iterator8 = _createForOfIteratorHelper$C(adds),
14219
14252
  _step8;
14220
14253
  try {
14221
14254
  for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
@@ -14228,7 +14261,7 @@ function applyWiringChanges(workspace, _ref) {
14228
14261
  } finally {
14229
14262
  _iterator8.f();
14230
14263
  }
14231
- var _iterator9 = _createForOfIteratorHelper$D(removes),
14264
+ var _iterator9 = _createForOfIteratorHelper$C(removes),
14232
14265
  _step9;
14233
14266
  try {
14234
14267
  for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
@@ -14302,7 +14335,7 @@ function applyToItem(listeners, _ref2) {
14302
14335
  }
14303
14336
 
14304
14337
  // Removes first so a re-add (rare) lands.
14305
- var _iterator0 = _createForOfIteratorHelper$D(removes),
14338
+ var _iterator0 = _createForOfIteratorHelper$C(removes),
14306
14339
  _step0;
14307
14340
  try {
14308
14341
  var _loop = function _loop() {
@@ -14331,7 +14364,7 @@ function applyToItem(listeners, _ref2) {
14331
14364
  } finally {
14332
14365
  _iterator0.f();
14333
14366
  }
14334
- var _iterator1 = _createForOfIteratorHelper$D(adds),
14367
+ var _iterator1 = _createForOfIteratorHelper$C(adds),
14335
14368
  _step1;
14336
14369
  try {
14337
14370
  for (_iterator1.s(); !(_step1 = _iterator1.n()).done;) {
@@ -17375,9 +17408,9 @@ function mcpJsonToFormState(jsonString, nextRowId) {
17375
17408
  return result;
17376
17409
  }
17377
17410
 
17378
- 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; } } }; }
17379
- 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; } }
17380
- 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; }
17411
+ 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; } } }; }
17412
+ 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; } }
17413
+ 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; }
17381
17414
  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; }
17382
17415
  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; }
17383
17416
  var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
@@ -17662,11 +17695,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
17662
17695
 
17663
17696
  // Flatten all widgets from all packages for the widget list
17664
17697
  flatWidgets = [];
17665
- _iterator = _createForOfIteratorHelper$C(result.packages || []);
17698
+ _iterator = _createForOfIteratorHelper$B(result.packages || []);
17666
17699
  try {
17667
17700
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
17668
17701
  pkg = _step.value;
17669
- _iterator2 = _createForOfIteratorHelper$C(pkg.widgets || []);
17702
+ _iterator2 = _createForOfIteratorHelper$B(pkg.widgets || []);
17670
17703
  try {
17671
17704
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
17672
17705
  widget = _step2.value;
@@ -19593,9 +19626,9 @@ var useWidgetSchedulerStatus = function useWidgetSchedulerStatus(widgetId) {
19593
19626
  };
19594
19627
  };
19595
19628
 
19596
- 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; } } }; }
19597
- 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; } }
19598
- 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; }
19629
+ 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; } } }; }
19630
+ 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; } }
19631
+ 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; }
19599
19632
  function formatCountdown(ms) {
19600
19633
  if (ms == null || ms < 0) return "--";
19601
19634
  if (ms < 1000) return "< 1s";
@@ -19712,7 +19745,7 @@ var WidgetCardStatusBar = function WidgetCardStatusBar(_ref) {
19712
19745
 
19713
19746
  // Find soonest countdown among enabled tasks
19714
19747
  var soonestMs = null;
19715
- var _iterator = _createForOfIteratorHelper$B(enabledTasks),
19748
+ var _iterator = _createForOfIteratorHelper$A(enabledTasks),
19716
19749
  _step;
19717
19750
  try {
19718
19751
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -25283,9 +25316,9 @@ var ExternalWidget = function ExternalWidget(_ref) {
25283
25316
  var GRID_CELL_WIDGET_TYPE = "grid-cell-widget";
25284
25317
  var SIDEBAR_WIDGET_TYPE = "sidebar-widget";
25285
25318
 
25286
- 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; } } }; }
25287
- 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; } }
25288
- 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; }
25319
+ function _createForOfIteratorHelper$z(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$z(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; } } }; }
25320
+ function _unsupportedIterableToArray$z(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$z(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$z(r, a) : void 0; } }
25321
+ function _arrayLikeToArray$z(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; }
25289
25322
  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; }
25290
25323
  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; }
25291
25324
 
@@ -25908,7 +25941,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
25908
25941
  return selectable["delete"](cn);
25909
25942
  });
25910
25943
  var resolved = new Set();
25911
- var _iterator = _createForOfIteratorHelper$A(selectable),
25944
+ var _iterator = _createForOfIteratorHelper$z(selectable),
25912
25945
  _step;
25913
25946
  try {
25914
25947
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -28317,9 +28350,9 @@ function migrateBareComponentName(componentMap, component) {
28317
28350
 
28318
28351
  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; }
28319
28352
  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; }
28320
- function _createForOfIteratorHelper$z(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$z(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; } } }; }
28321
- function _unsupportedIterableToArray$z(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$z(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$z(r, a) : void 0; } }
28322
- function _arrayLikeToArray$z(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; }
28353
+ function _createForOfIteratorHelper$y(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$y(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; } } }; }
28354
+ function _unsupportedIterableToArray$y(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$y(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$y(r, a) : void 0; } }
28355
+ function _arrayLikeToArray$y(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; }
28323
28356
  /**
28324
28357
  * The model for all layout components used primarily in the renderLayout method
28325
28358
  * @param {Object} layoutItem an object containing various attributes of the layout item
@@ -28331,7 +28364,7 @@ function _arrayLikeToArray$z(r, a) { (null == a || a > r.length) && (a = r.lengt
28331
28364
  function sortObjectByKeys(obj) {
28332
28365
  var sortedKeys = Object.keys(obj).sort();
28333
28366
  var sortedObj = {};
28334
- var _iterator = _createForOfIteratorHelper$z(sortedKeys),
28367
+ var _iterator = _createForOfIteratorHelper$y(sortedKeys),
28335
28368
  _step;
28336
28369
  try {
28337
28370
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -28649,9 +28682,9 @@ var SettingsModel = function SettingsModel() {
28649
28682
  return obj;
28650
28683
  };
28651
28684
 
28652
- function _createForOfIteratorHelper$y(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$y(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; } } }; }
28653
- function _unsupportedIterableToArray$y(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$y(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$y(r, a) : void 0; } }
28654
- function _arrayLikeToArray$y(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; }
28685
+ function _createForOfIteratorHelper$x(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$x(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; } } }; }
28686
+ function _unsupportedIterableToArray$x(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$x(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$x(r, a) : void 0; } }
28687
+ function _arrayLikeToArray$x(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; }
28655
28688
 
28656
28689
  /**
28657
28690
  * Workspace-level pre-pass that migrates legacy bare component
@@ -28726,7 +28759,7 @@ function migrateScopedIdsInWorkspace(workspace, componentMap) {
28726
28759
  };
28727
28760
  var _walk = function walk(items) {
28728
28761
  if (!Array.isArray(items)) return;
28729
- var _iterator = _createForOfIteratorHelper$y(items),
28762
+ var _iterator = _createForOfIteratorHelper$x(items),
28730
28763
  _step;
28731
28764
  try {
28732
28765
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -28748,7 +28781,7 @@ function migrateScopedIdsInWorkspace(workspace, componentMap) {
28748
28781
  };
28749
28782
  _walk(workspace.layout);
28750
28783
  if (Array.isArray(workspace.pages)) {
28751
- var _iterator2 = _createForOfIteratorHelper$y(workspace.pages),
28784
+ var _iterator2 = _createForOfIteratorHelper$x(workspace.pages),
28752
28785
  _step2;
28753
28786
  try {
28754
28787
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -28765,9 +28798,9 @@ function migrateScopedIdsInWorkspace(workspace, componentMap) {
28765
28798
  return counts;
28766
28799
  }
28767
28800
 
28768
- function _createForOfIteratorHelper$x(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$x(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; } } }; }
28769
- function _unsupportedIterableToArray$x(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$x(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$x(r, a) : void 0; } }
28770
- function _arrayLikeToArray$x(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; }
28801
+ function _createForOfIteratorHelper$w(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$w(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; } } }; }
28802
+ function _unsupportedIterableToArray$w(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$w(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$w(r, a) : void 0; } }
28803
+ function _arrayLikeToArray$w(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; }
28771
28804
  /**
28772
28805
  * cleanForeignWidgetsFromWorkspace.js
28773
28806
  *
@@ -28808,7 +28841,7 @@ function cleanForeignWidgetsFromWorkspace(workspace) {
28808
28841
  var _cleanList = function cleanList(items) {
28809
28842
  if (!Array.isArray(items)) return items;
28810
28843
  var kept = [];
28811
- var _iterator = _createForOfIteratorHelper$x(items),
28844
+ var _iterator = _createForOfIteratorHelper$w(items),
28812
28845
  _step;
28813
28846
  try {
28814
28847
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -28845,7 +28878,7 @@ function cleanForeignWidgetsFromWorkspace(workspace) {
28845
28878
  workspace.sidebarLayout = _cleanList(workspace.sidebarLayout);
28846
28879
  }
28847
28880
  if (Array.isArray(workspace.pages)) {
28848
- var _iterator2 = _createForOfIteratorHelper$x(workspace.pages),
28881
+ var _iterator2 = _createForOfIteratorHelper$w(workspace.pages),
28849
28882
  _step2;
28850
28883
  try {
28851
28884
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -28863,9 +28896,9 @@ function cleanForeignWidgetsFromWorkspace(workspace) {
28863
28896
  return summary;
28864
28897
  }
28865
28898
 
28866
- function _createForOfIteratorHelper$w(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$w(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; } } }; }
28867
- function _unsupportedIterableToArray$w(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$w(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$w(r, a) : void 0; } }
28868
- function _arrayLikeToArray$w(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; }
28899
+ function _createForOfIteratorHelper$v(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$v(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; } } }; }
28900
+ function _unsupportedIterableToArray$v(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$v(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$v(r, a) : void 0; } }
28901
+ function _arrayLikeToArray$v(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; }
28869
28902
  /**
28870
28903
  * migrateLayoutItemTypes.js
28871
28904
  *
@@ -28927,7 +28960,7 @@ function migrateLayoutItemTypes(workspace) {
28927
28960
  };
28928
28961
  var _walk = function walk(items) {
28929
28962
  if (!Array.isArray(items)) return;
28930
- var _iterator = _createForOfIteratorHelper$w(items),
28963
+ var _iterator = _createForOfIteratorHelper$v(items),
28931
28964
  _step;
28932
28965
  try {
28933
28966
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -28945,7 +28978,7 @@ function migrateLayoutItemTypes(workspace) {
28945
28978
  };
28946
28979
  _walk(workspace.layout);
28947
28980
  if (Array.isArray(workspace.pages)) {
28948
- var _iterator2 = _createForOfIteratorHelper$w(workspace.pages),
28981
+ var _iterator2 = _createForOfIteratorHelper$v(workspace.pages),
28949
28982
  _step2;
28950
28983
  try {
28951
28984
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -29502,9 +29535,9 @@ var ThemeModel = function ThemeModel() {
29502
29535
  }
29503
29536
  };
29504
29537
 
29505
- function _createForOfIteratorHelper$v(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$v(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; } } }; }
29506
- function _unsupportedIterableToArray$v(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$v(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$v(r, a) : void 0; } }
29507
- function _arrayLikeToArray$v(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; }
29538
+ function _createForOfIteratorHelper$u(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$u(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; } } }; }
29539
+ function _unsupportedIterableToArray$u(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$u(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$u(r, a) : void 0; } }
29540
+ function _arrayLikeToArray$u(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; }
29508
29541
  /*
29509
29542
  "component": AnalyticsReportsWidget,
29510
29543
  "type":"widget",
@@ -29622,7 +29655,7 @@ var ComponentConfigModel = function ComponentConfigModel() {
29622
29655
  if ("providers" in obj && Array.isArray(obj.providers)) {
29623
29656
  var seen = new Set();
29624
29657
  var cleaned = [];
29625
- var _iterator = _createForOfIteratorHelper$v(obj.providers),
29658
+ var _iterator = _createForOfIteratorHelper$u(obj.providers),
29626
29659
  _step;
29627
29660
  try {
29628
29661
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -29668,9 +29701,9 @@ var MenuItemModel = function MenuItemModel() {
29668
29701
  return m;
29669
29702
  };
29670
29703
 
29671
- function _createForOfIteratorHelper$u(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$u(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; } } }; }
29672
- function _unsupportedIterableToArray$u(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$u(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$u(r, a) : void 0; } }
29673
- function _arrayLikeToArray$u(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; }
29704
+ function _createForOfIteratorHelper$t(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$t(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; } } }; }
29705
+ function _unsupportedIterableToArray$t(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$t(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$t(r, a) : void 0; } }
29706
+ function _arrayLikeToArray$t(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; }
29674
29707
  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; }
29675
29708
  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; }
29676
29709
  /**
@@ -29730,7 +29763,7 @@ function mergeGridCellsOp(grid, cellNumbers, keepComponentId) {
29730
29763
  maxRow = -Infinity;
29731
29764
  var minCol = Infinity,
29732
29765
  maxCol = -Infinity;
29733
- var _iterator = _createForOfIteratorHelper$u(cellNumbers),
29766
+ var _iterator = _createForOfIteratorHelper$t(cellNumbers),
29734
29767
  _step;
29735
29768
  try {
29736
29769
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -29754,7 +29787,7 @@ function mergeGridCellsOp(grid, cellNumbers, keepComponentId) {
29754
29787
  } finally {
29755
29788
  _iterator.f();
29756
29789
  }
29757
- var _iterator2 = _createForOfIteratorHelper$u(cellNumbers),
29790
+ var _iterator2 = _createForOfIteratorHelper$t(cellNumbers),
29758
29791
  _step2;
29759
29792
  try {
29760
29793
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -29796,7 +29829,7 @@ function mergeGridCellsOp(grid, cellNumbers, keepComponentId) {
29796
29829
  _iterator2.f();
29797
29830
  }
29798
29831
  var componentsInRange = [];
29799
- var _iterator3 = _createForOfIteratorHelper$u(cellNumbers),
29832
+ var _iterator3 = _createForOfIteratorHelper$t(cellNumbers),
29800
29833
  _step3;
29801
29834
  try {
29802
29835
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -29834,7 +29867,7 @@ function mergeGridCellsOp(grid, cellNumbers, keepComponentId) {
29834
29867
  // other selected cells get hidden and have their component refs
29835
29868
  // cleared (so a stale ref in a hidden cell never re-renders).
29836
29869
  var keepCell = cellNumbers[0];
29837
- var _iterator4 = _createForOfIteratorHelper$u(cellNumbers),
29870
+ var _iterator4 = _createForOfIteratorHelper$t(cellNumbers),
29838
29871
  _step4;
29839
29872
  try {
29840
29873
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -30364,9 +30397,9 @@ function deleteGridColumnOp(grid, colNumber) {
30364
30397
  };
30365
30398
  }
30366
30399
 
30367
- function _createForOfIteratorHelper$t(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$t(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; } } }; }
30368
- function _unsupportedIterableToArray$t(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$t(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$t(r, a) : void 0; } }
30369
- function _arrayLikeToArray$t(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; }
30400
+ function _createForOfIteratorHelper$s(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$s(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; } } }; }
30401
+ function _unsupportedIterableToArray$s(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$s(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$s(r, a) : void 0; } }
30402
+ function _arrayLikeToArray$s(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; }
30370
30403
  /**
30371
30404
  * A Model for a Workspace (Dashboard)
30372
30405
  * The Dashboard in this instance is the entire Layout inclusive of the workspaces and widgets
@@ -30438,7 +30471,7 @@ var DashboardModel = /*#__PURE__*/function () {
30438
30471
 
30439
30472
  // Also normalize grids within pages
30440
30473
  if (this.pages.length > 0) {
30441
- var _iterator = _createForOfIteratorHelper$t(this.pages),
30474
+ var _iterator = _createForOfIteratorHelper$s(this.pages),
30442
30475
  _step;
30443
30476
  try {
30444
30477
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -31838,7 +31871,7 @@ var DashboardModel = /*#__PURE__*/function () {
31838
31871
  // destructive-delete behavior.
31839
31872
  var result = deleteGridRowOp(gridContainer.grid, rowNumber);
31840
31873
  gridContainer.grid = result.grid;
31841
- var _iterator2 = _createForOfIteratorHelper$t(result.orphanedComponents),
31874
+ var _iterator2 = _createForOfIteratorHelper$s(result.orphanedComponents),
31842
31875
  _step2;
31843
31876
  try {
31844
31877
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -31937,7 +31970,7 @@ var DashboardModel = /*#__PURE__*/function () {
31937
31970
  // Slice 11: pure helper.
31938
31971
  var result = deleteGridColumnOp(gridContainer.grid, colNumber);
31939
31972
  gridContainer.grid = result.grid;
31940
- var _iterator3 = _createForOfIteratorHelper$t(result.orphanedComponents),
31973
+ var _iterator3 = _createForOfIteratorHelper$s(result.orphanedComponents),
31941
31974
  _step3;
31942
31975
  try {
31943
31976
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -32032,7 +32065,7 @@ var DashboardModel = /*#__PURE__*/function () {
32032
32065
  try {
32033
32066
  // Collect all item IDs actively referenced by grid cells
32034
32067
  var activeItemIds = new Set();
32035
- var _iterator4 = _createForOfIteratorHelper$t(this.layout),
32068
+ var _iterator4 = _createForOfIteratorHelper$s(this.layout),
32036
32069
  _step4;
32037
32070
  try {
32038
32071
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -32072,7 +32105,7 @@ var DashboardModel = /*#__PURE__*/function () {
32072
32105
  });
32073
32106
 
32074
32107
  // Clean listener references on remaining items for each removed orphan
32075
- var _iterator5 = _createForOfIteratorHelper$t(orphanedIds),
32108
+ var _iterator5 = _createForOfIteratorHelper$s(orphanedIds),
32076
32109
  _step5;
32077
32110
  try {
32078
32111
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -32893,9 +32926,9 @@ var useDashboard = function useDashboard() {
32893
32926
  });
32894
32927
  };
32895
32928
 
32896
- function _createForOfIteratorHelper$s(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$s(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; } } }; }
32897
- function _unsupportedIterableToArray$s(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$s(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$s(r, a) : void 0; } }
32898
- function _arrayLikeToArray$s(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; }
32929
+ function _createForOfIteratorHelper$r(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$r(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; } } }; }
32930
+ function _unsupportedIterableToArray$r(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$r(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$r(r, a) : void 0; } }
32931
+ function _arrayLikeToArray$r(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; }
32899
32932
 
32900
32933
  /**
32901
32934
  * useWidgetProviders Hook
@@ -32958,7 +32991,7 @@ var useWidgetProviders = function useWidgetProviders() {
32958
32991
  // 2. Workspace-level: stored as workspace.selectedProviders[widgetId][providerType]
32959
32992
  // 3. App-default: any provider in AppContext.providers flagged isDefaultForType
32960
32993
  var providers = {};
32961
- var _iterator = _createForOfIteratorHelper$s(providerDeclarations),
32994
+ var _iterator = _createForOfIteratorHelper$r(providerDeclarations),
32962
32995
  _step;
32963
32996
  try {
32964
32997
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -33017,9 +33050,9 @@ var useWidgetProviders = function useWidgetProviders() {
33017
33050
  };
33018
33051
  };
33019
33052
 
33020
- function _createForOfIteratorHelper$r(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$r(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; } } }; }
33021
- function _unsupportedIterableToArray$r(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$r(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$r(r, a) : void 0; } }
33022
- function _arrayLikeToArray$r(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; }
33053
+ function _createForOfIteratorHelper$q(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$q(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; } } }; }
33054
+ function _unsupportedIterableToArray$q(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$q(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$q(r, a) : void 0; } }
33055
+ function _arrayLikeToArray$q(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; }
33023
33056
 
33024
33057
  /**
33025
33058
  * Module-level shared state for MCP server connections.
@@ -33074,7 +33107,7 @@ function unionPathScope(grants, serverName) {
33074
33107
  allowedPaths: []
33075
33108
  };
33076
33109
  }
33077
- var _iterator = _createForOfIteratorHelper$r(grants),
33110
+ var _iterator = _createForOfIteratorHelper$q(grants),
33078
33111
  _step;
33079
33112
  try {
33080
33113
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -33087,7 +33120,7 @@ function unionPathScope(grants, serverName) {
33087
33120
  var serverPerms = servers[serverName];
33088
33121
  if (!serverPerms || _typeof(serverPerms) !== "object") continue;
33089
33122
  if (Array.isArray(serverPerms.readPaths)) {
33090
- var _iterator2 = _createForOfIteratorHelper$r(serverPerms.readPaths),
33123
+ var _iterator2 = _createForOfIteratorHelper$q(serverPerms.readPaths),
33091
33124
  _step2;
33092
33125
  try {
33093
33126
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -33101,7 +33134,7 @@ function unionPathScope(grants, serverName) {
33101
33134
  }
33102
33135
  }
33103
33136
  if (Array.isArray(serverPerms.writePaths)) {
33104
- var _iterator3 = _createForOfIteratorHelper$r(serverPerms.writePaths),
33137
+ var _iterator3 = _createForOfIteratorHelper$q(serverPerms.writePaths),
33105
33138
  _step3;
33106
33139
  try {
33107
33140
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -33496,7 +33529,7 @@ var useMcpProvider = function useMcpProvider(providerType) {
33496
33529
  consumerCount: 0
33497
33530
  });
33498
33531
  reject(err);
33499
- }, workspaceId, pathScope);
33532
+ }, workspaceId, pathScope, app === null || app === void 0 ? void 0 : app.appId);
33500
33533
  });
33501
33534
  pendingConnects$1.set(stateKey, connectPromise);
33502
33535
  _context.prev = 24;
@@ -33904,9 +33937,9 @@ var useNotifications = function useNotifications() {
33904
33937
  };
33905
33938
  };
33906
33939
 
33907
- function _createForOfIteratorHelper$q(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$q(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; } } }; }
33908
- function _unsupportedIterableToArray$q(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$q(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$q(r, a) : void 0; } }
33909
- function _arrayLikeToArray$q(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; }
33940
+ function _createForOfIteratorHelper$p(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$p(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; } } }; }
33941
+ function _unsupportedIterableToArray$p(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$p(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$p(r, a) : void 0; } }
33942
+ function _arrayLikeToArray$p(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; }
33910
33943
 
33911
33944
  /**
33912
33945
  * useScheduler Hook
@@ -33979,7 +34012,7 @@ var useScheduler = function useScheduler() {
33979
34012
  if (pending && pending.length > 0) {
33980
34013
  setPendingResults(pending);
33981
34014
  // Call handlers for each pending result
33982
- var _iterator = _createForOfIteratorHelper$q(pending),
34015
+ var _iterator = _createForOfIteratorHelper$p(pending),
33983
34016
  _step;
33984
34017
  try {
33985
34018
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -35218,9 +35251,9 @@ var CustomHexColorPane = function CustomHexColorPane(_ref) {
35218
35251
  });
35219
35252
  };
35220
35253
 
35221
- function _createForOfIteratorHelper$p(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$p(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; } } }; }
35222
- function _unsupportedIterableToArray$p(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$p(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$p(r, a) : void 0; } }
35223
- function _arrayLikeToArray$p(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; }
35254
+ function _createForOfIteratorHelper$o(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$o(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; } } }; }
35255
+ function _unsupportedIterableToArray$o(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$o(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$o(r, a) : void 0; } }
35256
+ function _arrayLikeToArray$o(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; }
35224
35257
  function rgbDistSq(a, b) {
35225
35258
  var dr = a.r - b.r;
35226
35259
  var dg = a.g - b.g;
@@ -35238,13 +35271,13 @@ function nearestSwatch(hex, families) {
35238
35271
  var target = DashReact.hexToRgb(hex);
35239
35272
  if (!target) return null;
35240
35273
  var best = null;
35241
- var _iterator = _createForOfIteratorHelper$p(families),
35274
+ var _iterator = _createForOfIteratorHelper$o(families),
35242
35275
  _step;
35243
35276
  try {
35244
35277
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
35245
35278
  var family = _step.value;
35246
35279
  var grid = DashReact.getCuratedColorGrid(family) || [];
35247
- var _iterator2 = _createForOfIteratorHelper$p(grid),
35280
+ var _iterator2 = _createForOfIteratorHelper$o(grid),
35248
35281
  _step2;
35249
35282
  try {
35250
35283
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -39867,9 +39900,9 @@ var ThemeManagerModal = function ThemeManagerModal(_ref) {
39867
39900
 
39868
39901
  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; }
39869
39902
  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; }
39870
- function _createForOfIteratorHelper$o(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$o(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; } } }; }
39871
- function _unsupportedIterableToArray$o(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$o(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$o(r, a) : void 0; } }
39872
- function _arrayLikeToArray$o(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; }
39903
+ function _createForOfIteratorHelper$n(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$n(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; } } }; }
39904
+ function _unsupportedIterableToArray$n(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$n(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$n(r, a) : void 0; } }
39905
+ function _arrayLikeToArray$n(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; }
39873
39906
  var DASHBOARD_TAGS = ["productivity", "monitoring", "analytics", "communication", "developer", "sales", "marketing", "finance", "project-management", "social", "news", "utilities"];
39874
39907
  var BUMP_OPTIONS$1 = [{
39875
39908
  value: "patch",
@@ -39943,7 +39976,7 @@ function collectComponentConfigs() {
39943
39976
  // fixed "reference" entry.
39944
39977
  function seedSelections(plan, dashboardVisibility) {
39945
39978
  var selections = {};
39946
- var _iterator = _createForOfIteratorHelper$o(plan.widgets || []),
39979
+ var _iterator = _createForOfIteratorHelper$n(plan.widgets || []),
39947
39980
  _step;
39948
39981
  try {
39949
39982
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -40282,7 +40315,7 @@ var PublishDashboardModal = function PublishDashboardModal(_ref) {
40282
40315
  React.useEffect(function () {
40283
40316
  if (!isOpen || step !== 5 || !plan || defaultsLoading) return;
40284
40317
  var packagesToScan = [];
40285
- var _iterator2 = _createForOfIteratorHelper$o(plan.widgets || []),
40318
+ var _iterator2 = _createForOfIteratorHelper$n(plan.widgets || []),
40286
40319
  _step2;
40287
40320
  try {
40288
40321
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -40321,7 +40354,7 @@ var PublishDashboardModal = function PublishDashboardModal(_ref) {
40321
40354
  })).then(function (results) {
40322
40355
  setDefaultsByPackage(function (prev) {
40323
40356
  var next = _objectSpread$z({}, prev);
40324
- var _iterator3 = _createForOfIteratorHelper$o(results),
40357
+ var _iterator3 = _createForOfIteratorHelper$n(results),
40325
40358
  _step3;
40326
40359
  try {
40327
40360
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -40403,7 +40436,7 @@ var PublishDashboardModal = function PublishDashboardModal(_ref) {
40403
40436
  break;
40404
40437
  }
40405
40438
  seenPackages = new Set();
40406
- _iterator4 = _createForOfIteratorHelper$o(plan.widgets || []);
40439
+ _iterator4 = _createForOfIteratorHelper$n(plan.widgets || []);
40407
40440
  _context2.prev = 2;
40408
40441
  _iterator4.s();
40409
40442
  case 3:
@@ -41315,7 +41348,7 @@ function DependencyTable(_ref4) {
41315
41348
  // row. Each row shows the list of component widgets that live inside it
41316
41349
  // so the user knows what's getting published.
41317
41350
  var byKey = new Map();
41318
- var _iterator5 = _createForOfIteratorHelper$o(plan.widgets || []),
41351
+ var _iterator5 = _createForOfIteratorHelper$n(plan.widgets || []),
41319
41352
  _step6;
41320
41353
  try {
41321
41354
  for (_iterator5.s(); !(_step6 = _iterator5.n()).done;) {
@@ -41486,7 +41519,7 @@ function DefaultsReviewList(_ref6) {
41486
41519
  // stays aligned with Dependencies — no surprises about WHICH
41487
41520
  // package's defaults you're editing.
41488
41521
  var rows = [];
41489
- var _iterator6 = _createForOfIteratorHelper$o((plan === null || plan === void 0 ? void 0 : plan.widgets) || []),
41522
+ var _iterator6 = _createForOfIteratorHelper$n((plan === null || plan === void 0 ? void 0 : plan.widgets) || []),
41490
41523
  _step7;
41491
41524
  try {
41492
41525
  for (_iterator6.s(); !(_step7 = _iterator6.n()).done;) {
@@ -43351,7 +43384,7 @@ var ProviderDetail = function ProviderDetail(_ref) {
43351
43384
  });
43352
43385
  };
43353
43386
 
43354
- var _excluded$1 = ["transport", "command", "args", "envMapping", "url", "headerTemplate", "headers"];
43387
+ var _excluded$1 = ["transport", "command", "args", "envMapping", "url", "headerTemplate", "headers", "auth", "oauth"];
43355
43388
  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; }
43356
43389
  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; }
43357
43390
  var DirectoryListField = function DirectoryListField(_ref) {
@@ -43479,9 +43512,20 @@ function buildMcpConfig(transport, _ref3) {
43479
43512
  args = _ref3.args,
43480
43513
  envMappingRows = _ref3.envMappingRows,
43481
43514
  url = _ref3.url,
43482
- headerRows = _ref3.headerRows;
43515
+ headerRows = _ref3.headerRows,
43516
+ _ref3$authType = _ref3.authType,
43517
+ authType = _ref3$authType === void 0 ? "apiKey" : _ref3$authType,
43518
+ _ref3$oauthScopes = _ref3.oauthScopes,
43519
+ oauthScopes = _ref3$oauthScopes === void 0 ? "" : _ref3$oauthScopes,
43520
+ _ref3$oauthClientId = _ref3.oauthClientId,
43521
+ oauthClientId = _ref3$oauthClientId === void 0 ? "" : _ref3$oauthClientId,
43522
+ _ref3$oauthClientSecr = _ref3.oauthClientSecret,
43523
+ oauthClientSecret = _ref3$oauthClientSecr === void 0 ? "" : _ref3$oauthClientSecr;
43483
43524
  var baseConfig = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
43484
43525
  // Everything on baseConfig that the form doesn't own gets preserved.
43526
+ // `auth`/`oauth` are owned by the form's auth-type selector, so they're
43527
+ // excluded here and re-emitted below based on the current selection
43528
+ // (this is how toggling away from OAuth clears them).
43485
43529
  baseConfig.transport;
43486
43530
  baseConfig.command;
43487
43531
  baseConfig.args;
@@ -43489,6 +43533,8 @@ function buildMcpConfig(transport, _ref3) {
43489
43533
  baseConfig.url;
43490
43534
  baseConfig.headerTemplate;
43491
43535
  baseConfig.headers;
43536
+ baseConfig.auth;
43537
+ baseConfig.oauth;
43492
43538
  var passThrough = _objectWithoutProperties(baseConfig, _excluded$1);
43493
43539
  if (transport === "stdio") {
43494
43540
  var envMapping = {};
@@ -43508,6 +43554,23 @@ function buildMcpConfig(transport, _ref3) {
43508
43554
  }
43509
43555
 
43510
43556
  // streamable_http
43557
+ var config = _objectSpread$v(_objectSpread$v({}, passThrough), {}, {
43558
+ transport: "streamable_http",
43559
+ url: url.trim()
43560
+ });
43561
+ if (authType === "oauth") {
43562
+ // Interactive OAuth 2.0 (SDK-native). Scopes optional; clientId/secret
43563
+ // only for servers without Dynamic Client Registration.
43564
+ config.auth = "oauth";
43565
+ var oauth = {};
43566
+ if (oauthScopes.trim()) oauth.scopes = oauthScopes.trim();
43567
+ if (oauthClientId.trim()) oauth.clientId = oauthClientId.trim();
43568
+ if (oauthClientSecret.trim()) oauth.clientSecret = oauthClientSecret.trim();
43569
+ config.oauth = oauth;
43570
+ return config;
43571
+ }
43572
+
43573
+ // apiKey (header template) — also the path for "none" (no headers added)
43511
43574
  var headerTemplate = {};
43512
43575
  headerRows.forEach(function (row) {
43513
43576
  var name = row.headerName.trim();
@@ -43516,11 +43579,7 @@ function buildMcpConfig(transport, _ref3) {
43516
43579
  headerTemplate[name] = value;
43517
43580
  }
43518
43581
  });
43519
- var config = _objectSpread$v(_objectSpread$v({}, passThrough), {}, {
43520
- transport: "streamable_http",
43521
- url: url.trim()
43522
- });
43523
- if (Object.keys(headerTemplate).length > 0) {
43582
+ if (authType === "apiKey" && Object.keys(headerTemplate).length > 0) {
43524
43583
  config.headerTemplate = headerTemplate;
43525
43584
  }
43526
43585
  return config;
@@ -43549,7 +43608,7 @@ function buildMcpConfig(transport, _ref3) {
43549
43608
  * preserved verbatim on save so editing never silently drops them.
43550
43609
  */
43551
43610
  var CustomMcpServerForm = function CustomMcpServerForm(_ref4) {
43552
- var _testResult$tools;
43611
+ var _initialMcpConfig$oau, _initialMcpConfig$oau2, _initialMcpConfig$oau3, _initialMcpConfig$oau4, _initialMcpConfig$oau5, _testResult$tools;
43553
43612
  var onSave = _ref4.onSave,
43554
43613
  onBack = _ref4.onBack,
43555
43614
  _ref4$isEditMode = _ref4.isEditMode,
@@ -43635,41 +43694,67 @@ var CustomMcpServerForm = function CustomMcpServerForm(_ref4) {
43635
43694
  headerRows = _useState22[0],
43636
43695
  setHeaderRows = _useState22[1];
43637
43696
 
43638
- // Tool selection state
43639
- var _useState23 = React.useState(initialAllowedTools),
43697
+ // HTTP auth type: "none" | "apiKey" | "oauth"
43698
+ var _useState23 = React.useState(function () {
43699
+ var cfg = initialMcpConfig || {};
43700
+ if (cfg.auth === "oauth" || cfg.oauth) return "oauth";
43701
+ return "apiKey";
43702
+ }),
43640
43703
  _useState24 = _slicedToArray(_useState23, 2),
43641
- selectedTools = _useState24[0],
43642
- setSelectedTools = _useState24[1];
43643
-
43644
- // Wizard step state
43645
- var _useState25 = React.useState(0),
43704
+ authType = _useState24[0],
43705
+ setAuthType = _useState24[1];
43706
+ var _useState25 = React.useState((initialMcpConfig === null || initialMcpConfig === void 0 || (_initialMcpConfig$oau = initialMcpConfig.oauth) === null || _initialMcpConfig$oau === void 0 ? void 0 : _initialMcpConfig$oau.scopes) || ""),
43646
43707
  _useState26 = _slicedToArray(_useState25, 2),
43647
- wizardStep = _useState26[0],
43648
- setWizardStep = _useState26[1];
43649
-
43650
- // Auth state
43651
- var _useState27 = React.useState(false),
43708
+ oauthScopes = _useState26[0],
43709
+ setOauthScopes = _useState26[1];
43710
+ var _useState27 = React.useState((initialMcpConfig === null || initialMcpConfig === void 0 || (_initialMcpConfig$oau2 = initialMcpConfig.oauth) === null || _initialMcpConfig$oau2 === void 0 ? void 0 : _initialMcpConfig$oau2.clientId) || ""),
43652
43711
  _useState28 = _slicedToArray(_useState27, 2),
43653
- isAuthorizing = _useState28[0],
43654
- setIsAuthorizing = _useState28[1];
43655
- var _useState29 = React.useState(null),
43712
+ oauthClientId = _useState28[0],
43713
+ setOauthClientId = _useState28[1];
43714
+ var _useState29 = React.useState((initialMcpConfig === null || initialMcpConfig === void 0 || (_initialMcpConfig$oau3 = initialMcpConfig.oauth) === null || _initialMcpConfig$oau3 === void 0 ? void 0 : _initialMcpConfig$oau3.clientSecret) || ""),
43656
43715
  _useState30 = _slicedToArray(_useState29, 2),
43657
- authResult = _useState30[0],
43658
- setAuthResult = _useState30[1];
43659
-
43660
- // JSON editor state
43661
- var _useState31 = React.useState("form"),
43716
+ oauthClientSecret = _useState30[0],
43717
+ setOauthClientSecret = _useState30[1];
43718
+ var _useState31 = React.useState(!!(initialMcpConfig !== null && initialMcpConfig !== void 0 && (_initialMcpConfig$oau4 = initialMcpConfig.oauth) !== null && _initialMcpConfig$oau4 !== void 0 && _initialMcpConfig$oau4.clientId || initialMcpConfig !== null && initialMcpConfig !== void 0 && (_initialMcpConfig$oau5 = initialMcpConfig.oauth) !== null && _initialMcpConfig$oau5 !== void 0 && _initialMcpConfig$oau5.clientSecret)),
43662
43719
  _useState32 = _slicedToArray(_useState31, 2),
43663
- viewMode = _useState32[0],
43664
- setViewMode = _useState32[1]; // "form" | "json"
43665
- var _useState33 = React.useState(""),
43720
+ showOauthAdvanced = _useState32[0],
43721
+ setShowOauthAdvanced = _useState32[1];
43722
+
43723
+ // Tool selection state
43724
+ var _useState33 = React.useState(initialAllowedTools),
43666
43725
  _useState34 = _slicedToArray(_useState33, 2),
43667
- jsonText = _useState34[0],
43668
- setJsonText = _useState34[1];
43669
- var _useState35 = React.useState(null),
43726
+ selectedTools = _useState34[0],
43727
+ setSelectedTools = _useState34[1];
43728
+
43729
+ // Wizard step state
43730
+ var _useState35 = React.useState(0),
43670
43731
  _useState36 = _slicedToArray(_useState35, 2),
43671
- jsonError = _useState36[0],
43672
- setJsonError = _useState36[1];
43732
+ wizardStep = _useState36[0],
43733
+ setWizardStep = _useState36[1];
43734
+
43735
+ // Auth state
43736
+ var _useState37 = React.useState(false),
43737
+ _useState38 = _slicedToArray(_useState37, 2),
43738
+ isAuthorizing = _useState38[0],
43739
+ setIsAuthorizing = _useState38[1];
43740
+ var _useState39 = React.useState(null),
43741
+ _useState40 = _slicedToArray(_useState39, 2),
43742
+ authResult = _useState40[0],
43743
+ setAuthResult = _useState40[1];
43744
+
43745
+ // JSON editor state
43746
+ var _useState41 = React.useState("form"),
43747
+ _useState42 = _slicedToArray(_useState41, 2),
43748
+ viewMode = _useState42[0],
43749
+ setViewMode = _useState42[1]; // "form" | "json"
43750
+ var _useState43 = React.useState(""),
43751
+ _useState44 = _slicedToArray(_useState43, 2),
43752
+ jsonText = _useState44[0],
43753
+ setJsonText = _useState44[1];
43754
+ var _useState45 = React.useState(null),
43755
+ _useState46 = _slicedToArray(_useState45, 2),
43756
+ jsonError = _useState46[0],
43757
+ setJsonError = _useState46[1];
43673
43758
 
43674
43759
  // Clear credential data when transport changes (derived fields change entirely)
43675
43760
  // Only in create mode — in edit mode the initial transport is set correctly
@@ -43681,8 +43766,11 @@ var CustomMcpServerForm = function CustomMcpServerForm(_ref4) {
43681
43766
  }
43682
43767
  }, [transport, isEditMode]);
43683
43768
 
43684
- // Dynamic wizard steps based on whether auth is needed
43685
- var hasAuth = !!initialAuthCommand;
43769
+ // Dynamic wizard steps based on whether auth is needed. Either a
43770
+ // catalog-provided subprocess authCommand (legacy) or an OAuth 2.0
43771
+ // custom server adds an "Authorize" step before Test & Tools.
43772
+ var isOAuth = transport === "streamable_http" && authType === "oauth";
43773
+ var hasAuth = !!initialAuthCommand || isOAuth;
43686
43774
  var wizardSteps = hasAuth ? ["configure", "authorize", "testTools"] : ["configure", "testTools"];
43687
43775
  var totalSteps = wizardSteps.length;
43688
43776
  var currentStepType = wizardSteps[wizardStep];
@@ -43711,9 +43799,13 @@ var CustomMcpServerForm = function CustomMcpServerForm(_ref4) {
43711
43799
  args: args,
43712
43800
  envMappingRows: envMappingRows,
43713
43801
  url: url,
43714
- headerRows: headerRows
43802
+ headerRows: headerRows,
43803
+ authType: authType,
43804
+ oauthScopes: oauthScopes,
43805
+ oauthClientId: oauthClientId,
43806
+ oauthClientSecret: oauthClientSecret
43715
43807
  }, initialMcpConfig || {});
43716
- }, [transport, command, args, envMappingRows, url, headerRows, initialMcpConfig]);
43808
+ }, [transport, command, args, envMappingRows, url, headerRows, authType, oauthScopes, oauthClientId, oauthClientSecret, initialMcpConfig]);
43717
43809
 
43718
43810
  // Invalidate test result when config changes after a test
43719
43811
  var mcpConfigRef = React.useRef(mcpConfig);
@@ -43911,10 +44003,10 @@ var CustomMcpServerForm = function CustomMcpServerForm(_ref4) {
43911
44003
 
43912
44004
  // --- authorize (OAuth browser flow) ---
43913
44005
  var handleAuthorize = function handleAuthorize() {
43914
- if (!dashApi || !initialAuthCommand) return;
44006
+ if (!dashApi) return;
43915
44007
  setIsAuthorizing(true);
43916
44008
  setAuthResult(null);
43917
- dashApi.mcpRunAuth(mcpConfig, credentialData, initialAuthCommand, function (event, result) {
44009
+ var onComplete = function onComplete(event, result) {
43918
44010
  if (result.error) {
43919
44011
  setAuthResult({
43920
44012
  success: false,
@@ -43927,13 +44019,22 @@ var CustomMcpServerForm = function CustomMcpServerForm(_ref4) {
43927
44019
  });
43928
44020
  }
43929
44021
  setIsAuthorizing(false);
43930
- }, function (event, err) {
44022
+ };
44023
+ var onFail = function onFail(event, err) {
43931
44024
  setAuthResult({
43932
44025
  success: false,
43933
44026
  message: (err === null || err === void 0 ? void 0 : err.message) || "Authorization failed"
43934
44027
  });
43935
44028
  setIsAuthorizing(false);
43936
- });
44029
+ };
44030
+ if (isOAuth) {
44031
+ // SDK-native OAuth 2.0: opens the system browser, persists tokens.
44032
+ dashApi.mcpAuthorize(providerName.trim() || "__test__custom", mcpConfig, credentialData, onComplete, onFail, appContext === null || appContext === void 0 ? void 0 : appContext.appId);
44033
+ return;
44034
+ }
44035
+ if (!initialAuthCommand) return;
44036
+ // Legacy catalog subprocess auth (e.g. bundled Google servers).
44037
+ dashApi.mcpRunAuth(mcpConfig, credentialData, initialAuthCommand, onComplete, onFail);
43937
44038
  };
43938
44039
 
43939
44040
  // --- save ---
@@ -44242,7 +44343,82 @@ var CustomMcpServerForm = function CustomMcpServerForm(_ref4) {
44242
44343
  className: "text-sm text-red-400",
44243
44344
  children: formErrors.url
44244
44345
  })]
44245
- }), /*#__PURE__*/jsxRuntime.jsxs("div", {
44346
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
44347
+ className: "flex flex-col gap-2",
44348
+ children: /*#__PURE__*/jsxRuntime.jsx(DashReact.RadioGroup, {
44349
+ label: "Authentication",
44350
+ name: "mcp-http-auth-type",
44351
+ value: authType,
44352
+ onChange: function onChange(value) {
44353
+ setAuthType(value);
44354
+ setAuthResult(null);
44355
+ },
44356
+ options: [{
44357
+ value: "none",
44358
+ label: "None"
44359
+ }, {
44360
+ value: "apiKey",
44361
+ label: "API key (headers)"
44362
+ }, {
44363
+ value: "oauth",
44364
+ label: "OAuth 2.0 (browser sign-in)"
44365
+ }]
44366
+ })
44367
+ }), authType === "oauth" && /*#__PURE__*/jsxRuntime.jsxs("div", {
44368
+ className: "space-y-3",
44369
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
44370
+ className: "flex flex-col gap-2",
44371
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FormLabel, {
44372
+ label: "Scopes"
44373
+ }), /*#__PURE__*/jsxRuntime.jsx("p", {
44374
+ className: "text-sm opacity-50",
44375
+ children: "Space-separated OAuth scopes (optional \u2014 many servers grant defaults)."
44376
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.InputText, {
44377
+ value: oauthScopes,
44378
+ onChange: setOauthScopes,
44379
+ placeholder: "e.g., read write offline_access"
44380
+ })]
44381
+ }), /*#__PURE__*/jsxRuntime.jsxs("button", {
44382
+ type: "button",
44383
+ onClick: function onClick() {
44384
+ return setShowOauthAdvanced(function (v) {
44385
+ return !v;
44386
+ });
44387
+ },
44388
+ className: "text-sm text-blue-400 hover:text-blue-300 transition-colors flex items-center gap-1 self-start",
44389
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
44390
+ icon: showOauthAdvanced ? "chevron-down" : "chevron-right",
44391
+ className: "text-xs"
44392
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
44393
+ children: "Advanced: pre-registered client"
44394
+ })]
44395
+ }), showOauthAdvanced && /*#__PURE__*/jsxRuntime.jsxs("div", {
44396
+ className: "space-y-3 pl-1",
44397
+ children: [/*#__PURE__*/jsxRuntime.jsx("p", {
44398
+ className: "text-sm opacity-50",
44399
+ children: "Only needed for servers that don't support Dynamic Client Registration. Leave blank otherwise."
44400
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
44401
+ className: "flex flex-col gap-2",
44402
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FormLabel, {
44403
+ label: "Client ID"
44404
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.InputText, {
44405
+ value: oauthClientId,
44406
+ onChange: setOauthClientId,
44407
+ placeholder: "Client ID"
44408
+ })]
44409
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
44410
+ className: "flex flex-col gap-2",
44411
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FormLabel, {
44412
+ label: "Client secret"
44413
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.InputText, {
44414
+ type: "password",
44415
+ value: oauthClientSecret,
44416
+ onChange: setOauthClientSecret,
44417
+ placeholder: "Client secret (if required)"
44418
+ })]
44419
+ })]
44420
+ })]
44421
+ }), authType === "apiKey" && /*#__PURE__*/jsxRuntime.jsxs("div", {
44246
44422
  className: "space-y-3",
44247
44423
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
44248
44424
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FormLabel, {
@@ -44383,7 +44559,7 @@ var CustomMcpServerForm = function CustomMcpServerForm(_ref4) {
44383
44559
  className: "flex flex-col items-center justify-center py-8 space-y-4",
44384
44560
  children: [/*#__PURE__*/jsxRuntime.jsx("p", {
44385
44561
  className: "text-sm opacity-60 text-center max-w-md",
44386
- children: "This server requires OAuth authorization. Click the button below to open a browser window and complete the authentication flow."
44562
+ children: isOAuth ? "This server uses OAuth 2.0. Click below to open your browser, sign in, and approve access. Dash stores the resulting tokens securely and refreshes them automatically." : "This server requires OAuth authorization. Click the button below to open a browser window and complete the authentication flow."
44387
44563
  }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Button, {
44388
44564
  title: isAuthorizing ? "Authorizing..." : "Authorize",
44389
44565
  onClick: handleAuthorize,
@@ -44404,7 +44580,18 @@ var CustomMcpServerForm = function CustomMcpServerForm(_ref4) {
44404
44580
  children: [/*#__PURE__*/jsxRuntime.jsx("p", {
44405
44581
  className: "text-xs font-semibold opacity-40 uppercase tracking-wider",
44406
44582
  children: "Troubleshooting"
44407
- }), /*#__PURE__*/jsxRuntime.jsxs("ul", {
44583
+ }), isOAuth ? /*#__PURE__*/jsxRuntime.jsxs("ul", {
44584
+ className: "text-sm opacity-60 space-y-1 list-disc list-inside",
44585
+ children: [/*#__PURE__*/jsxRuntime.jsx("li", {
44586
+ children: "Make sure a browser window opened \u2014 check for a blocked pop-up or default-browser prompt"
44587
+ }), /*#__PURE__*/jsxRuntime.jsx("li", {
44588
+ children: "Allow Dash to accept the local sign-in redirect if your firewall prompts"
44589
+ }), /*#__PURE__*/jsxRuntime.jsx("li", {
44590
+ children: "Verify the server URL is correct and the scopes are valid for this server"
44591
+ }), /*#__PURE__*/jsxRuntime.jsx("li", {
44592
+ children: "For servers without dynamic registration, set a Client ID under \"Advanced\""
44593
+ })]
44594
+ }) : /*#__PURE__*/jsxRuntime.jsxs("ul", {
44408
44595
  className: "text-sm opacity-60 space-y-1 list-disc list-inside",
44409
44596
  children: [/*#__PURE__*/jsxRuntime.jsx("li", {
44410
44597
  children: "Ensure Node.js and npx are available in your PATH"
@@ -45267,9 +45454,9 @@ var McpCatalogDetail = function McpCatalogDetail(_ref) {
45267
45454
 
45268
45455
  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; }
45269
45456
  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; }
45270
- function _createForOfIteratorHelper$n(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$n(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; } } }; }
45271
- function _unsupportedIterableToArray$n(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$n(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$n(r, a) : void 0; } }
45272
- function _arrayLikeToArray$n(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; }
45457
+ function _createForOfIteratorHelper$m(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$m(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; } } }; }
45458
+ function _unsupportedIterableToArray$m(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$m(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$m(r, a) : void 0; } }
45459
+ function _arrayLikeToArray$m(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; }
45273
45460
  function isValidWsUrl(url) {
45274
45461
  if (!url) return false;
45275
45462
  try {
@@ -45316,7 +45503,7 @@ function extractCredentialFields(url, headerRows) {
45316
45503
  fields.add(match[1]);
45317
45504
  }
45318
45505
  }
45319
- var _iterator = _createForOfIteratorHelper$n(headerRows),
45506
+ var _iterator = _createForOfIteratorHelper$m(headerRows),
45320
45507
  _step;
45321
45508
  try {
45322
45509
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -45421,7 +45608,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
45421
45608
  if (!url.trim()) errs.url = "WebSocket URL is required";else if (!isValidWsUrl(url)) errs.url = "URL must start with ws:// or wss://";
45422
45609
 
45423
45610
  // Check required credential fields are filled
45424
- var _iterator2 = _createForOfIteratorHelper$n(credentialFields),
45611
+ var _iterator2 = _createForOfIteratorHelper$m(credentialFields),
45425
45612
  _step2;
45426
45613
  try {
45427
45614
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -45444,7 +45631,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
45444
45631
 
45445
45632
  // Build headers object from rows
45446
45633
  var headers = {};
45447
- var _iterator3 = _createForOfIteratorHelper$n(headerRows),
45634
+ var _iterator3 = _createForOfIteratorHelper$m(headerRows),
45448
45635
  _step3;
45449
45636
  try {
45450
45637
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -45513,7 +45700,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
45513
45700
 
45514
45701
  // Build config from current form state (same as handleSave)
45515
45702
  headers = {};
45516
- _iterator4 = _createForOfIteratorHelper$n(headerRows);
45703
+ _iterator4 = _createForOfIteratorHelper$m(headerRows);
45517
45704
  try {
45518
45705
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
45519
45706
  row = _step4.value;
@@ -48926,9 +49113,9 @@ var InstallWidgetPicker = function InstallWidgetPicker(_ref2) {
48926
49113
 
48927
49114
  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; }
48928
49115
  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; }
48929
- function _createForOfIteratorHelper$m(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$m(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; } } }; }
48930
- function _unsupportedIterableToArray$m(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$m(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$m(r, a) : void 0; } }
48931
- function _arrayLikeToArray$m(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; }
49116
+ function _createForOfIteratorHelper$l(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$l(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; } } }; }
49117
+ function _unsupportedIterableToArray$l(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$l(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$l(r, a) : void 0; } }
49118
+ function _arrayLikeToArray$l(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; }
48932
49119
  var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
48933
49120
  var onBack = _ref.onBack;
48934
49121
  var _useContext = React.useContext(DashReact.ThemeContext),
@@ -49035,7 +49222,7 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
49035
49222
  case 1:
49036
49223
  widgets = _context2.sent;
49037
49224
  names = new Set();
49038
- _iterator = _createForOfIteratorHelper$m(widgets);
49225
+ _iterator = _createForOfIteratorHelper$l(widgets);
49039
49226
  try {
49040
49227
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
49041
49228
  w = _step.value;
@@ -49140,12 +49327,12 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
49140
49327
  var checkToolConflicts = function checkToolConflicts(widget) {
49141
49328
  var conflicts = [];
49142
49329
  var packageWidgets = widget.packageWidgets || [];
49143
- var _iterator2 = _createForOfIteratorHelper$m(packageWidgets),
49330
+ var _iterator2 = _createForOfIteratorHelper$l(packageWidgets),
49144
49331
  _step2;
49145
49332
  try {
49146
49333
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
49147
49334
  var w = _step2.value;
49148
- var _iterator3 = _createForOfIteratorHelper$m(w.providers || []),
49335
+ var _iterator3 = _createForOfIteratorHelper$l(w.providers || []),
49149
49336
  _step3;
49150
49337
  try {
49151
49338
  var _loop = function _loop() {
@@ -49158,7 +49345,7 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
49158
49345
  prov = _ref5[1];
49159
49346
  return prov.type === p.type && prov.providerClass === "mcp" && prov.allowedTools;
49160
49347
  });
49161
- var _iterator4 = _createForOfIteratorHelper$m(matchingProviders),
49348
+ var _iterator4 = _createForOfIteratorHelper$l(matchingProviders),
49162
49349
  _step4;
49163
49350
  try {
49164
49351
  var _loop2 = function _loop2() {
@@ -49481,9 +49668,9 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
49481
49668
  });
49482
49669
  };
49483
49670
 
49484
- function _createForOfIteratorHelper$l(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$l(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; } } }; }
49485
- function _unsupportedIterableToArray$l(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$l(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$l(r, a) : void 0; } }
49486
- function _arrayLikeToArray$l(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; }
49671
+ function _createForOfIteratorHelper$k(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$k(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; } } }; }
49672
+ function _unsupportedIterableToArray$k(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$k(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$k(r, a) : void 0; } }
49673
+ function _arrayLikeToArray$k(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; }
49487
49674
  var UpdateAllWidgetsModal = function UpdateAllWidgetsModal(_ref) {
49488
49675
  var isOpen = _ref.isOpen,
49489
49676
  setIsOpen = _ref.setIsOpen,
@@ -49597,7 +49784,7 @@ var UpdateAllWidgetsModal = function UpdateAllWidgetsModal(_ref) {
49597
49784
  if (!hasRun || isBatchUpdating) return null;
49598
49785
  var done = 0;
49599
49786
  var failed = 0;
49600
- var _iterator = _createForOfIteratorHelper$l(batchStatus),
49787
+ var _iterator = _createForOfIteratorHelper$k(batchStatus),
49601
49788
  _step;
49602
49789
  try {
49603
49790
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -49754,9 +49941,6 @@ var UpdateAllWidgetsModal = function UpdateAllWidgetsModal(_ref) {
49754
49941
  });
49755
49942
  };
49756
49943
 
49757
- function _createForOfIteratorHelper$k(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$k(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; } } }; }
49758
- function _unsupportedIterableToArray$k(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$k(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$k(r, a) : void 0; } }
49759
- function _arrayLikeToArray$k(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; }
49760
49944
  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; }
49761
49945
  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; }
49762
49946
  var WidgetsSection = function WidgetsSection(_ref) {
@@ -49828,38 +50012,47 @@ var WidgetsSection = function WidgetsSection(_ref) {
49828
50012
  _useState12 = _slicedToArray(_useState11, 2),
49829
50013
  bulkDraftsTarget = _useState12[0],
49830
50014
  setBulkDraftsTarget = _useState12[1];
49831
-
49832
- // Install progress modal state
50015
+ // Flips true between the moment Confirm is clicked and the moment
50016
+ // all deletes settle. Drives the in-modal spinner so the user
50017
+ // doesn't stare at a frozen "Delete N Drafts" button while the
50018
+ // sequential IPCs run, and guards the handler against re-entry if
50019
+ // the user clicks Confirm a second time.
49833
50020
  var _useState13 = React.useState(false),
49834
50021
  _useState14 = _slicedToArray(_useState13, 2),
49835
- showProgressModal = _useState14[0],
49836
- setShowProgressModal = _useState14[1];
49837
- var _useState15 = React.useState([]),
50022
+ isBulkDeleting = _useState14[0],
50023
+ setIsBulkDeleting = _useState14[1];
50024
+
50025
+ // Install progress modal state
50026
+ var _useState15 = React.useState(false),
49838
50027
  _useState16 = _slicedToArray(_useState15, 2),
49839
- progressWidgets = _useState16[0],
49840
- setProgressWidgets = _useState16[1];
49841
- var _useState17 = React.useState(false),
50028
+ showProgressModal = _useState16[0],
50029
+ setShowProgressModal = _useState16[1];
50030
+ var _useState17 = React.useState([]),
49842
50031
  _useState18 = _slicedToArray(_useState17, 2),
49843
- progressComplete = _useState18[0],
49844
- setProgressComplete = _useState18[1];
50032
+ progressWidgets = _useState18[0],
50033
+ setProgressWidgets = _useState18[1];
50034
+ var _useState19 = React.useState(false),
50035
+ _useState20 = _slicedToArray(_useState19, 2),
50036
+ progressComplete = _useState20[0],
50037
+ setProgressComplete = _useState20[1];
49845
50038
 
49846
50039
  // ── Filter state ────────────────────────────────────────────────────
49847
- var _useState19 = React.useState(""),
49848
- _useState20 = _slicedToArray(_useState19, 2),
49849
- searchQuery = _useState20[0],
49850
- setSearchQuery = _useState20[1];
49851
- var _useState21 = React.useState("all"),
50040
+ var _useState21 = React.useState(""),
49852
50041
  _useState22 = _slicedToArray(_useState21, 2),
49853
- filterSource = _useState22[0],
49854
- setFilterSource = _useState22[1]; // "all" | "builtin" | "installed"
50042
+ searchQuery = _useState22[0],
50043
+ setSearchQuery = _useState22[1];
49855
50044
  var _useState23 = React.useState("all"),
49856
50045
  _useState24 = _slicedToArray(_useState23, 2),
49857
- filterAuthor = _useState24[0],
49858
- setFilterAuthor = _useState24[1];
50046
+ filterSource = _useState24[0],
50047
+ setFilterSource = _useState24[1]; // "all" | "builtin" | "installed"
49859
50048
  var _useState25 = React.useState("all"),
49860
50049
  _useState26 = _slicedToArray(_useState25, 2),
49861
- filterProvider = _useState26[0],
49862
- setFilterProvider = _useState26[1];
50050
+ filterAuthor = _useState26[0],
50051
+ setFilterAuthor = _useState26[1];
50052
+ var _useState27 = React.useState("all"),
50053
+ _useState28 = _slicedToArray(_useState27, 2),
50054
+ filterProvider = _useState28[0],
50055
+ setFilterProvider = _useState28[1];
49863
50056
 
49864
50057
  // ── Derived filter options ──────────────────────────────────────────
49865
50058
  var uniqueAuthors = React.useMemo(function () {
@@ -49955,90 +50148,52 @@ var WidgetsSection = function WidgetsSection(_ref) {
49955
50148
  } // ── Uninstall with usage check ──────────────────────────────────────
49956
50149
  function _handleConfirmBulkDraftCleanup() {
49957
50150
  _handleConfirmBulkDraftCleanup = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
49958
- var _iterator, _step, draft, _window$mainApi, deletedNames, _t2;
50151
+ var deletedNames;
49959
50152
  return _regeneratorRuntime.wrap(function (_context) {
49960
50153
  while (1) switch (_context.prev = _context.next) {
49961
50154
  case 0:
49962
- if (!(!bulkDraftsTarget || bulkDraftsTarget.length === 0)) {
50155
+ if (!isBulkDeleting) {
49963
50156
  _context.next = 1;
49964
50157
  break;
49965
50158
  }
49966
50159
  return _context.abrupt("return");
49967
50160
  case 1:
49968
- _context.prev = 1;
49969
- // Two classes of "draft" sit in the list:
49970
- // 1. Canonical drafts: row in widget-drafts.json + on-disk
49971
- // package dir under @ai-built/*-draft-*. drafts:delete
49972
- // removes both halves in one IPC.
49973
- // 2. Orphan drafts: package dir exists and matches the
49974
- // `-draft-` naming, but no metadata row exists — leftovers
49975
- // from sessions before the drafts API, or partial deletes.
49976
- // classifyWidget() returns draftId=null for these, so the
49977
- // drafts:delete path is unavailable. Fall back to the
49978
- // regular widget uninstall path, which removes the dir
49979
- // by packageId.
49980
- // Deletes run sequentially; both IPCs are idempotent.
49981
- _iterator = _createForOfIteratorHelper$k(bulkDraftsTarget);
49982
- _context.prev = 2;
49983
- _iterator.s();
49984
- case 3:
49985
- if ((_step = _iterator.n()).done) {
49986
- _context.next = 10;
49987
- break;
49988
- }
49989
- draft = _step.value;
49990
- _context.prev = 4;
49991
- if (!(draft.draftId && (_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && (_window$mainApi = _window$mainApi.drafts) !== null && _window$mainApi !== void 0 && _window$mainApi["delete"])) {
49992
- _context.next = 6;
50161
+ if (!(!bulkDraftsTarget || bulkDraftsTarget.length === 0)) {
50162
+ _context.next = 2;
49993
50163
  break;
49994
50164
  }
50165
+ return _context.abrupt("return");
50166
+ case 2:
50167
+ setIsBulkDeleting(true);
50168
+ _context.prev = 3;
50169
+ _context.next = 4;
50170
+ return Promise.allSettled(bulkDraftsTarget.map(function (draft) {
50171
+ var _window$mainApi;
50172
+ if (draft.draftId && (_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && (_window$mainApi = _window$mainApi.drafts) !== null && _window$mainApi !== void 0 && _window$mainApi["delete"]) {
50173
+ return window.mainApi.drafts["delete"](draft.draftId);
50174
+ }
50175
+ return uninstallWidget(draft.name);
50176
+ }));
50177
+ case 4:
49995
50178
  _context.next = 5;
49996
- return window.mainApi.drafts["delete"](draft.draftId);
49997
- case 5:
49998
- _context.next = 7;
49999
- break;
50000
- case 6:
50001
- _context.next = 7;
50002
- return uninstallWidget(draft.name);
50003
- case 7:
50004
- _context.next = 9;
50005
- break;
50006
- case 8:
50007
- _context.prev = 8;
50008
- _context["catch"](4);
50009
- case 9:
50010
- _context.next = 3;
50011
- break;
50012
- case 10:
50013
- _context.next = 12;
50014
- break;
50015
- case 11:
50016
- _context.prev = 11;
50017
- _t2 = _context["catch"](2);
50018
- _iterator.e(_t2);
50019
- case 12:
50020
- _context.prev = 12;
50021
- _iterator.f();
50022
- return _context.finish(12);
50023
- case 13:
50024
- _context.next = 14;
50025
50179
  return refresh();
50026
- case 14:
50180
+ case 5:
50027
50181
  deletedNames = new Set(bulkDraftsTarget.map(function (d) {
50028
50182
  return d.name;
50029
50183
  }));
50030
50184
  if (deletedNames.has(selectedWidgetName)) {
50031
50185
  setSelectedWidgetName(null);
50032
50186
  }
50033
- case 15:
50034
- _context.prev = 15;
50187
+ case 6:
50188
+ _context.prev = 6;
50189
+ setIsBulkDeleting(false);
50035
50190
  setBulkDraftsTarget(null);
50036
- return _context.finish(15);
50037
- case 16:
50191
+ return _context.finish(6);
50192
+ case 7:
50038
50193
  case "end":
50039
50194
  return _context.stop();
50040
50195
  }
50041
- }, _callee, null, [[1,, 15, 16], [2, 11, 12, 13], [4, 8]]);
50196
+ }, _callee, null, [[3,, 6, 7]]);
50042
50197
  }));
50043
50198
  return _handleConfirmBulkDraftCleanup.apply(this, arguments);
50044
50199
  }
@@ -50117,7 +50272,7 @@ var WidgetsSection = function WidgetsSection(_ref) {
50117
50272
  function _handleInstallFromZip() {
50118
50273
  _handleInstallFromZip = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
50119
50274
  var _window$mainApi3;
50120
- var filepath, filename, widgetName, _t4;
50275
+ var filepath, filename, widgetName, _t2;
50121
50276
  return _regeneratorRuntime.wrap(function (_context3) {
50122
50277
  while (1) switch (_context3.prev = _context3.next) {
50123
50278
  case 0:
@@ -50171,19 +50326,19 @@ var WidgetsSection = function WidgetsSection(_ref) {
50171
50326
  break;
50172
50327
  case 6:
50173
50328
  _context3.prev = 6;
50174
- _t4 = _context3["catch"](1);
50329
+ _t2 = _context3["catch"](1);
50175
50330
  setProgressWidgets(function (prev) {
50176
50331
  return prev.map(function (w) {
50177
50332
  return _objectSpread$p(_objectSpread$p({}, w), {}, {
50178
50333
  status: "failed",
50179
- error: _t4.message
50334
+ error: _t2.message
50180
50335
  });
50181
50336
  });
50182
50337
  });
50183
50338
  setProgressComplete(true);
50184
50339
  setInstallResult({
50185
50340
  status: "error",
50186
- message: _t4.message || "Failed to install widget from ZIP."
50341
+ message: _t2.message || "Failed to install widget from ZIP."
50187
50342
  });
50188
50343
  case 7:
50189
50344
  case "end":
@@ -50199,7 +50354,7 @@ var WidgetsSection = function WidgetsSection(_ref) {
50199
50354
  function _handleLoadFolder() {
50200
50355
  _handleLoadFolder = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
50201
50356
  var _window$mainApi4;
50202
- var _results$, folderPath, results, count, isSingle, skipped, message, _t5;
50357
+ var _results$, folderPath, results, count, isSingle, skipped, message, _t3;
50203
50358
  return _regeneratorRuntime.wrap(function (_context4) {
50204
50359
  while (1) switch (_context4.prev = _context4.next) {
50205
50360
  case 0:
@@ -50276,19 +50431,19 @@ var WidgetsSection = function WidgetsSection(_ref) {
50276
50431
  break;
50277
50432
  case 6:
50278
50433
  _context4.prev = 6;
50279
- _t5 = _context4["catch"](1);
50434
+ _t3 = _context4["catch"](1);
50280
50435
  setProgressWidgets(function (prev) {
50281
50436
  return prev.map(function (w) {
50282
50437
  return _objectSpread$p(_objectSpread$p({}, w), {}, {
50283
50438
  status: "failed",
50284
- error: _t5.message
50439
+ error: _t3.message
50285
50440
  });
50286
50441
  });
50287
50442
  });
50288
50443
  setProgressComplete(true);
50289
50444
  setInstallResult({
50290
50445
  status: "error",
50291
- message: _t5.message || "Failed to load widgets from folder."
50446
+ message: _t3.message || "Failed to load widgets from folder."
50292
50447
  });
50293
50448
  case 7:
50294
50449
  case "end":
@@ -50709,33 +50864,50 @@ var WidgetsSection = function WidgetsSection(_ref) {
50709
50864
  })), /*#__PURE__*/jsxRuntime.jsx(DashReact.ConfirmationModal, {
50710
50865
  isOpen: !!bulkDraftsTarget,
50711
50866
  setIsOpen: function setIsOpen(open) {
50867
+ // While the IPCs are running, suppress the X / backdrop /
50868
+ // ESC close. Otherwise React tears down the modal mid-
50869
+ // operation, the user thinks it succeeded, and a partial
50870
+ // delete leaves the list in a confusing state.
50871
+ if (isBulkDeleting) return;
50712
50872
  if (!open) setBulkDraftsTarget(null);
50713
50873
  },
50714
50874
  title: "Clean Up Drafts",
50715
- confirmLabel: bulkDraftsTarget && bulkDraftsTarget.length > 0 ? "Delete ".concat(bulkDraftsTarget.length, " Draft").concat(bulkDraftsTarget.length !== 1 ? "s" : "") : "Delete",
50875
+ confirmLabel: isBulkDeleting ? "Deleting…" : bulkDraftsTarget && bulkDraftsTarget.length > 0 ? "Delete ".concat(bulkDraftsTarget.length, " Draft").concat(bulkDraftsTarget.length !== 1 ? "s" : "") : "Delete",
50716
50876
  variant: "danger",
50717
50877
  onConfirm: handleConfirmBulkDraftCleanup,
50718
50878
  onCancel: function onCancel() {
50719
- return setBulkDraftsTarget(null);
50879
+ if (isBulkDeleting) return;
50880
+ setBulkDraftsTarget(null);
50720
50881
  },
50721
- children: bulkDraftsTarget && bulkDraftsTarget.length > 0 && /*#__PURE__*/jsxRuntime.jsxs("div", {
50882
+ children: bulkDraftsTarget && bulkDraftsTarget.length > 0 && /*#__PURE__*/jsxRuntime.jsx("div", {
50722
50883
  className: paragraphStyles.textColor || "",
50723
- children: [/*#__PURE__*/jsxRuntime.jsxs("p", {
50724
- className: "text-sm leading-relaxed",
50725
- children: ["This will permanently delete the following in-progress widget", bulkDraftsTarget.length !== 1 ? "s" : "", " and their files on disk. This cannot be undone."]
50726
- }), /*#__PURE__*/jsxRuntime.jsx("div", {
50727
- className: "mt-2 mb-2 space-y-1 max-h-64 overflow-y-auto",
50728
- children: bulkDraftsTarget.map(function (w) {
50729
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
50730
- className: "text-xs opacity-60 flex items-center gap-1.5 pl-2",
50731
- "data-testid": "bulk-draft-row-".concat(w.name),
50732
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
50733
- icon: "puzzle-piece",
50734
- className: "h-3 w-3"
50735
- }), w.displayName || w.name]
50736
- }, w.name);
50737
- })
50738
- })]
50884
+ children: isBulkDeleting ? /*#__PURE__*/jsxRuntime.jsxs("div", {
50885
+ className: "flex items-center gap-3 py-4",
50886
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
50887
+ icon: "spinner",
50888
+ className: "text-blue-400 animate-spin"
50889
+ }), /*#__PURE__*/jsxRuntime.jsxs("span", {
50890
+ className: "text-sm",
50891
+ children: ["Deleting ", bulkDraftsTarget.length, " draft", bulkDraftsTarget.length !== 1 ? "s" : "", "\u2026"]
50892
+ })]
50893
+ }) : /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
50894
+ children: [/*#__PURE__*/jsxRuntime.jsxs("p", {
50895
+ className: "text-sm leading-relaxed",
50896
+ children: ["This will permanently delete the following in-progress widget", bulkDraftsTarget.length !== 1 ? "s" : "", " and their files on disk. This cannot be undone."]
50897
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
50898
+ className: "mt-2 mb-2 space-y-1 max-h-64 overflow-y-auto",
50899
+ children: bulkDraftsTarget.map(function (w) {
50900
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
50901
+ className: "text-xs opacity-60 flex items-center gap-1.5 pl-2",
50902
+ "data-testid": "bulk-draft-row-".concat(w.name),
50903
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
50904
+ icon: "puzzle-piece",
50905
+ className: "h-3 w-3"
50906
+ }), w.displayName || w.name]
50907
+ }, w.name);
50908
+ })
50909
+ })]
50910
+ })
50739
50911
  })
50740
50912
  }), /*#__PURE__*/jsxRuntime.jsx(RegistryAuthModal, {
50741
50913
  isOpen: needsAuth,
@@ -68467,6 +68639,8 @@ exports.LayoutGridContainer = LayoutGridContainer;
68467
68639
  exports.LayoutManagerModal = LayoutManagerModal;
68468
68640
  exports.LayoutModel = LayoutModel;
68469
68641
  exports.LayoutQuickAddMenu = LayoutQuickAddMenu;
68642
+ exports.MCP_AUTHORIZE_COMPLETE = MCP_AUTHORIZE_COMPLETE;
68643
+ exports.MCP_AUTHORIZE_ERROR = MCP_AUTHORIZE_ERROR;
68470
68644
  exports.MCP_CALL_TOOL_COMPLETE = MCP_CALL_TOOL_COMPLETE;
68471
68645
  exports.MCP_CALL_TOOL_ERROR = MCP_CALL_TOOL_ERROR;
68472
68646
  exports.MCP_GET_CATALOG_COMPLETE = MCP_GET_CATALOG_COMPLETE;