@trops/dash-core 0.1.639 → 0.1.640

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
@@ -143,8 +143,11 @@ var DashboardPublisher = {
143
143
  }, 0);
144
144
  }
145
145
  },
146
+ // meta.workspaceId — the publishing widget's dashboard. Forwarded over IPC
147
+ // so bots subscribed to one dashboard's widget ignore copies of it.
146
148
  pub: function pub(eventType, content) {
147
149
  var _window$mainApi;
150
+ var meta = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
148
151
  lastEventCache.set(eventType, {
149
152
  content: content,
150
153
  timestamp: Date.now()
@@ -171,7 +174,14 @@ var DashboardPublisher = {
171
174
 
172
175
  // Forward to other windows via IPC bridge
173
176
  if ((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && _window$mainApi.widgetEvent) {
174
- window.mainApi.widgetEvent.publish(eventType, content);
177
+ var workspaceId = meta && meta.workspaceId;
178
+ if (workspaceId != null && workspaceId !== "") {
179
+ window.mainApi.widgetEvent.publish(eventType, content, {
180
+ workspaceId: String(workspaceId)
181
+ });
182
+ } else {
183
+ window.mainApi.widgetEvent.publish(eventType, content);
184
+ }
175
185
  }
176
186
  },
177
187
  onMonitor: function onMonitor(callback) {
@@ -339,10 +349,12 @@ var WidgetApi = {
339
349
  publishEvent: function publishEvent() {
340
350
  var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
341
351
  var events = arguments.length > 1 ? arguments[1] : undefined;
352
+ var meta = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
342
353
  try {
343
354
  if (this.pub() !== null && name !== null && events !== null) {
344
355
  if ("pub" in this.pub()) {
345
- this.pub().pub(name, events);
356
+ // meta.workspaceId = the publishing widget's dashboard.
357
+ this.pub().pub(name, events, meta);
346
358
  }
347
359
  }
348
360
  } catch (e) {
@@ -2738,9 +2750,9 @@ function useWidgetRegistryVersion() {
2738
2750
  return version;
2739
2751
  }
2740
2752
 
2741
- 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; } } }; }
2742
- 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; } }
2743
- 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; }
2753
+ 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; } } }; }
2754
+ 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; } }
2755
+ 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; }
2744
2756
 
2745
2757
  /**
2746
2758
  * Walk a workspace layout and collect widget component keys that are
@@ -2754,7 +2766,7 @@ function collectComponentsFromLayout(layout) {
2754
2766
 
2755
2767
  // Collect IDs of layout items that are actively referenced by grid cells
2756
2768
  var activeItemIds = new Set();
2757
- var _iterator = _createForOfIteratorHelper$M(layout),
2769
+ var _iterator = _createForOfIteratorHelper$N(layout),
2758
2770
  _step;
2759
2771
  try {
2760
2772
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -2774,7 +2786,7 @@ function collectComponentsFromLayout(layout) {
2774
2786
  } finally {
2775
2787
  _iterator.f();
2776
2788
  }
2777
- var _iterator2 = _createForOfIteratorHelper$M(layout),
2789
+ var _iterator2 = _createForOfIteratorHelper$N(layout),
2778
2790
  _step2;
2779
2791
  try {
2780
2792
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -2808,7 +2820,7 @@ function findWidgetUsage(componentNames, workspaces) {
2808
2820
  if (!(componentNames !== null && componentNames !== void 0 && componentNames.length) || !(workspaces !== null && workspaces !== void 0 && workspaces.length)) return [];
2809
2821
  var nameSet = new Set(componentNames);
2810
2822
  var results = [];
2811
- var _iterator3 = _createForOfIteratorHelper$M(workspaces),
2823
+ var _iterator3 = _createForOfIteratorHelper$N(workspaces),
2812
2824
  _step3;
2813
2825
  try {
2814
2826
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -2949,7 +2961,7 @@ var useInstalledWidgets = function useInstalledWidgets() {
2949
2961
  _t = [];
2950
2962
  case 4:
2951
2963
  allDrafts = _t;
2952
- _iterator4 = _createForOfIteratorHelper$M(allDrafts);
2964
+ _iterator4 = _createForOfIteratorHelper$N(allDrafts);
2953
2965
  try {
2954
2966
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
2955
2967
  d = _step4.value;
@@ -3118,9 +3130,9 @@ var useInstalledWidgets = function useInstalledWidgets() {
3118
3130
  };
3119
3131
  };
3120
3132
 
3121
- 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; } } }; }
3122
- 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; } }
3123
- 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; }
3133
+ 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; } } }; }
3134
+ 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; } }
3135
+ 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; }
3124
3136
  function ownKeys$1a(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; }
3125
3137
  function _objectSpread$1a(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1a(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1a(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3126
3138
 
@@ -3646,7 +3658,7 @@ function useWidgetUpdates() {
3646
3658
  // (install replaces the entire package, not just one widget)
3647
3659
  setUpdates(function (prev) {
3648
3660
  var next = new Map(prev);
3649
- var _iterator = _createForOfIteratorHelper$L(next),
3661
+ var _iterator = _createForOfIteratorHelper$M(next),
3650
3662
  _step;
3651
3663
  try {
3652
3664
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -3705,7 +3717,7 @@ function useWidgetUpdates() {
3705
3717
  var packagesWithUpdates = useMemo(function () {
3706
3718
  if (!updates || updates.size === 0) return [];
3707
3719
  var byPackage = new Map();
3708
- var _iterator2 = _createForOfIteratorHelper$L(updates),
3720
+ var _iterator2 = _createForOfIteratorHelper$M(updates),
3709
3721
  _step2;
3710
3722
  try {
3711
3723
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -3733,7 +3745,7 @@ function useWidgetUpdates() {
3733
3745
  } finally {
3734
3746
  _iterator2.f();
3735
3747
  }
3736
- var _iterator3 = _createForOfIteratorHelper$L(installedWidgets),
3748
+ var _iterator3 = _createForOfIteratorHelper$M(installedWidgets),
3737
3749
  _step3;
3738
3750
  try {
3739
3751
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -3864,7 +3876,7 @@ function useWidgetUpdates() {
3864
3876
  // packageId) → grant rows (which are keyed by widgetId like
3865
3877
  // `trops.slack.SlackChannels`).
3866
3878
  rowByComponentName = new Map();
3867
- _iterator4 = _createForOfIteratorHelper$L(allRows);
3879
+ _iterator4 = _createForOfIteratorHelper$M(allRows);
3868
3880
  try {
3869
3881
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
3870
3882
  r = _step4.value;
@@ -3877,7 +3889,7 @@ function useWidgetUpdates() {
3877
3889
  _iterator4.f();
3878
3890
  }
3879
3891
  widgetsWithMissing = [];
3880
- _iterator5 = _createForOfIteratorHelper$L(manifests);
3892
+ _iterator5 = _createForOfIteratorHelper$M(manifests);
3881
3893
  _context5.prev = 8;
3882
3894
  _loop = /*#__PURE__*/_regeneratorRuntime.mark(function _loop() {
3883
3895
  var _manifest$permissions;
@@ -3900,7 +3912,7 @@ function useWidgetUpdates() {
3900
3912
  pkgWidgets = installedWidgets.filter(function (w) {
3901
3913
  return (w.packageId || w.name) === packageId;
3902
3914
  });
3903
- _iterator6 = _createForOfIteratorHelper$L(pkgWidgets);
3915
+ _iterator6 = _createForOfIteratorHelper$M(pkgWidgets);
3904
3916
  _context4.prev = 2;
3905
3917
  _iterator6.s();
3906
3918
  case 3:
@@ -4012,7 +4024,7 @@ function useWidgetUpdates() {
4012
4024
  // Seed every selected package as pending so the modal renders
4013
4025
  // the full per-row state from the first paint.
4014
4026
  initial = new Map();
4015
- _iterator7 = _createForOfIteratorHelper$L(packageNames);
4027
+ _iterator7 = _createForOfIteratorHelper$M(packageNames);
4016
4028
  try {
4017
4029
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
4018
4030
  name = _step7.value;
@@ -4072,7 +4084,7 @@ function useWidgetUpdates() {
4072
4084
  // loop so the freshly-installed code can immediately use
4073
4085
  // what was approved (and is gated from what wasn't).
4074
4086
  accepted = decision.acceptedByWidgetId || {};
4075
- _iterator8 = _createForOfIteratorHelper$L(preflight.widgets);
4087
+ _iterator8 = _createForOfIteratorHelper$M(preflight.widgets);
4076
4088
  _context7.prev = 6;
4077
4089
  _iterator8.s();
4078
4090
  case 7:
@@ -4156,7 +4168,7 @@ function useWidgetUpdates() {
4156
4168
  // e.g. a stale registry zip or a verify mismatch).
4157
4169
  failedDetails = [];
4158
4170
  _context7.prev = 19;
4159
- _iterator9 = _createForOfIteratorHelper$L(packageNames);
4171
+ _iterator9 = _createForOfIteratorHelper$M(packageNames);
4160
4172
  _context7.prev = 20;
4161
4173
  _loop2 = /*#__PURE__*/_regeneratorRuntime.mark(function _loop2() {
4162
4174
  var pkgName, msg, _t0;
@@ -4263,7 +4275,7 @@ function useWidgetUpdates() {
4263
4275
  succeededSet = new Set(succeeded);
4264
4276
  setUpdates(function (prev) {
4265
4277
  var next = new Map(prev);
4266
- var _iterator0 = _createForOfIteratorHelper$L(next),
4278
+ var _iterator0 = _createForOfIteratorHelper$M(next),
4267
4279
  _step0;
4268
4280
  try {
4269
4281
  for (_iterator0.s(); !(_step0 = _iterator0.n()).done;) {
@@ -4657,9 +4669,9 @@ function useRegistryAuth() {
4657
4669
 
4658
4670
  function ownKeys$18(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4659
4671
  function _objectSpread$18(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$18(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$18(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4660
- 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; } } }; }
4661
- 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; } }
4662
- 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; }
4672
+ 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; } } }; }
4673
+ 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; } }
4674
+ 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; }
4663
4675
  var secondaryBtnClass$1 = "px-3 py-2 text-sm font-medium rounded bg-gray-700 hover:bg-gray-600 disabled:bg-gray-800 disabled:text-gray-500 disabled:cursor-not-allowed text-gray-100";
4664
4676
  var primaryBtnClass$1 = "px-3 py-2 text-sm font-medium rounded bg-blue-600 hover:bg-blue-500 disabled:bg-gray-700 disabled:text-gray-500 disabled:cursor-not-allowed text-white";
4665
4677
 
@@ -4679,7 +4691,7 @@ function flattenPreflightLines(missing) {
4679
4691
  var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
4680
4692
  serverName = _Object$entries$_i[0],
4681
4693
  perms = _Object$entries$_i[1];
4682
- var _iterator = _createForOfIteratorHelper$K(perms.tools || []),
4694
+ var _iterator = _createForOfIteratorHelper$L(perms.tools || []),
4683
4695
  _step;
4684
4696
  try {
4685
4697
  var _loop2 = function _loop2() {
@@ -4706,7 +4718,7 @@ function flattenPreflightLines(missing) {
4706
4718
  } finally {
4707
4719
  _iterator.f();
4708
4720
  }
4709
- var _iterator2 = _createForOfIteratorHelper$K(perms.readPaths || []),
4721
+ var _iterator2 = _createForOfIteratorHelper$L(perms.readPaths || []),
4710
4722
  _step2;
4711
4723
  try {
4712
4724
  var _loop3 = function _loop3() {
@@ -4733,7 +4745,7 @@ function flattenPreflightLines(missing) {
4733
4745
  } finally {
4734
4746
  _iterator2.f();
4735
4747
  }
4736
- var _iterator3 = _createForOfIteratorHelper$K(perms.writePaths || []),
4748
+ var _iterator3 = _createForOfIteratorHelper$L(perms.writePaths || []),
4737
4749
  _step3;
4738
4750
  try {
4739
4751
  var _loop4 = function _loop4() {
@@ -4785,13 +4797,13 @@ var WidgetPreflightReview = function WidgetPreflightReview(_ref) {
4785
4797
  var _pendingPreflight$wid;
4786
4798
  if (!pendingPreflight || !((_pendingPreflight$wid = pendingPreflight.widgets) !== null && _pendingPreflight$wid !== void 0 && _pendingPreflight$wid.length)) return;
4787
4799
  var initial = {};
4788
- var _iterator4 = _createForOfIteratorHelper$K(pendingPreflight.widgets),
4800
+ var _iterator4 = _createForOfIteratorHelper$L(pendingPreflight.widgets),
4789
4801
  _step4;
4790
4802
  try {
4791
4803
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
4792
4804
  var w = _step4.value;
4793
4805
  initial[w.widgetId] = {};
4794
- var _iterator5 = _createForOfIteratorHelper$K(flattenPreflightLines(w.missing)),
4806
+ var _iterator5 = _createForOfIteratorHelper$L(flattenPreflightLines(w.missing)),
4795
4807
  _step5;
4796
4808
  try {
4797
4809
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -4828,7 +4840,7 @@ var WidgetPreflightReview = function WidgetPreflightReview(_ref) {
4828
4840
  // Build the per-widget addition blob from checked lines. Skip
4829
4841
  // widgets where the user unchecked everything.
4830
4842
  var acceptedByWidgetId = {};
4831
- var _iterator6 = _createForOfIteratorHelper$K(widgets),
4843
+ var _iterator6 = _createForOfIteratorHelper$L(widgets),
4832
4844
  _step6;
4833
4845
  try {
4834
4846
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
@@ -4836,7 +4848,7 @@ var WidgetPreflightReview = function WidgetPreflightReview(_ref) {
4836
4848
  var _lines = flattenPreflightLines(w.missing);
4837
4849
  var acc = {};
4838
4850
  var any = false;
4839
- var _iterator7 = _createForOfIteratorHelper$K(_lines),
4851
+ var _iterator7 = _createForOfIteratorHelper$L(_lines),
4840
4852
  _step7;
4841
4853
  try {
4842
4854
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
@@ -6121,9 +6133,9 @@ var LayoutContainer = function LayoutContainer(_ref) {
6121
6133
 
6122
6134
  function ownKeys$15(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; }
6123
6135
  function _objectSpread$15(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$15(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$15(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6124
- 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; } } }; }
6125
- 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; } }
6126
- 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; }
6136
+ 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; } } }; }
6137
+ 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; } }
6138
+ 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; }
6127
6139
  /**
6128
6140
  * Layout template definitions for the dashboard template picker.
6129
6141
  *
@@ -6397,7 +6409,7 @@ function createLayoutFromTemplate(template) {
6397
6409
  cols: template.cols,
6398
6410
  gap: "gap-2"
6399
6411
  };
6400
- var _iterator = _createForOfIteratorHelper$J(template.cells),
6412
+ var _iterator = _createForOfIteratorHelper$K(template.cells),
6401
6413
  _step;
6402
6414
  try {
6403
6415
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -7419,9 +7431,9 @@ var DashboardInstallOptionsModal = function DashboardInstallOptionsModal(_ref) {
7419
7431
  });
7420
7432
  };
7421
7433
 
7422
- 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; } } }; }
7423
- 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; } }
7424
- 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; }
7434
+ 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; } } }; }
7435
+ 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; } }
7436
+ 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; }
7425
7437
  function ownKeys$14(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; }
7426
7438
  function _objectSpread$14(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$14(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$14(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7427
7439
  var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
@@ -7790,7 +7802,7 @@ var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
7790
7802
  toInstall = 0,
7791
7803
  unavailable = 0,
7792
7804
  hasUnavailableRequired = false;
7793
- var _iterator = _createForOfIteratorHelper$I(widgetDeps),
7805
+ var _iterator = _createForOfIteratorHelper$J(widgetDeps),
7794
7806
  _step;
7795
7807
  try {
7796
7808
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -9491,9 +9503,9 @@ function cleanIpcError(message) {
9491
9503
  return match ? match[1] : message;
9492
9504
  }
9493
9505
 
9494
- 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; } } }; }
9495
- 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; } }
9496
- 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; }
9506
+ 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; } } }; }
9507
+ 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; } }
9508
+ 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; }
9497
9509
 
9498
9510
  /**
9499
9511
  * useRegistrySearch — shared hook for browsing and installing registry packages.
@@ -9607,13 +9619,13 @@ var useRegistrySearch = function useRegistrySearch() {
9607
9619
  return c.toLowerCase();
9608
9620
  }));
9609
9621
  widgets = [];
9610
- _iterator = _createForOfIteratorHelper$H(pkgs);
9622
+ _iterator = _createForOfIteratorHelper$I(pkgs);
9611
9623
  try {
9612
9624
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
9613
9625
  pkg = _step.value;
9614
9626
  // Compute missing APIs for the entire package
9615
9627
  allApiProviders = [];
9616
- _iterator2 = _createForOfIteratorHelper$H(pkg.providers || []);
9628
+ _iterator2 = _createForOfIteratorHelper$I(pkg.providers || []);
9617
9629
  try {
9618
9630
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
9619
9631
  p = _step2.value;
@@ -9626,11 +9638,11 @@ var useRegistrySearch = function useRegistrySearch() {
9626
9638
  } finally {
9627
9639
  _iterator2.f();
9628
9640
  }
9629
- _iterator3 = _createForOfIteratorHelper$H(pkg.widgets || []);
9641
+ _iterator3 = _createForOfIteratorHelper$I(pkg.widgets || []);
9630
9642
  try {
9631
9643
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
9632
9644
  w = _step3.value;
9633
- _iterator5 = _createForOfIteratorHelper$H(w.providers || []);
9645
+ _iterator5 = _createForOfIteratorHelper$I(w.providers || []);
9634
9646
  try {
9635
9647
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
9636
9648
  _p = _step5.value;
@@ -9652,7 +9664,7 @@ var useRegistrySearch = function useRegistrySearch() {
9652
9664
  missingApis = _toConsumableArray(new Set(allApiProviders)).filter(function (api) {
9653
9665
  return !capSet.has(api.toLowerCase());
9654
9666
  });
9655
- _iterator4 = _createForOfIteratorHelper$H(pkg.widgets || []);
9667
+ _iterator4 = _createForOfIteratorHelper$I(pkg.widgets || []);
9656
9668
  try {
9657
9669
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
9658
9670
  widget = _step4.value;
@@ -10439,9 +10451,9 @@ function WizardThemePreview(_ref) {
10439
10451
  });
10440
10452
  }
10441
10453
 
10442
- 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; } } }; }
10443
- 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; } }
10444
- 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; }
10454
+ 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; } } }; }
10455
+ 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; } }
10456
+ 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; }
10445
10457
  var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
10446
10458
  var _state$selectedDashbo, _state$selectedDashbo2, _state$layout;
10447
10459
  var state = _ref.state,
@@ -10660,7 +10672,7 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
10660
10672
  installedNames = new Set(installedList.map(function (w) {
10661
10673
  return w.name;
10662
10674
  }));
10663
- _iterator = _createForOfIteratorHelper$G(state.selectedWidgets);
10675
+ _iterator = _createForOfIteratorHelper$H(state.selectedWidgets);
10664
10676
  _context2.prev = 12;
10665
10677
  _iterator.s();
10666
10678
  case 13:
@@ -12348,9 +12360,9 @@ function mergeDownOp(grid, row, col) {
12348
12360
  }
12349
12361
 
12350
12362
  var _excluded$4 = ["rows", "cols"];
12351
- 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; } } }; }
12352
- 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; } }
12353
- 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; }
12363
+ 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; } } }; }
12364
+ 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; } }
12365
+ 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; }
12354
12366
  function ownKeys$11(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; }
12355
12367
  function _objectSpread$11(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$11(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$11(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12356
12368
  var defaultGrid = {
@@ -12472,7 +12484,7 @@ function GridEditor(_ref) {
12472
12484
  function sortObjectByKeys(obj) {
12473
12485
  var sortedKeys = Object.keys(obj).sort();
12474
12486
  var sortedObj = {};
12475
- var _iterator = _createForOfIteratorHelper$F(sortedKeys),
12487
+ var _iterator = _createForOfIteratorHelper$G(sortedKeys),
12476
12488
  _step;
12477
12489
  try {
12478
12490
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -12945,9 +12957,9 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
12945
12957
  });
12946
12958
  };
12947
12959
 
12948
- 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; } } }; }
12949
- 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; } }
12950
- 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; }
12960
+ 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; } } }; }
12961
+ 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; } }
12962
+ 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; }
12951
12963
  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; }
12952
12964
  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; }
12953
12965
  var DAYS = [{
@@ -13276,7 +13288,7 @@ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
13276
13288
  setIsLoading(true);
13277
13289
  window.mainApi.scheduler.getTasks(widgetUuid).then(function (tasks) {
13278
13290
  var stateMap = {};
13279
- var _iterator = _createForOfIteratorHelper$E(tasks || []),
13291
+ var _iterator = _createForOfIteratorHelper$F(tasks || []),
13280
13292
  _step;
13281
13293
  try {
13282
13294
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -13535,9 +13547,9 @@ function isUserWidget(item) {
13535
13547
  return true;
13536
13548
  }
13537
13549
 
13538
- 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; } } }; }
13539
- 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; } }
13540
- 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; }
13550
+ 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; } } }; }
13551
+ 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; } }
13552
+ 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; }
13541
13553
 
13542
13554
  /**
13543
13555
  * Resolve which provider name a given widget instance would bind to for
@@ -13569,7 +13581,7 @@ function resolveProviderName(_ref) {
13569
13581
  // array. Support both because different callers shape it either way.
13570
13582
  if (appProviders) {
13571
13583
  if (Array.isArray(appProviders)) {
13572
- var _iterator = _createForOfIteratorHelper$D(appProviders),
13584
+ var _iterator = _createForOfIteratorHelper$E(appProviders),
13573
13585
  _step;
13574
13586
  try {
13575
13587
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -13629,7 +13641,7 @@ function forEachWidget(workspace, visit) {
13629
13641
  };
13630
13642
  var _walk = function walk(items) {
13631
13643
  if (!Array.isArray(items)) return;
13632
- var _iterator2 = _createForOfIteratorHelper$D(items),
13644
+ var _iterator2 = _createForOfIteratorHelper$E(items),
13633
13645
  _step2;
13634
13646
  try {
13635
13647
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -13670,7 +13682,7 @@ function forEachWidget(workspace, visit) {
13670
13682
  // widgets that only live there (e.g. AI-place writes that bypass
13671
13683
  // the page handler).
13672
13684
  if (Array.isArray(workspace.pages)) {
13673
- var _iterator3 = _createForOfIteratorHelper$D(workspace.pages),
13685
+ var _iterator3 = _createForOfIteratorHelper$E(workspace.pages),
13674
13686
  _step3;
13675
13687
  try {
13676
13688
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -13721,7 +13733,7 @@ function getUnresolvedProviders(_ref2) {
13721
13733
  // the same `type` listed twice (a Claude code-gen quirk), which
13722
13734
  // would otherwise produce duplicate rows in the Providers tab.
13723
13735
  var seenTypes = new Set();
13724
- var _iterator4 = _createForOfIteratorHelper$D(requirements),
13736
+ var _iterator4 = _createForOfIteratorHelper$E(requirements),
13725
13737
  _step4;
13726
13738
  try {
13727
13739
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -13764,7 +13776,7 @@ function getUnresolvedProviders(_ref2) {
13764
13776
  */
13765
13777
  function groupByProviderType(unresolved) {
13766
13778
  var byType = new Map();
13767
- var _iterator5 = _createForOfIteratorHelper$D(unresolved || []),
13779
+ var _iterator5 = _createForOfIteratorHelper$E(unresolved || []),
13768
13780
  _step5;
13769
13781
  try {
13770
13782
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -13806,7 +13818,7 @@ function getAllProviderBindings(_ref3) {
13806
13818
  // quirk) which would otherwise duplicate the per-widget row in
13807
13819
  // the Providers tab.
13808
13820
  var seenTypes = new Set();
13809
- var _iterator6 = _createForOfIteratorHelper$D(requirements),
13821
+ var _iterator6 = _createForOfIteratorHelper$E(requirements),
13810
13822
  _step6;
13811
13823
  try {
13812
13824
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
@@ -13848,9 +13860,9 @@ function getAllProviderBindings(_ref3) {
13848
13860
 
13849
13861
  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; }
13850
13862
  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; }
13851
- 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; } } }; }
13852
- 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; } }
13853
- 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; }
13863
+ 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; } } }; }
13864
+ 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; } }
13865
+ 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; }
13854
13866
  var EVENT_STRING_RE = /^([^[]+)\[([^\]]+)\]\.(.+)$/;
13855
13867
 
13856
13868
  /** Parse "Component[itemId].event" → { component, itemId, event }. */
@@ -14020,7 +14032,7 @@ function getCurrentWiring(workspace) {
14020
14032
  // Live format is array; defensive guard for legacy object
14021
14033
  // form (a single source widget keyed under the handler).
14022
14034
  var events = Array.isArray(eventList) ? eventList : typeof eventList === "string" ? [eventList] : [];
14023
- var _iterator = _createForOfIteratorHelper$C(events),
14035
+ var _iterator = _createForOfIteratorHelper$D(events),
14024
14036
  _step;
14025
14037
  try {
14026
14038
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -14083,7 +14095,7 @@ function getOrphanedListeners(workspace, getWidgetConfig) {
14083
14095
  if (!byItemId.has(id)) byItemId.set(id, meta);
14084
14096
  });
14085
14097
  var orphans = [];
14086
- var _iterator2 = _createForOfIteratorHelper$C(wiring),
14098
+ var _iterator2 = _createForOfIteratorHelper$D(wiring),
14087
14099
  _step2;
14088
14100
  try {
14089
14101
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -14149,7 +14161,7 @@ function pruneDeadListenerReferences(workspace) {
14149
14161
  var liveKeys = new Set();
14150
14162
  var _walkForLive = function walkForLive(items) {
14151
14163
  if (!Array.isArray(items)) return;
14152
- var _iterator3 = _createForOfIteratorHelper$C(items),
14164
+ var _iterator3 = _createForOfIteratorHelper$D(items),
14153
14165
  _step3;
14154
14166
  try {
14155
14167
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -14170,7 +14182,7 @@ function pruneDeadListenerReferences(workspace) {
14170
14182
  };
14171
14183
  _walkForLive(workspace.layout);
14172
14184
  if (Array.isArray(workspace.pages)) {
14173
- var _iterator4 = _createForOfIteratorHelper$C(workspace.pages),
14185
+ var _iterator4 = _createForOfIteratorHelper$D(workspace.pages),
14174
14186
  _step4;
14175
14187
  try {
14176
14188
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -14187,7 +14199,7 @@ function pruneDeadListenerReferences(workspace) {
14187
14199
  var removed = 0;
14188
14200
  var _pruneListeners = function pruneListeners(items) {
14189
14201
  if (!Array.isArray(items)) return;
14190
- var _iterator5 = _createForOfIteratorHelper$C(items),
14202
+ var _iterator5 = _createForOfIteratorHelper$D(items),
14191
14203
  _step5;
14192
14204
  try {
14193
14205
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -14199,7 +14211,7 @@ function pruneDeadListenerReferences(workspace) {
14199
14211
  var events = item.listeners[handler];
14200
14212
  if (!Array.isArray(events)) continue;
14201
14213
  var kept = [];
14202
- var _iterator6 = _createForOfIteratorHelper$C(events),
14214
+ var _iterator6 = _createForOfIteratorHelper$D(events),
14203
14215
  _step6;
14204
14216
  try {
14205
14217
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
@@ -14234,7 +14246,7 @@ function pruneDeadListenerReferences(workspace) {
14234
14246
  };
14235
14247
  _pruneListeners(workspace.layout);
14236
14248
  if (Array.isArray(workspace.pages)) {
14237
- var _iterator7 = _createForOfIteratorHelper$C(workspace.pages),
14249
+ var _iterator7 = _createForOfIteratorHelper$D(workspace.pages),
14238
14250
  _step7;
14239
14251
  try {
14240
14252
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
@@ -14278,7 +14290,7 @@ function applyWiringChanges(workspace, _ref) {
14278
14290
  });
14279
14291
  return byReceiver.get(id);
14280
14292
  };
14281
- var _iterator8 = _createForOfIteratorHelper$C(adds),
14293
+ var _iterator8 = _createForOfIteratorHelper$D(adds),
14282
14294
  _step8;
14283
14295
  try {
14284
14296
  for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
@@ -14291,7 +14303,7 @@ function applyWiringChanges(workspace, _ref) {
14291
14303
  } finally {
14292
14304
  _iterator8.f();
14293
14305
  }
14294
- var _iterator9 = _createForOfIteratorHelper$C(removes),
14306
+ var _iterator9 = _createForOfIteratorHelper$D(removes),
14295
14307
  _step9;
14296
14308
  try {
14297
14309
  for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
@@ -14365,7 +14377,7 @@ function applyToItem(listeners, _ref2) {
14365
14377
  }
14366
14378
 
14367
14379
  // Removes first so a re-add (rare) lands.
14368
- var _iterator0 = _createForOfIteratorHelper$C(removes),
14380
+ var _iterator0 = _createForOfIteratorHelper$D(removes),
14369
14381
  _step0;
14370
14382
  try {
14371
14383
  var _loop = function _loop() {
@@ -14394,7 +14406,7 @@ function applyToItem(listeners, _ref2) {
14394
14406
  } finally {
14395
14407
  _iterator0.f();
14396
14408
  }
14397
- var _iterator1 = _createForOfIteratorHelper$C(adds),
14409
+ var _iterator1 = _createForOfIteratorHelper$D(adds),
14398
14410
  _step1;
14399
14411
  try {
14400
14412
  for (_iterator1.s(); !(_step1 = _iterator1.n()).done;) {
@@ -17438,9 +17450,9 @@ function mcpJsonToFormState(jsonString, nextRowId) {
17438
17450
  return result;
17439
17451
  }
17440
17452
 
17441
- 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; } } }; }
17442
- 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; } }
17443
- 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; }
17453
+ 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; } } }; }
17454
+ 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; } }
17455
+ 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; }
17444
17456
  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; }
17445
17457
  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; }
17446
17458
  var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
@@ -17725,11 +17737,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
17725
17737
 
17726
17738
  // Flatten all widgets from all packages for the widget list
17727
17739
  flatWidgets = [];
17728
- _iterator = _createForOfIteratorHelper$B(result.packages || []);
17740
+ _iterator = _createForOfIteratorHelper$C(result.packages || []);
17729
17741
  try {
17730
17742
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
17731
17743
  pkg = _step.value;
17732
- _iterator2 = _createForOfIteratorHelper$B(pkg.widgets || []);
17744
+ _iterator2 = _createForOfIteratorHelper$C(pkg.widgets || []);
17733
17745
  try {
17734
17746
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
17735
17747
  widget = _step2.value;
@@ -19656,9 +19668,9 @@ var useWidgetSchedulerStatus = function useWidgetSchedulerStatus(widgetId) {
19656
19668
  };
19657
19669
  };
19658
19670
 
19659
- 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; } } }; }
19660
- 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; } }
19661
- 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; }
19671
+ 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; } } }; }
19672
+ 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; } }
19673
+ 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; }
19662
19674
  function formatCountdown(ms) {
19663
19675
  if (ms == null || ms < 0) return "--";
19664
19676
  if (ms < 1000) return "< 1s";
@@ -19775,7 +19787,7 @@ var WidgetCardStatusBar = function WidgetCardStatusBar(_ref) {
19775
19787
 
19776
19788
  // Find soonest countdown among enabled tasks
19777
19789
  var soonestMs = null;
19778
- var _iterator = _createForOfIteratorHelper$A(enabledTasks),
19790
+ var _iterator = _createForOfIteratorHelper$B(enabledTasks),
19779
19791
  _step;
19780
19792
  try {
19781
19793
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -24197,7 +24209,11 @@ var WidgetHelpers = /*#__PURE__*/function () {
24197
24209
  key: "publishEvent",
24198
24210
  value: function publishEvent(eventName, payload) {
24199
24211
  if ("publishEvent" in this.api && typeof this.api["publishEvent"] === "function") {
24200
- this.api.publishEvent("".concat(this.params.component, "[").concat(this.params.id, "].").concat(eventName), payload);
24212
+ this.api.publishEvent("".concat(this.params.component, "[").concat(this.params.id, "].").concat(eventName), payload, null,
24213
+ // The widget's dashboard, so bots can tell copies of it apart.
24214
+ {
24215
+ workspaceId: this.params.dashboardId
24216
+ });
24201
24217
  }
24202
24218
  }
24203
24219
  }]);
@@ -25445,9 +25461,9 @@ var ExternalWidget = function ExternalWidget(_ref) {
25445
25461
  var GRID_CELL_WIDGET_TYPE = "grid-cell-widget";
25446
25462
  var SIDEBAR_WIDGET_TYPE = "sidebar-widget";
25447
25463
 
25448
- 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; } } }; }
25449
- 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; } }
25450
- 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; }
25464
+ 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; } } }; }
25465
+ 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; } }
25466
+ 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; }
25451
25467
  function ownKeys$M(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
25452
25468
  function _objectSpread$M(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$M(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$M(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
25453
25469
 
@@ -26070,7 +26086,7 @@ var LayoutGridContainer = /*#__PURE__*/memo(function (_ref3) {
26070
26086
  return selectable["delete"](cn);
26071
26087
  });
26072
26088
  var resolved = new Set();
26073
- var _iterator = _createForOfIteratorHelper$z(selectable),
26089
+ var _iterator = _createForOfIteratorHelper$A(selectable),
26074
26090
  _step;
26075
26091
  try {
26076
26092
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -28479,9 +28495,9 @@ function migrateBareComponentName(componentMap, component) {
28479
28495
 
28480
28496
  function ownKeys$K(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
28481
28497
  function _objectSpread$K(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$K(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$K(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
28482
- 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; } } }; }
28483
- 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; } }
28484
- 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; }
28498
+ 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; } } }; }
28499
+ 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; } }
28500
+ 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; }
28485
28501
  /**
28486
28502
  * The model for all layout components used primarily in the renderLayout method
28487
28503
  * @param {Object} layoutItem an object containing various attributes of the layout item
@@ -28493,7 +28509,7 @@ function _arrayLikeToArray$y(r, a) { (null == a || a > r.length) && (a = r.lengt
28493
28509
  function sortObjectByKeys(obj) {
28494
28510
  var sortedKeys = Object.keys(obj).sort();
28495
28511
  var sortedObj = {};
28496
- var _iterator = _createForOfIteratorHelper$y(sortedKeys),
28512
+ var _iterator = _createForOfIteratorHelper$z(sortedKeys),
28497
28513
  _step;
28498
28514
  try {
28499
28515
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -28811,9 +28827,9 @@ var SettingsModel = function SettingsModel() {
28811
28827
  return obj;
28812
28828
  };
28813
28829
 
28814
- 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; } } }; }
28815
- 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; } }
28816
- 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; }
28830
+ 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; } } }; }
28831
+ 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; } }
28832
+ 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; }
28817
28833
 
28818
28834
  /**
28819
28835
  * Workspace-level pre-pass that migrates legacy bare component
@@ -28888,7 +28904,7 @@ function migrateScopedIdsInWorkspace(workspace, componentMap) {
28888
28904
  };
28889
28905
  var _walk = function walk(items) {
28890
28906
  if (!Array.isArray(items)) return;
28891
- var _iterator = _createForOfIteratorHelper$x(items),
28907
+ var _iterator = _createForOfIteratorHelper$y(items),
28892
28908
  _step;
28893
28909
  try {
28894
28910
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -28910,7 +28926,7 @@ function migrateScopedIdsInWorkspace(workspace, componentMap) {
28910
28926
  };
28911
28927
  _walk(workspace.layout);
28912
28928
  if (Array.isArray(workspace.pages)) {
28913
- var _iterator2 = _createForOfIteratorHelper$x(workspace.pages),
28929
+ var _iterator2 = _createForOfIteratorHelper$y(workspace.pages),
28914
28930
  _step2;
28915
28931
  try {
28916
28932
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -28927,9 +28943,9 @@ function migrateScopedIdsInWorkspace(workspace, componentMap) {
28927
28943
  return counts;
28928
28944
  }
28929
28945
 
28930
- 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; } } }; }
28931
- 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; } }
28932
- 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; }
28946
+ 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; } } }; }
28947
+ 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; } }
28948
+ 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; }
28933
28949
  /**
28934
28950
  * cleanForeignWidgetsFromWorkspace.js
28935
28951
  *
@@ -28970,7 +28986,7 @@ function cleanForeignWidgetsFromWorkspace(workspace) {
28970
28986
  var _cleanList = function cleanList(items) {
28971
28987
  if (!Array.isArray(items)) return items;
28972
28988
  var kept = [];
28973
- var _iterator = _createForOfIteratorHelper$w(items),
28989
+ var _iterator = _createForOfIteratorHelper$x(items),
28974
28990
  _step;
28975
28991
  try {
28976
28992
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -29007,7 +29023,7 @@ function cleanForeignWidgetsFromWorkspace(workspace) {
29007
29023
  workspace.sidebarLayout = _cleanList(workspace.sidebarLayout);
29008
29024
  }
29009
29025
  if (Array.isArray(workspace.pages)) {
29010
- var _iterator2 = _createForOfIteratorHelper$w(workspace.pages),
29026
+ var _iterator2 = _createForOfIteratorHelper$x(workspace.pages),
29011
29027
  _step2;
29012
29028
  try {
29013
29029
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -29025,9 +29041,9 @@ function cleanForeignWidgetsFromWorkspace(workspace) {
29025
29041
  return summary;
29026
29042
  }
29027
29043
 
29028
- 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; } } }; }
29029
- 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; } }
29030
- 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; }
29044
+ 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; } } }; }
29045
+ 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; } }
29046
+ 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; }
29031
29047
  /**
29032
29048
  * migrateLayoutItemTypes.js
29033
29049
  *
@@ -29089,7 +29105,7 @@ function migrateLayoutItemTypes(workspace) {
29089
29105
  };
29090
29106
  var _walk = function walk(items) {
29091
29107
  if (!Array.isArray(items)) return;
29092
- var _iterator = _createForOfIteratorHelper$v(items),
29108
+ var _iterator = _createForOfIteratorHelper$w(items),
29093
29109
  _step;
29094
29110
  try {
29095
29111
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -29107,7 +29123,7 @@ function migrateLayoutItemTypes(workspace) {
29107
29123
  };
29108
29124
  _walk(workspace.layout);
29109
29125
  if (Array.isArray(workspace.pages)) {
29110
- var _iterator2 = _createForOfIteratorHelper$v(workspace.pages),
29126
+ var _iterator2 = _createForOfIteratorHelper$w(workspace.pages),
29111
29127
  _step2;
29112
29128
  try {
29113
29129
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -29679,9 +29695,9 @@ var ThemeModel = function ThemeModel() {
29679
29695
  }
29680
29696
  };
29681
29697
 
29682
- 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; } } }; }
29683
- 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; } }
29684
- 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; }
29698
+ 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; } } }; }
29699
+ 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; } }
29700
+ 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; }
29685
29701
  /*
29686
29702
  "component": AnalyticsReportsWidget,
29687
29703
  "type":"widget",
@@ -29799,7 +29815,7 @@ var ComponentConfigModel = function ComponentConfigModel() {
29799
29815
  if ("providers" in obj && Array.isArray(obj.providers)) {
29800
29816
  var seen = new Set();
29801
29817
  var cleaned = [];
29802
- var _iterator = _createForOfIteratorHelper$u(obj.providers),
29818
+ var _iterator = _createForOfIteratorHelper$v(obj.providers),
29803
29819
  _step;
29804
29820
  try {
29805
29821
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -29845,9 +29861,9 @@ var MenuItemModel = function MenuItemModel() {
29845
29861
  return m;
29846
29862
  };
29847
29863
 
29848
- 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; } } }; }
29849
- 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; } }
29850
- 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; }
29864
+ 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; } } }; }
29865
+ 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; } }
29866
+ 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; }
29851
29867
  function ownKeys$I(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
29852
29868
  function _objectSpread$I(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$I(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$I(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
29853
29869
  /**
@@ -29907,7 +29923,7 @@ function mergeGridCellsOp(grid, cellNumbers, keepComponentId) {
29907
29923
  maxRow = -Infinity;
29908
29924
  var minCol = Infinity,
29909
29925
  maxCol = -Infinity;
29910
- var _iterator = _createForOfIteratorHelper$t(cellNumbers),
29926
+ var _iterator = _createForOfIteratorHelper$u(cellNumbers),
29911
29927
  _step;
29912
29928
  try {
29913
29929
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -29931,7 +29947,7 @@ function mergeGridCellsOp(grid, cellNumbers, keepComponentId) {
29931
29947
  } finally {
29932
29948
  _iterator.f();
29933
29949
  }
29934
- var _iterator2 = _createForOfIteratorHelper$t(cellNumbers),
29950
+ var _iterator2 = _createForOfIteratorHelper$u(cellNumbers),
29935
29951
  _step2;
29936
29952
  try {
29937
29953
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -29973,7 +29989,7 @@ function mergeGridCellsOp(grid, cellNumbers, keepComponentId) {
29973
29989
  _iterator2.f();
29974
29990
  }
29975
29991
  var componentsInRange = [];
29976
- var _iterator3 = _createForOfIteratorHelper$t(cellNumbers),
29992
+ var _iterator3 = _createForOfIteratorHelper$u(cellNumbers),
29977
29993
  _step3;
29978
29994
  try {
29979
29995
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -30011,7 +30027,7 @@ function mergeGridCellsOp(grid, cellNumbers, keepComponentId) {
30011
30027
  // other selected cells get hidden and have their component refs
30012
30028
  // cleared (so a stale ref in a hidden cell never re-renders).
30013
30029
  var keepCell = cellNumbers[0];
30014
- var _iterator4 = _createForOfIteratorHelper$t(cellNumbers),
30030
+ var _iterator4 = _createForOfIteratorHelper$u(cellNumbers),
30015
30031
  _step4;
30016
30032
  try {
30017
30033
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -30541,9 +30557,9 @@ function deleteGridColumnOp(grid, colNumber) {
30541
30557
  };
30542
30558
  }
30543
30559
 
30544
- 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; } } }; }
30545
- 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; } }
30546
- 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; }
30560
+ 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; } } }; }
30561
+ 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; } }
30562
+ 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; }
30547
30563
  /**
30548
30564
  * A Model for a Workspace (Dashboard)
30549
30565
  * The Dashboard in this instance is the entire Layout inclusive of the workspaces and widgets
@@ -30615,7 +30631,7 @@ var DashboardModel = /*#__PURE__*/function () {
30615
30631
 
30616
30632
  // Also normalize grids within pages
30617
30633
  if (this.pages.length > 0) {
30618
- var _iterator = _createForOfIteratorHelper$s(this.pages),
30634
+ var _iterator = _createForOfIteratorHelper$t(this.pages),
30619
30635
  _step;
30620
30636
  try {
30621
30637
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -32015,7 +32031,7 @@ var DashboardModel = /*#__PURE__*/function () {
32015
32031
  // destructive-delete behavior.
32016
32032
  var result = deleteGridRowOp(gridContainer.grid, rowNumber);
32017
32033
  gridContainer.grid = result.grid;
32018
- var _iterator2 = _createForOfIteratorHelper$s(result.orphanedComponents),
32034
+ var _iterator2 = _createForOfIteratorHelper$t(result.orphanedComponents),
32019
32035
  _step2;
32020
32036
  try {
32021
32037
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -32114,7 +32130,7 @@ var DashboardModel = /*#__PURE__*/function () {
32114
32130
  // Slice 11: pure helper.
32115
32131
  var result = deleteGridColumnOp(gridContainer.grid, colNumber);
32116
32132
  gridContainer.grid = result.grid;
32117
- var _iterator3 = _createForOfIteratorHelper$s(result.orphanedComponents),
32133
+ var _iterator3 = _createForOfIteratorHelper$t(result.orphanedComponents),
32118
32134
  _step3;
32119
32135
  try {
32120
32136
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -32209,7 +32225,7 @@ var DashboardModel = /*#__PURE__*/function () {
32209
32225
  try {
32210
32226
  // Collect all item IDs actively referenced by grid cells
32211
32227
  var activeItemIds = new Set();
32212
- var _iterator4 = _createForOfIteratorHelper$s(this.layout),
32228
+ var _iterator4 = _createForOfIteratorHelper$t(this.layout),
32213
32229
  _step4;
32214
32230
  try {
32215
32231
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -32249,7 +32265,7 @@ var DashboardModel = /*#__PURE__*/function () {
32249
32265
  });
32250
32266
 
32251
32267
  // Clean listener references on remaining items for each removed orphan
32252
- var _iterator5 = _createForOfIteratorHelper$s(orphanedIds),
32268
+ var _iterator5 = _createForOfIteratorHelper$t(orphanedIds),
32253
32269
  _step5;
32254
32270
  try {
32255
32271
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -33004,9 +33020,9 @@ var useDashboard = function useDashboard() {
33004
33020
  });
33005
33021
  };
33006
33022
 
33007
- 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; } } }; }
33008
- 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; } }
33009
- 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; }
33023
+ 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; } } }; }
33024
+ 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; } }
33025
+ 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; }
33010
33026
 
33011
33027
  /**
33012
33028
  * useWidgetProviders Hook
@@ -33069,7 +33085,7 @@ var useWidgetProviders = function useWidgetProviders() {
33069
33085
  // 2. Workspace-level: stored as workspace.selectedProviders[widgetId][providerType]
33070
33086
  // 3. App-default: any provider in AppContext.providers flagged isDefaultForType
33071
33087
  var providers = {};
33072
- var _iterator = _createForOfIteratorHelper$r(providerDeclarations),
33088
+ var _iterator = _createForOfIteratorHelper$s(providerDeclarations),
33073
33089
  _step;
33074
33090
  try {
33075
33091
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -33128,9 +33144,9 @@ var useWidgetProviders = function useWidgetProviders() {
33128
33144
  };
33129
33145
  };
33130
33146
 
33131
- 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; } } }; }
33132
- 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; } }
33133
- 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; }
33147
+ 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; } } }; }
33148
+ 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; } }
33149
+ 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; }
33134
33150
 
33135
33151
  /**
33136
33152
  * Module-level shared state for MCP server connections.
@@ -33185,7 +33201,7 @@ function unionPathScope(grants, serverName) {
33185
33201
  allowedPaths: []
33186
33202
  };
33187
33203
  }
33188
- var _iterator = _createForOfIteratorHelper$q(grants),
33204
+ var _iterator = _createForOfIteratorHelper$r(grants),
33189
33205
  _step;
33190
33206
  try {
33191
33207
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -33198,7 +33214,7 @@ function unionPathScope(grants, serverName) {
33198
33214
  var serverPerms = servers[serverName];
33199
33215
  if (!serverPerms || _typeof(serverPerms) !== "object") continue;
33200
33216
  if (Array.isArray(serverPerms.readPaths)) {
33201
- var _iterator2 = _createForOfIteratorHelper$q(serverPerms.readPaths),
33217
+ var _iterator2 = _createForOfIteratorHelper$r(serverPerms.readPaths),
33202
33218
  _step2;
33203
33219
  try {
33204
33220
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -33212,7 +33228,7 @@ function unionPathScope(grants, serverName) {
33212
33228
  }
33213
33229
  }
33214
33230
  if (Array.isArray(serverPerms.writePaths)) {
33215
- var _iterator3 = _createForOfIteratorHelper$q(serverPerms.writePaths),
33231
+ var _iterator3 = _createForOfIteratorHelper$r(serverPerms.writePaths),
33216
33232
  _step3;
33217
33233
  try {
33218
33234
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -33900,13 +33916,17 @@ var useWidgetEvents = function useWidgetEvents() {
33900
33916
  id = _ref.id,
33901
33917
  uuid = _ref.uuid,
33902
33918
  events = _ref.events,
33903
- listenerConfig = _ref.listeners;
33919
+ listenerConfig = _ref.listeners,
33920
+ dashboardId = _ref.dashboardId;
33904
33921
  var publishEvent = useCallback(function (eventName, payload) {
33905
33922
  if (publisher && componentName && id != null) {
33906
33923
  var formattedName = "".concat(componentName, "[").concat(id, "].").concat(eventName);
33907
- publisher.pub(formattedName, payload);
33924
+ // Stamp the dashboard so bots can tell copies of a dashboard apart.
33925
+ publisher.pub(formattedName, payload, {
33926
+ workspaceId: dashboardId
33927
+ });
33908
33928
  }
33909
- }, [publisher, componentName, id]);
33929
+ }, [publisher, componentName, id, dashboardId]);
33910
33930
  var listen = useCallback(function (listeners, handlers) {
33911
33931
  if (publisher && uuid) {
33912
33932
  publisher.registerListeners(listeners, handlers, uuid);
@@ -34015,9 +34035,9 @@ var useNotifications = function useNotifications() {
34015
34035
  };
34016
34036
  };
34017
34037
 
34018
- 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; } } }; }
34019
- 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; } }
34020
- 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; }
34038
+ 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; } } }; }
34039
+ 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; } }
34040
+ 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; }
34021
34041
 
34022
34042
  /**
34023
34043
  * useScheduler Hook
@@ -34090,7 +34110,7 @@ var useScheduler = function useScheduler() {
34090
34110
  if (pending && pending.length > 0) {
34091
34111
  setPendingResults(pending);
34092
34112
  // Call handlers for each pending result
34093
- var _iterator = _createForOfIteratorHelper$p(pending),
34113
+ var _iterator = _createForOfIteratorHelper$q(pending),
34094
34114
  _step;
34095
34115
  try {
34096
34116
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -35329,9 +35349,9 @@ var CustomHexColorPane = function CustomHexColorPane(_ref) {
35329
35349
  });
35330
35350
  };
35331
35351
 
35332
- 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; } } }; }
35333
- 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; } }
35334
- 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; }
35352
+ 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; } } }; }
35353
+ 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; } }
35354
+ 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; }
35335
35355
  function rgbDistSq(a, b) {
35336
35356
  var dr = a.r - b.r;
35337
35357
  var dg = a.g - b.g;
@@ -35349,13 +35369,13 @@ function nearestSwatch(hex, families) {
35349
35369
  var target = hexToRgb$1(hex);
35350
35370
  if (!target) return null;
35351
35371
  var best = null;
35352
- var _iterator = _createForOfIteratorHelper$o(families),
35372
+ var _iterator = _createForOfIteratorHelper$p(families),
35353
35373
  _step;
35354
35374
  try {
35355
35375
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
35356
35376
  var family = _step.value;
35357
35377
  var grid = getCuratedColorGrid(family) || [];
35358
- var _iterator2 = _createForOfIteratorHelper$o(grid),
35378
+ var _iterator2 = _createForOfIteratorHelper$p(grid),
35359
35379
  _step2;
35360
35380
  try {
35361
35381
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -40225,9 +40245,9 @@ function useRegistryAuthGate() {
40225
40245
 
40226
40246
  function ownKeys$A(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
40227
40247
  function _objectSpread$A(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$A(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$A(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
40228
- 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; } } }; }
40229
- 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; } }
40230
- 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; }
40248
+ 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; } } }; }
40249
+ 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; } }
40250
+ 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; }
40231
40251
  var DASHBOARD_TAGS = ["productivity", "monitoring", "analytics", "communication", "developer", "sales", "marketing", "finance", "project-management", "social", "news", "utilities"];
40232
40252
  var BUMP_OPTIONS$1 = [{
40233
40253
  value: "patch",
@@ -40301,7 +40321,7 @@ function collectComponentConfigs() {
40301
40321
  // fixed "reference" entry.
40302
40322
  function seedSelections(plan, dashboardVisibility) {
40303
40323
  var selections = {};
40304
- var _iterator = _createForOfIteratorHelper$n(plan.widgets || []),
40324
+ var _iterator = _createForOfIteratorHelper$o(plan.widgets || []),
40305
40325
  _step;
40306
40326
  try {
40307
40327
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -40646,7 +40666,7 @@ var PublishDashboardModal = function PublishDashboardModal(_ref) {
40646
40666
  useEffect(function () {
40647
40667
  if (!isOpen || step !== 5 || !plan || defaultsLoading) return;
40648
40668
  var packagesToScan = [];
40649
- var _iterator2 = _createForOfIteratorHelper$n(plan.widgets || []),
40669
+ var _iterator2 = _createForOfIteratorHelper$o(plan.widgets || []),
40650
40670
  _step2;
40651
40671
  try {
40652
40672
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -40685,7 +40705,7 @@ var PublishDashboardModal = function PublishDashboardModal(_ref) {
40685
40705
  })).then(function (results) {
40686
40706
  setDefaultsByPackage(function (prev) {
40687
40707
  var next = _objectSpread$A({}, prev);
40688
- var _iterator3 = _createForOfIteratorHelper$n(results),
40708
+ var _iterator3 = _createForOfIteratorHelper$o(results),
40689
40709
  _step3;
40690
40710
  try {
40691
40711
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -40778,7 +40798,7 @@ var PublishDashboardModal = function PublishDashboardModal(_ref) {
40778
40798
  break;
40779
40799
  }
40780
40800
  seenPackages = new Set();
40781
- _iterator4 = _createForOfIteratorHelper$n(plan.widgets || []);
40801
+ _iterator4 = _createForOfIteratorHelper$o(plan.widgets || []);
40782
40802
  _context2.prev = 4;
40783
40803
  _iterator4.s();
40784
40804
  case 5:
@@ -41692,7 +41712,7 @@ function DependencyTable(_ref4) {
41692
41712
  // row. Each row shows the list of component widgets that live inside it
41693
41713
  // so the user knows what's getting published.
41694
41714
  var byKey = new Map();
41695
- var _iterator5 = _createForOfIteratorHelper$n(plan.widgets || []),
41715
+ var _iterator5 = _createForOfIteratorHelper$o(plan.widgets || []),
41696
41716
  _step6;
41697
41717
  try {
41698
41718
  for (_iterator5.s(); !(_step6 = _iterator5.n()).done;) {
@@ -41863,7 +41883,7 @@ function DefaultsReviewList(_ref6) {
41863
41883
  // stays aligned with Dependencies — no surprises about WHICH
41864
41884
  // package's defaults you're editing.
41865
41885
  var rows = [];
41866
- var _iterator6 = _createForOfIteratorHelper$n((plan === null || plan === void 0 ? void 0 : plan.widgets) || []),
41886
+ var _iterator6 = _createForOfIteratorHelper$o((plan === null || plan === void 0 ? void 0 : plan.widgets) || []),
41867
41887
  _step7;
41868
41888
  try {
41869
41889
  for (_iterator6.s(); !(_step7 = _iterator6.n()).done;) {
@@ -45798,9 +45818,9 @@ var McpCatalogDetail = function McpCatalogDetail(_ref) {
45798
45818
 
45799
45819
  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; }
45800
45820
  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; }
45801
- 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; } } }; }
45802
- 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; } }
45803
- 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; }
45821
+ 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; } } }; }
45822
+ 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; } }
45823
+ 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; }
45804
45824
  function isValidWsUrl(url) {
45805
45825
  if (!url) return false;
45806
45826
  try {
@@ -45847,7 +45867,7 @@ function extractCredentialFields(url, headerRows) {
45847
45867
  fields.add(match[1]);
45848
45868
  }
45849
45869
  }
45850
- var _iterator = _createForOfIteratorHelper$m(headerRows),
45870
+ var _iterator = _createForOfIteratorHelper$n(headerRows),
45851
45871
  _step;
45852
45872
  try {
45853
45873
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -45952,7 +45972,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
45952
45972
  if (!url.trim()) errs.url = "WebSocket URL is required";else if (!isValidWsUrl(url)) errs.url = "URL must start with ws:// or wss://";
45953
45973
 
45954
45974
  // Check required credential fields are filled
45955
- var _iterator2 = _createForOfIteratorHelper$m(credentialFields),
45975
+ var _iterator2 = _createForOfIteratorHelper$n(credentialFields),
45956
45976
  _step2;
45957
45977
  try {
45958
45978
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -45975,7 +45995,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
45975
45995
 
45976
45996
  // Build headers object from rows
45977
45997
  var headers = {};
45978
- var _iterator3 = _createForOfIteratorHelper$m(headerRows),
45998
+ var _iterator3 = _createForOfIteratorHelper$n(headerRows),
45979
45999
  _step3;
45980
46000
  try {
45981
46001
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -46044,7 +46064,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
46044
46064
 
46045
46065
  // Build config from current form state (same as handleSave)
46046
46066
  headers = {};
46047
- _iterator4 = _createForOfIteratorHelper$m(headerRows);
46067
+ _iterator4 = _createForOfIteratorHelper$n(headerRows);
46048
46068
  try {
46049
46069
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
46050
46070
  row = _step4.value;
@@ -47338,6 +47358,140 @@ function parseCron(cron) {
47338
47358
  };
47339
47359
  }
47340
47360
 
47361
+ 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; } } }; }
47362
+ 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; } }
47363
+ 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; }
47364
+
47365
+ /**
47366
+ * @param {Array<object>} workspaces dashboards (each with id, name, layout/pages)
47367
+ * @param {(component: string) => object|null} getWidgetConfig
47368
+ * @returns {Array<{ workspaceId: string, name: string,
47369
+ * widgets: Array<{ ref: string, instanceId: string, label: string, events: string[] }> }>}
47370
+ * dashboards with at least one event-emitting widget
47371
+ */
47372
+ function buildWidgetEventCatalog(workspaces, getWidgetConfig) {
47373
+ if (!Array.isArray(workspaces)) return [];
47374
+ var out = [];
47375
+ var _iterator = _createForOfIteratorHelper$m(workspaces),
47376
+ _step;
47377
+ try {
47378
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
47379
+ var ws = _step.value;
47380
+ if (!ws || ws.id === undefined || ws.id === null) continue;
47381
+ var widgets = getEmitters(ws, getWidgetConfig).filter(function (e) {
47382
+ return e.itemId != null && e.events.length;
47383
+ }).map(function (e) {
47384
+ return {
47385
+ ref: e.component,
47386
+ instanceId: String(e.itemId),
47387
+ label: e.label || e.component,
47388
+ events: e.events
47389
+ };
47390
+ });
47391
+ if (!widgets.length) continue;
47392
+ out.push({
47393
+ workspaceId: String(ws.id),
47394
+ name: ws.name || "Dashboard ".concat(ws.id),
47395
+ widgets: widgets
47396
+ });
47397
+ }
47398
+ // Dashboards can share a name (e.g. copies of "Kitchen Sink"); number the
47399
+ // duplicates so each picker entry is distinguishable.
47400
+ } catch (err) {
47401
+ _iterator.e(err);
47402
+ } finally {
47403
+ _iterator.f();
47404
+ }
47405
+ var totals = {};
47406
+ for (var _i = 0, _out = out; _i < _out.length; _i++) {
47407
+ var w = _out[_i];
47408
+ totals[w.name] = (totals[w.name] || 0) + 1;
47409
+ }
47410
+ var seen = {};
47411
+ for (var _i2 = 0, _out2 = out; _i2 < _out2.length; _i2++) {
47412
+ var _w = _out2[_i2];
47413
+ if (totals[_w.name] > 1) {
47414
+ seen[_w.name] = (seen[_w.name] || 0) + 1;
47415
+ _w.name = "".concat(_w.name, " (").concat(seen[_w.name], ")");
47416
+ }
47417
+ }
47418
+ return out;
47419
+ }
47420
+
47421
+ /** A subscription to one widget event, picked from the catalog. */
47422
+ function widgetSubscription(workspace, widget, event) {
47423
+ return {
47424
+ eventType: formatEventString(widget.ref, widget.instanceId, event),
47425
+ source: {
47426
+ kind: "widget",
47427
+ ref: widget.ref,
47428
+ instanceId: widget.instanceId,
47429
+ event: event,
47430
+ workspaceId: workspace.workspaceId
47431
+ },
47432
+ label: "".concat(workspace.name, " \u203A ").concat(widget.label, " \u203A ").concat(event)
47433
+ };
47434
+ }
47435
+
47436
+ /**
47437
+ * How to show a saved subscription: its label from the live catalog, and
47438
+ * whether its widget/event is gone (`missing`). Subscriptions saved before
47439
+ * the picker (bare eventType) get a friendly label when they still resolve;
47440
+ * otherwise they show as typed.
47441
+ */
47442
+ function describeSubscription(sub, catalog) {
47443
+ var eventType = sub && sub.eventType;
47444
+ var _iterator2 = _createForOfIteratorHelper$m(catalog || []),
47445
+ _step2;
47446
+ try {
47447
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
47448
+ var ws = _step2.value;
47449
+ var _iterator3 = _createForOfIteratorHelper$m(ws.widgets),
47450
+ _step3;
47451
+ try {
47452
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
47453
+ var w = _step3.value;
47454
+ var _iterator4 = _createForOfIteratorHelper$m(w.events),
47455
+ _step4;
47456
+ try {
47457
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
47458
+ var ev = _step4.value;
47459
+ if (formatEventString(w.ref, w.instanceId, ev) === eventType) {
47460
+ return {
47461
+ label: widgetSubscription(ws, w, ev).label,
47462
+ missing: false
47463
+ };
47464
+ }
47465
+ }
47466
+ } catch (err) {
47467
+ _iterator4.e(err);
47468
+ } finally {
47469
+ _iterator4.f();
47470
+ }
47471
+ }
47472
+ } catch (err) {
47473
+ _iterator3.e(err);
47474
+ } finally {
47475
+ _iterator3.f();
47476
+ }
47477
+ }
47478
+ } catch (err) {
47479
+ _iterator2.e(err);
47480
+ } finally {
47481
+ _iterator2.f();
47482
+ }
47483
+ if (sub && sub.source) {
47484
+ return {
47485
+ label: sub.label || eventType,
47486
+ missing: true
47487
+ };
47488
+ }
47489
+ return {
47490
+ label: eventType || "",
47491
+ missing: false
47492
+ };
47493
+ }
47494
+
47341
47495
  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; }
47342
47496
  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; }
47343
47497
  var PROVIDER_LABELS = {
@@ -47427,6 +47581,9 @@ function prettyTool(name) {
47427
47581
  var words = String(name || "").split(/[-_\s]+/).filter(Boolean).join(" ");
47428
47582
  return words.charAt(0).toUpperCase() + words.slice(1);
47429
47583
  }
47584
+
47585
+ // Stable default so the event-catalog memo doesn't recompute every render.
47586
+ var EMPTY_LIST = [];
47430
47587
  function getMainApi() {
47431
47588
  return typeof window !== "undefined" ? window.mainApi : null;
47432
47589
  }
@@ -47438,6 +47595,10 @@ var BotDetail = function BotDetail(_ref) {
47438
47595
  isCreating = _ref$isCreating === void 0 ? false : _ref$isCreating,
47439
47596
  _ref$providers = _ref.providers,
47440
47597
  providers = _ref$providers === void 0 ? {} : _ref$providers,
47598
+ _ref$workspaces = _ref.workspaces,
47599
+ workspaces = _ref$workspaces === void 0 ? EMPTY_LIST : _ref$workspaces,
47600
+ _ref$getWidgetConfig = _ref.getWidgetConfig,
47601
+ getWidgetConfig = _ref$getWidgetConfig === void 0 ? null : _ref$getWidgetConfig,
47441
47602
  onSave = _ref.onSave,
47442
47603
  onCancel = _ref.onCancel,
47443
47604
  onDelete = _ref.onDelete;
@@ -47581,42 +47742,38 @@ var BotDetail = function BotDetail(_ref) {
47581
47742
  setSchedulePrompt = _useState36[1];
47582
47743
 
47583
47744
  // --- Run-on-events (subscriptions) ---
47584
- var _useState37 = useState(((bot === null || bot === void 0 ? void 0 : bot.subscriptions) || []).map(function (s) {
47745
+ // Picked, never typed: Dashboard › Widget › Event from the widgets' declared
47746
+ // events. Each saved subscription keeps its runtime eventType plus a
47747
+ // structured source (see eventCatalog.js).
47748
+ var _useState37 = useState(((bot === null || bot === void 0 ? void 0 : bot.subscriptions) || []).filter(function (s) {
47585
47749
  return s && s.eventType;
47586
- }).filter(Boolean)),
47750
+ })),
47587
47751
  _useState38 = _slicedToArray(_useState37, 2),
47588
47752
  subscriptions = _useState38[0],
47589
47753
  setSubscriptions = _useState38[1];
47754
+ var eventCatalog = useMemo(function () {
47755
+ return buildWidgetEventCatalog(workspaces, getWidgetConfig);
47756
+ }, [workspaces, getWidgetConfig]);
47590
47757
  var _useState39 = useState(""),
47591
47758
  _useState40 = _slicedToArray(_useState39, 2),
47592
- newEvent = _useState40[0],
47593
- setNewEvent = _useState40[1];
47594
- var _useState41 = useState([]),
47759
+ pickWorkspace = _useState40[0],
47760
+ setPickWorkspace = _useState40[1];
47761
+ var _useState41 = useState(""),
47595
47762
  _useState42 = _slicedToArray(_useState41, 2),
47596
- knownEvents = _useState42[0],
47597
- setKnownEvents = _useState42[1];
47598
- var _useState43 = useState(false),
47763
+ pickWidget = _useState42[0],
47764
+ setPickWidget = _useState42[1];
47765
+ var _useState43 = useState(""),
47599
47766
  _useState44 = _slicedToArray(_useState43, 2),
47600
- saving = _useState44[0],
47601
- setSaving = _useState44[1];
47602
- var _useState45 = useState(null),
47767
+ pickEvent = _useState44[0],
47768
+ setPickEvent = _useState44[1];
47769
+ var _useState45 = useState(false),
47603
47770
  _useState46 = _slicedToArray(_useState45, 2),
47604
- error = _useState46[0],
47605
- setError = _useState46[1];
47606
-
47607
- // Discover recently-seen widget event types to suggest as subscriptions.
47608
- useEffect(function () {
47609
- var _api$widgetEvent;
47610
- var alive = true;
47611
- var api = getMainApi();
47612
- if (!(api !== null && api !== void 0 && (_api$widgetEvent = api.widgetEvent) !== null && _api$widgetEvent !== void 0 && _api$widgetEvent.getLastEvents)) return undefined;
47613
- Promise.resolve(api.widgetEvent.getLastEvents()).then(function (events) {
47614
- if (alive && events) setKnownEvents(Object.keys(events).sort());
47615
- })["catch"](function () {});
47616
- return function () {
47617
- alive = false;
47618
- };
47619
- }, []);
47771
+ saving = _useState46[0],
47772
+ setSaving = _useState46[1];
47773
+ var _useState47 = useState(null),
47774
+ _useState48 = _slicedToArray(_useState47, 2),
47775
+ error = _useState48[0],
47776
+ setError = _useState48[1];
47620
47777
 
47621
47778
  // Discover the user's configured MCP providers — running or not. The bot
47622
47779
  // starts any that aren't running when it runs.
@@ -47730,26 +47887,31 @@ var BotDetail = function BotDetail(_ref) {
47730
47887
  return copy;
47731
47888
  });
47732
47889
  };
47733
- var addSubscription = function addSubscription(eventType) {
47734
- var ev = (eventType || "").trim();
47735
- if (!ev) return;
47890
+
47891
+ // Cascading picker options. A widget's option value is "ref|instanceId".
47892
+ var pickedWs = eventCatalog.find(function (w) {
47893
+ return w.workspaceId === pickWorkspace;
47894
+ });
47895
+ var pickedWidget = pickedWs ? pickedWs.widgets.find(function (w) {
47896
+ return "".concat(w.ref, "|").concat(w.instanceId) === pickWidget;
47897
+ }) : null;
47898
+ var addSubscription = function addSubscription() {
47899
+ if (!pickedWs || !pickedWidget || !pickEvent) return;
47900
+ var sub = widgetSubscription(pickedWs, pickedWidget, pickEvent);
47736
47901
  setSubscriptions(function (prev) {
47737
- return prev.includes(ev) ? prev : [].concat(_toConsumableArray(prev), [ev]);
47902
+ return prev.some(function (s) {
47903
+ return s.eventType === sub.eventType;
47904
+ }) ? prev : [].concat(_toConsumableArray(prev), [sub]);
47738
47905
  });
47739
- setNewEvent("");
47906
+ setPickEvent("");
47740
47907
  };
47741
47908
  var removeSubscription = function removeSubscription(eventType) {
47742
47909
  setSubscriptions(function (prev) {
47743
- return prev.filter(function (e) {
47744
- return e !== eventType;
47910
+ return prev.filter(function (s) {
47911
+ return s.eventType !== eventType;
47745
47912
  });
47746
47913
  });
47747
47914
  };
47748
-
47749
- // Recently-seen events not already subscribed — offered as one-click adds.
47750
- var eventSuggestions = knownEvents.filter(function (ev) {
47751
- return !subscriptions.includes(ev);
47752
- });
47753
47915
  var canSave = name.trim() && instructions.trim() && !saving;
47754
47916
  var handleSave = /*#__PURE__*/function () {
47755
47917
  var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
@@ -47785,11 +47947,7 @@ var BotDetail = function BotDetail(_ref) {
47785
47947
  return selectedServers.includes(server);
47786
47948
  })),
47787
47949
  schedules: schedules,
47788
- subscriptions: subscriptions.map(function (eventType) {
47789
- return {
47790
- eventType: eventType
47791
- };
47792
- })
47950
+ subscriptions: subscriptions
47793
47951
  });
47794
47952
  setSaving(true);
47795
47953
  _context2.prev = 1;
@@ -48020,53 +48178,84 @@ var BotDetail = function BotDetail(_ref) {
48020
48178
  className: "text-sm font-medium",
48021
48179
  children: "Run on events"
48022
48180
  }), subscriptions.length ? /*#__PURE__*/jsx("div", {
48023
- className: "flex flex-row flex-wrap gap-2",
48024
- children: subscriptions.map(function (ev) {
48025
- return /*#__PURE__*/jsxs("span", {
48026
- className: "flex flex-row items-center gap-1 text-xs px-2 py-1 rounded bg-gray-700",
48027
- children: [ev, /*#__PURE__*/jsx("button", {
48028
- type: "button",
48181
+ className: "flex flex-col gap-1",
48182
+ children: subscriptions.map(function (sub) {
48183
+ var _describeSubscription = describeSubscription(sub, eventCatalog),
48184
+ label = _describeSubscription.label,
48185
+ missing = _describeSubscription.missing;
48186
+ return /*#__PURE__*/jsxs("div", {
48187
+ className: "flex flex-row items-center justify-between gap-2",
48188
+ children: [/*#__PURE__*/jsxs("span", {
48189
+ className: "text-sm",
48190
+ children: [label, missing ? /*#__PURE__*/jsxs("span", {
48191
+ className: "text-xs opacity-60",
48192
+ children: [" ", "(widget missing)"]
48193
+ }) : null]
48194
+ }), /*#__PURE__*/jsx(Button3, {
48195
+ title: "Remove",
48196
+ size: "xs",
48197
+ ariaLabel: "Remove ".concat(label),
48029
48198
  onClick: function onClick() {
48030
- return removeSubscription(ev);
48031
- },
48032
- className: "opacity-60 hover:opacity-100",
48033
- "aria-label": "Remove ".concat(ev),
48034
- children: "\xD7"
48199
+ return removeSubscription(sub.eventType);
48200
+ }
48035
48201
  })]
48036
- }, ev);
48202
+ }, sub.eventType);
48037
48203
  })
48038
48204
  }) : /*#__PURE__*/jsx("span", {
48039
48205
  className: "text-xs opacity-50",
48040
48206
  children: "This bot doesn't run on any events yet."
48041
- }), /*#__PURE__*/jsxs("div", {
48042
- className: "flex flex-row gap-2",
48043
- children: [/*#__PURE__*/jsx(InputText, {
48044
- value: newEvent,
48045
- onChange: setNewEvent,
48046
- placeholder: "Event name, e.g. pr.opened"
48047
- }), /*#__PURE__*/jsx(Button, {
48048
- title: "Add",
48049
- onClick: function onClick() {
48050
- return addSubscription(newEvent);
48207
+ }), eventCatalog.length ? /*#__PURE__*/jsxs("div", {
48208
+ className: "flex flex-col gap-2",
48209
+ children: [/*#__PURE__*/jsx(SelectInput, {
48210
+ label: "Dashboard",
48211
+ value: pickWorkspace,
48212
+ onChange: function onChange(v) {
48213
+ setPickWorkspace(v);
48214
+ setPickWidget("");
48215
+ setPickEvent("");
48216
+ },
48217
+ placeholder: "Choose a dashboard\u2026",
48218
+ options: eventCatalog.map(function (w) {
48219
+ return {
48220
+ value: w.workspaceId,
48221
+ label: w.name
48222
+ };
48223
+ })
48224
+ }), /*#__PURE__*/jsx(SelectInput, {
48225
+ label: "Widget",
48226
+ value: pickWidget,
48227
+ onChange: function onChange(v) {
48228
+ setPickWidget(v);
48229
+ setPickEvent("");
48051
48230
  },
48231
+ placeholder: "Choose a widget\u2026",
48232
+ options: (pickedWs ? pickedWs.widgets : []).map(function (w) {
48233
+ return {
48234
+ value: "".concat(w.ref, "|").concat(w.instanceId),
48235
+ label: w.label
48236
+ };
48237
+ })
48238
+ }), /*#__PURE__*/jsx(SelectInput, {
48239
+ label: "Event",
48240
+ value: pickEvent,
48241
+ onChange: setPickEvent,
48242
+ placeholder: "Choose an event\u2026",
48243
+ options: (pickedWidget ? pickedWidget.events : []).map(function (ev) {
48244
+ return {
48245
+ value: ev,
48246
+ label: ev
48247
+ };
48248
+ })
48249
+ }), /*#__PURE__*/jsx(Button, {
48250
+ title: "Add event",
48251
+ onClick: addSubscription,
48052
48252
  size: "sm",
48053
- disabled: !newEvent.trim()
48253
+ disabled: !pickedWidget || !pickEvent
48054
48254
  })]
48055
- }), eventSuggestions.length ? /*#__PURE__*/jsxs("div", {
48056
- className: "flex flex-row flex-wrap gap-1 items-center text-xs opacity-60",
48057
- children: [/*#__PURE__*/jsx("span", {
48058
- children: "Recently seen:"
48059
- }), eventSuggestions.slice(0, 8).map(function (ev) {
48060
- return /*#__PURE__*/jsx("button", {
48061
- type: "button",
48062
- onClick: function onClick() {
48063
- return addSubscription(ev);
48064
- },
48065
- className: "underline hover:opacity-100",
48066
- children: ev
48067
- }, ev);
48068
- })]
48069
- }) : null, /*#__PURE__*/jsx("span", {
48255
+ }) : /*#__PURE__*/jsx("span", {
48256
+ className: "text-xs opacity-50",
48257
+ children: "No widgets on your dashboards publish events yet. Add a widget that publishes events to a dashboard to trigger this bot from it."
48258
+ }), /*#__PURE__*/jsx("span", {
48070
48259
  className: "text-xs opacity-50",
48071
48260
  children: "The bot runs automatically when one of these events fires."
48072
48261
  })]
@@ -48099,8 +48288,23 @@ var BotDetail = function BotDetail(_ref) {
48099
48288
  });
48100
48289
  };
48101
48290
 
48291
+ var getWidgetConfig = function getWidgetConfig(name) {
48292
+ return name && ComponentManager.config(name) || null;
48293
+ };
48294
+
48295
+ /**
48296
+ * BotsSection — Settings → Bots. List-and-detail management for Bot Factory
48297
+ * bots, mirroring ProvidersSection. Data comes from the main process over
48298
+ * dashApi.bots.* (promise-based IPC bridge, exposed by dash-electron's
48299
+ * preload); the provider dropdown reads configured providers from AppContext.
48300
+ *
48301
+ * Watching runs / approvals lives in the Activity panel (a later slice); this
48302
+ * surface is create / configure / delete.
48303
+ */
48102
48304
  var BotsSection = function BotsSection(_ref) {
48103
- var _ref$dashApi = _ref.dashApi,
48305
+ var _ref$workspaces = _ref.workspaces,
48306
+ workspaces = _ref$workspaces === void 0 ? [] : _ref$workspaces,
48307
+ _ref$dashApi = _ref.dashApi,
48104
48308
  dashApi = _ref$dashApi === void 0 ? null : _ref$dashApi,
48105
48309
  _ref$createRequested = _ref.createRequested,
48106
48310
  createRequested = _ref$createRequested === void 0 ? false : _ref$createRequested,
@@ -48258,6 +48462,8 @@ var BotsSection = function BotsSection(_ref) {
48258
48462
  detailContent = /*#__PURE__*/jsx(BotDetail, {
48259
48463
  isCreating: true,
48260
48464
  providers: providers,
48465
+ workspaces: workspaces,
48466
+ getWidgetConfig: getWidgetConfig,
48261
48467
  onSave: handleSave,
48262
48468
  onCancel: function onCancel() {
48263
48469
  return setIsCreating(false);
@@ -48267,6 +48473,8 @@ var BotsSection = function BotsSection(_ref) {
48267
48473
  detailContent = /*#__PURE__*/jsx(BotDetail, {
48268
48474
  bot: selected,
48269
48475
  providers: providers,
48476
+ workspaces: workspaces,
48477
+ getWidgetConfig: getWidgetConfig,
48270
48478
  onSave: handleSave,
48271
48479
  onDelete: function onDelete() {
48272
48480
  return setDeleteTarget(selected.id);
@@ -57107,6 +57315,7 @@ var AppSettingsModal = function AppSettingsModal(_ref) {
57107
57315
  initialProviderType: initialProviderType,
57108
57316
  initialProviderClass: initialProviderClass
57109
57317
  }), activeSection === "bots" && /*#__PURE__*/jsx(BotsSection, {
57318
+ workspaces: workspaces,
57110
57319
  dashApi: dashApi,
57111
57320
  credentials: credentials,
57112
57321
  createRequested: createRequested,