@trops/dash-core 0.1.442 → 0.1.443

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -3057,9 +3057,9 @@ var LayoutContainer = function LayoutContainer(_ref) {
3057
3057
 
3058
3058
  function ownKeys$Y(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3059
3059
  function _objectSpread$Y(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$Y(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$Y(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3060
- 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; } } }; }
3061
- 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; } }
3062
- 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; }
3060
+ 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; } } }; }
3061
+ 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; } }
3062
+ 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; }
3063
3063
  /**
3064
3064
  * Layout template definitions for the dashboard template picker.
3065
3065
  *
@@ -3333,7 +3333,7 @@ function createLayoutFromTemplate(template) {
3333
3333
  cols: template.cols,
3334
3334
  gap: "gap-2"
3335
3335
  };
3336
- var _iterator = _createForOfIteratorHelper$v(template.cells),
3336
+ var _iterator = _createForOfIteratorHelper$w(template.cells),
3337
3337
  _step;
3338
3338
  try {
3339
3339
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -4264,9 +4264,9 @@ var RegistryAuthModal = function RegistryAuthModal(_ref) {
4264
4264
  });
4265
4265
  };
4266
4266
 
4267
- 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; } } }; }
4268
- 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; } }
4269
- 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; }
4267
+ 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; } } }; }
4268
+ 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; } }
4269
+ 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; }
4270
4270
  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; }
4271
4271
  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; }
4272
4272
  var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
@@ -4507,7 +4507,7 @@ var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
4507
4507
  toInstall = 0,
4508
4508
  unavailable = 0,
4509
4509
  hasUnavailableRequired = false;
4510
- var _iterator = _createForOfIteratorHelper$u(widgetDeps),
4510
+ var _iterator = _createForOfIteratorHelper$v(widgetDeps),
4511
4511
  _step;
4512
4512
  try {
4513
4513
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -6282,9 +6282,9 @@ function cleanIpcError(message) {
6282
6282
  return match ? match[1] : message;
6283
6283
  }
6284
6284
 
6285
- 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; } } }; }
6286
- 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; } }
6287
- 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; }
6285
+ 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; } } }; }
6286
+ 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; } }
6287
+ 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; }
6288
6288
 
6289
6289
  /**
6290
6290
  * useRegistrySearch — shared hook for browsing and installing registry packages.
@@ -6398,13 +6398,13 @@ var useRegistrySearch = function useRegistrySearch() {
6398
6398
  return c.toLowerCase();
6399
6399
  }));
6400
6400
  widgets = [];
6401
- _iterator = _createForOfIteratorHelper$t(pkgs);
6401
+ _iterator = _createForOfIteratorHelper$u(pkgs);
6402
6402
  try {
6403
6403
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
6404
6404
  pkg = _step.value;
6405
6405
  // Compute missing APIs for the entire package
6406
6406
  allApiProviders = [];
6407
- _iterator2 = _createForOfIteratorHelper$t(pkg.providers || []);
6407
+ _iterator2 = _createForOfIteratorHelper$u(pkg.providers || []);
6408
6408
  try {
6409
6409
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
6410
6410
  p = _step2.value;
@@ -6417,11 +6417,11 @@ var useRegistrySearch = function useRegistrySearch() {
6417
6417
  } finally {
6418
6418
  _iterator2.f();
6419
6419
  }
6420
- _iterator3 = _createForOfIteratorHelper$t(pkg.widgets || []);
6420
+ _iterator3 = _createForOfIteratorHelper$u(pkg.widgets || []);
6421
6421
  try {
6422
6422
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
6423
6423
  w = _step3.value;
6424
- _iterator5 = _createForOfIteratorHelper$t(w.providers || []);
6424
+ _iterator5 = _createForOfIteratorHelper$u(w.providers || []);
6425
6425
  try {
6426
6426
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
6427
6427
  _p = _step5.value;
@@ -6443,7 +6443,7 @@ var useRegistrySearch = function useRegistrySearch() {
6443
6443
  missingApis = _toConsumableArray(new Set(allApiProviders)).filter(function (api) {
6444
6444
  return !capSet.has(api.toLowerCase());
6445
6445
  });
6446
- _iterator4 = _createForOfIteratorHelper$t(pkg.widgets || []);
6446
+ _iterator4 = _createForOfIteratorHelper$u(pkg.widgets || []);
6447
6447
  try {
6448
6448
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
6449
6449
  widget = _step4.value;
@@ -7064,9 +7064,9 @@ function applyFilters(items, filters, mode) {
7064
7064
  });
7065
7065
  }
7066
7066
 
7067
- 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; } } }; }
7068
- 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; } }
7069
- 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; }
7067
+ 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; } } }; }
7068
+ 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; } }
7069
+ 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; }
7070
7070
  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; }
7071
7071
  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; }
7072
7072
  var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
@@ -7290,7 +7290,7 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
7290
7290
  installedNames = new Set(installedList.map(function (w) {
7291
7291
  return w.name;
7292
7292
  }));
7293
- _iterator = _createForOfIteratorHelper$s(state.selectedWidgets);
7293
+ _iterator = _createForOfIteratorHelper$t(state.selectedWidgets);
7294
7294
  _context2.prev = 13;
7295
7295
  _iterator.s();
7296
7296
  case 14:
@@ -9026,7 +9026,7 @@ hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBu
9026
9026
  var hasPropertyDescriptors_1 = hasPropertyDescriptors;
9027
9027
 
9028
9028
  var keys = objectKeys$2;
9029
- var hasSymbols$4 = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';
9029
+ var hasSymbols$5 = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';
9030
9030
 
9031
9031
  var toStr$4 = Object.prototype.toString;
9032
9032
  var concat = Array.prototype.concat;
@@ -9059,7 +9059,7 @@ var defineProperty$1 = function (object, name, value, predicate) {
9059
9059
  var defineProperties$1 = function (object, map) {
9060
9060
  var predicates = arguments.length > 2 ? arguments[2] : {};
9061
9061
  var props = keys(map);
9062
- if (hasSymbols$4) {
9062
+ if (hasSymbols$5) {
9063
9063
  props = concat.call(props, Object.getOwnPropertySymbols(map));
9064
9064
  }
9065
9065
  for (var i = 0; i < props.length; i += 1) {
@@ -9125,11 +9125,11 @@ var sign$1 = function sign(number) {
9125
9125
  };
9126
9126
 
9127
9127
  var shams$1;
9128
- var hasRequiredShams$1;
9128
+ var hasRequiredShams;
9129
9129
 
9130
- function requireShams$1 () {
9131
- if (hasRequiredShams$1) return shams$1;
9132
- hasRequiredShams$1 = 1;
9130
+ function requireShams () {
9131
+ if (hasRequiredShams) return shams$1;
9132
+ hasRequiredShams = 1;
9133
9133
 
9134
9134
  /** @type {import('./shams')} */
9135
9135
  /* eslint complexity: [2, 18], max-statements: [2, 33] */
@@ -9178,10 +9178,10 @@ function requireShams$1 () {
9178
9178
  }
9179
9179
 
9180
9180
  var origSymbol = typeof Symbol !== 'undefined' && Symbol;
9181
- var hasSymbolSham = requireShams$1();
9181
+ var hasSymbolSham = requireShams();
9182
9182
 
9183
9183
  /** @type {import('.')} */
9184
- var hasSymbols$3 = function hasNativeSymbols() {
9184
+ var hasSymbols$4 = function hasNativeSymbols() {
9185
9185
  if (typeof origSymbol !== 'function') { return false; }
9186
9186
  if (typeof Symbol !== 'function') { return false; }
9187
9187
  if (typeof origSymbol('foo') !== 'symbol') { return false; }
@@ -9485,7 +9485,7 @@ var ThrowTypeError = $gOPD$1
9485
9485
  }())
9486
9486
  : throwTypeError;
9487
9487
 
9488
- var hasSymbols$2 = hasSymbols$3();
9488
+ var hasSymbols$3 = hasSymbols$4();
9489
9489
 
9490
9490
  var getProto$2 = getProto$3;
9491
9491
  var $ObjectGPO = requireObject_getPrototypeOf();
@@ -9503,7 +9503,7 @@ var INTRINSICS = {
9503
9503
  '%AggregateError%': typeof AggregateError === 'undefined' ? undefined$1 : AggregateError,
9504
9504
  '%Array%': Array,
9505
9505
  '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined$1 : ArrayBuffer,
9506
- '%ArrayIteratorPrototype%': hasSymbols$2 && getProto$2 ? getProto$2([][Symbol.iterator]()) : undefined$1,
9506
+ '%ArrayIteratorPrototype%': hasSymbols$3 && getProto$2 ? getProto$2([][Symbol.iterator]()) : undefined$1,
9507
9507
  '%AsyncFromSyncIteratorPrototype%': undefined$1,
9508
9508
  '%AsyncFunction%': needsEval,
9509
9509
  '%AsyncGenerator%': needsEval,
@@ -9534,10 +9534,10 @@ var INTRINSICS = {
9534
9534
  '%Int32Array%': typeof Int32Array === 'undefined' ? undefined$1 : Int32Array,
9535
9535
  '%isFinite%': isFinite,
9536
9536
  '%isNaN%': isNaN,
9537
- '%IteratorPrototype%': hasSymbols$2 && getProto$2 ? getProto$2(getProto$2([][Symbol.iterator]())) : undefined$1,
9537
+ '%IteratorPrototype%': hasSymbols$3 && getProto$2 ? getProto$2(getProto$2([][Symbol.iterator]())) : undefined$1,
9538
9538
  '%JSON%': typeof JSON === 'object' ? JSON : undefined$1,
9539
9539
  '%Map%': typeof Map === 'undefined' ? undefined$1 : Map,
9540
- '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols$2 || !getProto$2 ? undefined$1 : getProto$2(new Map()[Symbol.iterator]()),
9540
+ '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols$3 || !getProto$2 ? undefined$1 : getProto$2(new Map()[Symbol.iterator]()),
9541
9541
  '%Math%': Math,
9542
9542
  '%Number%': Number,
9543
9543
  '%Object%': $Object$2,
@@ -9551,11 +9551,11 @@ var INTRINSICS = {
9551
9551
  '%Reflect%': typeof Reflect === 'undefined' ? undefined$1 : Reflect,
9552
9552
  '%RegExp%': RegExp,
9553
9553
  '%Set%': typeof Set === 'undefined' ? undefined$1 : Set,
9554
- '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols$2 || !getProto$2 ? undefined$1 : getProto$2(new Set()[Symbol.iterator]()),
9554
+ '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols$3 || !getProto$2 ? undefined$1 : getProto$2(new Set()[Symbol.iterator]()),
9555
9555
  '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined$1 : SharedArrayBuffer,
9556
9556
  '%String%': String,
9557
- '%StringIteratorPrototype%': hasSymbols$2 && getProto$2 ? getProto$2(''[Symbol.iterator]()) : undefined$1,
9558
- '%Symbol%': hasSymbols$2 ? Symbol : undefined$1,
9557
+ '%StringIteratorPrototype%': hasSymbols$3 && getProto$2 ? getProto$2(''[Symbol.iterator]()) : undefined$1,
9558
+ '%Symbol%': hasSymbols$3 ? Symbol : undefined$1,
9559
9559
  '%SyntaxError%': $SyntaxError$1,
9560
9560
  '%ThrowTypeError%': ThrowTypeError,
9561
9561
  '%TypedArray%': TypedArray,
@@ -9908,12 +9908,12 @@ var callBound$i = function callBoundIntrinsic(name, allowMissing) {
9908
9908
 
9909
9909
  // modified from https://github.com/es-shims/es6-shim
9910
9910
  var objectKeys$1 = objectKeys$2;
9911
- var hasSymbols$1 = requireShams$1()();
9911
+ var hasSymbols$2 = requireShams()();
9912
9912
  var callBound$h = callBound$i;
9913
9913
  var $Object$1 = esObjectAtoms;
9914
9914
  var $push = callBound$h('Array.prototype.push');
9915
9915
  var $propIsEnumerable = callBound$h('Object.prototype.propertyIsEnumerable');
9916
- var originalGetSymbols = hasSymbols$1 ? $Object$1.getOwnPropertySymbols : null;
9916
+ var originalGetSymbols = hasSymbols$2 ? $Object$1.getOwnPropertySymbols : null;
9917
9917
 
9918
9918
  // eslint-disable-next-line no-unused-vars
9919
9919
  var implementation$8 = function assign(target, source1) {
@@ -9927,7 +9927,7 @@ var implementation$8 = function assign(target, source1) {
9927
9927
 
9928
9928
  // step 3.a.ii:
9929
9929
  var keys = objectKeys$1(from);
9930
- var getSymbols = hasSymbols$1 && ($Object$1.getOwnPropertySymbols || originalGetSymbols);
9930
+ var getSymbols = hasSymbols$2 && ($Object$1.getOwnPropertySymbols || originalGetSymbols);
9931
9931
  if (getSymbols) {
9932
9932
  var syms = getSymbols(from);
9933
9933
  for (var j = 0; j < syms.length; ++j) {
@@ -10224,23 +10224,14 @@ var regexp_prototype_flags = flagsBound;
10224
10224
 
10225
10225
  var esGetIterator = {exports: {}};
10226
10226
 
10227
- var shams;
10228
- var hasRequiredShams;
10229
-
10230
- function requireShams () {
10231
- if (hasRequiredShams) return shams;
10232
- hasRequiredShams = 1;
10227
+ var hasSymbols$1 = requireShams();
10233
10228
 
10234
- var hasSymbols = requireShams$1();
10235
-
10236
- /** @type {import('.')} */
10237
- shams = function hasToStringTagShams() {
10238
- return hasSymbols() && !!Symbol.toStringTag;
10239
- };
10240
- return shams;
10241
- }
10229
+ /** @type {import('.')} */
10230
+ var shams = function hasToStringTagShams() {
10231
+ return hasSymbols$1() && !!Symbol.toStringTag;
10232
+ };
10242
10233
 
10243
- var hasToStringTag$7 = requireShams()();
10234
+ var hasToStringTag$7 = shams();
10244
10235
  var callBound$f = callBound$i;
10245
10236
 
10246
10237
  var $toString$7 = callBound$f('Object.prototype.toString');
@@ -11277,7 +11268,7 @@ var tryStringObject = function tryStringObject(value) {
11277
11268
  /** @type {(receiver: ThisParameterType<typeof Object.prototype.toString>, ...args: Parameters<typeof Object.prototype.toString>) => ReturnType<typeof Object.prototype.toString>} */
11278
11269
  var $toString$6 = callBound$c('Object.prototype.toString');
11279
11270
  var strClass = '[object String]';
11280
- var hasToStringTag$6 = requireShams()();
11271
+ var hasToStringTag$6 = shams();
11281
11272
 
11282
11273
  /** @type {import('.')} */
11283
11274
  var isString$2 = function isString(value) {
@@ -11393,7 +11384,7 @@ var isSet$2 = exported$1 || function isSet(x) {
11393
11384
  var isArguments$1 = isArguments$2;
11394
11385
  var getStopIterationIterator = stopIterationIterator;
11395
11386
 
11396
- if (hasSymbols$3() || requireShams$1()()) {
11387
+ if (hasSymbols$4() || requireShams()()) {
11397
11388
  var $iterator = Symbol.iterator;
11398
11389
  // Symbol is available natively or shammed
11399
11390
  // natively:
@@ -11682,7 +11673,7 @@ var tryDateObject = function tryDateGetDayCall(value) {
11682
11673
  /** @type {(value: unknown) => string} */
11683
11674
  var toStr$2 = callBound$9('Object.prototype.toString');
11684
11675
  var dateClass = '[object Date]';
11685
- var hasToStringTag$5 = requireShams()();
11676
+ var hasToStringTag$5 = shams();
11686
11677
 
11687
11678
  /** @type {import('.')} */
11688
11679
  var isDateObject = function isDateObject(value) {
@@ -11693,7 +11684,7 @@ var isDateObject = function isDateObject(value) {
11693
11684
  };
11694
11685
 
11695
11686
  var callBound$8 = callBound$i;
11696
- var hasToStringTag$4 = requireShams()();
11687
+ var hasToStringTag$4 = shams();
11697
11688
  var hasOwn = hasown;
11698
11689
  var gOPD$1 = gopd$1;
11699
11690
 
@@ -11798,7 +11789,7 @@ var tryNumberObject = function tryNumberObject(value) {
11798
11789
  };
11799
11790
  var $toString$3 = callBound$6('Object.prototype.toString');
11800
11791
  var numClass = '[object Number]';
11801
- var hasToStringTag$3 = requireShams()();
11792
+ var hasToStringTag$3 = shams();
11802
11793
 
11803
11794
  /** @type {import('.')} */
11804
11795
  var isNumberObject = function isNumberObject(value) {
@@ -11825,7 +11816,7 @@ var tryBooleanObject = function booleanBrandCheck(value) {
11825
11816
  }
11826
11817
  };
11827
11818
  var boolClass = '[object Boolean]';
11828
- var hasToStringTag$2 = requireShams()();
11819
+ var hasToStringTag$2 = shams();
11829
11820
 
11830
11821
  /** @type {import('.')} */
11831
11822
  var isBooleanObject = function isBoolean(value) {
@@ -11867,7 +11858,7 @@ function requireSafeRegexTest () {
11867
11858
 
11868
11859
  var callBound$4 = callBound$i;
11869
11860
  var $toString$1 = callBound$4('Object.prototype.toString');
11870
- var hasSymbols = hasSymbols$3();
11861
+ var hasSymbols = hasSymbols$4();
11871
11862
  var safeRegexTest = requireSafeRegexTest();
11872
11863
 
11873
11864
  if (hasSymbols) {
@@ -12313,7 +12304,7 @@ var gOPD = gopd$1;
12313
12304
  var getProto = getProto$3;
12314
12305
 
12315
12306
  var $toString = callBound$2('Object.prototype.toString');
12316
- var hasToStringTag = requireShams()();
12307
+ var hasToStringTag = shams();
12317
12308
 
12318
12309
  var g = typeof globalThis === 'undefined' ? commonjsGlobal : globalThis;
12319
12310
  var typedArrays = availableTypedArrays();
@@ -12987,9 +12978,9 @@ var PanelEditItem = function PanelEditItem(_ref) {
12987
12978
  };
12988
12979
 
12989
12980
  var _excluded$6 = ["rows", "cols"];
12990
- 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; } } }; }
12991
- 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; } }
12992
- 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; }
12981
+ 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; } } }; }
12982
+ 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; } }
12983
+ 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; }
12993
12984
  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; }
12994
12985
  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; }
12995
12986
  var defaultGrid = {
@@ -13142,7 +13133,7 @@ function GridEditor(_ref) {
13142
13133
  function sortObjectByKeys(obj) {
13143
13134
  var sortedKeys = Object.keys(obj).sort();
13144
13135
  var sortedObj = {};
13145
- var _iterator = _createForOfIteratorHelper$r(sortedKeys),
13136
+ var _iterator = _createForOfIteratorHelper$s(sortedKeys),
13146
13137
  _step;
13147
13138
  try {
13148
13139
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -13615,9 +13606,9 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
13615
13606
  });
13616
13607
  };
13617
13608
 
13618
- 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; } } }; }
13619
- 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; } }
13620
- 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; }
13609
+ 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; } } }; }
13610
+ 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; } }
13611
+ 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; }
13621
13612
  function ownKeys$R(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13622
13613
  function _objectSpread$R(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$R(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$R(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13623
13614
  var DAYS = [{
@@ -13946,7 +13937,7 @@ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
13946
13937
  setIsLoading(true);
13947
13938
  window.mainApi.scheduler.getTasks(widgetUuid).then(function (tasks) {
13948
13939
  var stateMap = {};
13949
- var _iterator = _createForOfIteratorHelper$q(tasks || []),
13940
+ var _iterator = _createForOfIteratorHelper$r(tasks || []),
13950
13941
  _step;
13951
13942
  try {
13952
13943
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -14155,9 +14146,59 @@ function pickWidgetRef(item) {
14155
14146
  return parts.length === 3 ? c : null;
14156
14147
  }
14157
14148
 
14158
- 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; } } }; }
14159
- 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; } }
14160
- 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; }
14149
+ /**
14150
+ * Cross-dashboard isolation gate. Layout items carry a `dashboardId`
14151
+ * stamp from `LayoutModel`; this helper drops items whose stamp
14152
+ * doesn't match the surrounding workspace's id. Used at every
14153
+ * workspace-walking surface (Listeners / Providers / Widgets tabs,
14154
+ * bulk-edit panes, dependency resolution) to prevent items leaked
14155
+ * from another dashboard's tree from showing up.
14156
+ *
14157
+ * STRICT mode (workspace has an id): item must have a matching
14158
+ * `dashboardId`. No dashboardId → reject. Different dashboardId → reject.
14159
+ *
14160
+ * PERMISSIVE mode (workspace has no id — synthetic test fixtures
14161
+ * and in-memory sandboxes): everything passes.
14162
+ *
14163
+ * @param {Object} item
14164
+ * @param {Object} workspace
14165
+ * @returns {boolean}
14166
+ */
14167
+ function belongsToWorkspace(item, workspace) {
14168
+ var wsId = workspace === null || workspace === void 0 ? void 0 : workspace.id;
14169
+ if (wsId === undefined || wsId === null) return true;
14170
+ var itemDashId = item === null || item === void 0 ? void 0 : item.dashboardId;
14171
+ if (itemDashId === undefined || itemDashId === null) return false;
14172
+ return String(itemDashId) === String(wsId);
14173
+ }
14174
+ var FRAMEWORK_CONTAINER_COMPONENTS = new Set(["LayoutGridContainer", "Container", "LayoutContainer"]);
14175
+
14176
+ /**
14177
+ * Is this layout item a USER widget (i.e. something the user added
14178
+ * via the widget sidebar / drag-drop)? False for framework chrome —
14179
+ * `LayoutGridContainer`, `Container`, `LayoutContainer` — which the
14180
+ * dashboard config UI shouldn't expose as a configurable widget,
14181
+ * even though the layout walker visits them.
14182
+ *
14183
+ * Filter is by COMPONENT NAME only, not by `item.type`.
14184
+ * `LayoutModel` defaults `type: "layout"` when the source data
14185
+ * doesn't set it explicitly (`layout.type = "type" in obj ? obj.type
14186
+ * : "layout"`), and most persisted user widgets fall into that
14187
+ * default — so a `type !== "widget"` check would silently drop
14188
+ * legitimate widgets from every list.
14189
+ *
14190
+ * @param {Object} item
14191
+ * @returns {boolean}
14192
+ */
14193
+ function isUserWidget(item) {
14194
+ if (!item || _typeof(item) !== "object" || !item.component) return false;
14195
+ if (FRAMEWORK_CONTAINER_COMPONENTS.has(item.component)) return false;
14196
+ return true;
14197
+ }
14198
+
14199
+ 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; } } }; }
14200
+ 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; } }
14201
+ 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; }
14161
14202
 
14162
14203
  /**
14163
14204
  * Resolve which provider name a given widget instance would bind to for
@@ -14189,7 +14230,7 @@ function resolveProviderName(_ref) {
14189
14230
  // array. Support both because different callers shape it either way.
14190
14231
  if (appProviders) {
14191
14232
  if (Array.isArray(appProviders)) {
14192
- var _iterator = _createForOfIteratorHelper$p(appProviders),
14233
+ var _iterator = _createForOfIteratorHelper$q(appProviders),
14193
14234
  _step;
14194
14235
  try {
14195
14236
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -14249,7 +14290,7 @@ function forEachWidget(workspace, visit) {
14249
14290
  };
14250
14291
  var _walk = function walk(items) {
14251
14292
  if (!Array.isArray(items)) return;
14252
- var _iterator2 = _createForOfIteratorHelper$p(items),
14293
+ var _iterator2 = _createForOfIteratorHelper$q(items),
14253
14294
  _step2;
14254
14295
  try {
14255
14296
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -14279,7 +14320,7 @@ function forEachWidget(workspace, visit) {
14279
14320
  };
14280
14321
  _walk(workspace.layout);
14281
14322
  if (Array.isArray(workspace.pages)) {
14282
- var _iterator3 = _createForOfIteratorHelper$p(workspace.pages),
14323
+ var _iterator3 = _createForOfIteratorHelper$q(workspace.pages),
14283
14324
  _step3;
14284
14325
  try {
14285
14326
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -14318,10 +14359,12 @@ function getUnresolvedProviders(_ref2) {
14318
14359
  if (!workspace || typeof getWidgetRequirements !== "function") return [];
14319
14360
  var unresolved = [];
14320
14361
  forEachWidget(workspace, function (item) {
14362
+ if (!isUserWidget(item)) return;
14363
+ if (!belongsToWorkspace(item, workspace)) return;
14321
14364
  var requirements = getWidgetRequirements(item.component) || [];
14322
14365
  if (!Array.isArray(requirements) || requirements.length === 0) return;
14323
14366
  var widgetId = item.uuidString || item.uuid || item.id || null;
14324
- var _iterator4 = _createForOfIteratorHelper$p(requirements),
14367
+ var _iterator4 = _createForOfIteratorHelper$q(requirements),
14325
14368
  _step4;
14326
14369
  try {
14327
14370
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -14362,7 +14405,7 @@ function getUnresolvedProviders(_ref2) {
14362
14405
  */
14363
14406
  function groupByProviderType(unresolved) {
14364
14407
  var byType = new Map();
14365
- var _iterator5 = _createForOfIteratorHelper$p(unresolved || []),
14408
+ var _iterator5 = _createForOfIteratorHelper$q(unresolved || []),
14366
14409
  _step5;
14367
14410
  try {
14368
14411
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -14393,10 +14436,12 @@ function getAllProviderBindings(_ref3) {
14393
14436
  if (!workspace || typeof getWidgetRequirements !== "function") return [];
14394
14437
  var bindings = [];
14395
14438
  forEachWidget(workspace, function (item) {
14439
+ if (!isUserWidget(item)) return;
14440
+ if (!belongsToWorkspace(item, workspace)) return;
14396
14441
  var requirements = getWidgetRequirements(item.component) || [];
14397
14442
  if (!Array.isArray(requirements) || requirements.length === 0) return;
14398
14443
  var widgetId = item.uuidString || item.uuid || item.id || null;
14399
- var _iterator6 = _createForOfIteratorHelper$p(requirements),
14444
+ var _iterator6 = _createForOfIteratorHelper$q(requirements),
14400
14445
  _step6;
14401
14446
  try {
14402
14447
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
@@ -14436,9 +14481,9 @@ function getAllProviderBindings(_ref3) {
14436
14481
 
14437
14482
  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; }
14438
14483
  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; }
14439
- 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; } } }; }
14440
- 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; } }
14441
- 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; }
14484
+ 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; } } }; }
14485
+ 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; } }
14486
+ 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; }
14442
14487
  var EVENT_STRING_RE = /^([^[]+)\[([^\]]+)\]\.(.+)$/;
14443
14488
 
14444
14489
  /** Parse "Component[itemId].event" → { component, itemId, event }. */
@@ -14525,29 +14570,9 @@ function eventHandlersOf(item, getWidgetConfig) {
14525
14570
  return _toConsumableArray(new Set([].concat(_toConsumableArray(inline), _toConsumableArray(fromCfg))));
14526
14571
  }
14527
14572
 
14528
- /**
14529
- * Cross-dashboard isolation gate. Every layout item carries a
14530
- * `dashboardId` stamp from `LayoutModel`; this helper drops items
14531
- * whose stamp doesn't match the surrounding workspace's id. Closes
14532
- * the loophole where a workspace tree somehow ends up holding refs
14533
- * to items from another dashboard (shared array reference, stale
14534
- * cache, etc.) — without this, the dashboard config modal's
14535
- * Listeners / Providers / Widgets tabs surface widgets the user
14536
- * isn't editing and can't actually wire to.
14537
- *
14538
- * Intentionally permissive: when the workspace has no id (synthetic
14539
- * test workspace, in-memory sandbox) OR an item has no dashboardId
14540
- * stamp (legacy pre-LayoutModel data), the item passes through.
14541
- * Strict matching only applies when BOTH have ids — which is the
14542
- * case in production after a full LayoutModel pass.
14543
- */
14544
- function belongsToWorkspace(item, workspace) {
14545
- var wsId = workspace === null || workspace === void 0 ? void 0 : workspace.id;
14546
- if (wsId === undefined || wsId === null) return true;
14547
- var itemDashId = item === null || item === void 0 ? void 0 : item.dashboardId;
14548
- if (itemDashId === undefined || itemDashId === null) return true;
14549
- return String(itemDashId) === String(wsId);
14550
- }
14573
+ // belongsToWorkspace lives in `widgetIdentity.js` (imported above) so
14574
+ // every workspace-walker Listeners, Providers, Widgets, bulk-edit
14575
+ // panes uses the same cross-dashboard isolation gate.
14551
14576
 
14552
14577
  /**
14553
14578
  * Every widget instance in the workspace that emits at least one event.
@@ -14559,6 +14584,7 @@ function belongsToWorkspace(item, workspace) {
14559
14584
  function getEmitters(workspace, getWidgetConfig) {
14560
14585
  var byKey = new Map();
14561
14586
  forEachWidget(workspace, function (item) {
14587
+ if (!isUserWidget(item)) return;
14562
14588
  if (!belongsToWorkspace(item, workspace)) return;
14563
14589
  var events = eventsOf(item, getWidgetConfig);
14564
14590
  if (events.length === 0) return;
@@ -14586,6 +14612,7 @@ function getEmitters(workspace, getWidgetConfig) {
14586
14612
  function getReceivers(workspace, getWidgetConfig) {
14587
14613
  var byKey = new Map();
14588
14614
  forEachWidget(workspace, function (item) {
14615
+ if (!isUserWidget(item)) return;
14589
14616
  if (!belongsToWorkspace(item, workspace)) return;
14590
14617
  var handlers = eventHandlersOf(item, getWidgetConfig);
14591
14618
  if (handlers.length === 0) return;
@@ -14626,7 +14653,7 @@ function getCurrentWiring(workspace) {
14626
14653
  // Live format is array; defensive guard for legacy object
14627
14654
  // form (a single source widget keyed under the handler).
14628
14655
  var events = Array.isArray(eventList) ? eventList : typeof eventList === "string" ? [eventList] : [];
14629
- var _iterator = _createForOfIteratorHelper$o(events),
14656
+ var _iterator = _createForOfIteratorHelper$p(events),
14630
14657
  _step;
14631
14658
  try {
14632
14659
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -14689,7 +14716,7 @@ function getOrphanedListeners(workspace, getWidgetConfig) {
14689
14716
  if (!byItemId.has(id)) byItemId.set(id, meta);
14690
14717
  });
14691
14718
  var orphans = [];
14692
- var _iterator2 = _createForOfIteratorHelper$o(wiring),
14719
+ var _iterator2 = _createForOfIteratorHelper$p(wiring),
14693
14720
  _step2;
14694
14721
  try {
14695
14722
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -14755,7 +14782,7 @@ function pruneDeadListenerReferences(workspace) {
14755
14782
  var liveKeys = new Set();
14756
14783
  var _walkForLive = function walkForLive(items) {
14757
14784
  if (!Array.isArray(items)) return;
14758
- var _iterator3 = _createForOfIteratorHelper$o(items),
14785
+ var _iterator3 = _createForOfIteratorHelper$p(items),
14759
14786
  _step3;
14760
14787
  try {
14761
14788
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -14776,7 +14803,7 @@ function pruneDeadListenerReferences(workspace) {
14776
14803
  };
14777
14804
  _walkForLive(workspace.layout);
14778
14805
  if (Array.isArray(workspace.pages)) {
14779
- var _iterator4 = _createForOfIteratorHelper$o(workspace.pages),
14806
+ var _iterator4 = _createForOfIteratorHelper$p(workspace.pages),
14780
14807
  _step4;
14781
14808
  try {
14782
14809
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -14793,7 +14820,7 @@ function pruneDeadListenerReferences(workspace) {
14793
14820
  var removed = 0;
14794
14821
  var _pruneListeners = function pruneListeners(items) {
14795
14822
  if (!Array.isArray(items)) return;
14796
- var _iterator5 = _createForOfIteratorHelper$o(items),
14823
+ var _iterator5 = _createForOfIteratorHelper$p(items),
14797
14824
  _step5;
14798
14825
  try {
14799
14826
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -14805,7 +14832,7 @@ function pruneDeadListenerReferences(workspace) {
14805
14832
  var events = item.listeners[handler];
14806
14833
  if (!Array.isArray(events)) continue;
14807
14834
  var kept = [];
14808
- var _iterator6 = _createForOfIteratorHelper$o(events),
14835
+ var _iterator6 = _createForOfIteratorHelper$p(events),
14809
14836
  _step6;
14810
14837
  try {
14811
14838
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
@@ -14840,7 +14867,7 @@ function pruneDeadListenerReferences(workspace) {
14840
14867
  };
14841
14868
  _pruneListeners(workspace.layout);
14842
14869
  if (Array.isArray(workspace.pages)) {
14843
- var _iterator7 = _createForOfIteratorHelper$o(workspace.pages),
14870
+ var _iterator7 = _createForOfIteratorHelper$p(workspace.pages),
14844
14871
  _step7;
14845
14872
  try {
14846
14873
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
@@ -14884,7 +14911,7 @@ function applyWiringChanges(workspace, _ref) {
14884
14911
  });
14885
14912
  return byReceiver.get(id);
14886
14913
  };
14887
- var _iterator8 = _createForOfIteratorHelper$o(adds),
14914
+ var _iterator8 = _createForOfIteratorHelper$p(adds),
14888
14915
  _step8;
14889
14916
  try {
14890
14917
  for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
@@ -14897,7 +14924,7 @@ function applyWiringChanges(workspace, _ref) {
14897
14924
  } finally {
14898
14925
  _iterator8.f();
14899
14926
  }
14900
- var _iterator9 = _createForOfIteratorHelper$o(removes),
14927
+ var _iterator9 = _createForOfIteratorHelper$p(removes),
14901
14928
  _step9;
14902
14929
  try {
14903
14930
  for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
@@ -14971,7 +14998,7 @@ function applyToItem(listeners, _ref2) {
14971
14998
  }
14972
14999
 
14973
15000
  // Removes first so a re-add (rare) lands.
14974
- var _iterator0 = _createForOfIteratorHelper$o(removes),
15001
+ var _iterator0 = _createForOfIteratorHelper$p(removes),
14975
15002
  _step0;
14976
15003
  try {
14977
15004
  var _loop = function _loop() {
@@ -15000,7 +15027,7 @@ function applyToItem(listeners, _ref2) {
15000
15027
  } finally {
15001
15028
  _iterator0.f();
15002
15029
  }
15003
- var _iterator1 = _createForOfIteratorHelper$o(adds),
15030
+ var _iterator1 = _createForOfIteratorHelper$p(adds),
15004
15031
  _step1;
15005
15032
  try {
15006
15033
  for (_iterator1.s(); !(_step1 = _iterator1.n()).done;) {
@@ -17947,9 +17974,9 @@ function mcpJsonToFormState(jsonString, nextRowId) {
17947
17974
  return result;
17948
17975
  }
17949
17976
 
17950
- 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; } } }; }
17951
- 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; } }
17952
- 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; }
17977
+ 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; } } }; }
17978
+ 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; } }
17979
+ 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; }
17953
17980
  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; }
17954
17981
  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; }
17955
17982
  var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
@@ -18234,11 +18261,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
18234
18261
 
18235
18262
  // Flatten all widgets from all packages for the widget list
18236
18263
  flatWidgets = [];
18237
- _iterator = _createForOfIteratorHelper$n(result.packages || []);
18264
+ _iterator = _createForOfIteratorHelper$o(result.packages || []);
18238
18265
  try {
18239
18266
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
18240
18267
  pkg = _step.value;
18241
- _iterator2 = _createForOfIteratorHelper$n(pkg.widgets || []);
18268
+ _iterator2 = _createForOfIteratorHelper$o(pkg.widgets || []);
18242
18269
  try {
18243
18270
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
18244
18271
  widget = _step2.value;
@@ -20132,9 +20159,9 @@ var useWidgetSchedulerStatus = function useWidgetSchedulerStatus(widgetId) {
20132
20159
  };
20133
20160
  };
20134
20161
 
20135
- 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; } } }; }
20136
- 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; } }
20137
- 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; }
20162
+ 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; } } }; }
20163
+ 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; } }
20164
+ 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; }
20138
20165
  function formatCountdown(ms) {
20139
20166
  if (ms == null || ms < 0) return "--";
20140
20167
  if (ms < 1000) return "< 1s";
@@ -20251,7 +20278,7 @@ var WidgetCardStatusBar = function WidgetCardStatusBar(_ref) {
20251
20278
 
20252
20279
  // Find soonest countdown among enabled tasks
20253
20280
  var soonestMs = null;
20254
- var _iterator = _createForOfIteratorHelper$m(enabledTasks),
20281
+ var _iterator = _createForOfIteratorHelper$n(enabledTasks),
20255
20282
  _step;
20256
20283
  try {
20257
20284
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -25508,9 +25535,9 @@ var ExternalWidget = function ExternalWidget(_ref) {
25508
25535
  var GRID_CELL_WIDGET_TYPE = "grid-cell-widget";
25509
25536
  var SIDEBAR_WIDGET_TYPE = "sidebar-widget";
25510
25537
 
25511
- 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; } } }; }
25512
- 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; } }
25513
- 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; }
25538
+ 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; } } }; }
25539
+ 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; } }
25540
+ 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; }
25514
25541
  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; }
25515
25542
  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; }
25516
25543
 
@@ -26133,7 +26160,7 @@ var LayoutGridContainer = /*#__PURE__*/memo(function (_ref3) {
26133
26160
  return selectable["delete"](cn);
26134
26161
  });
26135
26162
  var resolved = new Set();
26136
- var _iterator = _createForOfIteratorHelper$l(selectable),
26163
+ var _iterator = _createForOfIteratorHelper$m(selectable),
26137
26164
  _step;
26138
26165
  try {
26139
26166
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -28542,9 +28569,9 @@ function migrateBareComponentName(componentMap, component) {
28542
28569
 
28543
28570
  function ownKeys$C(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
28544
28571
  function _objectSpread$C(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$C(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$C(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
28545
- 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; } } }; }
28546
- 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; } }
28547
- 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; }
28572
+ 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; } } }; }
28573
+ 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; } }
28574
+ 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; }
28548
28575
  /**
28549
28576
  * The model for all layout components used primarily in the renderLayout method
28550
28577
  * @param {Object} layoutItem an object containing various attributes of the layout item
@@ -28556,7 +28583,7 @@ function _arrayLikeToArray$k(r, a) { (null == a || a > r.length) && (a = r.lengt
28556
28583
  function sortObjectByKeys(obj) {
28557
28584
  var sortedKeys = Object.keys(obj).sort();
28558
28585
  var sortedObj = {};
28559
- var _iterator = _createForOfIteratorHelper$k(sortedKeys),
28586
+ var _iterator = _createForOfIteratorHelper$l(sortedKeys),
28560
28587
  _step;
28561
28588
  try {
28562
28589
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -28850,9 +28877,9 @@ var SettingsModel = function SettingsModel() {
28850
28877
  return obj;
28851
28878
  };
28852
28879
 
28853
- 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; } } }; }
28854
- 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; } }
28855
- 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; }
28880
+ 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; } } }; }
28881
+ 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; } }
28882
+ 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; }
28856
28883
 
28857
28884
  /**
28858
28885
  * Workspace-level pre-pass that migrates legacy bare component
@@ -28927,7 +28954,7 @@ function migrateScopedIdsInWorkspace(workspace, componentMap) {
28927
28954
  };
28928
28955
  var _walk = function walk(items) {
28929
28956
  if (!Array.isArray(items)) return;
28930
- var _iterator = _createForOfIteratorHelper$j(items),
28957
+ var _iterator = _createForOfIteratorHelper$k(items),
28931
28958
  _step;
28932
28959
  try {
28933
28960
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -28949,7 +28976,7 @@ function migrateScopedIdsInWorkspace(workspace, componentMap) {
28949
28976
  };
28950
28977
  _walk(workspace.layout);
28951
28978
  if (Array.isArray(workspace.pages)) {
28952
- var _iterator2 = _createForOfIteratorHelper$j(workspace.pages),
28979
+ var _iterator2 = _createForOfIteratorHelper$k(workspace.pages),
28953
28980
  _step2;
28954
28981
  try {
28955
28982
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -28966,6 +28993,104 @@ function migrateScopedIdsInWorkspace(workspace, componentMap) {
28966
28993
  return counts;
28967
28994
  }
28968
28995
 
28996
+ 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; } } }; }
28997
+ 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; } }
28998
+ 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; }
28999
+ /**
29000
+ * cleanForeignWidgetsFromWorkspace.js
29001
+ *
29002
+ * One-shot data cleanup that runs at workspace load time. Removes
29003
+ * any layout item whose `dashboardId` doesn't match the workspace's
29004
+ * own id. These are "foreign" items — leaked into this workspace's
29005
+ * tree by some earlier bug (most commonly a shared array reference
29006
+ * across two open dashboards' sidebar layouts).
29007
+ *
29008
+ * Without this pass, the items linger in `workspaces.json` forever
29009
+ * and re-appear in every Listeners / Providers / Widgets tab the
29010
+ * user opens. Filtering at the UI layer hides them but doesn't fix
29011
+ * the persistent state. This utility writes the corrupted items
29012
+ * out so the next save persists the cleaned shape.
29013
+ *
29014
+ * Mutates in place. Idempotent — running twice on a clean workspace
29015
+ * is a no-op. Returns a summary of what was removed for diagnostics
29016
+ * (callers can log it to surface the cleanup to the user).
29017
+ *
29018
+ * Items WITHOUT a `dashboardId` stamp are NOT removed — they're
29019
+ * either deeply-nested items LayoutModel didn't reach OR legacy
29020
+ * pre-stamping data. Stripping them would lose legitimate widgets.
29021
+ * They're stamped with the workspace's id instead, which is
29022
+ * idempotent and self-correcting.
29023
+ *
29024
+ * @param {Object} workspace - workspace object (mutated in place)
29025
+ * @returns {{ removed: number, stamped: number }}
29026
+ */
29027
+ function cleanForeignWidgetsFromWorkspace(workspace) {
29028
+ var summary = {
29029
+ removed: 0,
29030
+ stamped: 0
29031
+ };
29032
+ if (!workspace || workspace.id === undefined || workspace.id === null) {
29033
+ return summary;
29034
+ }
29035
+ var wsId = String(workspace.id);
29036
+ var _cleanList = function cleanList(items) {
29037
+ if (!Array.isArray(items)) return items;
29038
+ var kept = [];
29039
+ var _iterator = _createForOfIteratorHelper$j(items),
29040
+ _step;
29041
+ try {
29042
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
29043
+ var item = _step.value;
29044
+ if (!item || _typeof(item) !== "object") continue;
29045
+ var stamp = item.dashboardId;
29046
+ if (stamp !== undefined && stamp !== null && String(stamp) !== wsId) {
29047
+ // Foreign item — drop it.
29048
+ summary.removed += 1;
29049
+ continue;
29050
+ }
29051
+ if (stamp === undefined || stamp === null) {
29052
+ // Unstamped — adopt into this workspace.
29053
+ item.dashboardId = workspace.id;
29054
+ summary.stamped += 1;
29055
+ }
29056
+ // Recurse into nested arrays so foreign items inside grid
29057
+ // containers' `items` / nested `layout` are caught too.
29058
+ if (Array.isArray(item.items)) item.items = _cleanList(item.items);
29059
+ if (Array.isArray(item.layout)) item.layout = _cleanList(item.layout);
29060
+ kept.push(item);
29061
+ }
29062
+ } catch (err) {
29063
+ _iterator.e(err);
29064
+ } finally {
29065
+ _iterator.f();
29066
+ }
29067
+ return kept;
29068
+ };
29069
+ if (Array.isArray(workspace.layout)) {
29070
+ workspace.layout = _cleanList(workspace.layout);
29071
+ }
29072
+ if (Array.isArray(workspace.sidebarLayout)) {
29073
+ workspace.sidebarLayout = _cleanList(workspace.sidebarLayout);
29074
+ }
29075
+ if (Array.isArray(workspace.pages)) {
29076
+ var _iterator2 = _createForOfIteratorHelper$j(workspace.pages),
29077
+ _step2;
29078
+ try {
29079
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
29080
+ var page = _step2.value;
29081
+ if (page && Array.isArray(page.layout)) {
29082
+ page.layout = _cleanList(page.layout);
29083
+ }
29084
+ }
29085
+ } catch (err) {
29086
+ _iterator2.e(err);
29087
+ } finally {
29088
+ _iterator2.f();
29089
+ }
29090
+ }
29091
+ return summary;
29092
+ }
29093
+
28969
29094
  /**
28970
29095
  * Default layout for a brand-new workspace: a single 1x1 grid container
28971
29096
  * with one empty cell. Mirrors DashboardModel._initializeLayout().
@@ -29102,6 +29227,13 @@ var WorkspaceModel = function WorkspaceModel(workspaceItem) {
29102
29227
  workspace.selectedProviders = "selectedProviders" in obj ? obj["selectedProviders"] : {};
29103
29228
  workspace.themeKey = "themeKey" in obj ? obj["themeKey"] : null;
29104
29229
 
29230
+ // Cross-dashboard contamination cleanup. Some earlier code path
29231
+ // (most likely a shared sidebarLayout array reference between two
29232
+ // open dashboards) leaked items from other workspaces' trees into
29233
+ // this one. Running on every load means the next save writes the
29234
+ // cleaned shape; corrupted state is self-healing.
29235
+ cleanForeignWidgetsFromWorkspace(workspace);
29236
+
29105
29237
  // Migrate legacy bare component refs (`PipelineKanban`) and the
29106
29238
  // listener event strings that reference them (`PipelineKanban[5].evt`)
29107
29239
  // to the canonical scoped form (`trops.pipeline.PipelineKanban`).
@@ -55364,6 +55496,13 @@ var WidgetsTab = function WidgetsTab(_ref) {
55364
55496
  var result = [];
55365
55497
  var pushFromSection = function pushFromSection(section) {
55366
55498
  return function (item) {
55499
+ // Skip framework chrome (LayoutGridContainer / Container) —
55500
+ // the WidgetsTab is for user-configurable widgets only.
55501
+ if (!isUserWidget(item)) return;
55502
+ // Cross-dashboard isolation: skip items whose dashboardId
55503
+ // stamp doesn't match this workspace. Closes the same leak
55504
+ // the Listeners tab already filters against.
55505
+ if (!belongsToWorkspace(item, workspace)) return;
55367
55506
  var id = item.uuidString || item.uuid || item.id;
55368
55507
  if (!id || seen.has(id)) return;
55369
55508
  seen.add(id);