@trops/dash-core 0.1.147 → 0.1.148

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
@@ -1,6 +1,6 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import * as DashReact from '@trops/dash-react';
3
- import { isObject, ThemeContext, deepCopy, MainSection, getUUID, getStylesForItem, themeObjects, Heading, SearchInput, ButtonIcon, SubHeading3, InputText, Button, FontAwesomeIcon, Tag, Sidebar, Paragraph, Modal, Panel, Stepper, Heading3, MenuItem3, FormLabel, SelectMenu, Switch, CodeEditorInline, SettingsModal, SubHeading2, tailwindHeightFractions, Menu3, Panel3, DropdownPanel, MenuItem2, ButtonIcon2, DragComponent, ConfirmationModal, DropComponent, getStyleName, capitalizeFirstLetter, colorTypes, getCSSStyleForClassname, Panel2, Heading2, SubHeading, Paragraph2, Paragraph3, Button2, Button3, MenuItem, Tag2, Tag3, ButtonIcon3, DashPanel, colorNames, shades, themeVariants, Tabs3, DataList, Checkbox, StatCard, Card, Tabs, Accordion, Alert, Toast, ProgressBar, Toggle, Breadcrumbs, Card2, Tabs2, Accordion2, Alert2, Toast2, ProgressBar2, Toggle2, Breadcrumbs2, Card3, Accordion3, Alert3, Toast3, ProgressBar3, Toggle3, Breadcrumbs3, TextArea, SelectInput, Icon2, AlgoliaSearchBox, CommandPalette, EmptyState, Navbar, withRouter, Menu as Menu$1 } from '@trops/dash-react';
3
+ import { isObject, ThemeContext, deepCopy, MainSection, getUUID, getStylesForItem, themeObjects, Heading, SearchInput, ButtonIcon, SubHeading3, InputText, Button, FontAwesomeIcon, Tag, Sidebar, Paragraph, Modal, Panel, Stepper, Heading3, MenuItem3, FormLabel, SelectMenu, Switch, SelectInput, CodeEditorInline, SettingsModal, SubHeading2, tailwindHeightFractions, Menu3, Panel3, DropdownPanel, MenuItem2, ButtonIcon2, DragComponent, ConfirmationModal, DropComponent, getStyleName, capitalizeFirstLetter, colorTypes, getCSSStyleForClassname, Panel2, Heading2, SubHeading, Paragraph2, Paragraph3, Button2, Button3, MenuItem, Tag2, Tag3, ButtonIcon3, DashPanel, colorNames, shades, themeVariants, Tabs3, DataList, Checkbox, StatCard, Card, Tabs, Accordion, Alert, Toast, ProgressBar, Toggle, Breadcrumbs, Card2, Tabs2, Accordion2, Alert2, Toast2, ProgressBar2, Toggle2, Breadcrumbs2, Card3, Accordion3, Alert3, Toast3, ProgressBar3, Toggle3, Breadcrumbs3, TextArea, Icon2, AlgoliaSearchBox, CommandPalette, EmptyState, Navbar, withRouter, Menu as Menu$1 } from '@trops/dash-react';
4
4
  export * from '@trops/dash-react';
5
5
  export { ThemeContext } from '@trops/dash-react';
6
6
  import _typeof from '@babel/runtime/helpers/typeof';
@@ -31,8 +31,8 @@ import algoliasearch from 'algoliasearch';
31
31
  import { InstantSearch, Hits } from 'react-instantsearch-hooks-web';
32
32
  import { Link } from 'react-router-dom';
33
33
 
34
- function ownKeys$C(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; }
35
- function _objectSpread$C(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$C(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$C(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
34
+ function ownKeys$D(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; }
35
+ function _objectSpread$D(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$D(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$D(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
36
36
  var event = {
37
37
  list: new Map(),
38
38
  // Map(1) { '<widget-UUID>' => { 'CustomSearchbar[10].searchQueryChanged': [] } }
@@ -94,7 +94,7 @@ var event = {
94
94
  uuid: subscriber["uuid"]
95
95
  };
96
96
  if ("action" in subscriber && subscriber.action !== undefined) {
97
- subscriber["action"](_objectSpread$C({}, objectToSend));
97
+ subscriber["action"](_objectSpread$D({}, objectToSend));
98
98
  }
99
99
  });
100
100
  }
@@ -2534,8 +2534,8 @@ var DashboardWrapper = function DashboardWrapper(_ref) {
2534
2534
  });
2535
2535
  };
2536
2536
 
2537
- function ownKeys$B(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; }
2538
- function _objectSpread$B(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$B(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$B(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2537
+ function ownKeys$C(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; }
2538
+ function _objectSpread$C(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$C(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$C(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2539
2539
  var DashboardThemeProvider = function DashboardThemeProvider(_ref) {
2540
2540
  var themeKey = _ref.themeKey,
2541
2541
  children = _ref.children;
@@ -2547,7 +2547,7 @@ var DashboardThemeProvider = function DashboardThemeProvider(_ref) {
2547
2547
  var dashboardTheme = themes[themeKey];
2548
2548
  var themeValue = dashboardTheme ? dashboardTheme[themeVariant] || null : null;
2549
2549
  if (!themeValue) return null;
2550
- return _objectSpread$B(_objectSpread$B({}, parentContext), {}, {
2550
+ return _objectSpread$C(_objectSpread$C({}, parentContext), {}, {
2551
2551
  currentTheme: themeValue,
2552
2552
  currentThemeKey: themeKey,
2553
2553
  theme: themeValue,
@@ -2565,8 +2565,8 @@ var DashboardThemeProvider = function DashboardThemeProvider(_ref) {
2565
2565
  });
2566
2566
  };
2567
2567
 
2568
- 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; }
2569
- 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; }
2568
+ function ownKeys$B(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; }
2569
+ function _objectSpread$B(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$B(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$B(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2570
2570
  var AppThemeScope = function AppThemeScope(_ref) {
2571
2571
  var children = _ref.children;
2572
2572
  var ctx = useContext(ThemeContext);
@@ -2574,7 +2574,7 @@ var AppThemeScope = function AppThemeScope(_ref) {
2574
2574
  children: children
2575
2575
  });
2576
2576
  return /*#__PURE__*/jsx(ThemeContext.Provider, {
2577
- value: _objectSpread$A(_objectSpread$A({}, ctx), {}, {
2577
+ value: _objectSpread$B(_objectSpread$B({}, ctx), {}, {
2578
2578
  currentTheme: ctx.appTheme,
2579
2579
  currentThemeKey: ctx.appThemeKey,
2580
2580
  theme: ctx.appTheme,
@@ -2686,11 +2686,11 @@ var LayoutContainer = function LayoutContainer(_ref) {
2686
2686
  });
2687
2687
  };
2688
2688
 
2689
- function ownKeys$z(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2690
- function _objectSpread$z(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$z(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$z(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2691
- 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; } } }; }
2692
- 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; } }
2693
- 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; }
2689
+ 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; }
2690
+ 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; }
2691
+ 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; } } }; }
2692
+ 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; } }
2693
+ 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; }
2694
2694
  /**
2695
2695
  * Layout template definitions for the dashboard template picker.
2696
2696
  *
@@ -2926,12 +2926,12 @@ function createLayoutFromTemplate(template) {
2926
2926
  cols: template.cols,
2927
2927
  gap: "gap-2"
2928
2928
  };
2929
- var _iterator = _createForOfIteratorHelper$b(template.cells),
2929
+ var _iterator = _createForOfIteratorHelper$d(template.cells),
2930
2930
  _step;
2931
2931
  try {
2932
2932
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
2933
2933
  var cell = _step.value;
2934
- grid[cell.key] = _objectSpread$z({
2934
+ grid[cell.key] = _objectSpread$A({
2935
2935
  component: null,
2936
2936
  hide: cell.hide || false
2937
2937
  }, cell.span ? {
@@ -3945,8 +3945,8 @@ var DiscoverDashboardsDetail = function DiscoverDashboardsDetail(_ref) {
3945
3945
  });
3946
3946
  };
3947
3947
 
3948
- function ownKeys$y(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; }
3949
- function _objectSpread$y(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$y(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$y(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3948
+ function ownKeys$z(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3949
+ function _objectSpread$z(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$z(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$z(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3950
3950
  var LayoutManagerModal = function LayoutManagerModal(_ref) {
3951
3951
  var open = _ref.open,
3952
3952
  setIsOpen = _ref.setIsOpen,
@@ -4182,7 +4182,7 @@ var LayoutManagerModal = function LayoutManagerModal(_ref) {
4182
4182
  }
4183
4183
  return _context2.abrupt("return");
4184
4184
  case 6:
4185
- updatedWorkspace = _objectSpread$y(_objectSpread$y({}, importedWorkspace), {}, {
4185
+ updatedWorkspace = _objectSpread$z(_objectSpread$z({}, importedWorkspace), {}, {
4186
4186
  name: dashboardName.trim(),
4187
4187
  menuId: menuId,
4188
4188
  themeKey: selectedThemeKey
@@ -9537,8 +9537,8 @@ var deepEqual = function deepEqual(a, b, opts) {
9537
9537
 
9538
9538
  var deepEqual$1 = /*@__PURE__*/getDefaultExportFromCjs(deepEqual);
9539
9539
 
9540
- 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; }
9541
- 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; }
9540
+ function ownKeys$y(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; }
9541
+ function _objectSpread$y(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$y(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$y(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
9542
9542
  var PanelEditItem = function PanelEditItem(_ref) {
9543
9543
  var _ComponentManager$get;
9544
9544
  var workspace = _ref.workspace,
@@ -9598,7 +9598,7 @@ var PanelEditItem = function PanelEditItem(_ref) {
9598
9598
  var uuid = newItem.uuid || newItem.uuidString;
9599
9599
  if (uuid) {
9600
9600
  workspaceTemp.selectedProviders = workspaceTemp.selectedProviders || {};
9601
- workspaceTemp.selectedProviders[uuid] = _objectSpread$x(_objectSpread$x({}, workspaceTemp.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
9601
+ workspaceTemp.selectedProviders[uuid] = _objectSpread$y(_objectSpread$y({}, workspaceTemp.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
9602
9602
  }
9603
9603
  onUpdate(newItem, workspaceTemp);
9604
9604
  forceUpdate();
@@ -9727,7 +9727,7 @@ var PanelEditItem = function PanelEditItem(_ref) {
9727
9727
  var _ref5 = _slicedToArray(_ref4, 2),
9728
9728
  name = _ref5[0],
9729
9729
  p = _ref5[1];
9730
- return _objectSpread$x({
9730
+ return _objectSpread$y({
9731
9731
  name: name
9732
9732
  }, p);
9733
9733
  });
@@ -9769,11 +9769,11 @@ var PanelEditItem = function PanelEditItem(_ref) {
9769
9769
  };
9770
9770
 
9771
9771
  var _excluded$5 = ["rows", "cols"];
9772
- 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; } } }; }
9773
- 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; } }
9774
- 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; }
9775
- function ownKeys$w(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9776
- function _objectSpread$w(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$w(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$w(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
9772
+ 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; } } }; }
9773
+ 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; } }
9774
+ 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; }
9775
+ 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; }
9776
+ 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; }
9777
9777
  var defaultGrid = {
9778
9778
  rows: 1,
9779
9779
  cols: 1,
@@ -9794,7 +9794,7 @@ function GridEditor(_ref) {
9794
9794
  setGrid = _useState2[1];
9795
9795
  var addRow = function addRow() {
9796
9796
  var newRow = grid.rows;
9797
- var newGrid = _objectSpread$w(_objectSpread$w({}, grid), {}, {
9797
+ var newGrid = _objectSpread$x(_objectSpread$x({}, grid), {}, {
9798
9798
  rows: grid.rows + 1
9799
9799
  });
9800
9800
  for (var col = 0; col < grid.cols; col++) {
@@ -9809,7 +9809,7 @@ function GridEditor(_ref) {
9809
9809
  };
9810
9810
  var addColumn = function addColumn() {
9811
9811
  var newCol = grid.cols;
9812
- var newGrid = _objectSpread$w(_objectSpread$w({}, grid), {}, {
9812
+ var newGrid = _objectSpread$x(_objectSpread$x({}, grid), {}, {
9813
9813
  cols: grid.cols + 1
9814
9814
  });
9815
9815
  for (var row = 0; row < grid.rows; row++) {
@@ -9842,8 +9842,8 @@ function GridEditor(_ref) {
9842
9842
  });
9843
9843
  }
9844
9844
  if (grid[nextKey]) {
9845
- var newGrid = _objectSpread$w({}, grid);
9846
- newGrid[currentKey] = _objectSpread$w(_objectSpread$w({}, newGrid[currentKey]), {}, {
9845
+ var newGrid = _objectSpread$x({}, grid);
9846
+ newGrid[currentKey] = _objectSpread$x(_objectSpread$x({}, newGrid[currentKey]), {}, {
9847
9847
  colSpan: newGrid[currentKey].colSpan + 1
9848
9848
  });
9849
9849
  delete newGrid[nextKey];
@@ -9856,8 +9856,8 @@ function GridEditor(_ref) {
9856
9856
  var currentKey = "".concat(row, ".").concat(col);
9857
9857
  var belowKey = "".concat(row + 1, ".").concat(col);
9858
9858
  if (grid[belowKey]) {
9859
- var newGrid = _objectSpread$w({}, grid);
9860
- newGrid[currentKey] = _objectSpread$w(_objectSpread$w({}, newGrid[currentKey]), {}, {
9859
+ var newGrid = _objectSpread$x({}, grid);
9860
+ newGrid[currentKey] = _objectSpread$x(_objectSpread$x({}, newGrid[currentKey]), {}, {
9861
9861
  rowSpan: newGrid[currentKey].rowSpan + 1
9862
9862
  });
9863
9863
  delete newGrid[belowKey];
@@ -9874,7 +9874,7 @@ function GridEditor(_ref) {
9874
9874
  var splitCell = function splitCell(row, col) {
9875
9875
  var key = "".concat(row, ".").concat(col);
9876
9876
  var cell = grid[key];
9877
- var newGrid = _objectSpread$w({}, grid);
9877
+ var newGrid = _objectSpread$x({}, grid);
9878
9878
 
9879
9879
  // we have to check the colspan, and since the colspan is greater than 1
9880
9880
  // Only handle horizontal split if colSpan > 1
@@ -9890,13 +9890,13 @@ function GridEditor(_ref) {
9890
9890
  var oldKey = "".concat(row, ".").concat(c);
9891
9891
  var newKey = "".concat(row, ".").concat(c + 1);
9892
9892
  if (newGrid[oldKey]) {
9893
- newGrid[newKey] = _objectSpread$w({}, newGrid[oldKey]);
9893
+ newGrid[newKey] = _objectSpread$x({}, newGrid[oldKey]);
9894
9894
  delete newGrid[oldKey];
9895
9895
  }
9896
9896
  }
9897
9897
 
9898
9898
  // Update the original cell's colSpan
9899
- newGrid[key] = _objectSpread$w(_objectSpread$w({}, cell), {}, {
9899
+ newGrid[key] = _objectSpread$x(_objectSpread$x({}, cell), {}, {
9900
9900
  colSpan: cell.colSpan - 1
9901
9901
  });
9902
9902
 
@@ -9908,7 +9908,7 @@ function GridEditor(_ref) {
9908
9908
  };
9909
9909
  }
9910
9910
  if (cell.rowSpan > 1) {
9911
- newGrid[key] = _objectSpread$w(_objectSpread$w({}, newGrid[key]), {}, {
9911
+ newGrid[key] = _objectSpread$x(_objectSpread$x({}, newGrid[key]), {}, {
9912
9912
  rowSpan: cell.rowSpan - 1
9913
9913
  });
9914
9914
  newGrid["".concat(row + 1, ".").concat(col)] = {
@@ -9924,7 +9924,7 @@ function GridEditor(_ref) {
9924
9924
  function sortObjectByKeys(obj) {
9925
9925
  var sortedKeys = Object.keys(obj).sort();
9926
9926
  var sortedObj = {};
9927
- var _iterator = _createForOfIteratorHelper$a(sortedKeys),
9927
+ var _iterator = _createForOfIteratorHelper$c(sortedKeys),
9928
9928
  _step;
9929
9929
  try {
9930
9930
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -10027,7 +10027,7 @@ function GridEditor(_ref) {
10027
10027
  var fromKey = "".concat(from.row, ".").concat(from.col);
10028
10028
  var toKey = "".concat(to.row, ".").concat(to.col);
10029
10029
  if (fromKey === toKey) return;
10030
- var newGrid = _objectSpread$w({}, grid);
10030
+ var newGrid = _objectSpread$x({}, grid);
10031
10031
 
10032
10032
  // Swap the cells
10033
10033
  var temp = newGrid[fromKey];
@@ -10053,7 +10053,7 @@ function GridEditor(_ref) {
10053
10053
  // console.log("Grid updated:", sequencedGrid);
10054
10054
  }
10055
10055
  function resetGridLayout() {
10056
- var newGrid = _objectSpread$w({}, defaultGrid);
10056
+ var newGrid = _objectSpread$x({}, defaultGrid);
10057
10057
  setGrid(newGrid);
10058
10058
  onUpdate(newGrid);
10059
10059
  }
@@ -10331,8 +10331,8 @@ var PanelEditItemGrid = function PanelEditItemGrid(_ref) {
10331
10331
  });
10332
10332
  };
10333
10333
 
10334
- 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; }
10335
- 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; }
10334
+ function ownKeys$w(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10335
+ function _objectSpread$w(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$w(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$w(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10336
10336
  var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
10337
10337
  var item = _ref.item;
10338
10338
  _ref.workspace;
@@ -10355,7 +10355,7 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
10355
10355
  }, [widgetUuid, notificationDefs.length]);
10356
10356
  function handleNotifToggle(typeKey, value) {
10357
10357
  var _window$mainApi2;
10358
- var updated = _objectSpread$v(_objectSpread$v({}, notifPrefs), {}, _defineProperty({}, typeKey, value));
10358
+ var updated = _objectSpread$w(_objectSpread$w({}, notifPrefs), {}, _defineProperty({}, typeKey, value));
10359
10359
  setNotifPrefs(updated);
10360
10360
  if ((_window$mainApi2 = window.mainApi) !== null && _window$mainApi2 !== void 0 && (_window$mainApi2 = _window$mainApi2.notifications) !== null && _window$mainApi2 !== void 0 && _window$mainApi2.setPreferences && widgetUuid) {
10361
10361
  window.mainApi.notifications.setPreferences(widgetUuid, _defineProperty({}, typeKey, value));
@@ -10397,6 +10397,366 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
10397
10397
  });
10398
10398
  };
10399
10399
 
10400
+ 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; } } }; }
10401
+ 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; } }
10402
+ 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; }
10403
+ 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; }
10404
+ 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; }
10405
+ var DAYS = [{
10406
+ key: "mon",
10407
+ label: "Mon"
10408
+ }, {
10409
+ key: "tue",
10410
+ label: "Tue"
10411
+ }, {
10412
+ key: "wed",
10413
+ label: "Wed"
10414
+ }, {
10415
+ key: "thu",
10416
+ label: "Thu"
10417
+ }, {
10418
+ key: "fri",
10419
+ label: "Fri"
10420
+ }, {
10421
+ key: "sat",
10422
+ label: "Sat"
10423
+ }, {
10424
+ key: "sun",
10425
+ label: "Sun"
10426
+ }];
10427
+ var INTERVAL_UNITS = [{
10428
+ value: "seconds",
10429
+ displayName: "Seconds"
10430
+ }, {
10431
+ value: "minutes",
10432
+ displayName: "Minutes"
10433
+ }, {
10434
+ value: "hours",
10435
+ displayName: "Hours"
10436
+ }];
10437
+ function intervalToMs(value, unit) {
10438
+ var num = parseInt(value, 10);
10439
+ if (isNaN(num) || num <= 0) return null;
10440
+ switch (unit) {
10441
+ case "seconds":
10442
+ return num * 1000;
10443
+ case "minutes":
10444
+ return num * 60 * 1000;
10445
+ case "hours":
10446
+ return num * 60 * 60 * 1000;
10447
+ default:
10448
+ return num * 60 * 1000;
10449
+ }
10450
+ }
10451
+ function msToInterval(ms) {
10452
+ if (!ms) return {
10453
+ value: 5,
10454
+ unit: "minutes"
10455
+ };
10456
+ if (ms >= 3600000 && ms % 3600000 === 0) return {
10457
+ value: ms / 3600000,
10458
+ unit: "hours"
10459
+ };
10460
+ if (ms >= 60000 && ms % 60000 === 0) return {
10461
+ value: ms / 60000,
10462
+ unit: "minutes"
10463
+ };
10464
+ return {
10465
+ value: ms / 1000,
10466
+ unit: "seconds"
10467
+ };
10468
+ }
10469
+ function TaskScheduleEditor(_ref) {
10470
+ var taskDef = _ref.taskDef,
10471
+ taskState = _ref.taskState,
10472
+ widgetId = _ref.widgetId,
10473
+ widgetName = _ref.widgetName,
10474
+ workspaceId = _ref.workspaceId;
10475
+ var _useState = useState((taskState === null || taskState === void 0 ? void 0 : taskState.enabled) || false),
10476
+ _useState2 = _slicedToArray(_useState, 2),
10477
+ enabled = _useState2[0],
10478
+ setEnabled = _useState2[1];
10479
+ var _useState3 = useState((taskState === null || taskState === void 0 ? void 0 : taskState.scheduleType) || "interval"),
10480
+ _useState4 = _slicedToArray(_useState3, 2),
10481
+ scheduleType = _useState4[0],
10482
+ setScheduleType = _useState4[1];
10483
+ var initialInterval = msToInterval(taskState === null || taskState === void 0 ? void 0 : taskState.intervalMs);
10484
+ var _useState5 = useState(initialInterval.value),
10485
+ _useState6 = _slicedToArray(_useState5, 2),
10486
+ intervalValue = _useState6[0],
10487
+ setIntervalValue = _useState6[1];
10488
+ var _useState7 = useState(initialInterval.unit),
10489
+ _useState8 = _slicedToArray(_useState7, 2),
10490
+ intervalUnit = _useState8[0],
10491
+ setIntervalUnit = _useState8[1];
10492
+ var _useState9 = useState((taskState === null || taskState === void 0 ? void 0 : taskState.days) || ["every"]),
10493
+ _useState0 = _slicedToArray(_useState9, 2),
10494
+ days = _useState0[0],
10495
+ setDays = _useState0[1];
10496
+ var _useState1 = useState((taskState === null || taskState === void 0 ? void 0 : taskState.time) || "09:00"),
10497
+ _useState10 = _slicedToArray(_useState1, 2),
10498
+ time = _useState10[0],
10499
+ setTime = _useState10[1];
10500
+ var hasSchedule = !!taskState;
10501
+ function saveTask() {
10502
+ var _window$mainApi;
10503
+ var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
10504
+ if (!((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && (_window$mainApi = _window$mainApi.scheduler) !== null && _window$mainApi !== void 0 && _window$mainApi.registerTask)) return;
10505
+ var payload = _objectSpread$v({
10506
+ widgetId: widgetId,
10507
+ widgetName: widgetName,
10508
+ workspaceId: workspaceId || "",
10509
+ taskKey: taskDef.key,
10510
+ handler: taskDef.handler,
10511
+ displayName: taskDef.displayName,
10512
+ scheduleType: scheduleType,
10513
+ intervalMs: intervalToMs(intervalValue, intervalUnit),
10514
+ days: days,
10515
+ time: time,
10516
+ enabled: enabled
10517
+ }, overrides);
10518
+ window.mainApi.scheduler.registerTask(payload);
10519
+ }
10520
+ function handleToggle(value) {
10521
+ setEnabled(value);
10522
+ if (!hasSchedule && value) {
10523
+ // First enable — register with default schedule
10524
+ saveTask({
10525
+ enabled: true
10526
+ });
10527
+ } else if (hasSchedule) {
10528
+ var taskId = "".concat(widgetId, ":").concat(taskDef.key);
10529
+ if (value) {
10530
+ var _window$mainApi2;
10531
+ (_window$mainApi2 = window.mainApi) === null || _window$mainApi2 === void 0 || (_window$mainApi2 = _window$mainApi2.scheduler) === null || _window$mainApi2 === void 0 || _window$mainApi2.enableTask(taskId);
10532
+ } else {
10533
+ var _window$mainApi3;
10534
+ (_window$mainApi3 = window.mainApi) === null || _window$mainApi3 === void 0 || (_window$mainApi3 = _window$mainApi3.scheduler) === null || _window$mainApi3 === void 0 || _window$mainApi3.disableTask(taskId);
10535
+ }
10536
+ }
10537
+ }
10538
+ function handleScheduleTypeChange(type) {
10539
+ setScheduleType(type);
10540
+ saveTask({
10541
+ scheduleType: type,
10542
+ enabled: true
10543
+ });
10544
+ if (!enabled) setEnabled(true);
10545
+ }
10546
+ function handleIntervalChange(val, unit) {
10547
+ setIntervalValue(val);
10548
+ if (unit) setIntervalUnit(unit);
10549
+ var ms = intervalToMs(val, unit || intervalUnit);
10550
+ if (ms) {
10551
+ saveTask({
10552
+ scheduleType: "interval",
10553
+ intervalMs: ms,
10554
+ enabled: true
10555
+ });
10556
+ if (!enabled) setEnabled(true);
10557
+ }
10558
+ }
10559
+ function handleDayToggle(dayKey) {
10560
+ var newDays;
10561
+ if (dayKey === "every") {
10562
+ newDays = days.includes("every") ? [] : ["every"];
10563
+ } else {
10564
+ // Remove "every" if it's there, toggle the specific day
10565
+ var filtered = days.filter(function (d) {
10566
+ return d !== "every";
10567
+ });
10568
+ if (filtered.includes(dayKey)) {
10569
+ newDays = filtered.filter(function (d) {
10570
+ return d !== dayKey;
10571
+ });
10572
+ } else {
10573
+ newDays = [].concat(_toConsumableArray(filtered), [dayKey]);
10574
+ }
10575
+ if (newDays.length === 0) newDays = ["every"];
10576
+ }
10577
+ setDays(newDays);
10578
+ saveTask({
10579
+ scheduleType: "dayTime",
10580
+ days: newDays,
10581
+ time: time,
10582
+ enabled: true
10583
+ });
10584
+ if (!enabled) setEnabled(true);
10585
+ }
10586
+ function handleTimeChange(newTime) {
10587
+ setTime(newTime);
10588
+ saveTask({
10589
+ scheduleType: "dayTime",
10590
+ days: days,
10591
+ time: newTime,
10592
+ enabled: true
10593
+ });
10594
+ if (!enabled) setEnabled(true);
10595
+ }
10596
+ return /*#__PURE__*/jsxs("div", {
10597
+ className: "border border-white/10 rounded-lg p-4 space-y-3",
10598
+ children: [/*#__PURE__*/jsxs("div", {
10599
+ className: "flex flex-row items-center justify-between",
10600
+ children: [/*#__PURE__*/jsxs("div", {
10601
+ className: "flex flex-col",
10602
+ children: [/*#__PURE__*/jsx("span", {
10603
+ className: "text-sm font-medium",
10604
+ children: taskDef.displayName
10605
+ }), taskDef.description && /*#__PURE__*/jsx("span", {
10606
+ className: "text-xs opacity-50",
10607
+ children: taskDef.description
10608
+ })]
10609
+ }), /*#__PURE__*/jsx(Switch, {
10610
+ checked: enabled,
10611
+ onChange: handleToggle
10612
+ })]
10613
+ }), enabled && /*#__PURE__*/jsxs("div", {
10614
+ className: "space-y-3 pt-1",
10615
+ children: [/*#__PURE__*/jsxs("div", {
10616
+ className: "flex flex-row space-x-4",
10617
+ children: [/*#__PURE__*/jsxs("label", {
10618
+ className: "flex items-center space-x-2 cursor-pointer text-sm",
10619
+ children: [/*#__PURE__*/jsx("input", {
10620
+ type: "radio",
10621
+ name: "schedule-type-".concat(taskDef.key),
10622
+ checked: scheduleType === "interval",
10623
+ onChange: function onChange() {
10624
+ return handleScheduleTypeChange("interval");
10625
+ },
10626
+ className: "accent-blue-500"
10627
+ }), /*#__PURE__*/jsx("span", {
10628
+ children: "Interval"
10629
+ })]
10630
+ }), /*#__PURE__*/jsxs("label", {
10631
+ className: "flex items-center space-x-2 cursor-pointer text-sm",
10632
+ children: [/*#__PURE__*/jsx("input", {
10633
+ type: "radio",
10634
+ name: "schedule-type-".concat(taskDef.key),
10635
+ checked: scheduleType === "dayTime",
10636
+ onChange: function onChange() {
10637
+ return handleScheduleTypeChange("dayTime");
10638
+ },
10639
+ className: "accent-blue-500"
10640
+ }), /*#__PURE__*/jsx("span", {
10641
+ children: "Day & Time"
10642
+ })]
10643
+ })]
10644
+ }), scheduleType === "interval" && /*#__PURE__*/jsxs("div", {
10645
+ className: "flex flex-row items-end space-x-2",
10646
+ children: [/*#__PURE__*/jsx(InputText, {
10647
+ label: "Every",
10648
+ type: "number",
10649
+ value: String(intervalValue),
10650
+ onChange: function onChange(e) {
10651
+ return handleIntervalChange(e.target.value, intervalUnit);
10652
+ },
10653
+ className: "w-24",
10654
+ min: "1"
10655
+ }), /*#__PURE__*/jsx(SelectInput, {
10656
+ value: intervalUnit,
10657
+ onChange: function onChange(val) {
10658
+ return handleIntervalChange(intervalValue, val);
10659
+ },
10660
+ options: INTERVAL_UNITS,
10661
+ className: "w-32"
10662
+ })]
10663
+ }), scheduleType === "dayTime" && /*#__PURE__*/jsxs("div", {
10664
+ className: "space-y-3",
10665
+ children: [/*#__PURE__*/jsxs("div", {
10666
+ className: "flex flex-col space-y-2",
10667
+ children: [/*#__PURE__*/jsx("span", {
10668
+ className: "text-xs opacity-70",
10669
+ children: "Days"
10670
+ }), /*#__PURE__*/jsxs("div", {
10671
+ className: "flex flex-row flex-wrap gap-2",
10672
+ children: [DAYS.map(function (day) {
10673
+ var isSelected = days.includes(day.key) || days.includes("every");
10674
+ return /*#__PURE__*/jsx("button", {
10675
+ onClick: function onClick() {
10676
+ return handleDayToggle(day.key);
10677
+ },
10678
+ className: "px-2.5 py-1 text-xs rounded border transition-colors ".concat(isSelected ? "bg-blue-600 border-blue-500 text-white" : "border-white/20 text-white/60 hover:border-white/40"),
10679
+ children: day.label
10680
+ }, day.key);
10681
+ }), /*#__PURE__*/jsx("button", {
10682
+ onClick: function onClick() {
10683
+ return handleDayToggle("every");
10684
+ },
10685
+ className: "px-2.5 py-1 text-xs rounded border transition-colors ".concat(days.includes("every") ? "bg-blue-600 border-blue-500 text-white" : "border-white/20 text-white/60 hover:border-white/40"),
10686
+ children: "Every day"
10687
+ })]
10688
+ })]
10689
+ }), /*#__PURE__*/jsx(InputText, {
10690
+ label: "Time",
10691
+ type: "time",
10692
+ value: time,
10693
+ onChange: function onChange(e) {
10694
+ return handleTimeChange(e.target.value);
10695
+ },
10696
+ className: "w-36"
10697
+ })]
10698
+ }), (taskState === null || taskState === void 0 ? void 0 : taskState.lastFiredAt) && /*#__PURE__*/jsxs("div", {
10699
+ className: "text-xs opacity-40",
10700
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
10701
+ icon: "clock",
10702
+ className: "h-3 w-3 mr-1"
10703
+ }), "Last fired: ", new Date(taskState.lastFiredAt).toLocaleString(), taskState.fireCount > 0 && " (".concat(taskState.fireCount, " total)")]
10704
+ })]
10705
+ })]
10706
+ });
10707
+ }
10708
+ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
10709
+ var item = _ref2.item,
10710
+ workspace = _ref2.workspace;
10711
+ _ref2.onUpdate;
10712
+ var widgetConfig = item ? ComponentManager.config(item.component, item) : null;
10713
+ var scheduledTaskDefs = (widgetConfig === null || widgetConfig === void 0 ? void 0 : widgetConfig.scheduledTasks) || [];
10714
+ var widgetUuid = (item === null || item === void 0 ? void 0 : item.uuid) || (item === null || item === void 0 ? void 0 : item.uuidString);
10715
+ var widgetName = item === null || item === void 0 ? void 0 : item.component;
10716
+ var workspaceId = workspace === null || workspace === void 0 ? void 0 : workspace.id;
10717
+ var _useState11 = useState({}),
10718
+ _useState12 = _slicedToArray(_useState11, 2),
10719
+ taskStates = _useState12[0],
10720
+ setTaskStates = _useState12[1];
10721
+ useEffect(function () {
10722
+ var _window$mainApi4;
10723
+ if (scheduledTaskDefs.length > 0 && widgetUuid && (_window$mainApi4 = window.mainApi) !== null && _window$mainApi4 !== void 0 && (_window$mainApi4 = _window$mainApi4.scheduler) !== null && _window$mainApi4 !== void 0 && _window$mainApi4.getTasks) {
10724
+ window.mainApi.scheduler.getTasks(widgetUuid).then(function (tasks) {
10725
+ var stateMap = {};
10726
+ var _iterator = _createForOfIteratorHelper$b(tasks || []),
10727
+ _step;
10728
+ try {
10729
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
10730
+ var task = _step.value;
10731
+ stateMap[task.taskKey] = task;
10732
+ }
10733
+ } catch (err) {
10734
+ _iterator.e(err);
10735
+ } finally {
10736
+ _iterator.f();
10737
+ }
10738
+ setTaskStates(stateMap);
10739
+ });
10740
+ }
10741
+ }, [widgetUuid, scheduledTaskDefs.length]);
10742
+ if (!item || scheduledTaskDefs.length === 0) return null;
10743
+ return /*#__PURE__*/jsxs("div", {
10744
+ className: "flex flex-col flex-1 min-h-0 overflow-y-auto p-6 space-y-4",
10745
+ children: [/*#__PURE__*/jsx(SubHeading3, {
10746
+ title: "Schedule",
10747
+ padding: false
10748
+ }), scheduledTaskDefs.map(function (taskDef) {
10749
+ return /*#__PURE__*/jsx(TaskScheduleEditor, {
10750
+ taskDef: taskDef,
10751
+ taskState: taskStates[taskDef.key] || null,
10752
+ widgetId: widgetUuid,
10753
+ widgetName: widgetName,
10754
+ workspaceId: workspaceId
10755
+ }, taskDef.key);
10756
+ })]
10757
+ });
10758
+ };
10759
+
10400
10760
  var PanelCode = function PanelCode(_ref) {
10401
10761
  var workspace = _ref.workspace,
10402
10762
  onUpdate = _ref.onUpdate,
@@ -10730,9 +11090,10 @@ var PanelEditItemHandlers = function PanelEditItemHandlers(_ref) {
10730
11090
  };
10731
11091
 
10732
11092
  var getSections = function getSections(item) {
10733
- var _widgetConfig$notific;
11093
+ var _widgetConfig$notific, _widgetConfig$schedul;
10734
11094
  var widgetConfig = item ? ComponentManager.config(item.component, item) : null;
10735
11095
  var hasNotifications = (widgetConfig === null || widgetConfig === void 0 || (_widgetConfig$notific = widgetConfig.notifications) === null || _widgetConfig$notific === void 0 ? void 0 : _widgetConfig$notific.length) > 0;
11096
+ var hasScheduledTasks = (widgetConfig === null || widgetConfig === void 0 || (_widgetConfig$schedul = widgetConfig.scheduledTasks) === null || _widgetConfig$schedul === void 0 ? void 0 : _widgetConfig$schedul.length) > 0;
10736
11097
  return [{
10737
11098
  key: "edit",
10738
11099
  label: "Settings",
@@ -10745,6 +11106,10 @@ var getSections = function getSections(item) {
10745
11106
  key: "notifications",
10746
11107
  label: "Notifications",
10747
11108
  icon: "bell"
11109
+ }] : []), _toConsumableArray(hasScheduledTasks ? [{
11110
+ key: "schedule",
11111
+ label: "Schedule",
11112
+ icon: "clock"
10748
11113
  }] : []), _toConsumableArray((item === null || item === void 0 ? void 0 : item.workspace) !== "layout" ? [{
10749
11114
  key: "handlers",
10750
11115
  label: "Listeners",
@@ -10863,6 +11228,10 @@ var LayoutBuilderConfigModal = function LayoutBuilderConfigModal(_ref) {
10863
11228
  item: itemSelected,
10864
11229
  onUpdate: handleEditChange,
10865
11230
  workspace: workspaceSelected
11231
+ }), activeSection === "schedule" && /*#__PURE__*/jsx(PanelEditItemSchedule, {
11232
+ item: itemSelected,
11233
+ onUpdate: handleEditChange,
11234
+ workspace: workspaceSelected
10866
11235
  }), activeSection === "handlers" && /*#__PURE__*/jsx(PanelEditItemHandlers, {
10867
11236
  item: itemSelected,
10868
11237
  onUpdate: handleEditChange,
@@ -13189,9 +13558,9 @@ var getUserConfigurableProviders = function getUserConfigurableProviders(provide
13189
13558
  });
13190
13559
  };
13191
13560
 
13192
- 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; } } }; }
13193
- 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; } }
13194
- 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; }
13561
+ 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; } } }; }
13562
+ 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; } }
13563
+ 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; }
13195
13564
  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; }
13196
13565
  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; }
13197
13566
  var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
@@ -13458,11 +13827,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
13458
13827
 
13459
13828
  // Flatten all widgets from all packages for the widget list
13460
13829
  flatWidgets = [];
13461
- _iterator = _createForOfIteratorHelper$9(result.packages || []);
13830
+ _iterator = _createForOfIteratorHelper$a(result.packages || []);
13462
13831
  try {
13463
13832
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
13464
13833
  pkg = _step.value;
13465
- _iterator2 = _createForOfIteratorHelper$9(pkg.widgets || []);
13834
+ _iterator2 = _createForOfIteratorHelper$a(pkg.widgets || []);
13466
13835
  try {
13467
13836
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
13468
13837
  widget = _step2.value;
@@ -15018,9 +15387,9 @@ var ProviderBadge = function ProviderBadge(_ref) {
15018
15387
  });
15019
15388
  };
15020
15389
 
15021
- function _createForOfIteratorHelper$8(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$8(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
15022
- function _unsupportedIterableToArray$8(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$8(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$8(r, a) : void 0; } }
15023
- function _arrayLikeToArray$8(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
15390
+ 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; } } }; }
15391
+ 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; } }
15392
+ 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; }
15024
15393
  var WidgetCardHeader = function WidgetCardHeader(_ref) {
15025
15394
  var item = _ref.item,
15026
15395
  widget = _ref.widget,
@@ -15064,7 +15433,7 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
15064
15433
  var el = headerRef.current;
15065
15434
  if (!el) return;
15066
15435
  var observer = new ResizeObserver(function (entries) {
15067
- var _iterator = _createForOfIteratorHelper$8(entries),
15436
+ var _iterator = _createForOfIteratorHelper$9(entries),
15068
15437
  _step;
15069
15438
  try {
15070
15439
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -19856,9 +20225,9 @@ var ExternalWidget = function ExternalWidget(_ref) {
19856
20225
  var GRID_CELL_WIDGET_TYPE = "grid-cell-widget";
19857
20226
  var SIDEBAR_WIDGET_TYPE = "sidebar-widget";
19858
20227
 
19859
- function _createForOfIteratorHelper$7(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$7(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
19860
- function _unsupportedIterableToArray$7(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$7(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$7(r, a) : void 0; } }
19861
- function _arrayLikeToArray$7(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
20228
+ function _createForOfIteratorHelper$8(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$8(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
20229
+ function _unsupportedIterableToArray$8(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$8(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$8(r, a) : void 0; } }
20230
+ function _arrayLikeToArray$8(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
19862
20231
  function ownKeys$l(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
19863
20232
  function _objectSpread$l(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$l(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$l(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
19864
20233
  var DraggableDroppableCellBody = function DraggableDroppableCellBody(_ref) {
@@ -20422,7 +20791,7 @@ var LayoutGridContainer = /*#__PURE__*/memo(function (_ref3) {
20422
20791
  return selectable["delete"](cn);
20423
20792
  });
20424
20793
  var resolved = new Set();
20425
- var _iterator = _createForOfIteratorHelper$7(selectable),
20794
+ var _iterator = _createForOfIteratorHelper$8(selectable),
20426
20795
  _step;
20427
20796
  try {
20428
20797
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -22562,9 +22931,9 @@ function isWidgetResolvable(componentKey) {
22562
22931
 
22563
22932
  function ownKeys$k(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22564
22933
  function _objectSpread$k(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$k(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$k(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22565
- function _createForOfIteratorHelper$6(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$6(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
22566
- function _unsupportedIterableToArray$6(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$6(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$6(r, a) : void 0; } }
22567
- function _arrayLikeToArray$6(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
22934
+ function _createForOfIteratorHelper$7(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$7(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
22935
+ function _unsupportedIterableToArray$7(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$7(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$7(r, a) : void 0; } }
22936
+ function _arrayLikeToArray$7(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
22568
22937
  /**
22569
22938
  * The model for all layout components used primarily in the renderLayout method
22570
22939
  * @param {Object} layoutItem an object containing various attributes of the layout item
@@ -22576,7 +22945,7 @@ function _arrayLikeToArray$6(r, a) { (null == a || a > r.length) && (a = r.lengt
22576
22945
  function sortObjectByKeys(obj) {
22577
22946
  var sortedKeys = Object.keys(obj).sort();
22578
22947
  var sortedObj = {};
22579
- var _iterator = _createForOfIteratorHelper$6(sortedKeys),
22948
+ var _iterator = _createForOfIteratorHelper$7(sortedKeys),
22580
22949
  _step;
22581
22950
  try {
22582
22951
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -23225,6 +23594,13 @@ var ComponentConfigModel = function ComponentConfigModel() {
23225
23594
  * Each entry: { key, displayName, description, defaultEnabled }
23226
23595
  */
23227
23596
  obj.notifications = "notifications" in obj ? obj["notifications"] : [];
23597
+
23598
+ /**
23599
+ * scheduledTasks
23600
+ * Scheduled task handlers this widget exposes.
23601
+ * Each entry: { key, handler, displayName, description }
23602
+ */
23603
+ obj.scheduledTasks = "scheduledTasks" in obj ? obj["scheduledTasks"] : [];
23228
23604
  return obj;
23229
23605
  };
23230
23606
 
@@ -25834,9 +26210,9 @@ var useDashboard = function useDashboard() {
25834
26210
  });
25835
26211
  };
25836
26212
 
25837
- function _createForOfIteratorHelper$5(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$5(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
25838
- function _unsupportedIterableToArray$5(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$5(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$5(r, a) : void 0; } }
25839
- function _arrayLikeToArray$5(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
26213
+ function _createForOfIteratorHelper$6(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$6(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
26214
+ function _unsupportedIterableToArray$6(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$6(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$6(r, a) : void 0; } }
26215
+ function _arrayLikeToArray$6(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
25840
26216
 
25841
26217
  /**
25842
26218
  * useWidgetProviders Hook
@@ -25887,7 +26263,7 @@ var useWidgetProviders = function useWidgetProviders() {
25887
26263
  // 1. Widget-level: stored directly on the layout item by handleSelectProvider
25888
26264
  // 2. Workspace-level: stored as workspace.selectedProviders[widgetId][providerType]
25889
26265
  var providers = {};
25890
- var _iterator = _createForOfIteratorHelper$5(providerDeclarations),
26266
+ var _iterator = _createForOfIteratorHelper$6(providerDeclarations),
25891
26267
  _step;
25892
26268
  try {
25893
26269
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -26622,6 +26998,146 @@ var useNotifications = function useNotifications() {
26622
26998
  };
26623
26999
  };
26624
27000
 
27001
+ function _createForOfIteratorHelper$5(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$5(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
27002
+ function _unsupportedIterableToArray$5(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$5(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$5(r, a) : void 0; } }
27003
+ function _arrayLikeToArray$5(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
27004
+
27005
+ /**
27006
+ * useScheduler Hook
27007
+ *
27008
+ * Provides scheduled task functionality for widgets.
27009
+ * The widget provides handler functions keyed by the task handler names
27010
+ * declared in the widget's .dash.js config (scheduledTasks[].handler).
27011
+ *
27012
+ * Tasks are registered/configured via the settings panel (PanelEditItemSchedule).
27013
+ * This hook listens for task-fired events and calls the matching handler.
27014
+ *
27015
+ * @param {Object} handlers - { [handlerName]: async () => void }
27016
+ * @returns {Object}
27017
+ * - tasks: TaskEntry[] — current schedule state
27018
+ * - lastFire: { taskId, taskKey, firedAt } | null — latest fire event
27019
+ * - pendingResults: fires that happened while widget was unmounted
27020
+ */
27021
+ var useScheduler = function useScheduler() {
27022
+ var _workspaceContext$wor;
27023
+ var handlers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
27024
+ var widgetContext = useContext(WidgetContext);
27025
+ var workspaceContext = useContext(WorkspaceContext);
27026
+ if (!widgetContext) {
27027
+ throw new Error("useScheduler must be used within a Widget component. " + "Make sure your component is rendered inside <Widget> and within a DashboardWrapper.");
27028
+ }
27029
+ var _ref = widgetContext.widgetData || {},
27030
+ componentName = _ref.componentName,
27031
+ uuid = _ref.uuid,
27032
+ scheduledTasks = _ref.scheduledTasks;
27033
+ var widgetId = uuid;
27034
+ workspaceContext === null || workspaceContext === void 0 || (_workspaceContext$wor = workspaceContext.workspaceData) === null || _workspaceContext$wor === void 0 ? void 0 : _workspaceContext$wor.id;
27035
+ var _useState = useState([]),
27036
+ _useState2 = _slicedToArray(_useState, 2),
27037
+ tasks = _useState2[0],
27038
+ setTasks = _useState2[1];
27039
+ var _useState3 = useState(null),
27040
+ _useState4 = _slicedToArray(_useState3, 2),
27041
+ lastFire = _useState4[0],
27042
+ setLastFire = _useState4[1];
27043
+ var _useState5 = useState([]),
27044
+ _useState6 = _slicedToArray(_useState5, 2),
27045
+ pendingResults = _useState6[0],
27046
+ setPendingResults = _useState6[1];
27047
+
27048
+ // Keep handlers in a ref so the event listener always has the latest
27049
+ var handlersRef = useRef(handlers);
27050
+ handlersRef.current = handlers;
27051
+
27052
+ // Validate handler keys against widget's declared scheduledTasks
27053
+ useEffect(function () {
27054
+ if (!scheduledTasks || scheduledTasks.length === 0) return;
27055
+ var declaredHandlers = scheduledTasks.map(function (t) {
27056
+ return t.handler;
27057
+ });
27058
+ for (var _i = 0, _Object$keys = Object.keys(handlers); _i < _Object$keys.length; _i++) {
27059
+ var key = _Object$keys[_i];
27060
+ if (!declaredHandlers.includes(key)) ;
27061
+ }
27062
+ // eslint-disable-next-line react-hooks/exhaustive-deps
27063
+ }, [componentName, scheduledTasks]);
27064
+
27065
+ // Load existing tasks and pending results on mount
27066
+ useEffect(function () {
27067
+ var _window$mainApi;
27068
+ if (!widgetId || !((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && _window$mainApi.scheduler)) return;
27069
+ window.mainApi.scheduler.getTasks(widgetId).then(function (existingTasks) {
27070
+ setTasks(existingTasks || []);
27071
+ });
27072
+ window.mainApi.scheduler.getPending(widgetId).then(function (pending) {
27073
+ if (pending && pending.length > 0) {
27074
+ setPendingResults(pending);
27075
+ // Call handlers for each pending result
27076
+ var _iterator = _createForOfIteratorHelper$5(pending),
27077
+ _step;
27078
+ try {
27079
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
27080
+ var result = _step.value;
27081
+ var handlerFn = handlersRef.current[result.taskKey];
27082
+ if (handlerFn) {
27083
+ try {
27084
+ handlerFn();
27085
+ } catch (err) {
27086
+ }
27087
+ }
27088
+ }
27089
+ } catch (err) {
27090
+ _iterator.e(err);
27091
+ } finally {
27092
+ _iterator.f();
27093
+ }
27094
+ }
27095
+ });
27096
+ }, [widgetId]);
27097
+
27098
+ // Subscribe to task-fired events
27099
+ useEffect(function () {
27100
+ var _window$mainApi2;
27101
+ 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;
27102
+ var removeListener = window.mainApi.scheduler.onTaskFired(function (data) {
27103
+ if (data.widgetId !== widgetId) return;
27104
+ setLastFire({
27105
+ taskId: data.taskId,
27106
+ taskKey: data.taskKey,
27107
+ firedAt: data.firedAt
27108
+ });
27109
+
27110
+ // Refresh tasks to get updated lastFiredAt / fireCount
27111
+ window.mainApi.scheduler.getTasks(widgetId).then(function (updated) {
27112
+ setTasks(updated || []);
27113
+ });
27114
+
27115
+ // Call the matching handler
27116
+ var handlerFn = handlersRef.current[data.taskKey];
27117
+ if (handlerFn) {
27118
+ try {
27119
+ handlerFn();
27120
+ } catch (err) {
27121
+ }
27122
+ }
27123
+ });
27124
+ return removeListener;
27125
+ }, [widgetId]);
27126
+ var refreshTasks = useCallback(function () {
27127
+ var _window$mainApi3;
27128
+ if (!widgetId || !((_window$mainApi3 = window.mainApi) !== null && _window$mainApi3 !== void 0 && _window$mainApi3.scheduler)) return;
27129
+ window.mainApi.scheduler.getTasks(widgetId).then(function (updated) {
27130
+ setTasks(updated || []);
27131
+ });
27132
+ }, [widgetId]);
27133
+ return {
27134
+ tasks: tasks,
27135
+ lastFire: lastFire,
27136
+ pendingResults: pendingResults,
27137
+ refreshTasks: refreshTasks
27138
+ };
27139
+ };
27140
+
26625
27141
  function ownKeys$h(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
26626
27142
  function _objectSpread$h(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$h(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$h(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26627
27143
  var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
@@ -45190,5 +45706,5 @@ var WorkspaceMenu = function WorkspaceMenu(_ref) {
45190
45706
 
45191
45707
  ComponentManager.registerContainerTypes(LayoutContainer, LayoutGridContainer);
45192
45708
 
45193
- 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, useWidgetEvents, useWidgetProviders, validateCellMerge, validateGridCell, validateGridPlacement, validateWidgetPlacement, withProviderDetection };
45709
+ 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 };
45194
45710
  //# sourceMappingURL=index.esm.js.map