@trops/dash-core 0.1.151 → 0.1.152

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
@@ -2695,9 +2695,9 @@ var LayoutContainer = function LayoutContainer(_ref) {
2695
2695
 
2696
2696
  function ownKeys$A(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2697
2697
  function _objectSpread$A(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$A(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$A(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2698
- function _createForOfIteratorHelper$d(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$d(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
2699
- function _unsupportedIterableToArray$d(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$d(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$d(r, a) : void 0; } }
2700
- function _arrayLikeToArray$d(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
2698
+ function _createForOfIteratorHelper$e(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$e(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
2699
+ function _unsupportedIterableToArray$e(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$e(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$e(r, a) : void 0; } }
2700
+ function _arrayLikeToArray$e(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
2701
2701
  /**
2702
2702
  * Layout template definitions for the dashboard template picker.
2703
2703
  *
@@ -2933,7 +2933,7 @@ function createLayoutFromTemplate(template) {
2933
2933
  cols: template.cols,
2934
2934
  gap: "gap-2"
2935
2935
  };
2936
- var _iterator = _createForOfIteratorHelper$d(template.cells),
2936
+ var _iterator = _createForOfIteratorHelper$e(template.cells),
2937
2937
  _step;
2938
2938
  try {
2939
2939
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -9776,9 +9776,9 @@ var PanelEditItem = function PanelEditItem(_ref) {
9776
9776
  };
9777
9777
 
9778
9778
  var _excluded$5 = ["rows", "cols"];
9779
- function _createForOfIteratorHelper$c(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$c(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
9780
- function _unsupportedIterableToArray$c(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$c(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$c(r, a) : void 0; } }
9781
- function _arrayLikeToArray$c(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
9779
+ function _createForOfIteratorHelper$d(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$d(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
9780
+ function _unsupportedIterableToArray$d(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$d(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$d(r, a) : void 0; } }
9781
+ function _arrayLikeToArray$d(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
9782
9782
  function ownKeys$x(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9783
9783
  function _objectSpread$x(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$x(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$x(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
9784
9784
  var defaultGrid = {
@@ -9931,7 +9931,7 @@ function GridEditor(_ref) {
9931
9931
  function sortObjectByKeys(obj) {
9932
9932
  var sortedKeys = Object.keys(obj).sort();
9933
9933
  var sortedObj = {};
9934
- var _iterator = _createForOfIteratorHelper$c(sortedKeys),
9934
+ var _iterator = _createForOfIteratorHelper$d(sortedKeys),
9935
9935
  _step;
9936
9936
  try {
9937
9937
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -10404,9 +10404,9 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
10404
10404
  });
10405
10405
  };
10406
10406
 
10407
- 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; } } }; }
10408
- 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; } }
10409
- 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; }
10407
+ function _createForOfIteratorHelper$c(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$c(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
10408
+ function _unsupportedIterableToArray$c(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$c(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$c(r, a) : void 0; } }
10409
+ function _arrayLikeToArray$c(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
10410
10410
  function ownKeys$v(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10411
10411
  function _objectSpread$v(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$v(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$v(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10412
10412
  var DAYS = [{
@@ -10735,7 +10735,7 @@ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
10735
10735
  setIsLoading(true);
10736
10736
  window.mainApi.scheduler.getTasks(widgetUuid).then(function (tasks) {
10737
10737
  var stateMap = {};
10738
- var _iterator = _createForOfIteratorHelper$b(tasks || []),
10738
+ var _iterator = _createForOfIteratorHelper$c(tasks || []),
10739
10739
  _step;
10740
10740
  try {
10741
10741
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -13585,9 +13585,9 @@ var getUserConfigurableProviders = function getUserConfigurableProviders(provide
13585
13585
  });
13586
13586
  };
13587
13587
 
13588
- 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; } } }; }
13589
- 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; } }
13590
- 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; }
13588
+ 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; } } }; }
13589
+ 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; } }
13590
+ 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; }
13591
13591
  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; }
13592
13592
  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; }
13593
13593
  var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
@@ -13854,11 +13854,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
13854
13854
 
13855
13855
  // Flatten all widgets from all packages for the widget list
13856
13856
  flatWidgets = [];
13857
- _iterator = _createForOfIteratorHelper$a(result.packages || []);
13857
+ _iterator = _createForOfIteratorHelper$b(result.packages || []);
13858
13858
  try {
13859
13859
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
13860
13860
  pkg = _step.value;
13861
- _iterator2 = _createForOfIteratorHelper$a(pkg.widgets || []);
13861
+ _iterator2 = _createForOfIteratorHelper$b(pkg.widgets || []);
13862
13862
  try {
13863
13863
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
13864
13864
  widget = _step2.value;
@@ -15414,9 +15414,9 @@ var ProviderBadge = function ProviderBadge(_ref) {
15414
15414
  });
15415
15415
  };
15416
15416
 
15417
- 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; } } }; }
15418
- 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; } }
15419
- 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; }
15417
+ 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; } } }; }
15418
+ 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; } }
15419
+ 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; }
15420
15420
  var WidgetCardHeader = function WidgetCardHeader(_ref) {
15421
15421
  var item = _ref.item,
15422
15422
  widget = _ref.widget,
@@ -15460,7 +15460,7 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
15460
15460
  var el = headerRef.current;
15461
15461
  if (!el) return;
15462
15462
  var observer = new ResizeObserver(function (entries) {
15463
- var _iterator = _createForOfIteratorHelper$9(entries),
15463
+ var _iterator = _createForOfIteratorHelper$a(entries),
15464
15464
  _step;
15465
15465
  try {
15466
15466
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -15761,6 +15761,286 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
15761
15761
  });
15762
15762
  };
15763
15763
 
15764
+ /**
15765
+ * useWidgetSchedulerStatus
15766
+ *
15767
+ * Display-only hook for reading scheduler task state outside WidgetContext.
15768
+ * Used by WidgetCardStatusBar to show live timer status in the widget footer.
15769
+ *
15770
+ * Unlike useScheduler, this hook:
15771
+ * - Does NOT require WidgetContext (works outside the widget tree)
15772
+ * - Does NOT execute handlers — purely for display
15773
+ * - Calls mainApi.scheduler.getTasks() directly
15774
+ *
15775
+ * @param {string} widgetId - The widget instance UUID
15776
+ * @returns {{ tasks: Array, isLoading: boolean }}
15777
+ */
15778
+ var useWidgetSchedulerStatus = function useWidgetSchedulerStatus(widgetId) {
15779
+ var _useState = useState([]),
15780
+ _useState2 = _slicedToArray(_useState, 2),
15781
+ tasks = _useState2[0],
15782
+ setTasks = _useState2[1];
15783
+ var _useState3 = useState(true),
15784
+ _useState4 = _slicedToArray(_useState3, 2),
15785
+ isLoading = _useState4[0],
15786
+ setIsLoading = _useState4[1];
15787
+ var fetchTasks = useCallback(function () {
15788
+ var _window$mainApi;
15789
+ if (!widgetId || !((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && _window$mainApi.scheduler)) {
15790
+ setIsLoading(false);
15791
+ return;
15792
+ }
15793
+ window.mainApi.scheduler.getTasks(widgetId).then(function (result) {
15794
+ setTasks(result || []);
15795
+ setIsLoading(false);
15796
+ });
15797
+ }, [widgetId]);
15798
+
15799
+ // Load tasks on mount
15800
+ useEffect(function () {
15801
+ fetchTasks();
15802
+ }, [fetchTasks]);
15803
+
15804
+ // Subscribe to task-fired events to auto-refresh
15805
+ useEffect(function () {
15806
+ var _window$mainApi2;
15807
+ if (!widgetId || !((_window$mainApi2 = window.mainApi) !== null && _window$mainApi2 !== void 0 && (_window$mainApi2 = _window$mainApi2.scheduler) !== null && _window$mainApi2 !== void 0 && _window$mainApi2.onTaskFired)) return;
15808
+ var removeListener = window.mainApi.scheduler.onTaskFired(function (data) {
15809
+ if (data.widgetId !== widgetId) return;
15810
+ fetchTasks();
15811
+ });
15812
+ return removeListener;
15813
+ }, [widgetId, fetchTasks]);
15814
+ return {
15815
+ tasks: tasks,
15816
+ isLoading: isLoading
15817
+ };
15818
+ };
15819
+
15820
+ 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; } } }; }
15821
+ 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; } }
15822
+ 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; }
15823
+ function formatCountdown(ms) {
15824
+ if (ms == null || ms < 0) return "--";
15825
+ if (ms < 1000) return "< 1s";
15826
+ var totalSeconds = Math.floor(ms / 1000);
15827
+ var hours = Math.floor(totalSeconds / 3600);
15828
+ var minutes = Math.floor(totalSeconds % 3600 / 60);
15829
+ var seconds = totalSeconds % 60;
15830
+ if (hours > 0) return "".concat(hours, "h ").concat(minutes, "m");
15831
+ if (minutes > 0) return "".concat(minutes, "m ").concat(seconds, "s");
15832
+ return "".concat(seconds, "s");
15833
+ }
15834
+
15835
+ /**
15836
+ * Format a timestamp as relative time ago.
15837
+ * @param {number|string} timestamp - epoch ms or ISO string
15838
+ * @returns {string} e.g. "2m ago", "1h ago", "just now"
15839
+ */
15840
+ function formatRelativeTime(timestamp) {
15841
+ if (!timestamp) return null;
15842
+ var ts = typeof timestamp === "string" ? new Date(timestamp).getTime() : timestamp;
15843
+ var diff = Date.now() - ts;
15844
+ if (diff < 60000) return "just now";
15845
+ if (diff < 3600000) return "".concat(Math.floor(diff / 60000), "m ago");
15846
+ if (diff < 86400000) return "".concat(Math.floor(diff / 3600000), "h ago");
15847
+ return "".concat(Math.floor(diff / 86400000), "d ago");
15848
+ }
15849
+
15850
+ /**
15851
+ * Format a task's schedule as a human-readable description.
15852
+ * @param {Object} task - scheduler task object
15853
+ * @returns {string} e.g. "Every 5 min", "Mon, Wed at 09:00"
15854
+ */
15855
+ function formatScheduleDescription(task) {
15856
+ if (task.scheduleType === "interval" && task.intervalMs) {
15857
+ var totalSeconds = Math.floor(task.intervalMs / 1000);
15858
+ if (totalSeconds < 60) return "Every ".concat(totalSeconds, "s");
15859
+ var minutes = Math.floor(totalSeconds / 60);
15860
+ if (minutes < 60) return "Every ".concat(minutes, " min");
15861
+ var hours = Math.floor(minutes / 60);
15862
+ var remainingMin = minutes % 60;
15863
+ if (remainingMin === 0) return "Every ".concat(hours, " hr");
15864
+ return "Every ".concat(hours, "h ").concat(remainingMin, "m");
15865
+ }
15866
+ if (task.scheduleType === "dayTime") {
15867
+ var dayMap = {
15868
+ mon: "Mon",
15869
+ tue: "Tue",
15870
+ wed: "Wed",
15871
+ thu: "Thu",
15872
+ fri: "Fri",
15873
+ sat: "Sat",
15874
+ sun: "Sun"
15875
+ };
15876
+ var days = (task.days || []).map(function (d) {
15877
+ return dayMap[d] || d;
15878
+ });
15879
+ var time = task.time || "00:00";
15880
+ if (days.length === 7) return "Daily at ".concat(time);
15881
+ if (days.length === 5 && ["mon", "tue", "wed", "thu", "fri"].every(function (d) {
15882
+ return (task.days || []).includes(d);
15883
+ })) {
15884
+ return "Mon\u2013Fri at ".concat(time);
15885
+ }
15886
+ return "".concat(days.join(", "), " at ").concat(time);
15887
+ }
15888
+ return "Scheduled";
15889
+ }
15890
+
15891
+ // ── Component ───────────────────────────────────────────────────────
15892
+
15893
+ var WidgetCardStatusBar = function WidgetCardStatusBar(_ref) {
15894
+ var item = _ref.item,
15895
+ _ref$className = _ref.className,
15896
+ className = _ref$className === void 0 ? "" : _ref$className;
15897
+ var _useState = useState(false),
15898
+ _useState2 = _slicedToArray(_useState, 2),
15899
+ expanded = _useState2[0],
15900
+ setExpanded = _useState2[1];
15901
+ var _useState3 = useState(Date.now()),
15902
+ _useState4 = _slicedToArray(_useState3, 2),
15903
+ now = _useState4[0],
15904
+ setNow = _useState4[1];
15905
+
15906
+ // Check if widget declares scheduledTasks in its config
15907
+ var widgetConfig = item !== null && item !== void 0 && item.component ? ComponentManager.config(item.component, item) : null;
15908
+ var declaredTasks = (widgetConfig === null || widgetConfig === void 0 ? void 0 : widgetConfig.scheduledTasks) || [];
15909
+
15910
+ // Fetch live task state from the scheduler
15911
+ var _useWidgetSchedulerSt = useWidgetSchedulerStatus(item === null || item === void 0 ? void 0 : item.uuid),
15912
+ tasks = _useWidgetSchedulerSt.tasks,
15913
+ isLoading = _useWidgetSchedulerSt.isLoading;
15914
+
15915
+ // Tick every second for live countdowns
15916
+ useEffect(function () {
15917
+ if (tasks.length === 0) return;
15918
+ var interval = setInterval(function () {
15919
+ return setNow(Date.now());
15920
+ }, 1000);
15921
+ return function () {
15922
+ return clearInterval(interval);
15923
+ };
15924
+ }, [tasks.length]);
15925
+
15926
+ // Don't render if widget doesn't declare scheduled tasks or none are configured
15927
+ if (declaredTasks.length === 0) return null;
15928
+ if (isLoading) return null;
15929
+ if (tasks.length === 0) return null;
15930
+ var enabledTasks = tasks.filter(function (t) {
15931
+ return t.enabled;
15932
+ });
15933
+ var allPaused = enabledTasks.length === 0;
15934
+
15935
+ // Find soonest countdown among enabled tasks
15936
+ var soonestMs = null;
15937
+ var _iterator = _createForOfIteratorHelper$9(enabledTasks),
15938
+ _step;
15939
+ try {
15940
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
15941
+ var _task = _step.value;
15942
+ if (_task.nextFireAt) {
15943
+ var remaining = _task.nextFireAt - now;
15944
+ if (soonestMs === null || remaining < soonestMs) {
15945
+ soonestMs = remaining;
15946
+ }
15947
+ }
15948
+ }
15949
+
15950
+ // Collapsed summary text
15951
+ } catch (err) {
15952
+ _iterator.e(err);
15953
+ } finally {
15954
+ _iterator.f();
15955
+ }
15956
+ var summaryText;
15957
+ if (allPaused) {
15958
+ summaryText = "".concat(tasks.length, " timer").concat(tasks.length > 1 ? "s" : "", " (paused)");
15959
+ } else if (tasks.length === 1) {
15960
+ var task = tasks[0];
15961
+ var label = task.displayName || task.taskKey;
15962
+ if (task.enabled && soonestMs != null) {
15963
+ summaryText = "".concat(label, " \xB7 ").concat(formatCountdown(soonestMs));
15964
+ } else {
15965
+ summaryText = "".concat(label, " (paused)");
15966
+ }
15967
+ } else {
15968
+ summaryText = "".concat(tasks.length, " timers \xB7 next in ").concat(formatCountdown(soonestMs));
15969
+ }
15970
+ return /*#__PURE__*/jsxs("div", {
15971
+ className: "border-t border-gray-700/50 bg-gray-900/30 select-none ".concat(className),
15972
+ children: [/*#__PURE__*/jsxs("button", {
15973
+ type: "button",
15974
+ onClick: function onClick() {
15975
+ return setExpanded(!expanded);
15976
+ },
15977
+ className: "flex items-center w-full px-3 py-1 text-xs gap-2 cursor-pointer transition-colors hover:bg-gray-800/40 ".concat(allPaused ? "text-gray-500" : "text-blue-400"),
15978
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
15979
+ icon: "clock",
15980
+ className: "text-[10px] shrink-0"
15981
+ }), /*#__PURE__*/jsx("span", {
15982
+ className: "truncate flex-1 text-left",
15983
+ children: summaryText
15984
+ }), /*#__PURE__*/jsx(FontAwesomeIcon, {
15985
+ icon: expanded ? "chevron-up" : "chevron-down",
15986
+ className: "text-[10px] text-gray-500 shrink-0"
15987
+ })]
15988
+ }), expanded && /*#__PURE__*/jsxs("div", {
15989
+ className: "px-3 pb-2 pt-1 space-y-2",
15990
+ children: [/*#__PURE__*/jsx("div", {
15991
+ className: "text-[10px] font-semibold text-gray-400 uppercase tracking-wider",
15992
+ children: "Scheduled Tasks"
15993
+ }), tasks.map(function (task) {
15994
+ var remaining = task.enabled && task.nextFireAt ? task.nextFireAt - now : null;
15995
+ var lastFiredText = formatRelativeTime(task.lastFiredAt);
15996
+ return /*#__PURE__*/jsxs("div", {
15997
+ className: "flex flex-col gap-0.5",
15998
+ children: [/*#__PURE__*/jsxs("div", {
15999
+ className: "flex items-center justify-between text-xs",
16000
+ children: [/*#__PURE__*/jsxs("div", {
16001
+ className: "flex items-center gap-1.5",
16002
+ children: [/*#__PURE__*/jsx("span", {
16003
+ className: "inline-block w-1.5 h-1.5 rounded-full ".concat(task.enabled ? "bg-green-500" : "bg-gray-600")
16004
+ }), /*#__PURE__*/jsx("span", {
16005
+ className: task.enabled ? "text-gray-200" : "text-gray-500",
16006
+ children: task.displayName || task.taskKey
16007
+ }), !task.enabled && /*#__PURE__*/jsx("span", {
16008
+ className: "text-gray-600 text-[10px]",
16009
+ children: "(paused)"
16010
+ })]
16011
+ }), /*#__PURE__*/jsx("span", {
16012
+ className: "text-gray-500 text-[10px]",
16013
+ children: formatScheduleDescription(task)
16014
+ })]
16015
+ }), task.enabled && /*#__PURE__*/jsxs("div", {
16016
+ className: "text-[10px] text-gray-500 pl-4 flex items-center gap-1.5",
16017
+ children: [/*#__PURE__*/jsxs("span", {
16018
+ children: ["Next in ", formatCountdown(remaining)]
16019
+ }), lastFiredText && /*#__PURE__*/jsxs(Fragment, {
16020
+ children: [/*#__PURE__*/jsx("span", {
16021
+ className: "text-gray-700",
16022
+ children: "\xB7"
16023
+ }), /*#__PURE__*/jsxs("span", {
16024
+ children: ["Last: ", lastFiredText]
16025
+ })]
16026
+ }), task.fireCount > 0 && /*#__PURE__*/jsxs(Fragment, {
16027
+ children: [/*#__PURE__*/jsx("span", {
16028
+ className: "text-gray-700",
16029
+ children: "\xB7"
16030
+ }), /*#__PURE__*/jsxs("span", {
16031
+ children: ["#", task.fireCount]
16032
+ })]
16033
+ })]
16034
+ }), !task.enabled && /*#__PURE__*/jsx("div", {
16035
+ className: "text-[10px] text-gray-600 pl-4",
16036
+ children: formatScheduleDescription(task)
16037
+ })]
16038
+ }, task.taskId);
16039
+ })]
16040
+ })]
16041
+ });
16042
+ };
16043
+
15764
16044
  /**
15765
16045
  * WidgetCard
15766
16046
  *
@@ -15940,6 +16220,7 @@ var WidgetCard = function WidgetCard(_ref4) {
15940
16220
  WidgetCard.Header = WidgetCardHeader_Component;
15941
16221
  WidgetCard.Body = WidgetCardBody;
15942
16222
  WidgetCard.Footer = WidgetCardFooter;
16223
+ WidgetCard.StatusBar = WidgetCardStatusBar;
15943
16224
 
15944
16225
  var ProviderSelector = function ProviderSelector(_ref) {
15945
16226
  var isOpen = _ref.isOpen,
@@ -18810,6 +19091,8 @@ var WidgetContainerGridItem = function WidgetContainerGridItem(_ref) {
18810
19091
  }), /*#__PURE__*/jsx(WidgetCard.Footer, {
18811
19092
  item: item,
18812
19093
  onConfigure: handleOpenConfig
19094
+ }), /*#__PURE__*/jsx(WidgetCard.StatusBar, {
19095
+ item: item
18813
19096
  })]
18814
19097
  }), (item.type !== "widget") && /*#__PURE__*/jsxs(Fragment, {
18815
19098
  children: [/*#__PURE__*/jsxs("div", {
@@ -18871,6 +19154,8 @@ var WidgetContainerGridItem = function WidgetContainerGridItem(_ref) {
18871
19154
  }), /*#__PURE__*/jsx(WidgetCard.Footer, {
18872
19155
  item: item,
18873
19156
  onConfigure: handleOpenConfig
19157
+ }), /*#__PURE__*/jsx(WidgetCard.StatusBar, {
19158
+ item: item
18874
19159
  })]
18875
19160
  }), (item.type !== "widget") && /*#__PURE__*/jsxs(Fragment, {
18876
19161
  children: [/*#__PURE__*/jsx("div", {
@@ -20054,38 +20339,48 @@ var WidgetRenderer = function WidgetRenderer(_ref) {
20054
20339
  var widgetContextValue = {
20055
20340
  widgetData: widgetData
20056
20341
  };
20342
+ var hasScheduledTasks = ((config === null || config === void 0 ? void 0 : config.scheduledTasks) || []).length > 0;
20343
+ var widgetElement = children === null ? /*#__PURE__*/jsx(WidgetComponent, _objectSpread$m(_objectSpread$m(_objectSpread$m({
20344
+ id: "widget-nokids-".concat(widgetKey),
20345
+ listen: function listen(listeners, handlers) {
20346
+ return helpers.listen(listeners, handlers);
20347
+ },
20348
+ publishEvent: function publishEvent(eventName, payload) {
20349
+ return helpers.publishEvent(eventName, payload);
20350
+ },
20351
+ api: w
20352
+ }, params), userPrefs), {}, {
20353
+ backgroundColor: bgColor,
20354
+ widgetConfig: helpers.config(),
20355
+ widgetEventNames: helpers.events()
20356
+ }), "widget-nokids-".concat(widgetKey)) : /*#__PURE__*/jsx(WidgetComponent, _objectSpread$m(_objectSpread$m(_objectSpread$m({
20357
+ listen: function listen(listeners, handlers) {
20358
+ return helpers.listen(listeners, handlers);
20359
+ },
20360
+ publishEvent: function publishEvent(eventName, payload) {
20361
+ return helpers.publishEvent(eventName, payload);
20362
+ },
20363
+ api: w,
20364
+ id: "widget-kids-".concat(widgetKey)
20365
+ }, params), userPrefs), {}, {
20366
+ backgroundColor: bgColor,
20367
+ children: children
20368
+ }), "widget-kids-".concat(widgetKey));
20057
20369
 
20058
20370
  // Wrap widget rendering with WidgetContext + error boundary
20059
20371
  return /*#__PURE__*/jsx(WidgetContext.Provider, {
20060
20372
  value: widgetContextValue,
20061
20373
  children: /*#__PURE__*/jsx(WidgetErrorBoundary, {
20062
20374
  widgetName: component,
20063
- children: children === null ? /*#__PURE__*/jsx(WidgetComponent, _objectSpread$m(_objectSpread$m(_objectSpread$m({
20064
- id: "widget-nokids-".concat(widgetKey),
20065
- listen: function listen(listeners, handlers) {
20066
- return helpers.listen(listeners, handlers);
20067
- },
20068
- publishEvent: function publishEvent(eventName, payload) {
20069
- return helpers.publishEvent(eventName, payload);
20070
- },
20071
- api: w
20072
- }, params), userPrefs), {}, {
20073
- backgroundColor: bgColor,
20074
- widgetConfig: helpers.config(),
20075
- widgetEventNames: helpers.events()
20076
- }), "widget-nokids-".concat(widgetKey)) : /*#__PURE__*/jsx(WidgetComponent, _objectSpread$m(_objectSpread$m(_objectSpread$m({
20077
- listen: function listen(listeners, handlers) {
20078
- return helpers.listen(listeners, handlers);
20079
- },
20080
- publishEvent: function publishEvent(eventName, payload) {
20081
- return helpers.publishEvent(eventName, payload);
20082
- },
20083
- api: w,
20084
- id: "widget-kids-".concat(widgetKey)
20085
- }, params), userPrefs), {}, {
20086
- backgroundColor: bgColor,
20087
- children: children
20088
- }), "widget-kids-".concat(widgetKey))
20375
+ children: hasScheduledTasks ? /*#__PURE__*/jsxs("div", {
20376
+ className: "flex flex-col w-full h-full min-h-0",
20377
+ children: [/*#__PURE__*/jsx("div", {
20378
+ className: "flex-1 min-h-0 overflow-auto",
20379
+ children: widgetElement
20380
+ }), /*#__PURE__*/jsx(WidgetCardStatusBar, {
20381
+ item: params
20382
+ })]
20383
+ }) : widgetElement
20089
20384
  })
20090
20385
  });
20091
20386
  }
@@ -45734,5 +46029,5 @@ var WorkspaceMenu = function WorkspaceMenu(_ref) {
45734
46029
 
45735
46030
  ComponentManager.registerContainerTypes(LayoutContainer, LayoutGridContainer);
45736
46031
 
45737
- export { ALGOLIA_ANALYTICS_FOR_QUERY, ALGOLIA_ANALYTICS_FOR_QUERY_COMPLETE, ALGOLIA_ANALYTICS_FOR_QUERY_ERROR, ALGOLIA_LIST_INDICES, ALGOLIA_LIST_INDICES_COMPLETE, ALGOLIA_LIST_INDICES_ERROR, AVAILABLE_COLORS, AddMenuItemModal, AdvancedMcpConfig, AppContext, AppSettingsModal, AppThemeScope, AppWrapper, CHOOSE_FILE, CHOOSE_FILE_COMPLETE, CHOOSE_FILE_ERROR, ColorModel, ComponentConfigModel, ComponentManager, ContextModel, DATA_JSON_TO_CSV_FILE, DATA_JSON_TO_CSV_FILE_COMPLETE, DATA_JSON_TO_CSV_FILE_ERROR, DATA_JSON_TO_CSV_STRING, DATA_JSON_TO_CSV_STRING_COMPLETE, DATA_JSON_TO_CSV_STRING_ERROR, DATA_READ_FROM_FILE, DATA_READ_FROM_FILE_COMPLETE, DATA_READ_FROM_FILE_ERROR, DATA_SAVE_TO_FILE, DATA_SAVE_TO_FILE_COMPLETE, DATA_SAVE_TO_FILE_ERROR, DashCommandPalette, DashNavbar, DashSidebar, DashTabBar, DashboardStage as Dashboard, DashboardApi, DashboardContext, DashboardFooter, DashboardHeader, DashboardMenuItem, DashboardModel, DashboardMonitor, DashboardPublisher, DashboardStage, DashboardThemeProvider, DashboardWrapper, ElectronDashboardApi, ErrorBoundary, ExternalWidget, GRID_CELL_WIDGET_TYPE, HARMONY_STRATEGIES, LAYOUT_LIST, LAYOUT_LIST_COMPLETE, LAYOUT_LIST_ERROR, LAYOUT_SAVE, LAYOUT_SAVE_COMPLETE, LAYOUT_SAVE_ERROR, Layout, LayoutBuilder, LayoutBuilderAddItemModal, LayoutBuilderConfigContainerMenuItem, LayoutBuilderConfigMenuItem, LayoutBuilderConfigModal, LayoutBuilderEditItemModal, LayoutBuilderEventModal, LayoutBuilderGridItem, LayoutContainer, LayoutDragBuilder, LayoutDragBuilderEdit, LayoutGridContainer, LayoutManagerModal, LayoutModel, LayoutQuickAddMenu, MCP_CALL_TOOL_COMPLETE, MCP_CALL_TOOL_ERROR, MCP_GET_CATALOG_COMPLETE, MCP_GET_CATALOG_ERROR, MCP_LIST_RESOURCES_COMPLETE, MCP_LIST_RESOURCES_ERROR, MCP_LIST_TOOLS_COMPLETE, MCP_LIST_TOOLS_ERROR, MCP_READ_RESOURCE_COMPLETE, MCP_READ_RESOURCE_ERROR, MCP_RUN_AUTH_COMPLETE, MCP_RUN_AUTH_ERROR, MCP_SERVER_STATUS_COMPLETE, MCP_SERVER_STATUS_ERROR, MCP_START_SERVER_COMPLETE, MCP_START_SERVER_ERROR, MCP_STOP_SERVER_COMPLETE, MCP_STOP_SERVER_ERROR, MENU_ITEMS_DELETE, MENU_ITEMS_DELETE_COMPLETE, MENU_ITEMS_DELETE_ERROR, MENU_ITEMS_LIST, MENU_ITEMS_LIST_COMPLETE, MENU_ITEMS_LIST_ERROR, MENU_ITEMS_SAVE, MENU_ITEMS_SAVE_COMPLETE, MENU_ITEMS_SAVE_ERROR, MainMenu, MainMenuItem, MainMenuSection, McpServerPicker, MenuItemModel, MenuSlideOverlay, MergeCellsModal, MissingProviderPrompt, MockDashboardApi, PROVIDER_DELETE_COMPLETE, PROVIDER_DELETE_ERROR, PROVIDER_GET_COMPLETE, PROVIDER_GET_ERROR, PROVIDER_LIST_COMPLETE, PROVIDER_LIST_ERROR, PROVIDER_SAVE_COMPLETE, PROVIDER_SAVE_ERROR, PanelCode, PanelEditItem, PanelEditItemHandlers, PanelEditItemNotifications, ProviderContext, ProviderErrorBoundary, ProviderForm, ProviderSelector, SECURE_STORAGE_ENCRYPT_STRING, SECURE_STORAGE_ENCRYPT_STRING_COMPLETE, SECURE_STORAGE_ENCRYPT_STRING_ERROR, SECURE_STORE_ENCRYPTION_CHECK, SECURE_STORE_ENCRYPTION_CHECK_COMPLETE, SECURE_STORE_ENCRYPTION_CHECK_ERROR, SECURE_STORE_GET_DATA, SECURE_STORE_GET_DATA_COMPLETE, SECURE_STORE_GET_DATA_ERROR, SECURE_STORE_SET_DATA, SECURE_STORE_SET_DATA_COMPLETE, SECURE_STORE_SET_DATA_ERROR, SETTINGS_GET, SETTINGS_GET_COMPLETE, SETTINGS_GET_ERROR, SETTINGS_SAVE, SETTINGS_SAVE_COMPLETE, SETTINGS_SAVE_ERROR, SIDEBAR_WIDGET_TYPE, SettingsModel, SideMenu, SplitCellModal, THEME_DELETE, THEME_DELETE_COMPLETE, THEME_DELETE_ERROR, THEME_LIST, THEME_LIST_COMPLETE, THEME_LIST_ERROR, THEME_SAVE, THEME_SAVE_COMPLETE, THEME_SAVE_ERROR, ThemeApi, ThemeColorDots, ThemeManagerModal, ThemeModel, ThemeWrapper, WORKSPACE_DELETE, WORKSPACE_DELETE_COMPLETE, WORKSPACE_DELETE_ERROR, WORKSPACE_LIST, WORKSPACE_LIST_COMPLETE, WORKSPACE_LIST_ERROR, WORKSPACE_SAVE, WORKSPACE_SAVE_COMPLETE, WORKSPACE_SAVE_ERROR, WebDashboardApi, Widget, WidgetApi, WidgetConfigPanel, WidgetContext, WidgetFactory, WidgetPopoutStage, WidgetProviderWrapper, WidgetSidebar, Workspace, WorkspaceContext, WorkspaceFooter, WorkspaceMenu, WorkspaceModel, addChildToLayoutItem, addItemToItemLayout, buildMcpConfigFromOverrides, canHaveChildren, changeDirectionForLayoutItem, createProviderRegistry, deriveFormFields, envMappingToRows, evaluateBundle, extractWidgetConfigs, formStateToMcpJson, formatFieldName, generateCustomTheme, generateHarmonyTheme, generateRandomTheme, generateThemeName, getBorderStyle, getChildrenForLayoutItem, getComponentInLayout, getContainerBorderColor, getContainerColor, getIndexOfLayoutChildrenForItem, getIndexOfLayoutItem, getLayoutItemById, getLayoutItemForWorkspace, getNearestParentWorkspace, getNextHighestId, getNextHighestItemInLayout, getNextHighestOrder, getNextHighestParentId, getNextLowestItemInLayout, getParentForLayoutItem, getParentWorkspaceForItem, getThemePresets, getUserConfigurableProviders, getWidgetsForWorkspace, getWorkspacesForWorkspace, headerTemplateToRows, isContainer, isLikelySecret, isMaxOrderForItem, isMinOrderForItem, isWidget, isWidgetResolvable, isWorkspace, layoutItemHasWorkspaceAsChild, loadWidgetBundle, mcpJsonToFormState, numChildrenForLayout, removeItemFromLayout, renderComponent, renderGridLayout, renderGridLayoutFlow, _renderLayout as renderLayout, renderLayoutMenu, replaceItemInLayout, resolveIcon, setHostModules, traverseParentTree, updateLayoutItem, updateParentForItem, useDashboard, useMcpProvider, useNotifications, useProvider, useProviderClient, useScheduler, useWidgetEvents, useWidgetProviders, validateCellMerge, validateGridCell, validateGridPlacement, validateWidgetPlacement, withProviderDetection };
46032
+ export { ALGOLIA_ANALYTICS_FOR_QUERY, ALGOLIA_ANALYTICS_FOR_QUERY_COMPLETE, ALGOLIA_ANALYTICS_FOR_QUERY_ERROR, ALGOLIA_LIST_INDICES, ALGOLIA_LIST_INDICES_COMPLETE, ALGOLIA_LIST_INDICES_ERROR, AVAILABLE_COLORS, AddMenuItemModal, AdvancedMcpConfig, AppContext, AppSettingsModal, AppThemeScope, AppWrapper, CHOOSE_FILE, CHOOSE_FILE_COMPLETE, CHOOSE_FILE_ERROR, ColorModel, ComponentConfigModel, ComponentManager, ContextModel, DATA_JSON_TO_CSV_FILE, DATA_JSON_TO_CSV_FILE_COMPLETE, DATA_JSON_TO_CSV_FILE_ERROR, DATA_JSON_TO_CSV_STRING, DATA_JSON_TO_CSV_STRING_COMPLETE, DATA_JSON_TO_CSV_STRING_ERROR, DATA_READ_FROM_FILE, DATA_READ_FROM_FILE_COMPLETE, DATA_READ_FROM_FILE_ERROR, DATA_SAVE_TO_FILE, DATA_SAVE_TO_FILE_COMPLETE, DATA_SAVE_TO_FILE_ERROR, DashCommandPalette, DashNavbar, DashSidebar, DashTabBar, DashboardStage as Dashboard, DashboardApi, DashboardContext, DashboardFooter, DashboardHeader, DashboardMenuItem, DashboardModel, DashboardMonitor, DashboardPublisher, DashboardStage, DashboardThemeProvider, DashboardWrapper, ElectronDashboardApi, ErrorBoundary, ExternalWidget, GRID_CELL_WIDGET_TYPE, HARMONY_STRATEGIES, LAYOUT_LIST, LAYOUT_LIST_COMPLETE, LAYOUT_LIST_ERROR, LAYOUT_SAVE, LAYOUT_SAVE_COMPLETE, LAYOUT_SAVE_ERROR, Layout, LayoutBuilder, LayoutBuilderAddItemModal, LayoutBuilderConfigContainerMenuItem, LayoutBuilderConfigMenuItem, LayoutBuilderConfigModal, LayoutBuilderEditItemModal, LayoutBuilderEventModal, LayoutBuilderGridItem, LayoutContainer, LayoutDragBuilder, LayoutDragBuilderEdit, LayoutGridContainer, LayoutManagerModal, LayoutModel, LayoutQuickAddMenu, MCP_CALL_TOOL_COMPLETE, MCP_CALL_TOOL_ERROR, MCP_GET_CATALOG_COMPLETE, MCP_GET_CATALOG_ERROR, MCP_LIST_RESOURCES_COMPLETE, MCP_LIST_RESOURCES_ERROR, MCP_LIST_TOOLS_COMPLETE, MCP_LIST_TOOLS_ERROR, MCP_READ_RESOURCE_COMPLETE, MCP_READ_RESOURCE_ERROR, MCP_RUN_AUTH_COMPLETE, MCP_RUN_AUTH_ERROR, MCP_SERVER_STATUS_COMPLETE, MCP_SERVER_STATUS_ERROR, MCP_START_SERVER_COMPLETE, MCP_START_SERVER_ERROR, MCP_STOP_SERVER_COMPLETE, MCP_STOP_SERVER_ERROR, MENU_ITEMS_DELETE, MENU_ITEMS_DELETE_COMPLETE, MENU_ITEMS_DELETE_ERROR, MENU_ITEMS_LIST, MENU_ITEMS_LIST_COMPLETE, MENU_ITEMS_LIST_ERROR, MENU_ITEMS_SAVE, MENU_ITEMS_SAVE_COMPLETE, MENU_ITEMS_SAVE_ERROR, MainMenu, MainMenuItem, MainMenuSection, McpServerPicker, MenuItemModel, MenuSlideOverlay, MergeCellsModal, MissingProviderPrompt, MockDashboardApi, PROVIDER_DELETE_COMPLETE, PROVIDER_DELETE_ERROR, PROVIDER_GET_COMPLETE, PROVIDER_GET_ERROR, PROVIDER_LIST_COMPLETE, PROVIDER_LIST_ERROR, PROVIDER_SAVE_COMPLETE, PROVIDER_SAVE_ERROR, PanelCode, PanelEditItem, PanelEditItemHandlers, PanelEditItemNotifications, ProviderContext, ProviderErrorBoundary, ProviderForm, ProviderSelector, SECURE_STORAGE_ENCRYPT_STRING, SECURE_STORAGE_ENCRYPT_STRING_COMPLETE, SECURE_STORAGE_ENCRYPT_STRING_ERROR, SECURE_STORE_ENCRYPTION_CHECK, SECURE_STORE_ENCRYPTION_CHECK_COMPLETE, SECURE_STORE_ENCRYPTION_CHECK_ERROR, SECURE_STORE_GET_DATA, SECURE_STORE_GET_DATA_COMPLETE, SECURE_STORE_GET_DATA_ERROR, SECURE_STORE_SET_DATA, SECURE_STORE_SET_DATA_COMPLETE, SECURE_STORE_SET_DATA_ERROR, SETTINGS_GET, SETTINGS_GET_COMPLETE, SETTINGS_GET_ERROR, SETTINGS_SAVE, SETTINGS_SAVE_COMPLETE, SETTINGS_SAVE_ERROR, SIDEBAR_WIDGET_TYPE, SettingsModel, SideMenu, SplitCellModal, THEME_DELETE, THEME_DELETE_COMPLETE, THEME_DELETE_ERROR, THEME_LIST, THEME_LIST_COMPLETE, THEME_LIST_ERROR, THEME_SAVE, THEME_SAVE_COMPLETE, THEME_SAVE_ERROR, ThemeApi, ThemeColorDots, ThemeManagerModal, ThemeModel, ThemeWrapper, WORKSPACE_DELETE, WORKSPACE_DELETE_COMPLETE, WORKSPACE_DELETE_ERROR, WORKSPACE_LIST, WORKSPACE_LIST_COMPLETE, WORKSPACE_LIST_ERROR, WORKSPACE_SAVE, WORKSPACE_SAVE_COMPLETE, WORKSPACE_SAVE_ERROR, WebDashboardApi, Widget, WidgetApi, WidgetConfigPanel, WidgetContext, WidgetFactory, WidgetPopoutStage, WidgetProviderWrapper, WidgetSidebar, Workspace, WorkspaceContext, WorkspaceFooter, WorkspaceMenu, WorkspaceModel, addChildToLayoutItem, addItemToItemLayout, buildMcpConfigFromOverrides, canHaveChildren, changeDirectionForLayoutItem, createProviderRegistry, deriveFormFields, envMappingToRows, evaluateBundle, extractWidgetConfigs, formStateToMcpJson, formatFieldName, generateCustomTheme, generateHarmonyTheme, generateRandomTheme, generateThemeName, getBorderStyle, getChildrenForLayoutItem, getComponentInLayout, getContainerBorderColor, getContainerColor, getIndexOfLayoutChildrenForItem, getIndexOfLayoutItem, getLayoutItemById, getLayoutItemForWorkspace, getNearestParentWorkspace, getNextHighestId, getNextHighestItemInLayout, getNextHighestOrder, getNextHighestParentId, getNextLowestItemInLayout, getParentForLayoutItem, getParentWorkspaceForItem, getThemePresets, getUserConfigurableProviders, getWidgetsForWorkspace, getWorkspacesForWorkspace, headerTemplateToRows, isContainer, isLikelySecret, isMaxOrderForItem, isMinOrderForItem, isWidget, isWidgetResolvable, isWorkspace, layoutItemHasWorkspaceAsChild, loadWidgetBundle, mcpJsonToFormState, numChildrenForLayout, removeItemFromLayout, renderComponent, renderGridLayout, renderGridLayoutFlow, _renderLayout as renderLayout, renderLayoutMenu, replaceItemInLayout, resolveIcon, setHostModules, traverseParentTree, updateLayoutItem, updateParentForItem, useDashboard, useMcpProvider, useNotifications, useProvider, useProviderClient, useScheduler, useWidgetEvents, useWidgetProviders, useWidgetSchedulerStatus, validateCellMerge, validateGridCell, validateGridPlacement, validateWidgetPlacement, withProviderDetection };
45738
46033
  //# sourceMappingURL=index.esm.js.map