@trops/dash-core 0.1.151 → 0.1.153

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,288 @@ 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 an absolute time string.
15837
+ * @param {number|string} timestamp - epoch ms or ISO string
15838
+ * @returns {string} e.g. "1:05:30 PM" for today, or full date+time for older
15839
+ */
15840
+ function formatRelativeTime(timestamp) {
15841
+ if (!timestamp) return null;
15842
+ var ts = typeof timestamp === "string" ? new Date(timestamp).getTime() : timestamp;
15843
+ var date = new Date(ts);
15844
+ var now = new Date();
15845
+ var isToday = date.getFullYear() === now.getFullYear() && date.getMonth() === now.getMonth() && date.getDate() === now.getDate();
15846
+ if (isToday) {
15847
+ return date.toLocaleTimeString();
15848
+ }
15849
+ return date.toLocaleString();
15850
+ }
15851
+
15852
+ /**
15853
+ * Format a task's schedule as a human-readable description.
15854
+ * @param {Object} task - scheduler task object
15855
+ * @returns {string} e.g. "Every 5 min", "Mon, Wed at 09:00"
15856
+ */
15857
+ function formatScheduleDescription(task) {
15858
+ if (task.scheduleType === "interval" && task.intervalMs) {
15859
+ var totalSeconds = Math.floor(task.intervalMs / 1000);
15860
+ if (totalSeconds < 60) return "Every ".concat(totalSeconds, "s");
15861
+ var minutes = Math.floor(totalSeconds / 60);
15862
+ if (minutes < 60) return "Every ".concat(minutes, " min");
15863
+ var hours = Math.floor(minutes / 60);
15864
+ var remainingMin = minutes % 60;
15865
+ if (remainingMin === 0) return "Every ".concat(hours, " hr");
15866
+ return "Every ".concat(hours, "h ").concat(remainingMin, "m");
15867
+ }
15868
+ if (task.scheduleType === "dayTime") {
15869
+ var dayMap = {
15870
+ mon: "Mon",
15871
+ tue: "Tue",
15872
+ wed: "Wed",
15873
+ thu: "Thu",
15874
+ fri: "Fri",
15875
+ sat: "Sat",
15876
+ sun: "Sun"
15877
+ };
15878
+ var days = (task.days || []).map(function (d) {
15879
+ return dayMap[d] || d;
15880
+ });
15881
+ var time = task.time || "00:00";
15882
+ if (days.length === 7) return "Daily at ".concat(time);
15883
+ if (days.length === 5 && ["mon", "tue", "wed", "thu", "fri"].every(function (d) {
15884
+ return (task.days || []).includes(d);
15885
+ })) {
15886
+ return "Mon\u2013Fri at ".concat(time);
15887
+ }
15888
+ return "".concat(days.join(", "), " at ").concat(time);
15889
+ }
15890
+ return "Scheduled";
15891
+ }
15892
+
15893
+ // ── Component ───────────────────────────────────────────────────────
15894
+
15895
+ var WidgetCardStatusBar = function WidgetCardStatusBar(_ref) {
15896
+ var item = _ref.item,
15897
+ _ref$className = _ref.className,
15898
+ className = _ref$className === void 0 ? "" : _ref$className;
15899
+ var _useState = useState(false),
15900
+ _useState2 = _slicedToArray(_useState, 2),
15901
+ expanded = _useState2[0],
15902
+ setExpanded = _useState2[1];
15903
+ var _useState3 = useState(Date.now()),
15904
+ _useState4 = _slicedToArray(_useState3, 2),
15905
+ now = _useState4[0],
15906
+ setNow = _useState4[1];
15907
+
15908
+ // Check if widget declares scheduledTasks in its config
15909
+ var widgetConfig = item !== null && item !== void 0 && item.component ? ComponentManager.config(item.component, item) : null;
15910
+ var declaredTasks = (widgetConfig === null || widgetConfig === void 0 ? void 0 : widgetConfig.scheduledTasks) || [];
15911
+
15912
+ // Fetch live task state from the scheduler
15913
+ var _useWidgetSchedulerSt = useWidgetSchedulerStatus(item === null || item === void 0 ? void 0 : item.uuid),
15914
+ tasks = _useWidgetSchedulerSt.tasks,
15915
+ isLoading = _useWidgetSchedulerSt.isLoading;
15916
+
15917
+ // Tick every second for live countdowns
15918
+ useEffect(function () {
15919
+ if (tasks.length === 0) return;
15920
+ var interval = setInterval(function () {
15921
+ return setNow(Date.now());
15922
+ }, 1000);
15923
+ return function () {
15924
+ return clearInterval(interval);
15925
+ };
15926
+ }, [tasks.length]);
15927
+
15928
+ // Don't render if widget doesn't declare scheduled tasks or none are configured
15929
+ if (declaredTasks.length === 0) return null;
15930
+ if (isLoading) return null;
15931
+ if (tasks.length === 0) return null;
15932
+ var enabledTasks = tasks.filter(function (t) {
15933
+ return t.enabled;
15934
+ });
15935
+ var allPaused = enabledTasks.length === 0;
15936
+
15937
+ // Find soonest countdown among enabled tasks
15938
+ var soonestMs = null;
15939
+ var _iterator = _createForOfIteratorHelper$9(enabledTasks),
15940
+ _step;
15941
+ try {
15942
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
15943
+ var _task = _step.value;
15944
+ if (_task.nextFireAt) {
15945
+ var remaining = _task.nextFireAt - now;
15946
+ if (soonestMs === null || remaining < soonestMs) {
15947
+ soonestMs = remaining;
15948
+ }
15949
+ }
15950
+ }
15951
+
15952
+ // Collapsed summary text
15953
+ } catch (err) {
15954
+ _iterator.e(err);
15955
+ } finally {
15956
+ _iterator.f();
15957
+ }
15958
+ var summaryText;
15959
+ if (allPaused) {
15960
+ summaryText = "".concat(tasks.length, " timer").concat(tasks.length > 1 ? "s" : "", " (paused)");
15961
+ } else if (tasks.length === 1) {
15962
+ var task = tasks[0];
15963
+ var label = task.displayName || task.taskKey;
15964
+ if (task.enabled && soonestMs != null) {
15965
+ summaryText = "".concat(label, " \xB7 ").concat(formatCountdown(soonestMs));
15966
+ } else {
15967
+ summaryText = "".concat(label, " (paused)");
15968
+ }
15969
+ } else {
15970
+ summaryText = "".concat(tasks.length, " timers \xB7 next in ").concat(formatCountdown(soonestMs));
15971
+ }
15972
+ return /*#__PURE__*/jsxs("div", {
15973
+ className: "border-t border-gray-700/50 bg-gray-900/30 select-none ".concat(className),
15974
+ children: [/*#__PURE__*/jsxs("button", {
15975
+ type: "button",
15976
+ onClick: function onClick() {
15977
+ return setExpanded(!expanded);
15978
+ },
15979
+ 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"),
15980
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
15981
+ icon: "clock",
15982
+ className: "text-[10px] shrink-0"
15983
+ }), /*#__PURE__*/jsx("span", {
15984
+ className: "truncate flex-1 text-left",
15985
+ children: summaryText
15986
+ }), /*#__PURE__*/jsx(FontAwesomeIcon, {
15987
+ icon: expanded ? "chevron-up" : "chevron-down",
15988
+ className: "text-[10px] text-gray-500 shrink-0"
15989
+ })]
15990
+ }), expanded && /*#__PURE__*/jsxs("div", {
15991
+ className: "px-3 pb-2 pt-1 space-y-2",
15992
+ children: [/*#__PURE__*/jsx("div", {
15993
+ className: "text-[10px] font-semibold text-gray-400 uppercase tracking-wider",
15994
+ children: "Scheduled Tasks"
15995
+ }), tasks.map(function (task) {
15996
+ var remaining = task.enabled && task.nextFireAt ? task.nextFireAt - now : null;
15997
+ var lastFiredText = formatRelativeTime(task.lastFiredAt);
15998
+ return /*#__PURE__*/jsxs("div", {
15999
+ className: "flex flex-col gap-0.5",
16000
+ children: [/*#__PURE__*/jsxs("div", {
16001
+ className: "flex items-center justify-between text-xs",
16002
+ children: [/*#__PURE__*/jsxs("div", {
16003
+ className: "flex items-center gap-1.5",
16004
+ children: [/*#__PURE__*/jsx("span", {
16005
+ className: "inline-block w-1.5 h-1.5 rounded-full ".concat(task.enabled ? "bg-green-500" : "bg-gray-600")
16006
+ }), /*#__PURE__*/jsx("span", {
16007
+ className: task.enabled ? "text-gray-200" : "text-gray-500",
16008
+ children: task.displayName || task.taskKey
16009
+ }), !task.enabled && /*#__PURE__*/jsx("span", {
16010
+ className: "text-gray-600 text-[10px]",
16011
+ children: "(paused)"
16012
+ })]
16013
+ }), /*#__PURE__*/jsx("span", {
16014
+ className: "text-gray-500 text-[10px]",
16015
+ children: formatScheduleDescription(task)
16016
+ })]
16017
+ }), task.enabled && /*#__PURE__*/jsxs("div", {
16018
+ className: "text-[10px] text-gray-500 pl-4 flex items-center gap-1.5",
16019
+ children: [/*#__PURE__*/jsxs("span", {
16020
+ children: ["Next in ", formatCountdown(remaining)]
16021
+ }), lastFiredText && /*#__PURE__*/jsxs(Fragment, {
16022
+ children: [/*#__PURE__*/jsx("span", {
16023
+ className: "text-gray-700",
16024
+ children: "\xB7"
16025
+ }), /*#__PURE__*/jsxs("span", {
16026
+ children: ["Last: ", lastFiredText]
16027
+ })]
16028
+ }), task.fireCount > 0 && /*#__PURE__*/jsxs(Fragment, {
16029
+ children: [/*#__PURE__*/jsx("span", {
16030
+ className: "text-gray-700",
16031
+ children: "\xB7"
16032
+ }), /*#__PURE__*/jsxs("span", {
16033
+ children: ["#", task.fireCount]
16034
+ })]
16035
+ })]
16036
+ }), !task.enabled && /*#__PURE__*/jsx("div", {
16037
+ className: "text-[10px] text-gray-600 pl-4",
16038
+ children: formatScheduleDescription(task)
16039
+ })]
16040
+ }, task.taskId);
16041
+ })]
16042
+ })]
16043
+ });
16044
+ };
16045
+
15764
16046
  /**
15765
16047
  * WidgetCard
15766
16048
  *
@@ -15940,6 +16222,7 @@ var WidgetCard = function WidgetCard(_ref4) {
15940
16222
  WidgetCard.Header = WidgetCardHeader_Component;
15941
16223
  WidgetCard.Body = WidgetCardBody;
15942
16224
  WidgetCard.Footer = WidgetCardFooter;
16225
+ WidgetCard.StatusBar = WidgetCardStatusBar;
15943
16226
 
15944
16227
  var ProviderSelector = function ProviderSelector(_ref) {
15945
16228
  var isOpen = _ref.isOpen,
@@ -18810,6 +19093,8 @@ var WidgetContainerGridItem = function WidgetContainerGridItem(_ref) {
18810
19093
  }), /*#__PURE__*/jsx(WidgetCard.Footer, {
18811
19094
  item: item,
18812
19095
  onConfigure: handleOpenConfig
19096
+ }), /*#__PURE__*/jsx(WidgetCard.StatusBar, {
19097
+ item: item
18813
19098
  })]
18814
19099
  }), (item.type !== "widget") && /*#__PURE__*/jsxs(Fragment, {
18815
19100
  children: [/*#__PURE__*/jsxs("div", {
@@ -18871,6 +19156,8 @@ var WidgetContainerGridItem = function WidgetContainerGridItem(_ref) {
18871
19156
  }), /*#__PURE__*/jsx(WidgetCard.Footer, {
18872
19157
  item: item,
18873
19158
  onConfigure: handleOpenConfig
19159
+ }), /*#__PURE__*/jsx(WidgetCard.StatusBar, {
19160
+ item: item
18874
19161
  })]
18875
19162
  }), (item.type !== "widget") && /*#__PURE__*/jsxs(Fragment, {
18876
19163
  children: [/*#__PURE__*/jsx("div", {
@@ -20054,38 +20341,48 @@ var WidgetRenderer = function WidgetRenderer(_ref) {
20054
20341
  var widgetContextValue = {
20055
20342
  widgetData: widgetData
20056
20343
  };
20344
+ var hasScheduledTasks = ((config === null || config === void 0 ? void 0 : config.scheduledTasks) || []).length > 0;
20345
+ var widgetElement = children === null ? /*#__PURE__*/jsx(WidgetComponent, _objectSpread$m(_objectSpread$m(_objectSpread$m({
20346
+ id: "widget-nokids-".concat(widgetKey),
20347
+ listen: function listen(listeners, handlers) {
20348
+ return helpers.listen(listeners, handlers);
20349
+ },
20350
+ publishEvent: function publishEvent(eventName, payload) {
20351
+ return helpers.publishEvent(eventName, payload);
20352
+ },
20353
+ api: w
20354
+ }, params), userPrefs), {}, {
20355
+ backgroundColor: bgColor,
20356
+ widgetConfig: helpers.config(),
20357
+ widgetEventNames: helpers.events()
20358
+ }), "widget-nokids-".concat(widgetKey)) : /*#__PURE__*/jsx(WidgetComponent, _objectSpread$m(_objectSpread$m(_objectSpread$m({
20359
+ listen: function listen(listeners, handlers) {
20360
+ return helpers.listen(listeners, handlers);
20361
+ },
20362
+ publishEvent: function publishEvent(eventName, payload) {
20363
+ return helpers.publishEvent(eventName, payload);
20364
+ },
20365
+ api: w,
20366
+ id: "widget-kids-".concat(widgetKey)
20367
+ }, params), userPrefs), {}, {
20368
+ backgroundColor: bgColor,
20369
+ children: children
20370
+ }), "widget-kids-".concat(widgetKey));
20057
20371
 
20058
20372
  // Wrap widget rendering with WidgetContext + error boundary
20059
20373
  return /*#__PURE__*/jsx(WidgetContext.Provider, {
20060
20374
  value: widgetContextValue,
20061
20375
  children: /*#__PURE__*/jsx(WidgetErrorBoundary, {
20062
20376
  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))
20377
+ children: hasScheduledTasks ? /*#__PURE__*/jsxs("div", {
20378
+ className: "flex flex-col w-full h-full min-h-0",
20379
+ children: [/*#__PURE__*/jsx("div", {
20380
+ className: "flex-1 min-h-0 overflow-auto",
20381
+ children: widgetElement
20382
+ }), /*#__PURE__*/jsx(WidgetCardStatusBar, {
20383
+ item: params
20384
+ })]
20385
+ }) : widgetElement
20089
20386
  })
20090
20387
  });
20091
20388
  }
@@ -45734,5 +46031,5 @@ var WorkspaceMenu = function WorkspaceMenu(_ref) {
45734
46031
 
45735
46032
  ComponentManager.registerContainerTypes(LayoutContainer, LayoutGridContainer);
45736
46033
 
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 };
46034
+ 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
46035
  //# sourceMappingURL=index.esm.js.map