@trops/dash-core 0.1.516 → 0.1.518

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
@@ -3148,9 +3148,9 @@ var LayoutContainer = function LayoutContainer(_ref) {
3148
3148
 
3149
3149
  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; }
3150
3150
  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; }
3151
- 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; } } }; }
3152
- 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; } }
3153
- 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; }
3151
+ 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; } } }; }
3152
+ 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; } }
3153
+ 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; }
3154
3154
  /**
3155
3155
  * Layout template definitions for the dashboard template picker.
3156
3156
  *
@@ -3424,7 +3424,7 @@ function createLayoutFromTemplate(template) {
3424
3424
  cols: template.cols,
3425
3425
  gap: "gap-2"
3426
3426
  };
3427
- var _iterator = _createForOfIteratorHelper$A(template.cells),
3427
+ var _iterator = _createForOfIteratorHelper$C(template.cells),
3428
3428
  _step;
3429
3429
  try {
3430
3430
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -4605,9 +4605,9 @@ var DashboardInstallOptionsModal = function DashboardInstallOptionsModal(_ref) {
4605
4605
  });
4606
4606
  };
4607
4607
 
4608
- 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; } } }; }
4609
- 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; } }
4610
- 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; }
4608
+ 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; } } }; }
4609
+ 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; } }
4610
+ 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; }
4611
4611
  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; }
4612
4612
  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; }
4613
4613
  var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
@@ -4965,7 +4965,7 @@ var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
4965
4965
  toInstall = 0,
4966
4966
  unavailable = 0,
4967
4967
  hasUnavailableRequired = false;
4968
- var _iterator = _createForOfIteratorHelper$z(widgetDeps),
4968
+ var _iterator = _createForOfIteratorHelper$B(widgetDeps),
4969
4969
  _step;
4970
4970
  try {
4971
4971
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -6610,9 +6610,9 @@ function cleanIpcError(message) {
6610
6610
  return match ? match[1] : message;
6611
6611
  }
6612
6612
 
6613
- 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; } } }; }
6614
- 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; } }
6615
- 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; }
6613
+ 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; } } }; }
6614
+ 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; } }
6615
+ 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; }
6616
6616
 
6617
6617
  /**
6618
6618
  * useRegistrySearch — shared hook for browsing and installing registry packages.
@@ -6726,13 +6726,13 @@ var useRegistrySearch = function useRegistrySearch() {
6726
6726
  return c.toLowerCase();
6727
6727
  }));
6728
6728
  widgets = [];
6729
- _iterator = _createForOfIteratorHelper$y(pkgs);
6729
+ _iterator = _createForOfIteratorHelper$A(pkgs);
6730
6730
  try {
6731
6731
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
6732
6732
  pkg = _step.value;
6733
6733
  // Compute missing APIs for the entire package
6734
6734
  allApiProviders = [];
6735
- _iterator2 = _createForOfIteratorHelper$y(pkg.providers || []);
6735
+ _iterator2 = _createForOfIteratorHelper$A(pkg.providers || []);
6736
6736
  try {
6737
6737
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
6738
6738
  p = _step2.value;
@@ -6745,11 +6745,11 @@ var useRegistrySearch = function useRegistrySearch() {
6745
6745
  } finally {
6746
6746
  _iterator2.f();
6747
6747
  }
6748
- _iterator3 = _createForOfIteratorHelper$y(pkg.widgets || []);
6748
+ _iterator3 = _createForOfIteratorHelper$A(pkg.widgets || []);
6749
6749
  try {
6750
6750
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
6751
6751
  w = _step3.value;
6752
- _iterator5 = _createForOfIteratorHelper$y(w.providers || []);
6752
+ _iterator5 = _createForOfIteratorHelper$A(w.providers || []);
6753
6753
  try {
6754
6754
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
6755
6755
  _p = _step5.value;
@@ -6771,7 +6771,7 @@ var useRegistrySearch = function useRegistrySearch() {
6771
6771
  missingApis = _toConsumableArray(new Set(allApiProviders)).filter(function (api) {
6772
6772
  return !capSet.has(api.toLowerCase());
6773
6773
  });
6774
- _iterator4 = _createForOfIteratorHelper$y(pkg.widgets || []);
6774
+ _iterator4 = _createForOfIteratorHelper$A(pkg.widgets || []);
6775
6775
  try {
6776
6776
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
6777
6777
  widget = _step4.value;
@@ -7478,9 +7478,9 @@ function applyFilters(items, filters, mode) {
7478
7478
  });
7479
7479
  }
7480
7480
 
7481
- 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; } } }; }
7482
- 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; } }
7483
- 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; }
7481
+ 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; } } }; }
7482
+ 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; } }
7483
+ 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; }
7484
7484
  var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
7485
7485
  var _state$selectedDashbo, _state$selectedDashbo2;
7486
7486
  var state = _ref.state,
@@ -7699,7 +7699,7 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
7699
7699
  installedNames = new Set(installedList.map(function (w) {
7700
7700
  return w.name;
7701
7701
  }));
7702
- _iterator = _createForOfIteratorHelper$x(state.selectedWidgets);
7702
+ _iterator = _createForOfIteratorHelper$z(state.selectedWidgets);
7703
7703
  _context2.prev = 12;
7704
7704
  _iterator.s();
7705
7705
  case 13:
@@ -9269,9 +9269,9 @@ var PanelEditItem = function PanelEditItem(_ref) {
9269
9269
  };
9270
9270
 
9271
9271
  var _excluded$6 = ["rows", "cols"];
9272
- 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; } } }; }
9273
- 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; } }
9274
- 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; }
9272
+ 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; } } }; }
9273
+ 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; } }
9274
+ 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; }
9275
9275
  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; }
9276
9276
  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; }
9277
9277
  var defaultGrid = {
@@ -9424,7 +9424,7 @@ function GridEditor(_ref) {
9424
9424
  function sortObjectByKeys(obj) {
9425
9425
  var sortedKeys = Object.keys(obj).sort();
9426
9426
  var sortedObj = {};
9427
- var _iterator = _createForOfIteratorHelper$w(sortedKeys),
9427
+ var _iterator = _createForOfIteratorHelper$y(sortedKeys),
9428
9428
  _step;
9429
9429
  try {
9430
9430
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -9897,9 +9897,9 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
9897
9897
  });
9898
9898
  };
9899
9899
 
9900
- 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; } } }; }
9901
- 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; } }
9902
- 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; }
9900
+ 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; } } }; }
9901
+ 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; } }
9902
+ 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; }
9903
9903
  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; }
9904
9904
  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; }
9905
9905
  var DAYS = [{
@@ -10228,7 +10228,7 @@ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
10228
10228
  setIsLoading(true);
10229
10229
  window.mainApi.scheduler.getTasks(widgetUuid).then(function (tasks) {
10230
10230
  var stateMap = {};
10231
- var _iterator = _createForOfIteratorHelper$v(tasks || []),
10231
+ var _iterator = _createForOfIteratorHelper$x(tasks || []),
10232
10232
  _step;
10233
10233
  try {
10234
10234
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -10487,9 +10487,9 @@ function isUserWidget(item) {
10487
10487
  return true;
10488
10488
  }
10489
10489
 
10490
- 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; } } }; }
10491
- 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; } }
10492
- 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; }
10490
+ 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; } } }; }
10491
+ 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; } }
10492
+ 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; }
10493
10493
 
10494
10494
  /**
10495
10495
  * Resolve which provider name a given widget instance would bind to for
@@ -10521,7 +10521,7 @@ function resolveProviderName(_ref) {
10521
10521
  // array. Support both because different callers shape it either way.
10522
10522
  if (appProviders) {
10523
10523
  if (Array.isArray(appProviders)) {
10524
- var _iterator = _createForOfIteratorHelper$u(appProviders),
10524
+ var _iterator = _createForOfIteratorHelper$w(appProviders),
10525
10525
  _step;
10526
10526
  try {
10527
10527
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -10581,7 +10581,7 @@ function forEachWidget(workspace, visit) {
10581
10581
  };
10582
10582
  var _walk = function walk(items) {
10583
10583
  if (!Array.isArray(items)) return;
10584
- var _iterator2 = _createForOfIteratorHelper$u(items),
10584
+ var _iterator2 = _createForOfIteratorHelper$w(items),
10585
10585
  _step2;
10586
10586
  try {
10587
10587
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -10622,7 +10622,7 @@ function forEachWidget(workspace, visit) {
10622
10622
  // widgets that only live there (e.g. AI-place writes that bypass
10623
10623
  // the page handler).
10624
10624
  if (Array.isArray(workspace.pages)) {
10625
- var _iterator3 = _createForOfIteratorHelper$u(workspace.pages),
10625
+ var _iterator3 = _createForOfIteratorHelper$w(workspace.pages),
10626
10626
  _step3;
10627
10627
  try {
10628
10628
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -10673,7 +10673,7 @@ function getUnresolvedProviders(_ref2) {
10673
10673
  // the same `type` listed twice (a Claude code-gen quirk), which
10674
10674
  // would otherwise produce duplicate rows in the Providers tab.
10675
10675
  var seenTypes = new Set();
10676
- var _iterator4 = _createForOfIteratorHelper$u(requirements),
10676
+ var _iterator4 = _createForOfIteratorHelper$w(requirements),
10677
10677
  _step4;
10678
10678
  try {
10679
10679
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -10716,7 +10716,7 @@ function getUnresolvedProviders(_ref2) {
10716
10716
  */
10717
10717
  function groupByProviderType(unresolved) {
10718
10718
  var byType = new Map();
10719
- var _iterator5 = _createForOfIteratorHelper$u(unresolved || []),
10719
+ var _iterator5 = _createForOfIteratorHelper$w(unresolved || []),
10720
10720
  _step5;
10721
10721
  try {
10722
10722
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -10758,7 +10758,7 @@ function getAllProviderBindings(_ref3) {
10758
10758
  // quirk) which would otherwise duplicate the per-widget row in
10759
10759
  // the Providers tab.
10760
10760
  var seenTypes = new Set();
10761
- var _iterator6 = _createForOfIteratorHelper$u(requirements),
10761
+ var _iterator6 = _createForOfIteratorHelper$w(requirements),
10762
10762
  _step6;
10763
10763
  try {
10764
10764
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
@@ -10800,9 +10800,9 @@ function getAllProviderBindings(_ref3) {
10800
10800
 
10801
10801
  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; }
10802
10802
  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; }
10803
- 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; } } }; }
10804
- 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; } }
10805
- 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; }
10803
+ 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; } } }; }
10804
+ 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; } }
10805
+ 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; }
10806
10806
  var EVENT_STRING_RE = /^([^[]+)\[([^\]]+)\]\.(.+)$/;
10807
10807
 
10808
10808
  /** Parse "Component[itemId].event" → { component, itemId, event }. */
@@ -10972,7 +10972,7 @@ function getCurrentWiring(workspace) {
10972
10972
  // Live format is array; defensive guard for legacy object
10973
10973
  // form (a single source widget keyed under the handler).
10974
10974
  var events = Array.isArray(eventList) ? eventList : typeof eventList === "string" ? [eventList] : [];
10975
- var _iterator = _createForOfIteratorHelper$t(events),
10975
+ var _iterator = _createForOfIteratorHelper$v(events),
10976
10976
  _step;
10977
10977
  try {
10978
10978
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -11035,7 +11035,7 @@ function getOrphanedListeners(workspace, getWidgetConfig) {
11035
11035
  if (!byItemId.has(id)) byItemId.set(id, meta);
11036
11036
  });
11037
11037
  var orphans = [];
11038
- var _iterator2 = _createForOfIteratorHelper$t(wiring),
11038
+ var _iterator2 = _createForOfIteratorHelper$v(wiring),
11039
11039
  _step2;
11040
11040
  try {
11041
11041
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -11101,7 +11101,7 @@ function pruneDeadListenerReferences(workspace) {
11101
11101
  var liveKeys = new Set();
11102
11102
  var _walkForLive = function walkForLive(items) {
11103
11103
  if (!Array.isArray(items)) return;
11104
- var _iterator3 = _createForOfIteratorHelper$t(items),
11104
+ var _iterator3 = _createForOfIteratorHelper$v(items),
11105
11105
  _step3;
11106
11106
  try {
11107
11107
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -11122,7 +11122,7 @@ function pruneDeadListenerReferences(workspace) {
11122
11122
  };
11123
11123
  _walkForLive(workspace.layout);
11124
11124
  if (Array.isArray(workspace.pages)) {
11125
- var _iterator4 = _createForOfIteratorHelper$t(workspace.pages),
11125
+ var _iterator4 = _createForOfIteratorHelper$v(workspace.pages),
11126
11126
  _step4;
11127
11127
  try {
11128
11128
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -11139,7 +11139,7 @@ function pruneDeadListenerReferences(workspace) {
11139
11139
  var removed = 0;
11140
11140
  var _pruneListeners = function pruneListeners(items) {
11141
11141
  if (!Array.isArray(items)) return;
11142
- var _iterator5 = _createForOfIteratorHelper$t(items),
11142
+ var _iterator5 = _createForOfIteratorHelper$v(items),
11143
11143
  _step5;
11144
11144
  try {
11145
11145
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -11151,7 +11151,7 @@ function pruneDeadListenerReferences(workspace) {
11151
11151
  var events = item.listeners[handler];
11152
11152
  if (!Array.isArray(events)) continue;
11153
11153
  var kept = [];
11154
- var _iterator6 = _createForOfIteratorHelper$t(events),
11154
+ var _iterator6 = _createForOfIteratorHelper$v(events),
11155
11155
  _step6;
11156
11156
  try {
11157
11157
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
@@ -11186,7 +11186,7 @@ function pruneDeadListenerReferences(workspace) {
11186
11186
  };
11187
11187
  _pruneListeners(workspace.layout);
11188
11188
  if (Array.isArray(workspace.pages)) {
11189
- var _iterator7 = _createForOfIteratorHelper$t(workspace.pages),
11189
+ var _iterator7 = _createForOfIteratorHelper$v(workspace.pages),
11190
11190
  _step7;
11191
11191
  try {
11192
11192
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
@@ -11230,7 +11230,7 @@ function applyWiringChanges(workspace, _ref) {
11230
11230
  });
11231
11231
  return byReceiver.get(id);
11232
11232
  };
11233
- var _iterator8 = _createForOfIteratorHelper$t(adds),
11233
+ var _iterator8 = _createForOfIteratorHelper$v(adds),
11234
11234
  _step8;
11235
11235
  try {
11236
11236
  for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
@@ -11243,7 +11243,7 @@ function applyWiringChanges(workspace, _ref) {
11243
11243
  } finally {
11244
11244
  _iterator8.f();
11245
11245
  }
11246
- var _iterator9 = _createForOfIteratorHelper$t(removes),
11246
+ var _iterator9 = _createForOfIteratorHelper$v(removes),
11247
11247
  _step9;
11248
11248
  try {
11249
11249
  for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
@@ -11317,7 +11317,7 @@ function applyToItem(listeners, _ref2) {
11317
11317
  }
11318
11318
 
11319
11319
  // Removes first so a re-add (rare) lands.
11320
- var _iterator0 = _createForOfIteratorHelper$t(removes),
11320
+ var _iterator0 = _createForOfIteratorHelper$v(removes),
11321
11321
  _step0;
11322
11322
  try {
11323
11323
  var _loop = function _loop() {
@@ -11346,7 +11346,7 @@ function applyToItem(listeners, _ref2) {
11346
11346
  } finally {
11347
11347
  _iterator0.f();
11348
11348
  }
11349
- var _iterator1 = _createForOfIteratorHelper$t(adds),
11349
+ var _iterator1 = _createForOfIteratorHelper$v(adds),
11350
11350
  _step1;
11351
11351
  try {
11352
11352
  for (_iterator1.s(); !(_step1 = _iterator1.n()).done;) {
@@ -14319,9 +14319,9 @@ function mcpJsonToFormState(jsonString, nextRowId) {
14319
14319
  return result;
14320
14320
  }
14321
14321
 
14322
- 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; } } }; }
14323
- 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; } }
14324
- 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; }
14322
+ 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; } } }; }
14323
+ 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; } }
14324
+ 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; }
14325
14325
  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; }
14326
14326
  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; }
14327
14327
  var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
@@ -14606,11 +14606,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14606
14606
 
14607
14607
  // Flatten all widgets from all packages for the widget list
14608
14608
  flatWidgets = [];
14609
- _iterator = _createForOfIteratorHelper$s(result.packages || []);
14609
+ _iterator = _createForOfIteratorHelper$u(result.packages || []);
14610
14610
  try {
14611
14611
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
14612
14612
  pkg = _step.value;
14613
- _iterator2 = _createForOfIteratorHelper$s(pkg.widgets || []);
14613
+ _iterator2 = _createForOfIteratorHelper$u(pkg.widgets || []);
14614
14614
  try {
14615
14615
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
14616
14616
  widget = _step2.value;
@@ -16504,9 +16504,9 @@ var useWidgetSchedulerStatus = function useWidgetSchedulerStatus(widgetId) {
16504
16504
  };
16505
16505
  };
16506
16506
 
16507
- 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; } } }; }
16508
- 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; } }
16509
- 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; }
16507
+ 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; } } }; }
16508
+ 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; } }
16509
+ 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; }
16510
16510
  function formatCountdown(ms) {
16511
16511
  if (ms == null || ms < 0) return "--";
16512
16512
  if (ms < 1000) return "< 1s";
@@ -16623,7 +16623,7 @@ var WidgetCardStatusBar = function WidgetCardStatusBar(_ref) {
16623
16623
 
16624
16624
  // Find soonest countdown among enabled tasks
16625
16625
  var soonestMs = null;
16626
- var _iterator = _createForOfIteratorHelper$r(enabledTasks),
16626
+ var _iterator = _createForOfIteratorHelper$t(enabledTasks),
16627
16627
  _step;
16628
16628
  try {
16629
16629
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -22165,9 +22165,9 @@ var ExternalWidget = function ExternalWidget(_ref) {
22165
22165
  var GRID_CELL_WIDGET_TYPE = "grid-cell-widget";
22166
22166
  var SIDEBAR_WIDGET_TYPE = "sidebar-widget";
22167
22167
 
22168
- 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; } } }; }
22169
- 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; } }
22170
- 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; }
22168
+ 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; } } }; }
22169
+ 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; } }
22170
+ 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; }
22171
22171
  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; }
22172
22172
  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; }
22173
22173
 
@@ -22790,7 +22790,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
22790
22790
  return selectable["delete"](cn);
22791
22791
  });
22792
22792
  var resolved = new Set();
22793
- var _iterator = _createForOfIteratorHelper$q(selectable),
22793
+ var _iterator = _createForOfIteratorHelper$s(selectable),
22794
22794
  _step;
22795
22795
  try {
22796
22796
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -25199,9 +25199,9 @@ function migrateBareComponentName(componentMap, component) {
25199
25199
 
25200
25200
  function ownKeys$E(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
25201
25201
  function _objectSpread$E(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$E(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$E(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
25202
- 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; } } }; }
25203
- 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; } }
25204
- 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; }
25202
+ 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; } } }; }
25203
+ 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; } }
25204
+ 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; }
25205
25205
  /**
25206
25206
  * The model for all layout components used primarily in the renderLayout method
25207
25207
  * @param {Object} layoutItem an object containing various attributes of the layout item
@@ -25213,7 +25213,7 @@ function _arrayLikeToArray$p(r, a) { (null == a || a > r.length) && (a = r.lengt
25213
25213
  function sortObjectByKeys(obj) {
25214
25214
  var sortedKeys = Object.keys(obj).sort();
25215
25215
  var sortedObj = {};
25216
- var _iterator = _createForOfIteratorHelper$p(sortedKeys),
25216
+ var _iterator = _createForOfIteratorHelper$r(sortedKeys),
25217
25217
  _step;
25218
25218
  try {
25219
25219
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -25525,9 +25525,9 @@ var SettingsModel = function SettingsModel() {
25525
25525
  return obj;
25526
25526
  };
25527
25527
 
25528
- 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; } } }; }
25529
- 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; } }
25530
- 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; }
25528
+ 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; } } }; }
25529
+ 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; } }
25530
+ 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; }
25531
25531
 
25532
25532
  /**
25533
25533
  * Workspace-level pre-pass that migrates legacy bare component
@@ -25602,7 +25602,7 @@ function migrateScopedIdsInWorkspace(workspace, componentMap) {
25602
25602
  };
25603
25603
  var _walk = function walk(items) {
25604
25604
  if (!Array.isArray(items)) return;
25605
- var _iterator = _createForOfIteratorHelper$o(items),
25605
+ var _iterator = _createForOfIteratorHelper$q(items),
25606
25606
  _step;
25607
25607
  try {
25608
25608
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -25624,7 +25624,7 @@ function migrateScopedIdsInWorkspace(workspace, componentMap) {
25624
25624
  };
25625
25625
  _walk(workspace.layout);
25626
25626
  if (Array.isArray(workspace.pages)) {
25627
- var _iterator2 = _createForOfIteratorHelper$o(workspace.pages),
25627
+ var _iterator2 = _createForOfIteratorHelper$q(workspace.pages),
25628
25628
  _step2;
25629
25629
  try {
25630
25630
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -25641,9 +25641,9 @@ function migrateScopedIdsInWorkspace(workspace, componentMap) {
25641
25641
  return counts;
25642
25642
  }
25643
25643
 
25644
- 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; } } }; }
25645
- 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; } }
25646
- 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; }
25644
+ 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; } } }; }
25645
+ 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; } }
25646
+ 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; }
25647
25647
  /**
25648
25648
  * cleanForeignWidgetsFromWorkspace.js
25649
25649
  *
@@ -25684,7 +25684,7 @@ function cleanForeignWidgetsFromWorkspace(workspace) {
25684
25684
  var _cleanList = function cleanList(items) {
25685
25685
  if (!Array.isArray(items)) return items;
25686
25686
  var kept = [];
25687
- var _iterator = _createForOfIteratorHelper$n(items),
25687
+ var _iterator = _createForOfIteratorHelper$p(items),
25688
25688
  _step;
25689
25689
  try {
25690
25690
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -25721,7 +25721,7 @@ function cleanForeignWidgetsFromWorkspace(workspace) {
25721
25721
  workspace.sidebarLayout = _cleanList(workspace.sidebarLayout);
25722
25722
  }
25723
25723
  if (Array.isArray(workspace.pages)) {
25724
- var _iterator2 = _createForOfIteratorHelper$n(workspace.pages),
25724
+ var _iterator2 = _createForOfIteratorHelper$p(workspace.pages),
25725
25725
  _step2;
25726
25726
  try {
25727
25727
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -25739,9 +25739,9 @@ function cleanForeignWidgetsFromWorkspace(workspace) {
25739
25739
  return summary;
25740
25740
  }
25741
25741
 
25742
- 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; } } }; }
25743
- 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; } }
25744
- 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; }
25742
+ 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; } } }; }
25743
+ 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; } }
25744
+ 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; }
25745
25745
  /**
25746
25746
  * migrateLayoutItemTypes.js
25747
25747
  *
@@ -25803,7 +25803,7 @@ function migrateLayoutItemTypes(workspace) {
25803
25803
  };
25804
25804
  var _walk = function walk(items) {
25805
25805
  if (!Array.isArray(items)) return;
25806
- var _iterator = _createForOfIteratorHelper$m(items),
25806
+ var _iterator = _createForOfIteratorHelper$o(items),
25807
25807
  _step;
25808
25808
  try {
25809
25809
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -25821,7 +25821,7 @@ function migrateLayoutItemTypes(workspace) {
25821
25821
  };
25822
25822
  _walk(workspace.layout);
25823
25823
  if (Array.isArray(workspace.pages)) {
25824
- var _iterator2 = _createForOfIteratorHelper$m(workspace.pages),
25824
+ var _iterator2 = _createForOfIteratorHelper$o(workspace.pages),
25825
25825
  _step2;
25826
25826
  try {
25827
25827
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -26202,9 +26202,9 @@ var ThemeModel = function ThemeModel() {
26202
26202
  }
26203
26203
  };
26204
26204
 
26205
- 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; } } }; }
26206
- 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; } }
26207
- 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; }
26205
+ 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; } } }; }
26206
+ 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; } }
26207
+ 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; }
26208
26208
  /*
26209
26209
  "component": AnalyticsReportsWidget,
26210
26210
  "type":"widget",
@@ -26322,7 +26322,7 @@ var ComponentConfigModel = function ComponentConfigModel() {
26322
26322
  if ("providers" in obj && Array.isArray(obj.providers)) {
26323
26323
  var seen = new Set();
26324
26324
  var cleaned = [];
26325
- var _iterator = _createForOfIteratorHelper$l(obj.providers),
26325
+ var _iterator = _createForOfIteratorHelper$n(obj.providers),
26326
26326
  _step;
26327
26327
  try {
26328
26328
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -26370,9 +26370,9 @@ var MenuItemModel = function MenuItemModel() {
26370
26370
 
26371
26371
  function ownKeys$D(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
26372
26372
  function _objectSpread$D(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$D(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$D(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26373
- 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; } } }; }
26374
- 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; } }
26375
- 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; }
26373
+ 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; } } }; }
26374
+ 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; } }
26375
+ 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; }
26376
26376
  /**
26377
26377
  * A Model for a Workspace (Dashboard)
26378
26378
  * The Dashboard in this instance is the entire Layout inclusive of the workspaces and widgets
@@ -26444,7 +26444,7 @@ var DashboardModel = /*#__PURE__*/function () {
26444
26444
 
26445
26445
  // Also normalize grids within pages
26446
26446
  if (this.pages.length > 0) {
26447
- var _iterator = _createForOfIteratorHelper$k(this.pages),
26447
+ var _iterator = _createForOfIteratorHelper$m(this.pages),
26448
26448
  _step;
26449
26449
  try {
26450
26450
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -28420,7 +28420,7 @@ var DashboardModel = /*#__PURE__*/function () {
28420
28420
  try {
28421
28421
  // Collect all item IDs actively referenced by grid cells
28422
28422
  var activeItemIds = new Set();
28423
- var _iterator2 = _createForOfIteratorHelper$k(this.layout),
28423
+ var _iterator2 = _createForOfIteratorHelper$m(this.layout),
28424
28424
  _step2;
28425
28425
  try {
28426
28426
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -28460,7 +28460,7 @@ var DashboardModel = /*#__PURE__*/function () {
28460
28460
  });
28461
28461
 
28462
28462
  // Clean listener references on remaining items for each removed orphan
28463
- var _iterator3 = _createForOfIteratorHelper$k(orphanedIds),
28463
+ var _iterator3 = _createForOfIteratorHelper$m(orphanedIds),
28464
28464
  _step3;
28465
28465
  try {
28466
28466
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -29281,9 +29281,9 @@ var useDashboard = function useDashboard() {
29281
29281
  });
29282
29282
  };
29283
29283
 
29284
- 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; } } }; }
29285
- 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; } }
29286
- 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; }
29284
+ 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; } } }; }
29285
+ 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; } }
29286
+ 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; }
29287
29287
 
29288
29288
  /**
29289
29289
  * useWidgetProviders Hook
@@ -29339,7 +29339,7 @@ var useWidgetProviders = function useWidgetProviders() {
29339
29339
  // 1. Widget-level: stored directly on the layout item by handleSelectProvider
29340
29340
  // 2. Workspace-level: stored as workspace.selectedProviders[widgetId][providerType]
29341
29341
  var providers = {};
29342
- var _iterator = _createForOfIteratorHelper$j(providerDeclarations),
29342
+ var _iterator = _createForOfIteratorHelper$l(providerDeclarations),
29343
29343
  _step;
29344
29344
  try {
29345
29345
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -29381,9 +29381,9 @@ var useWidgetProviders = function useWidgetProviders() {
29381
29381
  };
29382
29382
  };
29383
29383
 
29384
- 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; } } }; }
29385
- 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; } }
29386
- 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; }
29384
+ 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; } } }; }
29385
+ 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; } }
29386
+ 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; }
29387
29387
 
29388
29388
  /**
29389
29389
  * Module-level shared state for MCP server connections.
@@ -29438,7 +29438,7 @@ function unionPathScope(grants, serverName) {
29438
29438
  allowedPaths: []
29439
29439
  };
29440
29440
  }
29441
- var _iterator = _createForOfIteratorHelper$i(grants),
29441
+ var _iterator = _createForOfIteratorHelper$k(grants),
29442
29442
  _step;
29443
29443
  try {
29444
29444
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -29451,7 +29451,7 @@ function unionPathScope(grants, serverName) {
29451
29451
  var serverPerms = servers[serverName];
29452
29452
  if (!serverPerms || _typeof(serverPerms) !== "object") continue;
29453
29453
  if (Array.isArray(serverPerms.readPaths)) {
29454
- var _iterator2 = _createForOfIteratorHelper$i(serverPerms.readPaths),
29454
+ var _iterator2 = _createForOfIteratorHelper$k(serverPerms.readPaths),
29455
29455
  _step2;
29456
29456
  try {
29457
29457
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -29465,7 +29465,7 @@ function unionPathScope(grants, serverName) {
29465
29465
  }
29466
29466
  }
29467
29467
  if (Array.isArray(serverPerms.writePaths)) {
29468
- var _iterator3 = _createForOfIteratorHelper$i(serverPerms.writePaths),
29468
+ var _iterator3 = _createForOfIteratorHelper$k(serverPerms.writePaths),
29469
29469
  _step3;
29470
29470
  try {
29471
29471
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -30268,9 +30268,9 @@ var useNotifications = function useNotifications() {
30268
30268
  };
30269
30269
  };
30270
30270
 
30271
- 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; } } }; }
30272
- 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; } }
30273
- 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; }
30271
+ 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; } } }; }
30272
+ 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; } }
30273
+ 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; }
30274
30274
 
30275
30275
  /**
30276
30276
  * useScheduler Hook
@@ -30343,7 +30343,7 @@ var useScheduler = function useScheduler() {
30343
30343
  if (pending && pending.length > 0) {
30344
30344
  setPendingResults(pending);
30345
30345
  // Call handlers for each pending result
30346
- var _iterator = _createForOfIteratorHelper$h(pending),
30346
+ var _iterator = _createForOfIteratorHelper$j(pending),
30347
30347
  _step;
30348
30348
  try {
30349
30349
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -32203,9 +32203,9 @@ function loadWidgetBundle(source, widgetName) {
32203
32203
  };
32204
32204
  }
32205
32205
 
32206
- 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; } } }; }
32207
- 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; } }
32208
- 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; }
32206
+ 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; } } }; }
32207
+ 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; } }
32208
+ 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; }
32209
32209
  /**
32210
32210
  * Validation utilities for grid-first dashboard architecture
32211
32211
  *
@@ -32444,7 +32444,7 @@ var validateCellMerge = function validateCellMerge(cellNumbers, grid) {
32444
32444
 
32445
32445
  // Validate each cell
32446
32446
  var cells = [];
32447
- var _iterator = _createForOfIteratorHelper$g(cellNumbers),
32447
+ var _iterator = _createForOfIteratorHelper$i(cellNumbers),
32448
32448
  _step;
32449
32449
  try {
32450
32450
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -32792,9 +32792,9 @@ var HARMONY_STRATEGIES = [{
32792
32792
  label: "Custom"
32793
32793
  }];
32794
32794
 
32795
- 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; } } }; }
32796
- 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; } }
32797
- 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; }
32795
+ 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; } } }; }
32796
+ 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; } }
32797
+ 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; }
32798
32798
  /**
32799
32799
  * markdownFormParser.js
32800
32800
  *
@@ -32841,7 +32841,7 @@ function detectColumnType(header, cellValues) {
32841
32841
  }
32842
32842
 
32843
32843
  // Check if any cell has an enum pattern (template placeholders)
32844
- var _iterator = _createForOfIteratorHelper$f(cellValues),
32844
+ var _iterator = _createForOfIteratorHelper$h(cellValues),
32845
32845
  _step;
32846
32846
  try {
32847
32847
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -32850,7 +32850,7 @@ function detectColumnType(header, cellValues) {
32850
32850
  if (options) {
32851
32851
  // Include all unique existing cell values as valid options
32852
32852
  var allOptions = new Set(options);
32853
- var _iterator2 = _createForOfIteratorHelper$f(cellValues),
32853
+ var _iterator2 = _createForOfIteratorHelper$h(cellValues),
32854
32854
  _step2;
32855
32855
  try {
32856
32856
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -33060,7 +33060,7 @@ function parse(markdown) {
33060
33060
  */
33061
33061
  function serialize(blocks) {
33062
33062
  var parts = [];
33063
- var _iterator3 = _createForOfIteratorHelper$f(blocks),
33063
+ var _iterator3 = _createForOfIteratorHelper$h(blocks),
33064
33064
  _step3;
33065
33065
  try {
33066
33066
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -33075,7 +33075,7 @@ function serialize(blocks) {
33075
33075
  parts.push("| " + block.columns.map(function () {
33076
33076
  return "------";
33077
33077
  }).join(" | ") + " |");
33078
- var _iterator4 = _createForOfIteratorHelper$f(block.rows),
33078
+ var _iterator4 = _createForOfIteratorHelper$h(block.rows),
33079
33079
  _step4;
33080
33080
  try {
33081
33081
  var _loop2 = function _loop2() {
@@ -33096,7 +33096,7 @@ function serialize(blocks) {
33096
33096
  break;
33097
33097
  }
33098
33098
  case "list":
33099
- var _iterator5 = _createForOfIteratorHelper$f(block.items),
33099
+ var _iterator5 = _createForOfIteratorHelper$h(block.items),
33100
33100
  _step5;
33101
33101
  try {
33102
33102
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -33110,7 +33110,7 @@ function serialize(blocks) {
33110
33110
  }
33111
33111
  break;
33112
33112
  case "blockquote":
33113
- var _iterator6 = _createForOfIteratorHelper$f(block.text.split("\n")),
33113
+ var _iterator6 = _createForOfIteratorHelper$h(block.text.split("\n")),
33114
33114
  _step6;
33115
33115
  try {
33116
33116
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
@@ -36611,9 +36611,9 @@ var ThemeManagerModal = function ThemeManagerModal(_ref) {
36611
36611
 
36612
36612
  function ownKeys$u(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
36613
36613
  function _objectSpread$u(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$u(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$u(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
36614
- 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; } } }; }
36615
- 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; } }
36616
- 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; }
36614
+ 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; } } }; }
36615
+ 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; } }
36616
+ 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; }
36617
36617
  var DASHBOARD_TAGS = ["productivity", "monitoring", "analytics", "communication", "developer", "sales", "marketing", "finance", "project-management", "social", "news", "utilities"];
36618
36618
  var BUMP_OPTIONS$1 = [{
36619
36619
  value: "patch",
@@ -36687,7 +36687,7 @@ function collectComponentConfigs() {
36687
36687
  // fixed "reference" entry.
36688
36688
  function seedSelections(plan, dashboardVisibility) {
36689
36689
  var selections = {};
36690
- var _iterator = _createForOfIteratorHelper$e(plan.widgets || []),
36690
+ var _iterator = _createForOfIteratorHelper$g(plan.widgets || []),
36691
36691
  _step;
36692
36692
  try {
36693
36693
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -37026,7 +37026,7 @@ var PublishDashboardModal = function PublishDashboardModal(_ref) {
37026
37026
  React.useEffect(function () {
37027
37027
  if (!isOpen || step !== 5 || !plan || defaultsLoading) return;
37028
37028
  var packagesToScan = [];
37029
- var _iterator2 = _createForOfIteratorHelper$e(plan.widgets || []),
37029
+ var _iterator2 = _createForOfIteratorHelper$g(plan.widgets || []),
37030
37030
  _step2;
37031
37031
  try {
37032
37032
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -37065,7 +37065,7 @@ var PublishDashboardModal = function PublishDashboardModal(_ref) {
37065
37065
  })).then(function (results) {
37066
37066
  setDefaultsByPackage(function (prev) {
37067
37067
  var next = _objectSpread$u({}, prev);
37068
- var _iterator3 = _createForOfIteratorHelper$e(results),
37068
+ var _iterator3 = _createForOfIteratorHelper$g(results),
37069
37069
  _step3;
37070
37070
  try {
37071
37071
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -37147,7 +37147,7 @@ var PublishDashboardModal = function PublishDashboardModal(_ref) {
37147
37147
  break;
37148
37148
  }
37149
37149
  seenPackages = new Set();
37150
- _iterator4 = _createForOfIteratorHelper$e(plan.widgets || []);
37150
+ _iterator4 = _createForOfIteratorHelper$g(plan.widgets || []);
37151
37151
  _context2.prev = 2;
37152
37152
  _iterator4.s();
37153
37153
  case 3:
@@ -38059,7 +38059,7 @@ function DependencyTable(_ref4) {
38059
38059
  // row. Each row shows the list of component widgets that live inside it
38060
38060
  // so the user knows what's getting published.
38061
38061
  var byKey = new Map();
38062
- var _iterator5 = _createForOfIteratorHelper$e(plan.widgets || []),
38062
+ var _iterator5 = _createForOfIteratorHelper$g(plan.widgets || []),
38063
38063
  _step6;
38064
38064
  try {
38065
38065
  for (_iterator5.s(); !(_step6 = _iterator5.n()).done;) {
@@ -38230,7 +38230,7 @@ function DefaultsReviewList(_ref6) {
38230
38230
  // stays aligned with Dependencies — no surprises about WHICH
38231
38231
  // package's defaults you're editing.
38232
38232
  var rows = [];
38233
- var _iterator6 = _createForOfIteratorHelper$e((plan === null || plan === void 0 ? void 0 : plan.widgets) || []),
38233
+ var _iterator6 = _createForOfIteratorHelper$g((plan === null || plan === void 0 ? void 0 : plan.widgets) || []),
38234
38234
  _step7;
38235
38235
  try {
38236
38236
  for (_iterator6.s(); !(_step7 = _iterator6.n()).done;) {
@@ -41903,9 +41903,9 @@ var McpCatalogDetail = function McpCatalogDetail(_ref) {
41903
41903
 
41904
41904
  function ownKeys$o(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
41905
41905
  function _objectSpread$o(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$o(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$o(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
41906
- 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; } } }; }
41907
- 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; } }
41908
- 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; }
41906
+ 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; } } }; }
41907
+ 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; } }
41908
+ 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; }
41909
41909
  function isValidWsUrl(url) {
41910
41910
  if (!url) return false;
41911
41911
  try {
@@ -41952,7 +41952,7 @@ function extractCredentialFields(url, headerRows) {
41952
41952
  fields.add(match[1]);
41953
41953
  }
41954
41954
  }
41955
- var _iterator = _createForOfIteratorHelper$d(headerRows),
41955
+ var _iterator = _createForOfIteratorHelper$f(headerRows),
41956
41956
  _step;
41957
41957
  try {
41958
41958
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -42057,7 +42057,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
42057
42057
  if (!url.trim()) errs.url = "WebSocket URL is required";else if (!isValidWsUrl(url)) errs.url = "URL must start with ws:// or wss://";
42058
42058
 
42059
42059
  // Check required credential fields are filled
42060
- var _iterator2 = _createForOfIteratorHelper$d(credentialFields),
42060
+ var _iterator2 = _createForOfIteratorHelper$f(credentialFields),
42061
42061
  _step2;
42062
42062
  try {
42063
42063
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -42080,7 +42080,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
42080
42080
 
42081
42081
  // Build headers object from rows
42082
42082
  var headers = {};
42083
- var _iterator3 = _createForOfIteratorHelper$d(headerRows),
42083
+ var _iterator3 = _createForOfIteratorHelper$f(headerRows),
42084
42084
  _step3;
42085
42085
  try {
42086
42086
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -42149,7 +42149,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
42149
42149
 
42150
42150
  // Build config from current form state (same as handleSave)
42151
42151
  headers = {};
42152
- _iterator4 = _createForOfIteratorHelper$d(headerRows);
42152
+ _iterator4 = _createForOfIteratorHelper$f(headerRows);
42153
42153
  try {
42154
42154
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
42155
42155
  row = _step4.value;
@@ -45608,9 +45608,9 @@ var InstallWidgetPicker = function InstallWidgetPicker(_ref2) {
45608
45608
 
45609
45609
  function ownKeys$l(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
45610
45610
  function _objectSpread$l(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$l(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$l(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
45611
- 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; } } }; }
45612
- 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; } }
45613
- 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; }
45611
+ 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; } } }; }
45612
+ 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; } }
45613
+ 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; }
45614
45614
  var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
45615
45615
  var onBack = _ref.onBack;
45616
45616
  var _useContext = React.useContext(DashReact.ThemeContext),
@@ -45717,7 +45717,7 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
45717
45717
  case 1:
45718
45718
  widgets = _context2.sent;
45719
45719
  names = new Set();
45720
- _iterator = _createForOfIteratorHelper$c(widgets);
45720
+ _iterator = _createForOfIteratorHelper$e(widgets);
45721
45721
  try {
45722
45722
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
45723
45723
  w = _step.value;
@@ -45822,12 +45822,12 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
45822
45822
  var checkToolConflicts = function checkToolConflicts(widget) {
45823
45823
  var conflicts = [];
45824
45824
  var packageWidgets = widget.packageWidgets || [];
45825
- var _iterator2 = _createForOfIteratorHelper$c(packageWidgets),
45825
+ var _iterator2 = _createForOfIteratorHelper$e(packageWidgets),
45826
45826
  _step2;
45827
45827
  try {
45828
45828
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
45829
45829
  var w = _step2.value;
45830
- var _iterator3 = _createForOfIteratorHelper$c(w.providers || []),
45830
+ var _iterator3 = _createForOfIteratorHelper$e(w.providers || []),
45831
45831
  _step3;
45832
45832
  try {
45833
45833
  var _loop = function _loop() {
@@ -45840,7 +45840,7 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
45840
45840
  prov = _ref5[1];
45841
45841
  return prov.type === p.type && prov.providerClass === "mcp" && prov.allowedTools;
45842
45842
  });
45843
- var _iterator4 = _createForOfIteratorHelper$c(matchingProviders),
45843
+ var _iterator4 = _createForOfIteratorHelper$e(matchingProviders),
45844
45844
  _step4;
45845
45845
  try {
45846
45846
  var _loop2 = function _loop2() {
@@ -46163,9 +46163,9 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
46163
46163
  });
46164
46164
  };
46165
46165
 
46166
- 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; } } }; }
46167
- 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; } }
46168
- 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; }
46166
+ 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; } } }; }
46167
+ 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; } }
46168
+ 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; }
46169
46169
 
46170
46170
  /**
46171
46171
  * Walk a workspace layout and collect widget component keys that are
@@ -46179,7 +46179,7 @@ function collectComponentsFromLayout(layout) {
46179
46179
 
46180
46180
  // Collect IDs of layout items that are actively referenced by grid cells
46181
46181
  var activeItemIds = new Set();
46182
- var _iterator = _createForOfIteratorHelper$b(layout),
46182
+ var _iterator = _createForOfIteratorHelper$d(layout),
46183
46183
  _step;
46184
46184
  try {
46185
46185
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -46199,7 +46199,7 @@ function collectComponentsFromLayout(layout) {
46199
46199
  } finally {
46200
46200
  _iterator.f();
46201
46201
  }
46202
- var _iterator2 = _createForOfIteratorHelper$b(layout),
46202
+ var _iterator2 = _createForOfIteratorHelper$d(layout),
46203
46203
  _step2;
46204
46204
  try {
46205
46205
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -46233,7 +46233,7 @@ function findWidgetUsage(componentNames, workspaces) {
46233
46233
  if (!(componentNames !== null && componentNames !== void 0 && componentNames.length) || !(workspaces !== null && workspaces !== void 0 && workspaces.length)) return [];
46234
46234
  var nameSet = new Set(componentNames);
46235
46235
  var results = [];
46236
- var _iterator3 = _createForOfIteratorHelper$b(workspaces),
46236
+ var _iterator3 = _createForOfIteratorHelper$d(workspaces),
46237
46237
  _step3;
46238
46238
  try {
46239
46239
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -46462,9 +46462,9 @@ var useInstalledWidgets = function useInstalledWidgets() {
46462
46462
  };
46463
46463
  };
46464
46464
 
46465
- 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; } } }; }
46466
- 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; } }
46467
- 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; }
46465
+ 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; } } }; }
46466
+ 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; } }
46467
+ 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; }
46468
46468
 
46469
46469
  /**
46470
46470
  * useWidgetUpdates — checks the registry for newer versions of installed widgets
@@ -46594,7 +46594,7 @@ function useWidgetUpdates() {
46594
46594
  // (install replaces the entire package, not just one widget)
46595
46595
  setUpdates(function (prev) {
46596
46596
  var next = new Map(prev);
46597
- var _iterator = _createForOfIteratorHelper$a(next),
46597
+ var _iterator = _createForOfIteratorHelper$c(next),
46598
46598
  _step;
46599
46599
  try {
46600
46600
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -49211,8 +49211,503 @@ var GrantManuallyModal = function GrantManuallyModal(_ref) {
49211
49211
  });
49212
49212
  };
49213
49213
 
49214
+ 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; } } }; }
49215
+ 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; } }
49216
+ 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; }
49217
+ /**
49218
+ * groupRowsByPackage
49219
+ *
49220
+ * Renderer-side grouping of `widgetMcp.listAll` rows into packages.
49221
+ * Each row is per-widget (e.g. `trops.google-drive.GDriveFileList`);
49222
+ * this helper reconstructs the owning packageId (`@trops/google-drive`)
49223
+ * by parsing the dotted form back to scoped npm-id form.
49224
+ *
49225
+ * Mirrors the parsing semantics in
49226
+ * `electron/security/resolveSiblings.js` so the two layers agree on
49227
+ * what counts as "the same package".
49228
+ *
49229
+ * Output is sorted alphabetically by packageId so the sidebar list is
49230
+ * stable across reloads. Rows that don't parse to a recognized
49231
+ * scope+name shape are bucketed under `packageId: null` (rendered as
49232
+ * "Ungrouped" in the UI) — covers the test probe (`@test/jit-probe`)
49233
+ * and any future ids that don't follow the dotted convention.
49234
+ */
49235
+
49236
+ function _parsePackageId(widgetId) {
49237
+ if (typeof widgetId !== "string" || !widgetId) return null;
49238
+ // Expected shape: "<scope>.<name>.<componentName>" — at least two dots.
49239
+ // Bail on anything else (e.g. "@test/jit-probe" goes to ungrouped).
49240
+ var parts = widgetId.split(".");
49241
+ if (parts.length < 3) return null;
49242
+ if (widgetId.startsWith("@")) return null;
49243
+ var scope = parts[0];
49244
+ var name = parts.slice(1, -1).join(".");
49245
+ if (!scope || !name) return null;
49246
+ return "@" + scope + "/" + name;
49247
+ }
49248
+ function _hasGrant(granted) {
49249
+ if (!granted || _typeof(granted) !== "object") return false;
49250
+ var servers = granted.servers || {};
49251
+ if (Object.keys(servers).some(function (k) {
49252
+ return servers[k];
49253
+ })) return true;
49254
+ var domains = granted.domains || {};
49255
+ if (domains.fs) {
49256
+ if ((domains.fs.readPaths || []).length > 0 || (domains.fs.writePaths || []).length > 0) {
49257
+ return true;
49258
+ }
49259
+ }
49260
+ if (domains.network) {
49261
+ if ((domains.network.hosts || []).length > 0) return true;
49262
+ }
49263
+ return false;
49264
+ }
49265
+ function groupRowsByPackage(rows) {
49266
+ if (!Array.isArray(rows)) return [];
49267
+ var byPackage = new Map();
49268
+ var _iterator = _createForOfIteratorHelper$b(rows),
49269
+ _step;
49270
+ try {
49271
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
49272
+ var row = _step.value;
49273
+ var packageId = _parsePackageId(row.widgetId);
49274
+ var key = packageId || "__ungrouped__";
49275
+ if (!byPackage.has(key)) {
49276
+ byPackage.set(key, {
49277
+ packageId: packageId,
49278
+ displayName: packageId || "Ungrouped",
49279
+ widgets: [],
49280
+ grantCount: 0,
49281
+ hasAnyGrant: false
49282
+ });
49283
+ }
49284
+ var group = byPackage.get(key);
49285
+ group.widgets.push(row);
49286
+ if (_hasGrant(row.granted)) {
49287
+ group.grantCount += 1;
49288
+ group.hasAnyGrant = true;
49289
+ }
49290
+ }
49291
+ } catch (err) {
49292
+ _iterator.e(err);
49293
+ } finally {
49294
+ _iterator.f();
49295
+ }
49296
+ return Array.from(byPackage.values()).sort(function (a, b) {
49297
+ return a.displayName.localeCompare(b.displayName);
49298
+ });
49299
+ }
49300
+
49301
+ /**
49302
+ * PrivacySecurityList
49303
+ *
49304
+ * Left column of the redesigned Privacy & Security section. Mirrors
49305
+ * the DashboardsSection list style (search + Tabs3 toggle + grouped
49306
+ * Sidebar items with badge counts).
49307
+ *
49308
+ * Search matches against packageId AND component names within each
49309
+ * package, so typing "search" finds the package containing
49310
+ * GDriveFileSearch.
49311
+ */
49312
+ function _matchesQuery(group, query) {
49313
+ if (!query) return true;
49314
+ var lower = query.toLowerCase();
49315
+ if (group.displayName.toLowerCase().includes(lower)) return true;
49316
+ // Match against component names within the package — typing
49317
+ // "search" surfaces the package containing GDriveFileSearch.
49318
+ return group.widgets.some(function (w) {
49319
+ return (w.widgetId || "").toLowerCase().includes(lower);
49320
+ });
49321
+ }
49322
+ var PrivacySecurityList = function PrivacySecurityList(_ref) {
49323
+ var packageGroups = _ref.packageGroups,
49324
+ selectedPackageKey = _ref.selectedPackageKey,
49325
+ onSelectPackage = _ref.onSelectPackage,
49326
+ searchQuery = _ref.searchQuery,
49327
+ onSearchChange = _ref.onSearchChange,
49328
+ viewMode = _ref.viewMode,
49329
+ onViewModeChange = _ref.onViewModeChange;
49330
+ var _useContext = React.useContext(DashReact.ThemeContext),
49331
+ currentTheme = _useContext.currentTheme;
49332
+ var headerStyles = DashReact.getStylesForItem(DashReact.themeObjects.PANEL_HEADER, currentTheme, {
49333
+ grow: false
49334
+ });
49335
+ var filtered = packageGroups.filter(function (g) {
49336
+ return _matchesQuery(g, searchQuery);
49337
+ });
49338
+ var withGrants = filtered.filter(function (g) {
49339
+ return g.hasAnyGrant;
49340
+ });
49341
+ var withoutGrants = filtered.filter(function (g) {
49342
+ return !g.hasAnyGrant;
49343
+ });
49344
+
49345
+ // packageId can be null (Ungrouped). Use displayName as a stable
49346
+ // selection key so null packageIds still differentiate.
49347
+ var keyFor = function keyFor(group) {
49348
+ return group.packageId == null ? "__ungrouped__" : group.packageId;
49349
+ };
49350
+ function renderPackageItem(group) {
49351
+ var key = keyFor(group);
49352
+ var isSelected = selectedPackageKey === key;
49353
+ return /*#__PURE__*/jsxRuntime.jsx(DashReact.Sidebar.Item, {
49354
+ icon: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
49355
+ icon: group.hasAnyGrant ? "shield-halved" : "shield",
49356
+ className: "h-3.5 w-3.5"
49357
+ }),
49358
+ active: isSelected,
49359
+ onClick: function onClick() {
49360
+ return onSelectPackage(key);
49361
+ },
49362
+ badge: String(group.grantCount),
49363
+ className: isSelected ? "bg-white/10 opacity-100" : "",
49364
+ children: group.displayName
49365
+ }, key);
49366
+ }
49367
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
49368
+ className: "flex flex-col h-full",
49369
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
49370
+ className: "flex-shrink-0 flex flex-col gap-2 px-3 py-2 ".concat(headerStyles.backgroundColor || ""),
49371
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.SearchInput, {
49372
+ value: searchQuery,
49373
+ onChange: onSearchChange,
49374
+ placeholder: "Search packages...",
49375
+ inputClassName: "py-1.5 text-xs"
49376
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tabs3, {
49377
+ value: viewMode,
49378
+ onValueChange: onViewModeChange,
49379
+ backgroundColor: "bg-transparent",
49380
+ spacing: "p-0",
49381
+ children: /*#__PURE__*/jsxRuntime.jsxs(DashReact.Tabs3.List, {
49382
+ className: "w-full flex",
49383
+ spacing: "p-0.5",
49384
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Tabs3.Trigger, {
49385
+ value: "grouped",
49386
+ className: "flex-1",
49387
+ children: "Grouped"
49388
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tabs3.Trigger, {
49389
+ value: "alphabetical",
49390
+ className: "flex-1",
49391
+ children: "A-Z"
49392
+ })]
49393
+ })
49394
+ })]
49395
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
49396
+ className: "flex-1 overflow-y-auto min-h-0",
49397
+ children: /*#__PURE__*/jsxRuntime.jsxs(DashReact.Sidebar.Content, {
49398
+ children: [viewMode === "grouped" ? /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
49399
+ children: [withGrants.length > 0 && /*#__PURE__*/jsxRuntime.jsx(DashReact.Sidebar.Group, {
49400
+ label: "Has grants",
49401
+ children: withGrants.map(renderPackageItem)
49402
+ }), withoutGrants.length > 0 && /*#__PURE__*/jsxRuntime.jsx(DashReact.Sidebar.Group, {
49403
+ label: "No grants",
49404
+ children: withoutGrants.map(renderPackageItem)
49405
+ })]
49406
+ }) : filtered.map(renderPackageItem), filtered.length === 0 && /*#__PURE__*/jsxRuntime.jsx("span", {
49407
+ className: "text-sm opacity-40 py-8 text-center block",
49408
+ children: searchQuery ? "No packages match your search" : "No widgets installed"
49409
+ })]
49410
+ })
49411
+ })]
49412
+ });
49413
+ };
49414
+
49415
+ var GrantOriginBadge = function GrantOriginBadge(_ref) {
49416
+ var origin = _ref.origin;
49417
+ var styles = {
49418
+ declared: {
49419
+ label: "declared",
49420
+ color: "text-green-400"
49421
+ },
49422
+ discovered: {
49423
+ label: "discovered",
49424
+ color: "text-amber-400"
49425
+ },
49426
+ manual: {
49427
+ label: "manual",
49428
+ color: "text-blue-400"
49429
+ },
49430
+ live: {
49431
+ label: "live",
49432
+ color: "text-purple-400"
49433
+ }
49434
+ };
49435
+ var style = styles[origin];
49436
+ if (!style) return null;
49437
+ return /*#__PURE__*/jsxRuntime.jsx("span", {
49438
+ className: "text-xs uppercase tracking-wider ".concat(style.color),
49439
+ title: "Origin: ".concat(origin),
49440
+ children: style.label
49441
+ });
49442
+ };
49443
+ var PermsList = function PermsList(_ref2) {
49444
+ var label = _ref2.label,
49445
+ declaredItems = _ref2.declaredItems,
49446
+ grantedItems = _ref2.grantedItems;
49447
+ if (declaredItems.length === 0 && grantedItems.length === 0) return null;
49448
+ var grantedSet = new Set(grantedItems);
49449
+ var declaredSet = new Set(declaredItems);
49450
+ var all = Array.from(new Set([].concat(_toConsumableArray(declaredItems), _toConsumableArray(grantedItems))));
49451
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
49452
+ className: "flex flex-col space-y-1",
49453
+ children: [/*#__PURE__*/jsxRuntime.jsx("span", {
49454
+ className: "text-xs opacity-50",
49455
+ children: label
49456
+ }), all.map(function (item) {
49457
+ var isGranted = grantedSet.has(item);
49458
+ var isDeclared = declaredSet.has(item);
49459
+ var isStale = isGranted && !isDeclared;
49460
+ return /*#__PURE__*/jsxRuntime.jsxs("span", {
49461
+ className: "text-xs font-mono break-all ".concat(isStale ? "text-amber-400" : isGranted ? "opacity-100" : "opacity-50 line-through"),
49462
+ children: [item, isStale && /*#__PURE__*/jsxRuntime.jsx("span", {
49463
+ className: "ml-2 not-italic font-sans normal-case tracking-normal text-amber-400",
49464
+ children: "(stale \u2014 widget no longer requests this; consider revoking)"
49465
+ })]
49466
+ }, item);
49467
+ })]
49468
+ });
49469
+ };
49470
+
49471
+ /**
49472
+ * True when the granted entry has at least one item AND every granted
49473
+ * item is missing from the current declared block. Used to surface a
49474
+ * "this whole server's grant looks unused" suggestion at the row level.
49475
+ */
49476
+ function isServerEntirelyStale(decl, grant) {
49477
+ if (!grant) return false;
49478
+ var declTools = new Set(decl.tools || []);
49479
+ var declRead = new Set(decl.readPaths || []);
49480
+ var declWrite = new Set(decl.writePaths || []);
49481
+ var grantedTools = grant.tools || [];
49482
+ var grantedRead = grant.readPaths || [];
49483
+ var grantedWrite = grant.writePaths || [];
49484
+ var total = grantedTools.length + grantedRead.length + grantedWrite.length;
49485
+ if (total === 0) return false;
49486
+ var stale = grantedTools.every(function (t) {
49487
+ return !declTools.has(t);
49488
+ }) && grantedRead.every(function (p) {
49489
+ return !declRead.has(p);
49490
+ }) && grantedWrite.every(function (p) {
49491
+ return !declWrite.has(p);
49492
+ });
49493
+ return stale;
49494
+ }
49495
+ var WidgetGrantRow = function WidgetGrantRow(_ref3) {
49496
+ var _granted$domains, _granted$domains2;
49497
+ var widgetId = _ref3.widgetId,
49498
+ declared = _ref3.declared,
49499
+ granted = _ref3.granted,
49500
+ hasManifest = _ref3.hasManifest,
49501
+ grantOrigin = _ref3.grantOrigin,
49502
+ onRevokeWidget = _ref3.onRevokeWidget,
49503
+ onRevokeServer = _ref3.onRevokeServer,
49504
+ onGrantManually = _ref3.onGrantManually;
49505
+ var declaredServers = declared && declared.servers || {};
49506
+ var grantedServers = granted && granted.servers || {};
49507
+ var allServerNames = Array.from(new Set([].concat(_toConsumableArray(Object.keys(declaredServers)), _toConsumableArray(Object.keys(grantedServers)))));
49508
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
49509
+ className: "flex flex-col space-y-3 border border-gray-700 rounded p-3",
49510
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
49511
+ className: "flex flex-row items-center justify-between gap-2",
49512
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
49513
+ className: "flex flex-row items-center gap-2 min-w-0",
49514
+ children: [/*#__PURE__*/jsxRuntime.jsx("span", {
49515
+ className: "text-sm font-mono break-all",
49516
+ children: widgetId
49517
+ }), grantOrigin && /*#__PURE__*/jsxRuntime.jsx(GrantOriginBadge, {
49518
+ origin: grantOrigin
49519
+ }), !hasManifest && !granted && /*#__PURE__*/jsxRuntime.jsx("span", {
49520
+ className: "text-xs uppercase tracking-wider text-amber-400",
49521
+ children: "no manifest"
49522
+ })]
49523
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
49524
+ className: "flex flex-row gap-2",
49525
+ children: [!hasManifest && !granted && /*#__PURE__*/jsxRuntime.jsx(DashReact.Button, {
49526
+ title: "Grant manually",
49527
+ onClick: onGrantManually
49528
+ }), Object.keys(grantedServers).length > 0 && /*#__PURE__*/jsxRuntime.jsx(DashReact.Button, {
49529
+ title: "Revoke all",
49530
+ onClick: onRevokeWidget
49531
+ })]
49532
+ })]
49533
+ }), !declared && !granted && /*#__PURE__*/jsxRuntime.jsx("span", {
49534
+ className: "text-xs opacity-50",
49535
+ children: "This widget did not declare MCP permissions and the install-time scanner found nothing. Use Grant manually if you trust it."
49536
+ }), allServerNames.map(function (serverName) {
49537
+ var decl = declaredServers[serverName] || {};
49538
+ var grant = grantedServers[serverName];
49539
+ var allStale = isServerEntirelyStale(decl, grant);
49540
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
49541
+ className: "flex flex-col space-y-2 border-t border-gray-800 pt-2",
49542
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
49543
+ className: "flex flex-row items-center justify-between",
49544
+ children: [/*#__PURE__*/jsxRuntime.jsxs("span", {
49545
+ className: "text-xs uppercase tracking-wider opacity-70",
49546
+ children: [serverName, !grant && /*#__PURE__*/jsxRuntime.jsx("span", {
49547
+ className: "ml-2 text-amber-400 normal-case tracking-normal",
49548
+ children: "(declared, not granted)"
49549
+ })]
49550
+ }), grant && /*#__PURE__*/jsxRuntime.jsx(DashReact.Button, {
49551
+ title: "Revoke server",
49552
+ onClick: function onClick() {
49553
+ return onRevokeServer(serverName);
49554
+ }
49555
+ })]
49556
+ }), allStale && /*#__PURE__*/jsxRuntime.jsx("div", {
49557
+ className: "text-xs text-amber-400 bg-amber-900 bg-opacity-20 border border-amber-700 rounded px-2 py-1.5",
49558
+ children: "All grants on this server are no longer in the manifest \u2014 the widget likely no longer uses this server. Consider revoking."
49559
+ }), /*#__PURE__*/jsxRuntime.jsx(PermsList, {
49560
+ label: "Tools",
49561
+ declaredItems: decl.tools || [],
49562
+ grantedItems: (grant === null || grant === void 0 ? void 0 : grant.tools) || []
49563
+ }), /*#__PURE__*/jsxRuntime.jsx(PermsList, {
49564
+ label: "Read paths",
49565
+ declaredItems: decl.readPaths || [],
49566
+ grantedItems: (grant === null || grant === void 0 ? void 0 : grant.readPaths) || []
49567
+ }), /*#__PURE__*/jsxRuntime.jsx(PermsList, {
49568
+ label: "Write paths",
49569
+ declaredItems: decl.writePaths || [],
49570
+ grantedItems: (grant === null || grant === void 0 ? void 0 : grant.writePaths) || []
49571
+ })]
49572
+ }, serverName);
49573
+ }), (granted === null || granted === void 0 || (_granted$domains = granted.domains) === null || _granted$domains === void 0 ? void 0 : _granted$domains.fs) && ((granted.domains.fs.readPaths || []).length > 0 || (granted.domains.fs.writePaths || []).length > 0) && /*#__PURE__*/jsxRuntime.jsxs("div", {
49574
+ className: "flex flex-col space-y-2 border-t border-gray-800 pt-2",
49575
+ children: [/*#__PURE__*/jsxRuntime.jsx("span", {
49576
+ className: "text-xs uppercase tracking-wider opacity-70",
49577
+ children: "filesystem"
49578
+ }), Array.isArray(granted.domains.fs.actions) && granted.domains.fs.actions.length > 0 && /*#__PURE__*/jsxRuntime.jsx(PermsList, {
49579
+ label: "Actions",
49580
+ declaredItems: [],
49581
+ grantedItems: granted.domains.fs.actions
49582
+ }), /*#__PURE__*/jsxRuntime.jsx(PermsList, {
49583
+ label: "Read filenames",
49584
+ declaredItems: [],
49585
+ grantedItems: granted.domains.fs.readPaths || []
49586
+ }), /*#__PURE__*/jsxRuntime.jsx(PermsList, {
49587
+ label: "Write filenames",
49588
+ declaredItems: [],
49589
+ grantedItems: granted.domains.fs.writePaths || []
49590
+ })]
49591
+ }), (granted === null || granted === void 0 || (_granted$domains2 = granted.domains) === null || _granted$domains2 === void 0 ? void 0 : _granted$domains2.network) && (granted.domains.network.hosts || []).length > 0 && /*#__PURE__*/jsxRuntime.jsxs("div", {
49592
+ className: "flex flex-col space-y-2 border-t border-gray-800 pt-2",
49593
+ children: [/*#__PURE__*/jsxRuntime.jsx("span", {
49594
+ className: "text-xs uppercase tracking-wider opacity-70",
49595
+ children: "network"
49596
+ }), Array.isArray(granted.domains.network.actions) && granted.domains.network.actions.length > 0 && /*#__PURE__*/jsxRuntime.jsx(PermsList, {
49597
+ label: "Actions",
49598
+ declaredItems: [],
49599
+ grantedItems: granted.domains.network.actions
49600
+ }), /*#__PURE__*/jsxRuntime.jsx(PermsList, {
49601
+ label: "Allowed hosts",
49602
+ declaredItems: [],
49603
+ grantedItems: granted.domains.network.hosts || []
49604
+ })]
49605
+ })]
49606
+ });
49607
+ };
49608
+
49609
+ var WidgetPackageDetail = function WidgetPackageDetail(_ref) {
49610
+ var packageGroup = _ref.packageGroup,
49611
+ _onRevokeWidget = _ref.onRevokeWidget,
49612
+ _onRevokeServer = _ref.onRevokeServer,
49613
+ _onGrantManually = _ref.onGrantManually,
49614
+ onRevokePackage = _ref.onRevokePackage;
49615
+ var _useState = React.useState(false),
49616
+ _useState2 = _slicedToArray(_useState, 2),
49617
+ confirmRevokeAll = _useState2[0],
49618
+ setConfirmRevokeAll = _useState2[1];
49619
+ if (!packageGroup) return null;
49620
+ var packageId = packageGroup.packageId,
49621
+ displayName = packageGroup.displayName,
49622
+ widgets = packageGroup.widgets,
49623
+ grantCount = packageGroup.grantCount,
49624
+ hasAnyGrant = packageGroup.hasAnyGrant;
49625
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
49626
+ className: "flex flex-col flex-1 min-h-0 overflow-y-auto",
49627
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
49628
+ className: "flex flex-col space-y-4 p-6",
49629
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
49630
+ className: "flex flex-row items-start justify-between gap-4",
49631
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
49632
+ className: "flex flex-col min-w-0",
49633
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
49634
+ className: "flex flex-row items-center gap-2 min-w-0",
49635
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
49636
+ icon: packageId ? "box" : "circle-question",
49637
+ className: "h-4 w-4 opacity-70"
49638
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
49639
+ className: "text-base font-semibold text-gray-100 break-all",
49640
+ children: displayName
49641
+ })]
49642
+ }), /*#__PURE__*/jsxRuntime.jsxs("span", {
49643
+ className: "text-xs opacity-60 mt-1",
49644
+ children: [widgets.length, " widget", widgets.length === 1 ? "" : "s", " installed", hasAnyGrant ? " \xB7 ".concat(grantCount, " with grants") : " · no grants"]
49645
+ })]
49646
+ }), hasAnyGrant && /*#__PURE__*/jsxRuntime.jsx(DashReact.Button, {
49647
+ title: "Revoke all in package",
49648
+ onClick: function onClick() {
49649
+ return setConfirmRevokeAll(true);
49650
+ },
49651
+ backgroundColor: "bg-red-700",
49652
+ textColor: "text-white",
49653
+ hoverBackgroundColor: "hover:bg-red-600"
49654
+ })]
49655
+ }), confirmRevokeAll && /*#__PURE__*/jsxRuntime.jsxs("div", {
49656
+ className: "flex flex-col gap-2 border border-amber-700 bg-amber-900 bg-opacity-20 rounded p-3",
49657
+ children: [/*#__PURE__*/jsxRuntime.jsxs("span", {
49658
+ className: "text-xs text-amber-300",
49659
+ children: ["Revoke grants for all ", grantCount, " widget", grantCount === 1 ? "" : "s", " in", " ", /*#__PURE__*/jsxRuntime.jsx("span", {
49660
+ className: "font-mono",
49661
+ children: displayName
49662
+ }), "? This cannot be undone \u2014 affected widgets will re-prompt next time they call a gated API."]
49663
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
49664
+ className: "flex flex-row gap-2 justify-end",
49665
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Button, {
49666
+ title: "Cancel",
49667
+ onClick: function onClick() {
49668
+ return setConfirmRevokeAll(false);
49669
+ }
49670
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Button, {
49671
+ title: "Revoke all",
49672
+ backgroundColor: "bg-red-700",
49673
+ textColor: "text-white",
49674
+ hoverBackgroundColor: "hover:bg-red-600",
49675
+ onClick: function onClick() {
49676
+ setConfirmRevokeAll(false);
49677
+ onRevokePackage && onRevokePackage(packageGroup);
49678
+ }
49679
+ })]
49680
+ })]
49681
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
49682
+ className: "flex flex-col space-y-3",
49683
+ children: widgets.map(function (row) {
49684
+ return /*#__PURE__*/jsxRuntime.jsx(WidgetGrantRow, {
49685
+ widgetId: row.widgetId,
49686
+ declared: row.declared,
49687
+ granted: row.granted,
49688
+ hasManifest: row.hasManifest,
49689
+ grantOrigin: row.grantOrigin,
49690
+ onRevokeWidget: function onRevokeWidget() {
49691
+ return _onRevokeWidget(row.widgetId);
49692
+ },
49693
+ onRevokeServer: function onRevokeServer(serverName) {
49694
+ return _onRevokeServer(row.widgetId, serverName);
49695
+ },
49696
+ onGrantManually: function onGrantManually() {
49697
+ return _onGrantManually(row.widgetId);
49698
+ }
49699
+ }, row.widgetId);
49700
+ })
49701
+ })]
49702
+ })
49703
+ });
49704
+ };
49705
+
49214
49706
  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; }
49215
49707
  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; }
49708
+ 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; } } }; }
49709
+ 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; } }
49710
+ 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; }
49216
49711
  var PrivacySecuritySection = function PrivacySecuritySection() {
49217
49712
  var _useState = React.useState([]),
49218
49713
  _useState2 = _slicedToArray(_useState, 2),
@@ -49234,6 +49729,26 @@ var PrivacySecuritySection = function PrivacySecuritySection() {
49234
49729
  _useState0 = _slicedToArray(_useState9, 2),
49235
49730
  knownServerNames = _useState0[0],
49236
49731
  setKnownServerNames = _useState0[1];
49732
+ var _useState1 = React.useState(""),
49733
+ _useState10 = _slicedToArray(_useState1, 2),
49734
+ searchQuery = _useState10[0],
49735
+ setSearchQuery = _useState10[1];
49736
+ var _useState11 = React.useState("grouped"),
49737
+ _useState12 = _slicedToArray(_useState11, 2),
49738
+ viewMode = _useState12[0],
49739
+ setViewMode = _useState12[1];
49740
+ var _useState13 = React.useState(null),
49741
+ _useState14 = _slicedToArray(_useState13, 2),
49742
+ selectedPackageKey = _useState14[0],
49743
+ setSelectedPackageKey = _useState14[1];
49744
+ // Two top-level tabs so the inline `HowThisWorksPanel` (which carries
49745
+ // example fixtures and is intentionally tall) doesn't push the
49746
+ // package list/detail below the viewport. "permissions" is the
49747
+ // default and contains the actual UI users came here to use.
49748
+ var _useState15 = React.useState("permissions"),
49749
+ _useState16 = _slicedToArray(_useState15, 2),
49750
+ activeTab = _useState16[0],
49751
+ setActiveTab = _useState16[1];
49237
49752
  var reload = React.useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
49238
49753
  var _api$widgetMcp, api, result, _t;
49239
49754
  return _regeneratorRuntime.wrap(function (_context) {
@@ -49274,10 +49789,6 @@ var PrivacySecuritySection = function PrivacySecuritySection() {
49274
49789
  React.useEffect(function () {
49275
49790
  reload();
49276
49791
  }, [reload]);
49277
-
49278
- // Pull catalog server names once, used as a datalist hint in the
49279
- // manual-grant modal. Best-effort — if the API isn't there, the
49280
- // datalist is just empty.
49281
49792
  React.useEffect(function () {
49282
49793
  var cancelled = false;
49283
49794
  _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
@@ -49368,6 +49879,63 @@ var PrivacySecuritySection = function PrivacySecuritySection() {
49368
49879
  return _ref4.apply(this, arguments);
49369
49880
  };
49370
49881
  }();
49882
+ var revokePackage = /*#__PURE__*/function () {
49883
+ var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5(packageGroup) {
49884
+ var _iterator, _step, _window$mainApi3, _window$mainApi3$revo, w, _t5, _t6;
49885
+ return _regeneratorRuntime.wrap(function (_context5) {
49886
+ while (1) switch (_context5.prev = _context5.next) {
49887
+ case 0:
49888
+ _context5.prev = 0;
49889
+ _iterator = _createForOfIteratorHelper$a(packageGroup.widgets);
49890
+ _context5.prev = 1;
49891
+ _iterator.s();
49892
+ case 2:
49893
+ if ((_step = _iterator.n()).done) {
49894
+ _context5.next = 5;
49895
+ break;
49896
+ }
49897
+ w = _step.value;
49898
+ if (w.granted) {
49899
+ _context5.next = 3;
49900
+ break;
49901
+ }
49902
+ return _context5.abrupt("continue", 4);
49903
+ case 3:
49904
+ _context5.next = 4;
49905
+ return (_window$mainApi3 = window.mainApi) === null || _window$mainApi3 === void 0 || (_window$mainApi3 = _window$mainApi3.widgetMcp) === null || _window$mainApi3 === void 0 || (_window$mainApi3$revo = _window$mainApi3.revoke) === null || _window$mainApi3$revo === void 0 ? void 0 : _window$mainApi3$revo.call(_window$mainApi3, w.widgetId);
49906
+ case 4:
49907
+ _context5.next = 2;
49908
+ break;
49909
+ case 5:
49910
+ _context5.next = 7;
49911
+ break;
49912
+ case 6:
49913
+ _context5.prev = 6;
49914
+ _t5 = _context5["catch"](1);
49915
+ _iterator.e(_t5);
49916
+ case 7:
49917
+ _context5.prev = 7;
49918
+ _iterator.f();
49919
+ return _context5.finish(7);
49920
+ case 8:
49921
+ reload();
49922
+ _context5.next = 10;
49923
+ break;
49924
+ case 9:
49925
+ _context5.prev = 9;
49926
+ _t6 = _context5["catch"](0);
49927
+ setError((_t6 === null || _t6 === void 0 ? void 0 : _t6.message) || String(_t6));
49928
+ reload();
49929
+ case 10:
49930
+ case "end":
49931
+ return _context5.stop();
49932
+ }
49933
+ }, _callee5, null, [[0, 9], [1, 6, 7, 8]]);
49934
+ }));
49935
+ return function revokePackage(_x4) {
49936
+ return _ref5.apply(this, arguments);
49937
+ };
49938
+ }();
49371
49939
  if (loading) {
49372
49940
  return /*#__PURE__*/jsxRuntime.jsx("div", {
49373
49941
  className: "flex flex-col p-6",
@@ -49377,45 +49945,73 @@ var PrivacySecuritySection = function PrivacySecuritySection() {
49377
49945
  })
49378
49946
  });
49379
49947
  }
49948
+ var packageGroups = groupRowsByPackage(rows);
49949
+ var selectedGroup = selectedPackageKey == null ? null : packageGroups.find(function (g) {
49950
+ return g.packageId == null ? selectedPackageKey === "__ungrouped__" : g.packageId === selectedPackageKey;
49951
+ }) || null;
49952
+ var listContent = /*#__PURE__*/jsxRuntime.jsx(PrivacySecurityList, {
49953
+ packageGroups: packageGroups,
49954
+ selectedPackageKey: selectedPackageKey,
49955
+ onSelectPackage: setSelectedPackageKey,
49956
+ searchQuery: searchQuery,
49957
+ onSearchChange: setSearchQuery,
49958
+ viewMode: viewMode,
49959
+ onViewModeChange: setViewMode
49960
+ });
49961
+ var detailContent = selectedGroup ? /*#__PURE__*/jsxRuntime.jsx(WidgetPackageDetail, {
49962
+ packageGroup: selectedGroup,
49963
+ onRevokeWidget: revokeWidget,
49964
+ onRevokeServer: revokeServer,
49965
+ onGrantManually: function onGrantManually(widgetId) {
49966
+ return setManualGrantWidgetId(widgetId);
49967
+ },
49968
+ onRevokePackage: revokePackage
49969
+ }) : null;
49380
49970
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
49381
- className: "flex flex-col space-y-6 p-6",
49971
+ className: "flex flex-col flex-1 min-h-0",
49382
49972
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
49383
- className: "flex flex-col space-y-2",
49384
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading3, {
49385
- title: "Widget MCP permissions",
49386
- padding: false
49387
- }), /*#__PURE__*/jsxRuntime.jsx("span", {
49388
- className: "text-xs opacity-60",
49389
- children: "Granting access here is a trust signal about the widget \u2014 not a per-dashboard switch."
49973
+ className: "flex-shrink-0 flex flex-col space-y-3 px-6 pt-6 pb-3 border-b border-gray-800",
49974
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
49975
+ className: "flex flex-col space-y-2",
49976
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading3, {
49977
+ title: "Widget MCP permissions",
49978
+ padding: false
49979
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
49980
+ className: "text-xs opacity-60",
49981
+ children: "Granting access here is a trust signal about the widget \u2014 not a per-dashboard switch."
49982
+ })]
49983
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tabs3, {
49984
+ value: activeTab,
49985
+ onValueChange: setActiveTab,
49986
+ backgroundColor: "bg-transparent",
49987
+ spacing: "p-0",
49988
+ children: /*#__PURE__*/jsxRuntime.jsxs(DashReact.Tabs3.List, {
49989
+ spacing: "p-0.5",
49990
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Tabs3.Trigger, {
49991
+ value: "permissions",
49992
+ children: "Permissions"
49993
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tabs3.Trigger, {
49994
+ value: "help",
49995
+ children: "Help"
49996
+ })]
49997
+ })
49998
+ }), error && /*#__PURE__*/jsxRuntime.jsx("div", {
49999
+ className: "text-xs text-red-400 bg-red-900 bg-opacity-20 border border-red-700 rounded p-3",
50000
+ children: error
49390
50001
  })]
49391
- }), /*#__PURE__*/jsxRuntime.jsx(EnforcementToggles, {}), /*#__PURE__*/jsxRuntime.jsx(HowThisWorksPanel, {}), error && /*#__PURE__*/jsxRuntime.jsx("div", {
49392
- className: "text-xs text-red-400 bg-red-900 bg-opacity-20 border border-red-700 rounded p-3",
49393
- children: error
49394
- }), rows.length === 0 && /*#__PURE__*/jsxRuntime.jsx("div", {
49395
- className: "text-sm opacity-60",
49396
- children: "No widgets installed."
49397
- }), rows.map(function (_ref5) {
49398
- var widgetId = _ref5.widgetId,
49399
- declared = _ref5.declared,
49400
- granted = _ref5.granted,
49401
- hasManifest = _ref5.hasManifest,
49402
- grantOrigin = _ref5.grantOrigin;
49403
- return /*#__PURE__*/jsxRuntime.jsx(WidgetGrantRow, {
49404
- widgetId: widgetId,
49405
- declared: declared,
49406
- granted: granted,
49407
- hasManifest: hasManifest,
49408
- grantOrigin: grantOrigin,
49409
- onRevokeWidget: function onRevokeWidget() {
49410
- return revokeWidget(widgetId);
49411
- },
49412
- onRevokeServer: function onRevokeServer(serverName) {
49413
- return revokeServer(widgetId, serverName);
49414
- },
49415
- onGrantManually: function onGrantManually() {
49416
- return setManualGrantWidgetId(widgetId);
49417
- }
49418
- }, widgetId);
50002
+ }), activeTab === "permissions" ? /*#__PURE__*/jsxRuntime.jsxs("div", {
50003
+ className: "flex flex-col flex-1 min-h-0",
50004
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
50005
+ className: "flex-shrink-0 px-6 py-4 border-b border-gray-800",
50006
+ children: /*#__PURE__*/jsxRuntime.jsx(EnforcementToggles, {})
50007
+ }), /*#__PURE__*/jsxRuntime.jsx(SectionLayout, {
50008
+ listContent: listContent,
50009
+ detailContent: detailContent,
50010
+ emptyDetailMessage: "Select a package to view its grants"
50011
+ })]
50012
+ }) : /*#__PURE__*/jsxRuntime.jsx("div", {
50013
+ className: "flex-1 overflow-y-auto p-6",
50014
+ children: /*#__PURE__*/jsxRuntime.jsx(HowThisWorksPanel, {})
49419
50015
  }), /*#__PURE__*/jsxRuntime.jsx(GrantManuallyModal, {
49420
50016
  isOpen: !!manualGrantWidgetId,
49421
50017
  setIsOpen: function setIsOpen(open) {
@@ -49452,19 +50048,19 @@ var EnforcementToggles = function EnforcementToggles() {
49452
50048
  // pendingDisable: { flag: 'enforce' | 'jit' } | null
49453
50049
  // When the user toggles a flag from ON → OFF, we open a confirm modal
49454
50050
  // before persisting. ON → ON or OFF → ON go through immediately.
49455
- var _useState1 = React.useState(null),
49456
- _useState10 = _slicedToArray(_useState1, 2),
49457
- pendingDisable = _useState10[0],
49458
- setPendingDisable = _useState10[1];
50051
+ var _useState17 = React.useState(null),
50052
+ _useState18 = _slicedToArray(_useState17, 2),
50053
+ pendingDisable = _useState18[0],
50054
+ setPendingDisable = _useState18[1];
49459
50055
 
49460
50056
  // lastTestResult: feedback for the "Test prompt" button. Tells the
49461
50057
  // user whether their JIT response was actually persisted, so they
49462
50058
  // don't have to interpret the post-grant "server not connected"
49463
50059
  // error as failure.
49464
- var _useState11 = React.useState(null),
49465
- _useState12 = _slicedToArray(_useState11, 2),
49466
- lastTestResult = _useState12[0],
49467
- setLastTestResult = _useState12[1];
50060
+ var _useState19 = React.useState(null),
50061
+ _useState20 = _slicedToArray(_useState19, 2),
50062
+ lastTestResult = _useState20[0],
50063
+ setLastTestResult = _useState20[1];
49468
50064
 
49469
50065
  // Auto-clear the test result after 30 seconds so it doesn't linger
49470
50066
  // forever after a successful test.
@@ -49534,22 +50130,22 @@ var EnforcementToggles = function EnforcementToggles() {
49534
50130
  // message includes "JIT consent timed out" → timeout
49535
50131
  // anything else → unknown error
49536
50132
  var triggerTestJitPrompt = /*#__PURE__*/function () {
49537
- var _ref6 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
49538
- var _window$mainApi3, _window$mainApi3$call, result, msg, _t5;
49539
- return _regeneratorRuntime.wrap(function (_context5) {
49540
- while (1) switch (_context5.prev = _context5.next) {
50133
+ var _ref6 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {
50134
+ var _window$mainApi4, _window$mainApi4$call, result, msg, _t7;
50135
+ return _regeneratorRuntime.wrap(function (_context6) {
50136
+ while (1) switch (_context6.prev = _context6.next) {
49541
50137
  case 0:
49542
50138
  setLastTestResult({
49543
50139
  status: "pending",
49544
50140
  message: "Waiting for response…"
49545
50141
  });
49546
- _context5.prev = 1;
49547
- _context5.next = 2;
49548
- return (_window$mainApi3 = window.mainApi) === null || _window$mainApi3 === void 0 || (_window$mainApi3 = _window$mainApi3.mcp) === null || _window$mainApi3 === void 0 || (_window$mainApi3$call = _window$mainApi3.callTool) === null || _window$mainApi3$call === void 0 ? void 0 : _window$mainApi3$call.call(_window$mainApi3, "test-server", "test_tool", {
50142
+ _context6.prev = 1;
50143
+ _context6.next = 2;
50144
+ return (_window$mainApi4 = window.mainApi) === null || _window$mainApi4 === void 0 || (_window$mainApi4 = _window$mainApi4.mcp) === null || _window$mainApi4 === void 0 || (_window$mainApi4$call = _window$mainApi4.callTool) === null || _window$mainApi4$call === void 0 ? void 0 : _window$mainApi4$call.call(_window$mainApi4, "test-server", "test_tool", {
49549
50145
  path: "/tmp/jit-probe.txt"
49550
50146
  }, null, "@test/jit-probe");
49551
50147
  case 2:
49552
- result = _context5.sent;
50148
+ result = _context6.sent;
49553
50149
  // callTool resolves to { error, message } on the main side; classify.
49554
50150
  msg = (result === null || result === void 0 ? void 0 : result.message) || JSON.stringify(result || {});
49555
50151
  if (/server not connected/i.test(msg)) {
@@ -49573,20 +50169,20 @@ var EnforcementToggles = function EnforcementToggles() {
49573
50169
  message: "Unexpected: " + msg
49574
50170
  });
49575
50171
  }
49576
- _context5.next = 4;
50172
+ _context6.next = 4;
49577
50173
  break;
49578
50174
  case 3:
49579
- _context5.prev = 3;
49580
- _t5 = _context5["catch"](1);
50175
+ _context6.prev = 3;
50176
+ _t7 = _context6["catch"](1);
49581
50177
  setLastTestResult({
49582
50178
  status: "error",
49583
- message: "Test threw: " + ((_t5 === null || _t5 === void 0 ? void 0 : _t5.message) || String(_t5))
50179
+ message: "Test threw: " + ((_t7 === null || _t7 === void 0 ? void 0 : _t7.message) || String(_t7))
49584
50180
  });
49585
50181
  case 4:
49586
50182
  case "end":
49587
- return _context5.stop();
50183
+ return _context6.stop();
49588
50184
  }
49589
- }, _callee5, null, [[1, 3]]);
50185
+ }, _callee6, null, [[1, 3]]);
49590
50186
  }));
49591
50187
  return function triggerTestJitPrompt() {
49592
50188
  return _ref6.apply(this, arguments);
@@ -49723,198 +50319,6 @@ var ConfirmDisableInline = function ConfirmDisableInline(_ref7) {
49723
50319
  })]
49724
50320
  });
49725
50321
  };
49726
- var WidgetGrantRow = function WidgetGrantRow(_ref8) {
49727
- var _granted$domains, _granted$domains2;
49728
- var widgetId = _ref8.widgetId,
49729
- declared = _ref8.declared,
49730
- granted = _ref8.granted,
49731
- hasManifest = _ref8.hasManifest,
49732
- grantOrigin = _ref8.grantOrigin,
49733
- onRevokeWidget = _ref8.onRevokeWidget,
49734
- onRevokeServer = _ref8.onRevokeServer,
49735
- onGrantManually = _ref8.onGrantManually;
49736
- var declaredServers = declared && declared.servers || {};
49737
- var grantedServers = granted && granted.servers || {};
49738
- var allServerNames = Array.from(new Set([].concat(_toConsumableArray(Object.keys(declaredServers)), _toConsumableArray(Object.keys(grantedServers)))));
49739
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
49740
- className: "flex flex-col space-y-3 border border-gray-700 rounded p-3",
49741
- children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
49742
- className: "flex flex-row items-center justify-between gap-2",
49743
- children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
49744
- className: "flex flex-row items-center gap-2 min-w-0",
49745
- children: [/*#__PURE__*/jsxRuntime.jsx("span", {
49746
- className: "text-sm font-mono break-all",
49747
- children: widgetId
49748
- }), grantOrigin && /*#__PURE__*/jsxRuntime.jsx(GrantOriginBadge, {
49749
- origin: grantOrigin
49750
- }), !hasManifest && !granted && /*#__PURE__*/jsxRuntime.jsx("span", {
49751
- className: "text-xs uppercase tracking-wider text-amber-400",
49752
- children: "no manifest"
49753
- })]
49754
- }), /*#__PURE__*/jsxRuntime.jsxs("div", {
49755
- className: "flex flex-row gap-2",
49756
- children: [!hasManifest && !granted && /*#__PURE__*/jsxRuntime.jsx(DashReact.Button, {
49757
- title: "Grant manually",
49758
- onClick: onGrantManually
49759
- }), Object.keys(grantedServers).length > 0 && /*#__PURE__*/jsxRuntime.jsx(DashReact.Button, {
49760
- title: "Revoke all",
49761
- onClick: onRevokeWidget
49762
- })]
49763
- })]
49764
- }), !declared && !granted && /*#__PURE__*/jsxRuntime.jsx("span", {
49765
- className: "text-xs opacity-50",
49766
- children: "This widget did not declare MCP permissions and the install-time scanner found nothing. Use Grant manually if you trust it."
49767
- }), allServerNames.map(function (serverName) {
49768
- var decl = declaredServers[serverName] || {};
49769
- var grant = grantedServers[serverName];
49770
- var allStale = isServerEntirelyStale(decl, grant);
49771
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
49772
- className: "flex flex-col space-y-2 border-t border-gray-800 pt-2",
49773
- children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
49774
- className: "flex flex-row items-center justify-between",
49775
- children: [/*#__PURE__*/jsxRuntime.jsxs("span", {
49776
- className: "text-xs uppercase tracking-wider opacity-70",
49777
- children: [serverName, !grant && /*#__PURE__*/jsxRuntime.jsx("span", {
49778
- className: "ml-2 text-amber-400 normal-case tracking-normal",
49779
- children: "(declared, not granted)"
49780
- })]
49781
- }), grant && /*#__PURE__*/jsxRuntime.jsx(DashReact.Button, {
49782
- title: "Revoke server",
49783
- onClick: function onClick() {
49784
- return onRevokeServer(serverName);
49785
- }
49786
- })]
49787
- }), allStale && /*#__PURE__*/jsxRuntime.jsx("div", {
49788
- className: "text-xs text-amber-400 bg-amber-900 bg-opacity-20 border border-amber-700 rounded px-2 py-1.5",
49789
- children: "All grants on this server are no longer in the manifest \u2014 the widget likely no longer uses this server. Consider revoking."
49790
- }), /*#__PURE__*/jsxRuntime.jsx(PermsList, {
49791
- label: "Tools",
49792
- declaredItems: decl.tools || [],
49793
- grantedItems: (grant === null || grant === void 0 ? void 0 : grant.tools) || []
49794
- }), /*#__PURE__*/jsxRuntime.jsx(PermsList, {
49795
- label: "Read paths",
49796
- declaredItems: decl.readPaths || [],
49797
- grantedItems: (grant === null || grant === void 0 ? void 0 : grant.readPaths) || []
49798
- }), /*#__PURE__*/jsxRuntime.jsx(PermsList, {
49799
- label: "Write paths",
49800
- declaredItems: decl.writePaths || [],
49801
- grantedItems: (grant === null || grant === void 0 ? void 0 : grant.writePaths) || []
49802
- })]
49803
- }, serverName);
49804
- }), (granted === null || granted === void 0 || (_granted$domains = granted.domains) === null || _granted$domains === void 0 ? void 0 : _granted$domains.fs) && ((granted.domains.fs.readPaths || []).length > 0 || (granted.domains.fs.writePaths || []).length > 0) && /*#__PURE__*/jsxRuntime.jsxs("div", {
49805
- className: "flex flex-col space-y-2 border-t border-gray-800 pt-2",
49806
- children: [/*#__PURE__*/jsxRuntime.jsx("span", {
49807
- className: "text-xs uppercase tracking-wider opacity-70",
49808
- children: "filesystem"
49809
- }), /*#__PURE__*/jsxRuntime.jsx(PermsList, {
49810
- label: "Read filenames",
49811
- declaredItems: [],
49812
- grantedItems: granted.domains.fs.readPaths || []
49813
- }), /*#__PURE__*/jsxRuntime.jsx(PermsList, {
49814
- label: "Write filenames",
49815
- declaredItems: [],
49816
- grantedItems: granted.domains.fs.writePaths || []
49817
- })]
49818
- }), (granted === null || granted === void 0 || (_granted$domains2 = granted.domains) === null || _granted$domains2 === void 0 ? void 0 : _granted$domains2.network) && (granted.domains.network.hosts || []).length > 0 && /*#__PURE__*/jsxRuntime.jsxs("div", {
49819
- className: "flex flex-col space-y-2 border-t border-gray-800 pt-2",
49820
- children: [/*#__PURE__*/jsxRuntime.jsx("span", {
49821
- className: "text-xs uppercase tracking-wider opacity-70",
49822
- children: "network"
49823
- }), /*#__PURE__*/jsxRuntime.jsx(PermsList, {
49824
- label: "Allowed hosts",
49825
- declaredItems: [],
49826
- grantedItems: granted.domains.network.hosts || []
49827
- })]
49828
- })]
49829
- });
49830
- };
49831
- var PermsList = function PermsList(_ref9) {
49832
- var label = _ref9.label,
49833
- declaredItems = _ref9.declaredItems,
49834
- grantedItems = _ref9.grantedItems;
49835
- if (declaredItems.length === 0 && grantedItems.length === 0) return null;
49836
- var grantedSet = new Set(grantedItems);
49837
- var declaredSet = new Set(declaredItems);
49838
- var all = Array.from(new Set([].concat(_toConsumableArray(declaredItems), _toConsumableArray(grantedItems))));
49839
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
49840
- className: "flex flex-col space-y-1",
49841
- children: [/*#__PURE__*/jsxRuntime.jsx("span", {
49842
- className: "text-xs opacity-50",
49843
- children: label
49844
- }), all.map(function (item) {
49845
- var isGranted = grantedSet.has(item);
49846
- var isDeclared = declaredSet.has(item);
49847
- var isStale = isGranted && !isDeclared;
49848
- return /*#__PURE__*/jsxRuntime.jsxs("span", {
49849
- className: "text-xs font-mono break-all ".concat(isStale ? "text-amber-400" : isGranted ? "opacity-100" : "opacity-50 line-through"),
49850
- children: [item, isStale && /*#__PURE__*/jsxRuntime.jsx("span", {
49851
- className: "ml-2 not-italic font-sans normal-case tracking-normal text-amber-400",
49852
- children: "(stale \u2014 widget no longer requests this; consider revoking)"
49853
- })]
49854
- }, item);
49855
- })]
49856
- });
49857
- };
49858
-
49859
- /**
49860
- * True when the granted entry has at least one item AND every granted
49861
- * item is missing from the current declared block (i.e. all of this
49862
- * server's grants are unused by the current manifest). Used to surface
49863
- * a "this whole server's grant looks unused" suggestion at the row level.
49864
- */
49865
- function isServerEntirelyStale(decl, grant) {
49866
- if (!grant) return false;
49867
- var declTools = new Set(decl.tools || []);
49868
- var declRead = new Set(decl.readPaths || []);
49869
- var declWrite = new Set(decl.writePaths || []);
49870
- var grantedTools = grant.tools || [];
49871
- var grantedRead = grant.readPaths || [];
49872
- var grantedWrite = grant.writePaths || [];
49873
- var total = grantedTools.length + grantedRead.length + grantedWrite.length;
49874
- if (total === 0) return false;
49875
- var stale = grantedTools.every(function (t) {
49876
- return !declTools.has(t);
49877
- }) && grantedRead.every(function (p) {
49878
- return !declRead.has(p);
49879
- }) && grantedWrite.every(function (p) {
49880
- return !declWrite.has(p);
49881
- });
49882
- return stale;
49883
- }
49884
-
49885
- /**
49886
- * Renders a small badge showing how the user got to this grant. Helps
49887
- * the user audit grants that were approved against a scanner guess
49888
- * rather than the developer's explicit declaration.
49889
- */
49890
- var GrantOriginBadge = function GrantOriginBadge(_ref0) {
49891
- var origin = _ref0.origin;
49892
- var styles = {
49893
- declared: {
49894
- label: "declared",
49895
- color: "text-green-400"
49896
- },
49897
- discovered: {
49898
- label: "discovered",
49899
- color: "text-amber-400"
49900
- },
49901
- manual: {
49902
- label: "manual",
49903
- color: "text-blue-400"
49904
- },
49905
- live: {
49906
- label: "live",
49907
- color: "text-purple-400"
49908
- }
49909
- };
49910
- var style = styles[origin];
49911
- if (!style) return null;
49912
- return /*#__PURE__*/jsxRuntime.jsx("span", {
49913
- className: "text-xs uppercase tracking-wider ".concat(style.color),
49914
- title: "Origin: ".concat(origin),
49915
- children: style.label
49916
- });
49917
- };
49918
50322
 
49919
50323
  // Mock fixtures for the "Example rows" section. These use the same
49920
50324
  // WidgetGrantRow component the real rows use, so the preview always
@@ -50057,10 +50461,10 @@ var noop = function noop() {};
50057
50461
  * users who don't want the wall of text collapse manually.
50058
50462
  */
50059
50463
  var HowThisWorksPanel = function HowThisWorksPanel() {
50060
- var _useState13 = React.useState(true),
50061
- _useState14 = _slicedToArray(_useState13, 2),
50062
- open = _useState14[0],
50063
- setOpen = _useState14[1];
50464
+ var _useState21 = React.useState(true),
50465
+ _useState22 = _slicedToArray(_useState21, 2),
50466
+ open = _useState22[0],
50467
+ setOpen = _useState22[1];
50064
50468
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
50065
50469
  className: "border border-gray-700 rounded",
50066
50470
  children: [/*#__PURE__*/jsxRuntime.jsxs("button", {