@trops/dash-core 0.1.38 → 0.1.39

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
@@ -2636,9 +2636,9 @@ var LayoutContainer = function LayoutContainer(_ref) {
2636
2636
 
2637
2637
  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; }
2638
2638
  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; }
2639
- function _createForOfIteratorHelper$8(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$8(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
2640
- function _unsupportedIterableToArray$8(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$8(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$8(r, a) : void 0; } }
2641
- function _arrayLikeToArray$8(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
2639
+ function _createForOfIteratorHelper$9(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$9(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
2640
+ function _unsupportedIterableToArray$9(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$9(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$9(r, a) : void 0; } }
2641
+ function _arrayLikeToArray$9(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
2642
2642
  /**
2643
2643
  * Layout template definitions for the dashboard template picker.
2644
2644
  *
@@ -2874,7 +2874,7 @@ function createLayoutFromTemplate(template) {
2874
2874
  cols: template.cols,
2875
2875
  gap: "gap-2"
2876
2876
  };
2877
- var _iterator = _createForOfIteratorHelper$8(template.cells),
2877
+ var _iterator = _createForOfIteratorHelper$9(template.cells),
2878
2878
  _step;
2879
2879
  try {
2880
2880
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -4386,9 +4386,9 @@ var PanelEditItem = function PanelEditItem(_ref) {
4386
4386
  };
4387
4387
 
4388
4388
  var _excluded$5 = ["rows", "cols"];
4389
- function _createForOfIteratorHelper$7(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$7(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
4390
- function _unsupportedIterableToArray$7(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$7(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$7(r, a) : void 0; } }
4391
- function _arrayLikeToArray$7(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
4389
+ function _createForOfIteratorHelper$8(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$8(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
4390
+ function _unsupportedIterableToArray$8(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$8(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$8(r, a) : void 0; } }
4391
+ function _arrayLikeToArray$8(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
4392
4392
  function ownKeys$r(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4393
4393
  function _objectSpread$r(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$r(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$r(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4394
4394
  var defaultGrid = {
@@ -4541,7 +4541,7 @@ function GridEditor(_ref) {
4541
4541
  function sortObjectByKeys(obj) {
4542
4542
  var sortedKeys = Object.keys(obj).sort();
4543
4543
  var sortedObj = {};
4544
- var _iterator = _createForOfIteratorHelper$7(sortedKeys),
4544
+ var _iterator = _createForOfIteratorHelper$8(sortedKeys),
4545
4545
  _step;
4546
4546
  try {
4547
4547
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -7080,9 +7080,9 @@ var ProviderForm = function ProviderForm(_ref) {
7080
7080
  });
7081
7081
  };
7082
7082
 
7083
- function _createForOfIteratorHelper$6(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$6(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
7084
- function _unsupportedIterableToArray$6(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$6(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$6(r, a) : void 0; } }
7085
- function _arrayLikeToArray$6(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
7083
+ function _createForOfIteratorHelper$7(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$7(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
7084
+ function _unsupportedIterableToArray$7(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$7(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$7(r, a) : void 0; } }
7085
+ function _arrayLikeToArray$7(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
7086
7086
  function ownKeys$p(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
7087
7087
  function _objectSpread$p(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$p(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$p(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7088
7088
  var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
@@ -7291,11 +7291,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
7291
7291
 
7292
7292
  // Flatten all widgets from all packages for the widget list
7293
7293
  flatWidgets = [];
7294
- _iterator = _createForOfIteratorHelper$6(result.packages || []);
7294
+ _iterator = _createForOfIteratorHelper$7(result.packages || []);
7295
7295
  try {
7296
7296
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
7297
7297
  pkg = _step.value;
7298
- _iterator2 = _createForOfIteratorHelper$6(pkg.widgets || []);
7298
+ _iterator2 = _createForOfIteratorHelper$7(pkg.widgets || []);
7299
7299
  try {
7300
7300
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
7301
7301
  widget = _step2.value;
@@ -8461,9 +8461,9 @@ var ProviderBadge = function ProviderBadge(_ref) {
8461
8461
  });
8462
8462
  };
8463
8463
 
8464
- function _createForOfIteratorHelper$5(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$5(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
8465
- function _unsupportedIterableToArray$5(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$5(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$5(r, a) : void 0; } }
8466
- function _arrayLikeToArray$5(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
8464
+ function _createForOfIteratorHelper$6(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$6(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
8465
+ function _unsupportedIterableToArray$6(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$6(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$6(r, a) : void 0; } }
8466
+ function _arrayLikeToArray$6(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
8467
8467
  var WidgetCardHeader = function WidgetCardHeader(_ref) {
8468
8468
  var item = _ref.item,
8469
8469
  widget = _ref.widget,
@@ -8507,7 +8507,7 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
8507
8507
  var el = headerRef.current;
8508
8508
  if (!el) return;
8509
8509
  var observer = new ResizeObserver(function (entries) {
8510
- var _iterator = _createForOfIteratorHelper$5(entries),
8510
+ var _iterator = _createForOfIteratorHelper$6(entries),
8511
8511
  _step;
8512
8512
  try {
8513
8513
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -13217,9 +13217,9 @@ var ExternalWidget = function ExternalWidget(_ref) {
13217
13217
  var GRID_CELL_WIDGET_TYPE = "grid-cell-widget";
13218
13218
  var SIDEBAR_WIDGET_TYPE = "sidebar-widget";
13219
13219
 
13220
- function _createForOfIteratorHelper$4(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$4(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
13221
- function _unsupportedIterableToArray$4(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$4(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$4(r, a) : void 0; } }
13222
- function _arrayLikeToArray$4(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
13220
+ function _createForOfIteratorHelper$5(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$5(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
13221
+ function _unsupportedIterableToArray$5(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$5(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$5(r, a) : void 0; } }
13222
+ function _arrayLikeToArray$5(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
13223
13223
  function ownKeys$h(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13224
13224
  function _objectSpread$h(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$h(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$h(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13225
13225
  var DraggableCellBody = function DraggableCellBody(_ref) {
@@ -13565,7 +13565,7 @@ var LayoutGridContainer = /*#__PURE__*/memo(function (_ref3) {
13565
13565
  return selectable["delete"](cn);
13566
13566
  });
13567
13567
  var resolved = new Set();
13568
- var _iterator = _createForOfIteratorHelper$4(selectable),
13568
+ var _iterator = _createForOfIteratorHelper$5(selectable),
13569
13569
  _step;
13570
13570
  try {
13571
13571
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -15627,9 +15627,9 @@ function isWidgetResolvable(componentKey) {
15627
15627
 
15628
15628
  function ownKeys$g(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
15629
15629
  function _objectSpread$g(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$g(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$g(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15630
- function _createForOfIteratorHelper$3(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$3(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; } } }; }
15631
- function _unsupportedIterableToArray$3(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$3(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$3(r, a) : void 0; } }
15632
- function _arrayLikeToArray$3(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; }
15630
+ function _createForOfIteratorHelper$4(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$4(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
15631
+ function _unsupportedIterableToArray$4(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$4(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$4(r, a) : void 0; } }
15632
+ function _arrayLikeToArray$4(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
15633
15633
  /**
15634
15634
  * The model for all layout components used primarily in the renderLayout method
15635
15635
  * @param {Object} layoutItem an object containing various attributes of the layout item
@@ -15641,7 +15641,7 @@ function _arrayLikeToArray$3(r, a) { (null == a || a > r.length) && (a = r.lengt
15641
15641
  function sortObjectByKeys(obj) {
15642
15642
  var sortedKeys = Object.keys(obj).sort();
15643
15643
  var sortedObj = {};
15644
- var _iterator = _createForOfIteratorHelper$3(sortedKeys),
15644
+ var _iterator = _createForOfIteratorHelper$4(sortedKeys),
15645
15645
  _step;
15646
15646
  try {
15647
15647
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -18784,9 +18784,9 @@ var useDashboard = function useDashboard() {
18784
18784
  });
18785
18785
  };
18786
18786
 
18787
- function _createForOfIteratorHelper$2(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$2(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; } } }; }
18788
- function _unsupportedIterableToArray$2(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$2(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$2(r, a) : void 0; } }
18789
- function _arrayLikeToArray$2(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; }
18787
+ function _createForOfIteratorHelper$3(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$3(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; } } }; }
18788
+ function _unsupportedIterableToArray$3(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$3(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$3(r, a) : void 0; } }
18789
+ function _arrayLikeToArray$3(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; }
18790
18790
 
18791
18791
  /**
18792
18792
  * useWidgetProviders Hook
@@ -18837,7 +18837,7 @@ var useWidgetProviders = function useWidgetProviders() {
18837
18837
  // 1. Widget-level: stored directly on the layout item by handleSelectProvider
18838
18838
  // 2. Workspace-level: stored as workspace.selectedProviders[widgetId][providerType]
18839
18839
  var providers = {};
18840
- var _iterator = _createForOfIteratorHelper$2(providerDeclarations),
18840
+ var _iterator = _createForOfIteratorHelper$3(providerDeclarations),
18841
18841
  _step;
18842
18842
  try {
18843
18843
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -21642,9 +21642,9 @@ var resolveIcon = function resolveIcon(iconName) {
21642
21642
  return FALLBACK;
21643
21643
  };
21644
21644
 
21645
- function _createForOfIteratorHelper$1(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$1(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; } } }; }
21646
- function _unsupportedIterableToArray$1(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$1(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$1(r, a) : void 0; } }
21647
- function _arrayLikeToArray$1(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; }
21645
+ function _createForOfIteratorHelper$2(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$2(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; } } }; }
21646
+ function _unsupportedIterableToArray$2(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$2(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$2(r, a) : void 0; } }
21647
+ function _arrayLikeToArray$2(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; }
21648
21648
  /**
21649
21649
  * Validation utilities for grid-first dashboard architecture
21650
21650
  *
@@ -21883,7 +21883,7 @@ var validateCellMerge = function validateCellMerge(cellNumbers, grid) {
21883
21883
 
21884
21884
  // Validate each cell
21885
21885
  var cells = [];
21886
- var _iterator = _createForOfIteratorHelper$1(cellNumbers),
21886
+ var _iterator = _createForOfIteratorHelper$2(cellNumbers),
21887
21887
  _step;
21888
21888
  try {
21889
21889
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -28281,9 +28281,9 @@ var RegistryPackageDetail = function RegistryPackageDetail(_ref) {
28281
28281
  });
28282
28282
  };
28283
28283
 
28284
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(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; } } }; }
28285
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(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, a) : void 0; } }
28286
- function _arrayLikeToArray(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; }
28284
+ function _createForOfIteratorHelper$1(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$1(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; } } }; }
28285
+ function _unsupportedIterableToArray$1(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$1(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$1(r, a) : void 0; } }
28286
+ function _arrayLikeToArray$1(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; }
28287
28287
 
28288
28288
  /**
28289
28289
  * useRegistrySearch — shared hook for browsing and installing registry packages.
@@ -28358,11 +28358,11 @@ var useRegistrySearch = function useRegistrySearch() {
28358
28358
 
28359
28359
  // Flatten packages into widget entries
28360
28360
  widgets = [];
28361
- _iterator = _createForOfIteratorHelper(pkgs);
28361
+ _iterator = _createForOfIteratorHelper$1(pkgs);
28362
28362
  try {
28363
28363
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
28364
28364
  pkg = _step.value;
28365
- _iterator2 = _createForOfIteratorHelper(pkg.widgets || []);
28365
+ _iterator2 = _createForOfIteratorHelper$1(pkg.widgets || []);
28366
28366
  try {
28367
28367
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
28368
28368
  widget = _step2.value;
@@ -28638,6 +28638,71 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
28638
28638
  });
28639
28639
  };
28640
28640
 
28641
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(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; } } }; }
28642
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(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, a) : void 0; } }
28643
+ function _arrayLikeToArray(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; }
28644
+
28645
+ /**
28646
+ * Walk a workspace layout array (possibly nested via LayoutGridContainer
28647
+ * children) and collect every `item.component` value.
28648
+ */
28649
+ function collectComponentsFromLayout(layout) {
28650
+ var components = [];
28651
+ if (!Array.isArray(layout)) return components;
28652
+ var _iterator = _createForOfIteratorHelper(layout),
28653
+ _step;
28654
+ try {
28655
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
28656
+ var item = _step.value;
28657
+ if (item.component) components.push(item.component);
28658
+ if (Array.isArray(item.children)) {
28659
+ components.push.apply(components, _toConsumableArray(collectComponentsFromLayout(item.children)));
28660
+ }
28661
+ }
28662
+ } catch (err) {
28663
+ _iterator.e(err);
28664
+ } finally {
28665
+ _iterator.f();
28666
+ }
28667
+ return components;
28668
+ }
28669
+
28670
+ /**
28671
+ * Check which workspaces use any of the given component names.
28672
+ *
28673
+ * @param {string[]} componentNames – CM keys the widget package registers
28674
+ * @param {object[]} workspaces – workspace objects with .layout arrays
28675
+ * @returns {{ workspaceId: string, workspaceName: string, count: number }[]}
28676
+ */
28677
+ function findWidgetUsage(componentNames, workspaces) {
28678
+ if (!(componentNames !== null && componentNames !== void 0 && componentNames.length) || !(workspaces !== null && workspaces !== void 0 && workspaces.length)) return [];
28679
+ var nameSet = new Set(componentNames);
28680
+ var results = [];
28681
+ var _iterator2 = _createForOfIteratorHelper(workspaces),
28682
+ _step2;
28683
+ try {
28684
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
28685
+ var ws = _step2.value;
28686
+ var comps = collectComponentsFromLayout(ws.layout);
28687
+ var count = comps.filter(function (c) {
28688
+ return nameSet.has(c);
28689
+ }).length;
28690
+ if (count > 0) {
28691
+ results.push({
28692
+ workspaceId: ws.id,
28693
+ workspaceName: ws.name || ws.id,
28694
+ count: count
28695
+ });
28696
+ }
28697
+ }
28698
+ } catch (err) {
28699
+ _iterator2.e(err);
28700
+ } finally {
28701
+ _iterator2.f();
28702
+ }
28703
+ return results;
28704
+ }
28705
+
28641
28706
  /**
28642
28707
  * useInstalledWidgets — hook for listing and managing installed widgets.
28643
28708
  *
@@ -28683,13 +28748,15 @@ var useInstalledWidgets = function useInstalledWidgets() {
28683
28748
  name: key,
28684
28749
  displayName: config.name || key,
28685
28750
  author: config.author || null,
28751
+ "package": config["package"] || null,
28686
28752
  description: config.description || null,
28687
28753
  icon: config.icon || null,
28688
28754
  version: null,
28689
28755
  path: null,
28690
28756
  source: "builtin",
28691
28757
  providers: config.providers || [],
28692
- workspace: config.workspace || null
28758
+ workspace: config.workspace || null,
28759
+ componentNames: [key]
28693
28760
  };
28694
28761
  }); // ── Installed widgets from WidgetRegistry ───────────────
28695
28762
  // Registry entries now include .dash.js fields (icon, providers,
@@ -28719,13 +28786,15 @@ var useInstalledWidgets = function useInstalledWidgets() {
28719
28786
  name: w.name,
28720
28787
  displayName: w.displayName || (cm === null || cm === void 0 ? void 0 : cm.name) || cmKey || w.name,
28721
28788
  author: w.author || (cm === null || cm === void 0 ? void 0 : cm.author) || null,
28789
+ "package": w["package"] || (cm === null || cm === void 0 ? void 0 : cm["package"]) || null,
28722
28790
  description: w.description || (cm === null || cm === void 0 ? void 0 : cm.description) || null,
28723
28791
  icon: w.icon || (cm === null || cm === void 0 ? void 0 : cm.icon) || null,
28724
28792
  version: w.version || null,
28725
28793
  path: w.path || null,
28726
28794
  source: "installed",
28727
28795
  providers: (_w$providers = w.providers) !== null && _w$providers !== void 0 && _w$providers.length ? w.providers : (cm === null || cm === void 0 ? void 0 : cm.providers) || [],
28728
- workspace: w.workspace || (cm === null || cm === void 0 ? void 0 : cm.workspace) || null
28796
+ workspace: w.workspace || (cm === null || cm === void 0 ? void 0 : cm.workspace) || null,
28797
+ componentNames: w.componentNames || (cmKey ? [cmKey] : [])
28729
28798
  };
28730
28799
  });
28731
28800
  case 3:
@@ -28820,7 +28889,10 @@ var useInstalledWidgets = function useInstalledWidgets() {
28820
28889
  };
28821
28890
 
28822
28891
  var WidgetsSection = function WidgetsSection(_ref) {
28823
- var _ref$createRequested = _ref.createRequested,
28892
+ var _ref$workspaces = _ref.workspaces,
28893
+ workspaces = _ref$workspaces === void 0 ? [] : _ref$workspaces;
28894
+ _ref.credentials;
28895
+ var _ref$createRequested = _ref.createRequested,
28824
28896
  createRequested = _ref$createRequested === void 0 ? false : _ref$createRequested,
28825
28897
  _ref$onCreateAcknowle = _ref.onCreateAcknowledged,
28826
28898
  onCreateAcknowledged = _ref$onCreateAcknowle === void 0 ? null : _ref$onCreateAcknowle;
@@ -28848,10 +28920,99 @@ var WidgetsSection = function WidgetsSection(_ref) {
28848
28920
  _useState6 = _slicedToArray(_useState5, 2),
28849
28921
  deleteTarget = _useState6[0],
28850
28922
  setDeleteTarget = _useState6[1];
28851
- var _useState7 = useState(null),
28923
+ var _useState7 = useState([]),
28852
28924
  _useState8 = _slicedToArray(_useState7, 2),
28853
- installResult = _useState8[0],
28854
- setInstallResult = _useState8[1];
28925
+ deleteUsage = _useState8[0],
28926
+ setDeleteUsage = _useState8[1];
28927
+ var _useState9 = useState(null),
28928
+ _useState0 = _slicedToArray(_useState9, 2),
28929
+ installResult = _useState0[0],
28930
+ setInstallResult = _useState0[1];
28931
+
28932
+ // ── Filter state ────────────────────────────────────────────────────
28933
+ var _useState1 = useState(""),
28934
+ _useState10 = _slicedToArray(_useState1, 2),
28935
+ searchQuery = _useState10[0],
28936
+ setSearchQuery = _useState10[1];
28937
+ var _useState11 = useState("all"),
28938
+ _useState12 = _slicedToArray(_useState11, 2),
28939
+ filterSource = _useState12[0],
28940
+ setFilterSource = _useState12[1]; // "all" | "builtin" | "installed"
28941
+ var _useState13 = useState("all"),
28942
+ _useState14 = _slicedToArray(_useState13, 2),
28943
+ filterAuthor = _useState14[0],
28944
+ setFilterAuthor = _useState14[1];
28945
+ var _useState15 = useState("all"),
28946
+ _useState16 = _slicedToArray(_useState15, 2),
28947
+ filterProvider = _useState16[0],
28948
+ setFilterProvider = _useState16[1];
28949
+
28950
+ // ── Derived filter options ──────────────────────────────────────────
28951
+ var uniqueAuthors = useMemo(function () {
28952
+ return _toConsumableArray(new Set(widgets.map(function (w) {
28953
+ return w["package"] || w.author || "Other";
28954
+ }))).sort();
28955
+ }, [widgets]);
28956
+ var uniqueProviders = useMemo(function () {
28957
+ return _toConsumableArray(new Set(widgets.flatMap(function (w) {
28958
+ return (w.providers || []).map(function (p) {
28959
+ return p.type;
28960
+ });
28961
+ }))).sort();
28962
+ }, [widgets]);
28963
+
28964
+ // ── Filtered + grouped widgets ──────────────────────────────────────
28965
+ var _useMemo = useMemo(function () {
28966
+ var filtered = widgets.filter(function (w) {
28967
+ // Search: match name, displayName, or description
28968
+ if (searchQuery) {
28969
+ var q = searchQuery.toLowerCase();
28970
+ var matchesSearch = (w.displayName || "").toLowerCase().includes(q) || (w.name || "").toLowerCase().includes(q) || (w.description || "").toLowerCase().includes(q);
28971
+ if (!matchesSearch) return false;
28972
+ }
28973
+ // Source filter
28974
+ if (filterSource !== "all" && w.source !== filterSource) return false;
28975
+ // Author/package filter
28976
+ if (filterAuthor !== "all") {
28977
+ if ((w["package"] || w.author || "Other") !== filterAuthor) return false;
28978
+ }
28979
+ // Provider filter
28980
+ if (filterProvider !== "all") {
28981
+ if (filterProvider === "none") {
28982
+ if (w.providers && w.providers.length > 0) return false;
28983
+ } else {
28984
+ if (!w.providers || !w.providers.some(function (p) {
28985
+ return p.type === filterProvider;
28986
+ })) return false;
28987
+ }
28988
+ }
28989
+ return true;
28990
+ });
28991
+
28992
+ // Group by package > author > "Other"
28993
+ var groups = {};
28994
+ filtered.forEach(function (w) {
28995
+ var group = w["package"] || w.author || "Other";
28996
+ if (!groups[group]) groups[group] = [];
28997
+ groups[group].push(w);
28998
+ });
28999
+ return {
29000
+ filteredGrouped: groups,
29001
+ filteredCount: filtered.length,
29002
+ totalCount: widgets.length
29003
+ };
29004
+ }, [widgets, searchQuery, filterSource, filterAuthor, filterProvider]),
29005
+ filteredGrouped = _useMemo.filteredGrouped,
29006
+ filteredCount = _useMemo.filteredCount,
29007
+ totalCount = _useMemo.totalCount;
29008
+ var hasActiveFilters = searchQuery || filterSource !== "all" || filterAuthor !== "all" || filterProvider !== "all";
29009
+ var clearFilters = function clearFilters() {
29010
+ setSearchQuery("");
29011
+ setFilterSource("all");
29012
+ setFilterAuthor("all");
29013
+ setFilterProvider("all");
29014
+ };
29015
+ var selectClassName = "w-full px-2 py-1 rounded text-xs bg-transparent border ".concat(currentTheme["border-primary-medium"] || "border-gray-700", " ").concat(currentTheme["text-primary-light"] || "text-gray-300", " focus:outline-none appearance-none cursor-pointer");
28855
29016
 
28856
29017
  // Respond to external create trigger from header button
28857
29018
  var prevCreateRequested = useRef(false);
@@ -28870,6 +29031,14 @@ var WidgetsSection = function WidgetsSection(_ref) {
28870
29031
  var selectedWidget = selectedWidgetName ? widgets.find(function (w) {
28871
29032
  return w.name === selectedWidgetName;
28872
29033
  }) : null;
29034
+
29035
+ // ── Uninstall with usage check ──────────────────────────────────────
29036
+
29037
+ function handleDeleteRequest(widget) {
29038
+ var usage = findWidgetUsage(widget.componentNames, workspaces);
29039
+ setDeleteUsage(usage);
29040
+ setDeleteTarget(widget);
29041
+ }
28873
29042
  function handleConfirmDelete() {
28874
29043
  return _handleConfirmDelete.apply(this, arguments);
28875
29044
  }
@@ -28898,6 +29067,7 @@ var WidgetsSection = function WidgetsSection(_ref) {
28898
29067
  _context["catch"](1);
28899
29068
  case 4:
28900
29069
  setDeleteTarget(null);
29070
+ setDeleteUsage([]);
28901
29071
  case 5:
28902
29072
  case "end":
28903
29073
  return _context.stop();
@@ -29078,33 +29248,126 @@ var WidgetsSection = function WidgetsSection(_ref) {
29078
29248
  className: "text-sm opacity-40 py-8 text-center block",
29079
29249
  children: "No widgets available"
29080
29250
  });
29251
+ } else if (filteredCount === 0) {
29252
+ listBody = /*#__PURE__*/jsx("span", {
29253
+ className: "text-sm opacity-40 py-8 text-center block",
29254
+ children: "No widgets match filters"
29255
+ });
29081
29256
  } else {
29082
- listBody = widgets.map(function (widget) {
29083
- var isSelected = selectedWidgetName === widget.name && !installMode;
29084
- return /*#__PURE__*/jsx(Sidebar.Item, {
29085
- icon: /*#__PURE__*/jsx(FontAwesomeIcon, {
29086
- icon: resolveIcon(widget.icon),
29087
- className: "h-3.5 w-3.5"
29088
- }),
29089
- active: isSelected,
29090
- onClick: function onClick() {
29091
- setSelectedWidgetName(widget.name);
29092
- setInstallMode(null);
29093
- setInstallResult(null);
29094
- },
29095
- className: isSelected ? "bg-white/10 opacity-100" : "",
29096
- children: /*#__PURE__*/jsxs("span", {
29097
- className: "flex items-center gap-2",
29098
- children: [widget.displayName || widget.name, widget.source === "builtin" && /*#__PURE__*/jsx(Tag3, {
29099
- text: "Built-in"
29100
- })]
29101
- })
29102
- }, widget.name);
29257
+ var groupKeys = Object.keys(filteredGrouped).sort();
29258
+ var showGroupHeaders = groupKeys.length > 1;
29259
+ listBody = groupKeys.map(function (group) {
29260
+ var groupWidgets = filteredGrouped[group];
29261
+ var items = groupWidgets.map(function (widget) {
29262
+ var isSelected = selectedWidgetName === widget.name && !installMode;
29263
+ return /*#__PURE__*/jsx(Sidebar.Item, {
29264
+ icon: /*#__PURE__*/jsx(FontAwesomeIcon, {
29265
+ icon: resolveIcon(widget.icon),
29266
+ className: "h-3.5 w-3.5"
29267
+ }),
29268
+ active: isSelected,
29269
+ onClick: function onClick() {
29270
+ setSelectedWidgetName(widget.name);
29271
+ setInstallMode(null);
29272
+ setInstallResult(null);
29273
+ },
29274
+ className: isSelected ? "bg-white/10 opacity-100" : "",
29275
+ children: /*#__PURE__*/jsxs("span", {
29276
+ className: "flex items-center gap-2",
29277
+ children: [widget.displayName || widget.name, widget.source === "builtin" && /*#__PURE__*/jsx(Tag3, {
29278
+ text: "Built-in"
29279
+ })]
29280
+ })
29281
+ }, widget.name);
29282
+ });
29283
+ if (showGroupHeaders) {
29284
+ return /*#__PURE__*/jsx(Sidebar.Group, {
29285
+ label: group,
29286
+ children: items
29287
+ }, group);
29288
+ }
29289
+ return items;
29103
29290
  });
29104
29291
  }
29105
29292
  var listContent = /*#__PURE__*/jsxs("div", {
29106
29293
  className: "flex flex-col h-full",
29107
- children: [/*#__PURE__*/jsx(Sidebar.Content, {
29294
+ children: [!isLoading && !error && widgets.length > 0 && /*#__PURE__*/jsxs("div", {
29295
+ className: "flex flex-col gap-2 px-3 py-2 flex-shrink-0 border-b border-white/10",
29296
+ children: [/*#__PURE__*/jsx(SearchInput, {
29297
+ value: searchQuery,
29298
+ onChange: setSearchQuery,
29299
+ placeholder: "Search widgets...",
29300
+ inputClassName: "py-1.5 text-xs"
29301
+ }), /*#__PURE__*/jsx("div", {
29302
+ className: "flex bg-white/5 rounded-md p-0.5",
29303
+ children: [{
29304
+ key: "all",
29305
+ label: "All"
29306
+ }, {
29307
+ key: "builtin",
29308
+ label: "Built-in"
29309
+ }, {
29310
+ key: "installed",
29311
+ label: "Installed"
29312
+ }].map(function (tab) {
29313
+ return /*#__PURE__*/jsx("button", {
29314
+ type: "button",
29315
+ onClick: function onClick() {
29316
+ return setFilterSource(tab.key);
29317
+ },
29318
+ className: "flex-1 px-2 py-0.5 rounded text-[11px] transition-colors ".concat(filterSource === tab.key ? "bg-white/10 font-medium opacity-90" : "opacity-50 hover:opacity-70"),
29319
+ children: tab.label
29320
+ }, tab.key);
29321
+ })
29322
+ }), /*#__PURE__*/jsxs("div", {
29323
+ className: "grid grid-cols-2 gap-1.5",
29324
+ children: [/*#__PURE__*/jsxs("select", {
29325
+ value: filterAuthor,
29326
+ onChange: function onChange(e) {
29327
+ return setFilterAuthor(e.target.value);
29328
+ },
29329
+ className: selectClassName,
29330
+ children: [/*#__PURE__*/jsx("option", {
29331
+ value: "all",
29332
+ children: "All Authors"
29333
+ }), uniqueAuthors.map(function (a) {
29334
+ return /*#__PURE__*/jsx("option", {
29335
+ value: a,
29336
+ children: a
29337
+ }, a);
29338
+ })]
29339
+ }), /*#__PURE__*/jsxs("select", {
29340
+ value: filterProvider,
29341
+ onChange: function onChange(e) {
29342
+ return setFilterProvider(e.target.value);
29343
+ },
29344
+ className: selectClassName,
29345
+ children: [/*#__PURE__*/jsx("option", {
29346
+ value: "all",
29347
+ children: "All Providers"
29348
+ }), /*#__PURE__*/jsx("option", {
29349
+ value: "none",
29350
+ children: "No Providers"
29351
+ }), uniqueProviders.map(function (p) {
29352
+ return /*#__PURE__*/jsx("option", {
29353
+ value: p,
29354
+ children: p
29355
+ }, p);
29356
+ })]
29357
+ })]
29358
+ }), /*#__PURE__*/jsxs("div", {
29359
+ className: "flex items-center justify-between text-[10px] px-0.5",
29360
+ children: [/*#__PURE__*/jsx("span", {
29361
+ className: "opacity-50",
29362
+ children: hasActiveFilters ? "".concat(filteredCount, " of ").concat(totalCount, " widgets") : "".concat(totalCount, " widgets")
29363
+ }), hasActiveFilters && /*#__PURE__*/jsx("button", {
29364
+ type: "button",
29365
+ onClick: clearFilters,
29366
+ className: "opacity-60 hover:opacity-100 transition-opacity text-gray-300 hover:bg-white/10 px-1.5 py-0.5 rounded",
29367
+ children: "Clear"
29368
+ })]
29369
+ })]
29370
+ }), /*#__PURE__*/jsx(Sidebar.Content, {
29108
29371
  children: listBody
29109
29372
  }), !isLoading && !error && widgets.length > 0 && /*#__PURE__*/jsx("div", {
29110
29373
  className: "px-3 py-2 text-[10px] opacity-40 flex-shrink-0 border-t border-white/10",
@@ -29182,10 +29445,14 @@ var WidgetsSection = function WidgetsSection(_ref) {
29182
29445
  detailContent = /*#__PURE__*/jsx(InstalledWidgetDetail, {
29183
29446
  widget: selectedWidget,
29184
29447
  onDelete: function onDelete(w) {
29185
- return setDeleteTarget(w);
29448
+ return handleDeleteRequest(w);
29186
29449
  }
29187
29450
  });
29188
29451
  }
29452
+
29453
+ // ── Uninstall confirmation message ──────────────────────────────────
29454
+
29455
+ var deleteMessage = deleteUsage.length > 0 ? "\"".concat((deleteTarget === null || deleteTarget === void 0 ? void 0 : deleteTarget.displayName) || (deleteTarget === null || deleteTarget === void 0 ? void 0 : deleteTarget.name), "\" is currently used in ").concat(deleteUsage.length, " dashboard").concat(deleteUsage.length !== 1 ? "s" : "", ". Uninstalling will leave orphaned layout items on these dashboards.") : "Are you sure you want to uninstall \"".concat((deleteTarget === null || deleteTarget === void 0 ? void 0 : deleteTarget.displayName) || (deleteTarget === null || deleteTarget === void 0 ? void 0 : deleteTarget.name), "\"?");
29189
29456
  return /*#__PURE__*/jsxs(Fragment, {
29190
29457
  children: [/*#__PURE__*/jsx(SectionLayout, {
29191
29458
  listContent: listContent,
@@ -29194,16 +29461,36 @@ var WidgetsSection = function WidgetsSection(_ref) {
29194
29461
  }), /*#__PURE__*/jsx(ConfirmationModal, {
29195
29462
  isOpen: !!deleteTarget,
29196
29463
  setIsOpen: function setIsOpen() {
29197
- return setDeleteTarget(null);
29464
+ setDeleteTarget(null);
29465
+ setDeleteUsage([]);
29198
29466
  },
29199
29467
  title: "Uninstall Widget",
29200
- message: "Are you sure you want to uninstall \"".concat((deleteTarget === null || deleteTarget === void 0 ? void 0 : deleteTarget.displayName) || (deleteTarget === null || deleteTarget === void 0 ? void 0 : deleteTarget.name), "\"?"),
29468
+ message: deleteMessage,
29201
29469
  confirmLabel: "Uninstall",
29202
29470
  variant: "danger",
29203
29471
  onConfirm: handleConfirmDelete,
29204
29472
  onCancel: function onCancel() {
29205
- return setDeleteTarget(null);
29206
- }
29473
+ setDeleteTarget(null);
29474
+ setDeleteUsage([]);
29475
+ },
29476
+ children: deleteUsage.length > 0 && /*#__PURE__*/jsxs("div", {
29477
+ className: "mt-2 space-y-1",
29478
+ children: [/*#__PURE__*/jsx("span", {
29479
+ className: "text-xs font-semibold opacity-70",
29480
+ children: "Affected dashboards:"
29481
+ }), deleteUsage.map(function (u) {
29482
+ return /*#__PURE__*/jsxs("div", {
29483
+ className: "text-xs opacity-60 flex items-center gap-1.5 pl-2",
29484
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
29485
+ icon: "triangle-exclamation",
29486
+ className: "h-3 w-3 text-yellow-500"
29487
+ }), u.workspaceName, " ", /*#__PURE__*/jsxs("span", {
29488
+ className: "opacity-50",
29489
+ children: ["(", u.count, " instance", u.count !== 1 ? "s" : "", ")"]
29490
+ })]
29491
+ }, u.workspaceId);
29492
+ })]
29493
+ })
29207
29494
  })]
29208
29495
  });
29209
29496
  };
@@ -29353,6 +29640,8 @@ var AppSettingsModal = function AppSettingsModal(_ref) {
29353
29640
  return setCreateRequested(false);
29354
29641
  }
29355
29642
  }), activeSection === "widgets" && /*#__PURE__*/jsx(WidgetsSection, {
29643
+ workspaces: workspaces,
29644
+ credentials: credentials,
29356
29645
  createRequested: createRequested,
29357
29646
  onCreateAcknowledged: function onCreateAcknowledged() {
29358
29647
  return setCreateRequested(false);