@trops/dash-core 0.1.128 → 0.1.130

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -2706,9 +2706,9 @@ var LayoutContainer = function LayoutContainer(_ref) {
2706
2706
 
2707
2707
  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; }
2708
2708
  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; }
2709
- 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; } } }; }
2710
- 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; } }
2711
- 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; }
2709
+ 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; } } }; }
2710
+ 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; } }
2711
+ 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; }
2712
2712
  /**
2713
2713
  * Layout template definitions for the dashboard template picker.
2714
2714
  *
@@ -2944,7 +2944,7 @@ function createLayoutFromTemplate(template) {
2944
2944
  cols: template.cols,
2945
2945
  gap: "gap-2"
2946
2946
  };
2947
- var _iterator = _createForOfIteratorHelper$a(template.cells),
2947
+ var _iterator = _createForOfIteratorHelper$b(template.cells),
2948
2948
  _step;
2949
2949
  try {
2950
2950
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -9757,9 +9757,9 @@ var PanelEditItem = function PanelEditItem(_ref) {
9757
9757
  };
9758
9758
 
9759
9759
  var _excluded$5 = ["rows", "cols"];
9760
- 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; } } }; }
9761
- 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; } }
9762
- 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; }
9760
+ 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; } } }; }
9761
+ 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; } }
9762
+ 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; }
9763
9763
  function ownKeys$w(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; }
9764
9764
  function _objectSpread$w(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$w(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$w(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
9765
9765
  var defaultGrid = {
@@ -9912,7 +9912,7 @@ function GridEditor(_ref) {
9912
9912
  function sortObjectByKeys(obj) {
9913
9913
  var sortedKeys = Object.keys(obj).sort();
9914
9914
  var sortedObj = {};
9915
- var _iterator = _createForOfIteratorHelper$9(sortedKeys),
9915
+ var _iterator = _createForOfIteratorHelper$a(sortedKeys),
9916
9916
  _step;
9917
9917
  try {
9918
9918
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -13177,9 +13177,9 @@ var getUserConfigurableProviders = function getUserConfigurableProviders(provide
13177
13177
  });
13178
13178
  };
13179
13179
 
13180
- 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; } } }; }
13181
- 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; } }
13182
- 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; }
13180
+ 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; } } }; }
13181
+ 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; } }
13182
+ 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; }
13183
13183
  function ownKeys$s(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; }
13184
13184
  function _objectSpread$s(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$s(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$s(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13185
13185
  var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
@@ -13446,11 +13446,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
13446
13446
 
13447
13447
  // Flatten all widgets from all packages for the widget list
13448
13448
  flatWidgets = [];
13449
- _iterator = _createForOfIteratorHelper$8(result.packages || []);
13449
+ _iterator = _createForOfIteratorHelper$9(result.packages || []);
13450
13450
  try {
13451
13451
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
13452
13452
  pkg = _step.value;
13453
- _iterator2 = _createForOfIteratorHelper$8(pkg.widgets || []);
13453
+ _iterator2 = _createForOfIteratorHelper$9(pkg.widgets || []);
13454
13454
  try {
13455
13455
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
13456
13456
  widget = _step2.value;
@@ -15006,9 +15006,9 @@ var ProviderBadge = function ProviderBadge(_ref) {
15006
15006
  });
15007
15007
  };
15008
15008
 
15009
- 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; } } }; }
15010
- 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; } }
15011
- 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; }
15009
+ 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; } } }; }
15010
+ 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; } }
15011
+ 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; }
15012
15012
  var WidgetCardHeader = function WidgetCardHeader(_ref) {
15013
15013
  var item = _ref.item,
15014
15014
  widget = _ref.widget,
@@ -15052,7 +15052,7 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
15052
15052
  var el = headerRef.current;
15053
15053
  if (!el) return;
15054
15054
  var observer = new ResizeObserver(function (entries) {
15055
- var _iterator = _createForOfIteratorHelper$7(entries),
15055
+ var _iterator = _createForOfIteratorHelper$8(entries),
15056
15056
  _step;
15057
15057
  try {
15058
15058
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -19844,9 +19844,9 @@ var ExternalWidget = function ExternalWidget(_ref) {
19844
19844
  var GRID_CELL_WIDGET_TYPE = "grid-cell-widget";
19845
19845
  var SIDEBAR_WIDGET_TYPE = "sidebar-widget";
19846
19846
 
19847
- 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; } } }; }
19848
- 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; } }
19849
- 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; }
19847
+ 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; } } }; }
19848
+ 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; } }
19849
+ 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; }
19850
19850
  function ownKeys$l(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
19851
19851
  function _objectSpread$l(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$l(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$l(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
19852
19852
  var DraggableCellBody = function DraggableCellBody(_ref) {
@@ -20374,7 +20374,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
20374
20374
  return selectable["delete"](cn);
20375
20375
  });
20376
20376
  var resolved = new Set();
20377
- var _iterator = _createForOfIteratorHelper$6(selectable),
20377
+ var _iterator = _createForOfIteratorHelper$7(selectable),
20378
20378
  _step;
20379
20379
  try {
20380
20380
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -22512,9 +22512,9 @@ function isWidgetResolvable(componentKey) {
22512
22512
 
22513
22513
  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; }
22514
22514
  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; }
22515
- 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; } } }; }
22516
- 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; } }
22517
- 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; }
22515
+ 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; } } }; }
22516
+ 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; } }
22517
+ 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; }
22518
22518
  /**
22519
22519
  * The model for all layout components used primarily in the renderLayout method
22520
22520
  * @param {Object} layoutItem an object containing various attributes of the layout item
@@ -22526,7 +22526,7 @@ function _arrayLikeToArray$5(r, a) { (null == a || a > r.length) && (a = r.lengt
22526
22526
  function sortObjectByKeys(obj) {
22527
22527
  var sortedKeys = Object.keys(obj).sort();
22528
22528
  var sortedObj = {};
22529
- var _iterator = _createForOfIteratorHelper$5(sortedKeys),
22529
+ var _iterator = _createForOfIteratorHelper$6(sortedKeys),
22530
22530
  _step;
22531
22531
  try {
22532
22532
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -25783,9 +25783,9 @@ var useDashboard = function useDashboard() {
25783
25783
  });
25784
25784
  };
25785
25785
 
25786
- 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; } } }; }
25787
- 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; } }
25788
- 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; }
25786
+ 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; } } }; }
25787
+ 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; } }
25788
+ 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; }
25789
25789
 
25790
25790
  /**
25791
25791
  * useWidgetProviders Hook
@@ -25836,7 +25836,7 @@ var useWidgetProviders = function useWidgetProviders() {
25836
25836
  // 1. Widget-level: stored directly on the layout item by handleSelectProvider
25837
25837
  // 2. Workspace-level: stored as workspace.selectedProviders[widgetId][providerType]
25838
25838
  var providers = {};
25839
- var _iterator = _createForOfIteratorHelper$4(providerDeclarations),
25839
+ var _iterator = _createForOfIteratorHelper$5(providerDeclarations),
25840
25840
  _step;
25841
25841
  try {
25842
25842
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -28760,9 +28760,9 @@ var resolveIcon = function resolveIcon(iconName) {
28760
28760
  return FALLBACK;
28761
28761
  };
28762
28762
 
28763
- 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; } } }; }
28764
- 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; } }
28765
- 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; }
28763
+ 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; } } }; }
28764
+ 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; } }
28765
+ 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; }
28766
28766
  /**
28767
28767
  * Validation utilities for grid-first dashboard architecture
28768
28768
  *
@@ -29001,7 +29001,7 @@ var validateCellMerge = function validateCellMerge(cellNumbers, grid) {
29001
29001
 
29002
29002
  // Validate each cell
29003
29003
  var cells = [];
29004
- var _iterator = _createForOfIteratorHelper$3(cellNumbers),
29004
+ var _iterator = _createForOfIteratorHelper$4(cellNumbers),
29005
29005
  _step;
29006
29006
  try {
29007
29007
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -32763,6 +32763,8 @@ var DashboardDetail = function DashboardDetail(_ref2) {
32763
32763
  label: m.name,
32764
32764
  value: String(m.id)
32765
32765
  };
32766
+ }).sort(function (a, b) {
32767
+ return (a.label || "").localeCompare(b.label || "");
32766
32768
  });
32767
32769
  var themeOptions = _toConsumableArray(Object.entries(themes || {}).sort(function (_ref3, _ref4) {
32768
32770
  var _ref5 = _slicedToArray(_ref3, 2),
@@ -33367,7 +33369,9 @@ var FoldersSection = function FoldersSection(_ref) {
33367
33369
  });
33368
33370
  var deleteHasDashboards = deleteTarget && getDashboardCount(deleteTarget.id) > 0;
33369
33371
  var listContent = /*#__PURE__*/jsxRuntime.jsxs(DashReact.Sidebar.Content, {
33370
- children: [menuItems.map(function (item) {
33372
+ children: [_toConsumableArray(menuItems).sort(function (a, b) {
33373
+ return (a.name || "").localeCompare(b.name || "");
33374
+ }).map(function (item) {
33371
33375
  var isSelected = selectedId === item.id && !isCreating;
33372
33376
  var count = getDashboardCount(item.id);
33373
33377
  return /*#__PURE__*/jsxRuntime.jsx(DashReact.Sidebar.Item, {
@@ -37107,9 +37111,9 @@ var RegistryPackageDetail = function RegistryPackageDetail(_ref) {
37107
37111
  });
37108
37112
  };
37109
37113
 
37110
- 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; } } }; }
37111
- 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; } }
37112
- 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; }
37114
+ 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; } } }; }
37115
+ 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; } }
37116
+ 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; }
37113
37117
 
37114
37118
  /**
37115
37119
  * useRegistrySearch — shared hook for browsing and installing registry packages.
@@ -37212,13 +37216,13 @@ var useRegistrySearch = function useRegistrySearch() {
37212
37216
  return c.toLowerCase();
37213
37217
  }));
37214
37218
  widgets = [];
37215
- _iterator = _createForOfIteratorHelper$2(pkgs);
37219
+ _iterator = _createForOfIteratorHelper$3(pkgs);
37216
37220
  try {
37217
37221
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
37218
37222
  pkg = _step.value;
37219
37223
  // Compute missing APIs for the entire package
37220
37224
  allApiProviders = [];
37221
- _iterator2 = _createForOfIteratorHelper$2(pkg.providers || []);
37225
+ _iterator2 = _createForOfIteratorHelper$3(pkg.providers || []);
37222
37226
  try {
37223
37227
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
37224
37228
  p = _step2.value;
@@ -37231,11 +37235,11 @@ var useRegistrySearch = function useRegistrySearch() {
37231
37235
  } finally {
37232
37236
  _iterator2.f();
37233
37237
  }
37234
- _iterator3 = _createForOfIteratorHelper$2(pkg.widgets || []);
37238
+ _iterator3 = _createForOfIteratorHelper$3(pkg.widgets || []);
37235
37239
  try {
37236
37240
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
37237
37241
  w = _step3.value;
37238
- _iterator5 = _createForOfIteratorHelper$2(w.providers || []);
37242
+ _iterator5 = _createForOfIteratorHelper$3(w.providers || []);
37239
37243
  try {
37240
37244
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
37241
37245
  _p = _step5.value;
@@ -37257,7 +37261,7 @@ var useRegistrySearch = function useRegistrySearch() {
37257
37261
  missingApis = _toConsumableArray(new Set(allApiProviders)).filter(function (api) {
37258
37262
  return !capSet.has(api.toLowerCase());
37259
37263
  });
37260
- _iterator4 = _createForOfIteratorHelper$2(pkg.widgets || []);
37264
+ _iterator4 = _createForOfIteratorHelper$3(pkg.widgets || []);
37261
37265
  try {
37262
37266
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
37263
37267
  widget = _step4.value;
@@ -37390,9 +37394,9 @@ var useRegistrySearch = function useRegistrySearch() {
37390
37394
  };
37391
37395
  };
37392
37396
 
37393
- 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; } } }; }
37394
- 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; } }
37395
- 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; }
37397
+ 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; } } }; }
37398
+ 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; } }
37399
+ 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; }
37396
37400
  var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
37397
37401
  var onBack = _ref.onBack;
37398
37402
  var _useContext = React.useContext(DashReact.ThemeContext),
@@ -37431,12 +37435,12 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
37431
37435
  var checkToolConflicts = function checkToolConflicts(widget) {
37432
37436
  var conflicts = [];
37433
37437
  var packageWidgets = widget.packageWidgets || [];
37434
- var _iterator = _createForOfIteratorHelper$1(packageWidgets),
37438
+ var _iterator = _createForOfIteratorHelper$2(packageWidgets),
37435
37439
  _step;
37436
37440
  try {
37437
37441
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
37438
37442
  var w = _step.value;
37439
- var _iterator2 = _createForOfIteratorHelper$1(w.providers || []),
37443
+ var _iterator2 = _createForOfIteratorHelper$2(w.providers || []),
37440
37444
  _step2;
37441
37445
  try {
37442
37446
  var _loop = function _loop() {
@@ -37449,7 +37453,7 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
37449
37453
  prov = _ref3[1];
37450
37454
  return prov.type === p.type && prov.providerClass === "mcp" && prov.allowedTools;
37451
37455
  });
37452
- var _iterator3 = _createForOfIteratorHelper$1(matchingProviders),
37456
+ var _iterator3 = _createForOfIteratorHelper$2(matchingProviders),
37453
37457
  _step3;
37454
37458
  try {
37455
37459
  var _loop2 = function _loop2() {
@@ -37655,9 +37659,9 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
37655
37659
  });
37656
37660
  };
37657
37661
 
37658
- 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; } } }; }
37659
- 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; } }
37660
- 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; }
37662
+ 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; } } }; }
37663
+ 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; } }
37664
+ 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; }
37661
37665
 
37662
37666
  /**
37663
37667
  * Walk a workspace layout array (possibly nested via LayoutGridContainer
@@ -37666,7 +37670,7 @@ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length)
37666
37670
  function collectComponentsFromLayout(layout) {
37667
37671
  var components = [];
37668
37672
  if (!Array.isArray(layout)) return components;
37669
- var _iterator = _createForOfIteratorHelper(layout),
37673
+ var _iterator = _createForOfIteratorHelper$1(layout),
37670
37674
  _step;
37671
37675
  try {
37672
37676
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -37695,7 +37699,7 @@ function findWidgetUsage(componentNames, workspaces) {
37695
37699
  if (!(componentNames !== null && componentNames !== void 0 && componentNames.length) || !(workspaces !== null && workspaces !== void 0 && workspaces.length)) return [];
37696
37700
  var nameSet = new Set(componentNames);
37697
37701
  var results = [];
37698
- var _iterator2 = _createForOfIteratorHelper(workspaces),
37702
+ var _iterator2 = _createForOfIteratorHelper$1(workspaces),
37699
37703
  _step2;
37700
37704
  try {
37701
37705
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -40294,6 +40298,9 @@ var PopoverItem = function PopoverItem(_ref4) {
40294
40298
  });
40295
40299
  };
40296
40300
 
40301
+ 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; } } }; }
40302
+ 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; } }
40303
+ 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; }
40297
40304
  var DraggableWidgetItem = function DraggableWidgetItem(_ref) {
40298
40305
  var widgetKey = _ref.widgetKey,
40299
40306
  widget = _ref.widget;
@@ -40357,11 +40364,35 @@ var DraggableWidgetItem = function DraggableWidgetItem(_ref) {
40357
40364
 
40358
40365
  var SidebarDiscoverContent = function SidebarDiscoverContent(_ref2) {
40359
40366
  var registry = _ref2.registry,
40360
- onInstallSuccess = _ref2.onInstallSuccess;
40367
+ onInstallSuccess = _ref2.onInstallSuccess,
40368
+ installedPackageNames = _ref2.installedPackageNames;
40361
40369
  var _useState = React.useState(null),
40362
40370
  _useState2 = _slicedToArray(_useState, 2),
40363
40371
  selectedPackageName = _useState2[0],
40364
40372
  setSelectedPackageName = _useState2[1];
40373
+
40374
+ // Check if a package is installed by name or scope/name
40375
+ var isPackageInstalled = React.useCallback(function (pkg) {
40376
+ var _pkg$widgets;
40377
+ // Check via WidgetRegistry (externally installed packages)
40378
+ if (installedPackageNames.has(pkg.name) || pkg.scope && installedPackageNames.has("".concat(pkg.scope, "/").concat(pkg.name))) {
40379
+ return true;
40380
+ }
40381
+ // Check if any of this package's widgets are registered in ComponentManager
40382
+ // (covers built-in widgets loaded directly, not through the WidgetRegistry).
40383
+ // ComponentManager keys may be prefixed (e.g., "DashSamples_EventReceiverWidget")
40384
+ // so we also check if any key ends with the widget name.
40385
+ if (((_pkg$widgets = pkg.widgets) === null || _pkg$widgets === void 0 ? void 0 : _pkg$widgets.length) > 0) {
40386
+ var cMap = ComponentManager.componentMap();
40387
+ var cMapKeys = Object.keys(cMap);
40388
+ return pkg.widgets.some(function (w) {
40389
+ return w.name in cMap || cMapKeys.some(function (k) {
40390
+ return k === w.name || k.endsWith("_".concat(w.name));
40391
+ });
40392
+ });
40393
+ }
40394
+ return false;
40395
+ }, [installedPackageNames]);
40365
40396
  var selectedPackage = React.useMemo(function () {
40366
40397
  if (!selectedPackageName) return null;
40367
40398
  return registry.packages.find(function (pkg) {
@@ -40370,13 +40401,13 @@ var SidebarDiscoverContent = function SidebarDiscoverContent(_ref2) {
40370
40401
  }, [selectedPackageName, registry.packages]);
40371
40402
  var handleInstall = React.useCallback(/*#__PURE__*/function () {
40372
40403
  var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(pkg) {
40373
- var _pkg$widgets;
40404
+ var _pkg$widgets2;
40374
40405
  var firstWidget, installable;
40375
40406
  return _regeneratorRuntime.wrap(function (_context) {
40376
40407
  while (1) switch (_context.prev = _context.next) {
40377
40408
  case 0:
40378
40409
  // Build a widget-like object that useRegistrySearch.installPackage expects
40379
- firstWidget = (_pkg$widgets = pkg.widgets) === null || _pkg$widgets === void 0 ? void 0 : _pkg$widgets[0];
40410
+ firstWidget = (_pkg$widgets2 = pkg.widgets) === null || _pkg$widgets2 === void 0 ? void 0 : _pkg$widgets2[0];
40380
40411
  if (firstWidget) {
40381
40412
  _context.next = 1;
40382
40413
  break;
@@ -40410,8 +40441,9 @@ var SidebarDiscoverContent = function SidebarDiscoverContent(_ref2) {
40410
40441
 
40411
40442
  // Detail view for a selected package
40412
40443
  if (selectedPackage) {
40413
- var _pkg$tags, _pkg$widgets2;
40444
+ var _pkg$tags, _pkg$widgets3;
40414
40445
  var pkg = selectedPackage;
40446
+ var isInstalled = isPackageInstalled(pkg);
40415
40447
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
40416
40448
  className: "flex flex-col h-full",
40417
40449
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
@@ -40433,9 +40465,15 @@ var SidebarDiscoverContent = function SidebarDiscoverContent(_ref2) {
40433
40465
  className: "h-4 w-4 opacity-60 mt-0.5 flex-shrink-0"
40434
40466
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
40435
40467
  className: "min-w-0",
40436
- children: [/*#__PURE__*/jsxRuntime.jsx("div", {
40437
- className: "font-medium text-sm truncate",
40438
- children: pkg.displayName || pkg.name
40468
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
40469
+ className: "flex items-center gap-1.5 font-medium text-sm",
40470
+ children: [/*#__PURE__*/jsxRuntime.jsx("span", {
40471
+ className: "truncate",
40472
+ children: pkg.displayName || pkg.name
40473
+ }), isInstalled && /*#__PURE__*/jsxRuntime.jsx("span", {
40474
+ className: "text-[10px] px-1.5 py-0.5 rounded bg-emerald-500/20 text-emerald-400 flex-shrink-0",
40475
+ children: "Installed"
40476
+ })]
40439
40477
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
40440
40478
  className: "text-[10px] opacity-50",
40441
40479
  children: [pkg.author && /*#__PURE__*/jsxRuntime.jsxs("span", {
@@ -40454,7 +40492,7 @@ var SidebarDiscoverContent = function SidebarDiscoverContent(_ref2) {
40454
40492
  children: tag
40455
40493
  }, tag);
40456
40494
  })
40457
- }), ((_pkg$widgets2 = pkg.widgets) === null || _pkg$widgets2 === void 0 ? void 0 : _pkg$widgets2.length) > 0 && /*#__PURE__*/jsxRuntime.jsxs("div", {
40495
+ }), ((_pkg$widgets3 = pkg.widgets) === null || _pkg$widgets3 === void 0 ? void 0 : _pkg$widgets3.length) > 0 && /*#__PURE__*/jsxRuntime.jsxs("div", {
40458
40496
  className: "mb-3",
40459
40497
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {
40460
40498
  className: "text-[10px] font-medium opacity-50 uppercase tracking-wider mb-1.5",
@@ -40491,9 +40529,9 @@ var SidebarDiscoverContent = function SidebarDiscoverContent(_ref2) {
40491
40529
  onClick: function onClick() {
40492
40530
  return handleInstall(pkg);
40493
40531
  },
40494
- disabled: registry.isInstalling,
40532
+ disabled: registry.isInstalling || isInstalled,
40495
40533
  className: "w-full py-1.5 rounded-md text-xs font-medium bg-blue-600 hover:bg-blue-500 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",
40496
- children: registry.isInstalling ? "Installing..." : "Install Package"
40534
+ children: isInstalled ? "Installed" : registry.isInstalling ? "Installing..." : "Install Package"
40497
40535
  })
40498
40536
  })]
40499
40537
  });
@@ -40555,13 +40593,14 @@ var SidebarDiscoverContent = function SidebarDiscoverContent(_ref2) {
40555
40593
  children: /*#__PURE__*/jsxRuntime.jsx("div", {
40556
40594
  className: "flex flex-col gap-1 px-3 py-1",
40557
40595
  children: registry.packages.map(function (pkg) {
40558
- var _pkg$widgets3, _pkg$widgets4;
40596
+ var _pkg$widgets4, _pkg$widgets5;
40597
+ var isInstalled = isPackageInstalled(pkg);
40559
40598
  return /*#__PURE__*/jsxRuntime.jsxs("button", {
40560
40599
  type: "button",
40561
40600
  onClick: function onClick() {
40562
40601
  return setSelectedPackageName(pkg.name);
40563
40602
  },
40564
- className: "flex items-center gap-2 px-3 py-2 rounded-md text-left bg-white/5 hover:bg-white/10 transition-colors w-full",
40603
+ className: "flex items-center gap-2 px-3 py-2 rounded-md text-left\n bg-white/5 hover:bg-white/10 transition-colors w-full".concat(isInstalled ? " opacity-50" : ""),
40565
40604
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
40566
40605
  icon: "cube",
40567
40606
  className: "h-3 w-3 opacity-40 flex-shrink-0"
@@ -40575,10 +40614,17 @@ var SidebarDiscoverContent = function SidebarDiscoverContent(_ref2) {
40575
40614
  children: [pkg.author && /*#__PURE__*/jsxRuntime.jsx("span", {
40576
40615
  className: "truncate",
40577
40616
  children: pkg.author
40578
- }), pkg.author && ((_pkg$widgets3 = pkg.widgets) === null || _pkg$widgets3 === void 0 ? void 0 : _pkg$widgets3.length) > 0 && /*#__PURE__*/jsxRuntime.jsx("span", {
40617
+ }), pkg.author && ((_pkg$widgets4 = pkg.widgets) === null || _pkg$widgets4 === void 0 ? void 0 : _pkg$widgets4.length) > 0 && /*#__PURE__*/jsxRuntime.jsx("span", {
40579
40618
  children: "\xB7"
40580
- }), ((_pkg$widgets4 = pkg.widgets) === null || _pkg$widgets4 === void 0 ? void 0 : _pkg$widgets4.length) > 0 && /*#__PURE__*/jsxRuntime.jsxs("span", {
40619
+ }), ((_pkg$widgets5 = pkg.widgets) === null || _pkg$widgets5 === void 0 ? void 0 : _pkg$widgets5.length) > 0 && /*#__PURE__*/jsxRuntime.jsxs("span", {
40581
40620
  children: [pkg.widgets.length, " widget", pkg.widgets.length !== 1 ? "s" : ""]
40621
+ }), isInstalled && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
40622
+ children: [/*#__PURE__*/jsxRuntime.jsx("span", {
40623
+ children: "\xB7"
40624
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
40625
+ className: "text-emerald-400",
40626
+ children: "Installed"
40627
+ })]
40582
40628
  })]
40583
40629
  })]
40584
40630
  })]
@@ -40668,10 +40714,83 @@ var WidgetSidebar = function WidgetSidebar(_ref4) {
40668
40714
  });
40669
40715
  }, [widgetVersion]);
40670
40716
 
40717
+ // Set of installed package identifiers for "Installed" badge in Discover tab.
40718
+ // Stores folder names, package names, and "author/name" keys for matching.
40719
+ var _useState17 = React.useState(new Set()),
40720
+ _useState18 = _slicedToArray(_useState17, 2),
40721
+ installedPackageNames = _useState18[0],
40722
+ setInstalledPackageNames = _useState18[1];
40723
+ React.useEffect(function () {
40724
+ var cancelled = false;
40725
+ var loadInstalled = /*#__PURE__*/function () {
40726
+ var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
40727
+ var widgets, names, _iterator, _step, w, folderName, _folderName;
40728
+ return _regeneratorRuntime.wrap(function (_context2) {
40729
+ while (1) switch (_context2.prev = _context2.next) {
40730
+ case 0:
40731
+ _context2.prev = 0;
40732
+ _context2.next = 1;
40733
+ return window.mainApi.widgets.list();
40734
+ case 1:
40735
+ widgets = _context2.sent;
40736
+ if (!cancelled) {
40737
+ _context2.next = 2;
40738
+ break;
40739
+ }
40740
+ return _context2.abrupt("return");
40741
+ case 2:
40742
+ names = new Set();
40743
+ _iterator = _createForOfIteratorHelper(widgets);
40744
+ try {
40745
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
40746
+ w = _step.value;
40747
+ // w is a config object with name, path, author, etc.
40748
+ if (w.name) names.add(w.name);
40749
+ // Extract folder name from path (matches registry pkg.name)
40750
+ if (w.path) {
40751
+ folderName = w.path.split("/").pop();
40752
+ if (folderName) names.add(folderName);
40753
+ }
40754
+ // Add author-scoped keys for disambiguation
40755
+ if (w.author && w.name) {
40756
+ names.add("".concat(w.author, "/").concat(w.name));
40757
+ }
40758
+ if (w.author && w.path) {
40759
+ _folderName = w.path.split("/").pop();
40760
+ if (_folderName) names.add("".concat(w.author, "/").concat(_folderName));
40761
+ }
40762
+ }
40763
+ } catch (err) {
40764
+ _iterator.e(err);
40765
+ } finally {
40766
+ _iterator.f();
40767
+ }
40768
+ setInstalledPackageNames(names);
40769
+ _context2.next = 4;
40770
+ break;
40771
+ case 3:
40772
+ _context2.prev = 3;
40773
+ _context2["catch"](0);
40774
+ case 4:
40775
+ case "end":
40776
+ return _context2.stop();
40777
+ }
40778
+ }, _callee2, null, [[0, 3]]);
40779
+ }));
40780
+ return function loadInstalled() {
40781
+ return _ref5.apply(this, arguments);
40782
+ };
40783
+ }();
40784
+ loadInstalled();
40785
+ return function () {
40786
+ cancelled = true;
40787
+ };
40788
+ }, [widgetVersion]);
40789
+
40671
40790
  // Derive unique groups for dropdown (package > author > "Other")
40672
40791
  var uniqueAuthors = React.useMemo(function () {
40673
- return _toConsumableArray(new Set(allWidgets.map(function (_ref5) {
40674
- var widget = _ref5.widget;
40792
+ return _toConsumableArray(new Set(allWidgets.map(function (_ref6) {
40793
+ var widget = _ref6.widget;
40675
40794
  return widget["package"] || widget.author || "Other";
40676
40795
  }))).sort();
40677
40796
  }, [allWidgets]);
@@ -40679,8 +40798,8 @@ var WidgetSidebar = function WidgetSidebar(_ref4) {
40679
40798
  // Derive unique provider types for dropdown
40680
40799
  var uniqueProviders = React.useMemo(function () {
40681
40800
  var types = new Set();
40682
- allWidgets.forEach(function (_ref6) {
40683
- var widget = _ref6.widget;
40801
+ allWidgets.forEach(function (_ref7) {
40802
+ var widget = _ref7.widget;
40684
40803
  return (widget.providers || []).forEach(function (p) {
40685
40804
  return types.add(p.type);
40686
40805
  });
@@ -40690,9 +40809,9 @@ var WidgetSidebar = function WidgetSidebar(_ref4) {
40690
40809
 
40691
40810
  // Filtered + grouped widgets
40692
40811
  var filteredGrouped = React.useMemo(function () {
40693
- var filtered = allWidgets.filter(function (_ref7) {
40694
- var key = _ref7.key,
40695
- widget = _ref7.widget;
40812
+ var filtered = allWidgets.filter(function (_ref8) {
40813
+ var key = _ref8.key,
40814
+ widget = _ref8.widget;
40696
40815
  // Search: match name, key, or description
40697
40816
  if (searchQuery) {
40698
40817
  var q = searchQuery.toLowerCase();
@@ -40732,9 +40851,9 @@ var WidgetSidebar = function WidgetSidebar(_ref4) {
40732
40851
 
40733
40852
  // Group by package > author > "Other"
40734
40853
  var groups = {};
40735
- filtered.forEach(function (_ref8) {
40736
- var key = _ref8.key,
40737
- widget = _ref8.widget;
40854
+ filtered.forEach(function (_ref9) {
40855
+ var key = _ref9.key,
40856
+ widget = _ref9.widget;
40738
40857
  var group = widget["package"] || widget.author || "Other";
40739
40858
  if (!groups[group]) groups[group] = [];
40740
40859
  groups[group].push({
@@ -40924,9 +41043,9 @@ var WidgetSidebar = function WidgetSidebar(_ref4) {
40924
41043
  label: author,
40925
41044
  children: /*#__PURE__*/jsxRuntime.jsx("div", {
40926
41045
  className: "flex flex-col gap-1",
40927
- children: filteredGrouped[author].map(function (_ref9) {
40928
- var key = _ref9.key,
40929
- widget = _ref9.widget;
41046
+ children: filteredGrouped[author].map(function (_ref0) {
41047
+ var key = _ref0.key,
41048
+ widget = _ref0.widget;
40930
41049
  return /*#__PURE__*/jsxRuntime.jsx(DraggableWidgetItem, {
40931
41050
  widgetKey: key,
40932
41051
  widget: widget
@@ -40947,7 +41066,8 @@ var WidgetSidebar = function WidgetSidebar(_ref4) {
40947
41066
  })]
40948
41067
  }) : /*#__PURE__*/jsxRuntime.jsx(SidebarDiscoverContent, {
40949
41068
  registry: registry,
40950
- onInstallSuccess: handleInstallSuccess
41069
+ onInstallSuccess: handleInstallSuccess,
41070
+ installedPackageNames: installedPackageNames
40951
41071
  })
40952
41072
  }), !collapsed && activeTab === "installed" && installSuccess && /*#__PURE__*/jsxRuntime.jsx(DashReact.Sidebar.Footer, {
40953
41073
  children: /*#__PURE__*/jsxRuntime.jsxs("div", {
@@ -42186,6 +42306,8 @@ var DashboardHeader = function DashboardHeader(_ref) {
42186
42306
  value: m.id,
42187
42307
  icon: m.icon || m.folder || "folder"
42188
42308
  };
42309
+ }).sort(function (a, b) {
42310
+ return (a.label || "").localeCompare(b.label || "");
42189
42311
  }),
42190
42312
  onChange: onFolderChange,
42191
42313
  placeholder: "Folder",