@trops/dash-core 0.1.147 → 0.1.149

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
  }
@@ -2325,6 +2325,13 @@ var AppWrapper = function AppWrapper(_ref) {
2325
2325
  saveSettings(s);
2326
2326
  return s;
2327
2327
  });
2328
+ if (to) {
2329
+ var _window$mainApi;
2330
+ (_window$mainApi = window.mainApi) === null || _window$mainApi === void 0 || (_window$mainApi = _window$mainApi.debug) === null || _window$mainApi === void 0 || _window$mainApi.open();
2331
+ } else {
2332
+ var _window$mainApi2;
2333
+ (_window$mainApi2 = window.mainApi) === null || _window$mainApi2 === void 0 || (_window$mainApi2 = _window$mainApi2.debug) === null || _window$mainApi2 === void 0 || _window$mainApi2.close();
2334
+ }
2328
2335
  }, [dashApi, credentials]);
2329
2336
  var changeApplicationTheme = useCallback(function (themeKey) {
2330
2337
  try {
@@ -2534,8 +2541,8 @@ var DashboardWrapper = function DashboardWrapper(_ref) {
2534
2541
  });
2535
2542
  };
2536
2543
 
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; }
2544
+ 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; }
2545
+ 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
2546
  var DashboardThemeProvider = function DashboardThemeProvider(_ref) {
2540
2547
  var themeKey = _ref.themeKey,
2541
2548
  children = _ref.children;
@@ -2547,7 +2554,7 @@ var DashboardThemeProvider = function DashboardThemeProvider(_ref) {
2547
2554
  var dashboardTheme = themes[themeKey];
2548
2555
  var themeValue = dashboardTheme ? dashboardTheme[themeVariant] || null : null;
2549
2556
  if (!themeValue) return null;
2550
- return _objectSpread$B(_objectSpread$B({}, parentContext), {}, {
2557
+ return _objectSpread$C(_objectSpread$C({}, parentContext), {}, {
2551
2558
  currentTheme: themeValue,
2552
2559
  currentThemeKey: themeKey,
2553
2560
  theme: themeValue,
@@ -2565,8 +2572,8 @@ var DashboardThemeProvider = function DashboardThemeProvider(_ref) {
2565
2572
  });
2566
2573
  };
2567
2574
 
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; }
2575
+ 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; }
2576
+ 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
2577
  var AppThemeScope = function AppThemeScope(_ref) {
2571
2578
  var children = _ref.children;
2572
2579
  var ctx = useContext(ThemeContext);
@@ -2574,7 +2581,7 @@ var AppThemeScope = function AppThemeScope(_ref) {
2574
2581
  children: children
2575
2582
  });
2576
2583
  return /*#__PURE__*/jsx(ThemeContext.Provider, {
2577
- value: _objectSpread$A(_objectSpread$A({}, ctx), {}, {
2584
+ value: _objectSpread$B(_objectSpread$B({}, ctx), {}, {
2578
2585
  currentTheme: ctx.appTheme,
2579
2586
  currentThemeKey: ctx.appThemeKey,
2580
2587
  theme: ctx.appTheme,
@@ -2686,11 +2693,11 @@ var LayoutContainer = function LayoutContainer(_ref) {
2686
2693
  });
2687
2694
  };
2688
2695
 
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; }
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
+ 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; }
2694
2701
  /**
2695
2702
  * Layout template definitions for the dashboard template picker.
2696
2703
  *
@@ -2926,12 +2933,12 @@ function createLayoutFromTemplate(template) {
2926
2933
  cols: template.cols,
2927
2934
  gap: "gap-2"
2928
2935
  };
2929
- var _iterator = _createForOfIteratorHelper$b(template.cells),
2936
+ var _iterator = _createForOfIteratorHelper$d(template.cells),
2930
2937
  _step;
2931
2938
  try {
2932
2939
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
2933
2940
  var cell = _step.value;
2934
- grid[cell.key] = _objectSpread$z({
2941
+ grid[cell.key] = _objectSpread$A({
2935
2942
  component: null,
2936
2943
  hide: cell.hide || false
2937
2944
  }, cell.span ? {
@@ -3945,8 +3952,8 @@ var DiscoverDashboardsDetail = function DiscoverDashboardsDetail(_ref) {
3945
3952
  });
3946
3953
  };
3947
3954
 
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; }
3955
+ 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; }
3956
+ 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
3957
  var LayoutManagerModal = function LayoutManagerModal(_ref) {
3951
3958
  var open = _ref.open,
3952
3959
  setIsOpen = _ref.setIsOpen,
@@ -4182,7 +4189,7 @@ var LayoutManagerModal = function LayoutManagerModal(_ref) {
4182
4189
  }
4183
4190
  return _context2.abrupt("return");
4184
4191
  case 6:
4185
- updatedWorkspace = _objectSpread$y(_objectSpread$y({}, importedWorkspace), {}, {
4192
+ updatedWorkspace = _objectSpread$z(_objectSpread$z({}, importedWorkspace), {}, {
4186
4193
  name: dashboardName.trim(),
4187
4194
  menuId: menuId,
4188
4195
  themeKey: selectedThemeKey
@@ -9537,8 +9544,8 @@ var deepEqual = function deepEqual(a, b, opts) {
9537
9544
 
9538
9545
  var deepEqual$1 = /*@__PURE__*/getDefaultExportFromCjs(deepEqual);
9539
9546
 
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; }
9547
+ 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; }
9548
+ 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
9549
  var PanelEditItem = function PanelEditItem(_ref) {
9543
9550
  var _ComponentManager$get;
9544
9551
  var workspace = _ref.workspace,
@@ -9598,7 +9605,7 @@ var PanelEditItem = function PanelEditItem(_ref) {
9598
9605
  var uuid = newItem.uuid || newItem.uuidString;
9599
9606
  if (uuid) {
9600
9607
  workspaceTemp.selectedProviders = workspaceTemp.selectedProviders || {};
9601
- workspaceTemp.selectedProviders[uuid] = _objectSpread$x(_objectSpread$x({}, workspaceTemp.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
9608
+ workspaceTemp.selectedProviders[uuid] = _objectSpread$y(_objectSpread$y({}, workspaceTemp.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
9602
9609
  }
9603
9610
  onUpdate(newItem, workspaceTemp);
9604
9611
  forceUpdate();
@@ -9727,7 +9734,7 @@ var PanelEditItem = function PanelEditItem(_ref) {
9727
9734
  var _ref5 = _slicedToArray(_ref4, 2),
9728
9735
  name = _ref5[0],
9729
9736
  p = _ref5[1];
9730
- return _objectSpread$x({
9737
+ return _objectSpread$y({
9731
9738
  name: name
9732
9739
  }, p);
9733
9740
  });
@@ -9769,11 +9776,11 @@ var PanelEditItem = function PanelEditItem(_ref) {
9769
9776
  };
9770
9777
 
9771
9778
  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; }
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; }
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
+ 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
9784
  var defaultGrid = {
9778
9785
  rows: 1,
9779
9786
  cols: 1,
@@ -9794,7 +9801,7 @@ function GridEditor(_ref) {
9794
9801
  setGrid = _useState2[1];
9795
9802
  var addRow = function addRow() {
9796
9803
  var newRow = grid.rows;
9797
- var newGrid = _objectSpread$w(_objectSpread$w({}, grid), {}, {
9804
+ var newGrid = _objectSpread$x(_objectSpread$x({}, grid), {}, {
9798
9805
  rows: grid.rows + 1
9799
9806
  });
9800
9807
  for (var col = 0; col < grid.cols; col++) {
@@ -9809,7 +9816,7 @@ function GridEditor(_ref) {
9809
9816
  };
9810
9817
  var addColumn = function addColumn() {
9811
9818
  var newCol = grid.cols;
9812
- var newGrid = _objectSpread$w(_objectSpread$w({}, grid), {}, {
9819
+ var newGrid = _objectSpread$x(_objectSpread$x({}, grid), {}, {
9813
9820
  cols: grid.cols + 1
9814
9821
  });
9815
9822
  for (var row = 0; row < grid.rows; row++) {
@@ -9842,8 +9849,8 @@ function GridEditor(_ref) {
9842
9849
  });
9843
9850
  }
9844
9851
  if (grid[nextKey]) {
9845
- var newGrid = _objectSpread$w({}, grid);
9846
- newGrid[currentKey] = _objectSpread$w(_objectSpread$w({}, newGrid[currentKey]), {}, {
9852
+ var newGrid = _objectSpread$x({}, grid);
9853
+ newGrid[currentKey] = _objectSpread$x(_objectSpread$x({}, newGrid[currentKey]), {}, {
9847
9854
  colSpan: newGrid[currentKey].colSpan + 1
9848
9855
  });
9849
9856
  delete newGrid[nextKey];
@@ -9856,8 +9863,8 @@ function GridEditor(_ref) {
9856
9863
  var currentKey = "".concat(row, ".").concat(col);
9857
9864
  var belowKey = "".concat(row + 1, ".").concat(col);
9858
9865
  if (grid[belowKey]) {
9859
- var newGrid = _objectSpread$w({}, grid);
9860
- newGrid[currentKey] = _objectSpread$w(_objectSpread$w({}, newGrid[currentKey]), {}, {
9866
+ var newGrid = _objectSpread$x({}, grid);
9867
+ newGrid[currentKey] = _objectSpread$x(_objectSpread$x({}, newGrid[currentKey]), {}, {
9861
9868
  rowSpan: newGrid[currentKey].rowSpan + 1
9862
9869
  });
9863
9870
  delete newGrid[belowKey];
@@ -9874,7 +9881,7 @@ function GridEditor(_ref) {
9874
9881
  var splitCell = function splitCell(row, col) {
9875
9882
  var key = "".concat(row, ".").concat(col);
9876
9883
  var cell = grid[key];
9877
- var newGrid = _objectSpread$w({}, grid);
9884
+ var newGrid = _objectSpread$x({}, grid);
9878
9885
 
9879
9886
  // we have to check the colspan, and since the colspan is greater than 1
9880
9887
  // Only handle horizontal split if colSpan > 1
@@ -9890,13 +9897,13 @@ function GridEditor(_ref) {
9890
9897
  var oldKey = "".concat(row, ".").concat(c);
9891
9898
  var newKey = "".concat(row, ".").concat(c + 1);
9892
9899
  if (newGrid[oldKey]) {
9893
- newGrid[newKey] = _objectSpread$w({}, newGrid[oldKey]);
9900
+ newGrid[newKey] = _objectSpread$x({}, newGrid[oldKey]);
9894
9901
  delete newGrid[oldKey];
9895
9902
  }
9896
9903
  }
9897
9904
 
9898
9905
  // Update the original cell's colSpan
9899
- newGrid[key] = _objectSpread$w(_objectSpread$w({}, cell), {}, {
9906
+ newGrid[key] = _objectSpread$x(_objectSpread$x({}, cell), {}, {
9900
9907
  colSpan: cell.colSpan - 1
9901
9908
  });
9902
9909
 
@@ -9908,7 +9915,7 @@ function GridEditor(_ref) {
9908
9915
  };
9909
9916
  }
9910
9917
  if (cell.rowSpan > 1) {
9911
- newGrid[key] = _objectSpread$w(_objectSpread$w({}, newGrid[key]), {}, {
9918
+ newGrid[key] = _objectSpread$x(_objectSpread$x({}, newGrid[key]), {}, {
9912
9919
  rowSpan: cell.rowSpan - 1
9913
9920
  });
9914
9921
  newGrid["".concat(row + 1, ".").concat(col)] = {
@@ -9924,7 +9931,7 @@ function GridEditor(_ref) {
9924
9931
  function sortObjectByKeys(obj) {
9925
9932
  var sortedKeys = Object.keys(obj).sort();
9926
9933
  var sortedObj = {};
9927
- var _iterator = _createForOfIteratorHelper$a(sortedKeys),
9934
+ var _iterator = _createForOfIteratorHelper$c(sortedKeys),
9928
9935
  _step;
9929
9936
  try {
9930
9937
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -10027,7 +10034,7 @@ function GridEditor(_ref) {
10027
10034
  var fromKey = "".concat(from.row, ".").concat(from.col);
10028
10035
  var toKey = "".concat(to.row, ".").concat(to.col);
10029
10036
  if (fromKey === toKey) return;
10030
- var newGrid = _objectSpread$w({}, grid);
10037
+ var newGrid = _objectSpread$x({}, grid);
10031
10038
 
10032
10039
  // Swap the cells
10033
10040
  var temp = newGrid[fromKey];
@@ -10053,7 +10060,7 @@ function GridEditor(_ref) {
10053
10060
  // console.log("Grid updated:", sequencedGrid);
10054
10061
  }
10055
10062
  function resetGridLayout() {
10056
- var newGrid = _objectSpread$w({}, defaultGrid);
10063
+ var newGrid = _objectSpread$x({}, defaultGrid);
10057
10064
  setGrid(newGrid);
10058
10065
  onUpdate(newGrid);
10059
10066
  }
@@ -10331,8 +10338,8 @@ var PanelEditItemGrid = function PanelEditItemGrid(_ref) {
10331
10338
  });
10332
10339
  };
10333
10340
 
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; }
10341
+ 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; }
10342
+ 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
10343
  var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
10337
10344
  var item = _ref.item;
10338
10345
  _ref.workspace;
@@ -10355,7 +10362,7 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
10355
10362
  }, [widgetUuid, notificationDefs.length]);
10356
10363
  function handleNotifToggle(typeKey, value) {
10357
10364
  var _window$mainApi2;
10358
- var updated = _objectSpread$v(_objectSpread$v({}, notifPrefs), {}, _defineProperty({}, typeKey, value));
10365
+ var updated = _objectSpread$w(_objectSpread$w({}, notifPrefs), {}, _defineProperty({}, typeKey, value));
10359
10366
  setNotifPrefs(updated);
10360
10367
  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
10368
  window.mainApi.notifications.setPreferences(widgetUuid, _defineProperty({}, typeKey, value));
@@ -10397,6 +10404,366 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
10397
10404
  });
10398
10405
  };
10399
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; }
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
+ 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
+ var DAYS = [{
10413
+ key: "mon",
10414
+ label: "Mon"
10415
+ }, {
10416
+ key: "tue",
10417
+ label: "Tue"
10418
+ }, {
10419
+ key: "wed",
10420
+ label: "Wed"
10421
+ }, {
10422
+ key: "thu",
10423
+ label: "Thu"
10424
+ }, {
10425
+ key: "fri",
10426
+ label: "Fri"
10427
+ }, {
10428
+ key: "sat",
10429
+ label: "Sat"
10430
+ }, {
10431
+ key: "sun",
10432
+ label: "Sun"
10433
+ }];
10434
+ var INTERVAL_UNITS = [{
10435
+ value: "seconds",
10436
+ displayName: "Seconds"
10437
+ }, {
10438
+ value: "minutes",
10439
+ displayName: "Minutes"
10440
+ }, {
10441
+ value: "hours",
10442
+ displayName: "Hours"
10443
+ }];
10444
+ function intervalToMs(value, unit) {
10445
+ var num = parseInt(value, 10);
10446
+ if (isNaN(num) || num <= 0) return null;
10447
+ switch (unit) {
10448
+ case "seconds":
10449
+ return num * 1000;
10450
+ case "minutes":
10451
+ return num * 60 * 1000;
10452
+ case "hours":
10453
+ return num * 60 * 60 * 1000;
10454
+ default:
10455
+ return num * 60 * 1000;
10456
+ }
10457
+ }
10458
+ function msToInterval(ms) {
10459
+ if (!ms) return {
10460
+ value: 5,
10461
+ unit: "minutes"
10462
+ };
10463
+ if (ms >= 3600000 && ms % 3600000 === 0) return {
10464
+ value: ms / 3600000,
10465
+ unit: "hours"
10466
+ };
10467
+ if (ms >= 60000 && ms % 60000 === 0) return {
10468
+ value: ms / 60000,
10469
+ unit: "minutes"
10470
+ };
10471
+ return {
10472
+ value: ms / 1000,
10473
+ unit: "seconds"
10474
+ };
10475
+ }
10476
+ function TaskScheduleEditor(_ref) {
10477
+ var taskDef = _ref.taskDef,
10478
+ taskState = _ref.taskState,
10479
+ widgetId = _ref.widgetId,
10480
+ widgetName = _ref.widgetName,
10481
+ workspaceId = _ref.workspaceId;
10482
+ var _useState = useState((taskState === null || taskState === void 0 ? void 0 : taskState.enabled) || false),
10483
+ _useState2 = _slicedToArray(_useState, 2),
10484
+ enabled = _useState2[0],
10485
+ setEnabled = _useState2[1];
10486
+ var _useState3 = useState((taskState === null || taskState === void 0 ? void 0 : taskState.scheduleType) || "interval"),
10487
+ _useState4 = _slicedToArray(_useState3, 2),
10488
+ scheduleType = _useState4[0],
10489
+ setScheduleType = _useState4[1];
10490
+ var initialInterval = msToInterval(taskState === null || taskState === void 0 ? void 0 : taskState.intervalMs);
10491
+ var _useState5 = useState(initialInterval.value),
10492
+ _useState6 = _slicedToArray(_useState5, 2),
10493
+ intervalValue = _useState6[0],
10494
+ setIntervalValue = _useState6[1];
10495
+ var _useState7 = useState(initialInterval.unit),
10496
+ _useState8 = _slicedToArray(_useState7, 2),
10497
+ intervalUnit = _useState8[0],
10498
+ setIntervalUnit = _useState8[1];
10499
+ var _useState9 = useState((taskState === null || taskState === void 0 ? void 0 : taskState.days) || ["every"]),
10500
+ _useState0 = _slicedToArray(_useState9, 2),
10501
+ days = _useState0[0],
10502
+ setDays = _useState0[1];
10503
+ var _useState1 = useState((taskState === null || taskState === void 0 ? void 0 : taskState.time) || "09:00"),
10504
+ _useState10 = _slicedToArray(_useState1, 2),
10505
+ time = _useState10[0],
10506
+ setTime = _useState10[1];
10507
+ var hasSchedule = !!taskState;
10508
+ function saveTask() {
10509
+ var _window$mainApi;
10510
+ var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
10511
+ if (!((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && (_window$mainApi = _window$mainApi.scheduler) !== null && _window$mainApi !== void 0 && _window$mainApi.registerTask)) return;
10512
+ var payload = _objectSpread$v({
10513
+ widgetId: widgetId,
10514
+ widgetName: widgetName,
10515
+ workspaceId: workspaceId || "",
10516
+ taskKey: taskDef.key,
10517
+ handler: taskDef.handler,
10518
+ displayName: taskDef.displayName,
10519
+ scheduleType: scheduleType,
10520
+ intervalMs: intervalToMs(intervalValue, intervalUnit),
10521
+ days: days,
10522
+ time: time,
10523
+ enabled: enabled
10524
+ }, overrides);
10525
+ window.mainApi.scheduler.registerTask(payload);
10526
+ }
10527
+ function handleToggle(value) {
10528
+ setEnabled(value);
10529
+ if (!hasSchedule && value) {
10530
+ // First enable — register with default schedule
10531
+ saveTask({
10532
+ enabled: true
10533
+ });
10534
+ } else if (hasSchedule) {
10535
+ var taskId = "".concat(widgetId, ":").concat(taskDef.key);
10536
+ if (value) {
10537
+ var _window$mainApi2;
10538
+ (_window$mainApi2 = window.mainApi) === null || _window$mainApi2 === void 0 || (_window$mainApi2 = _window$mainApi2.scheduler) === null || _window$mainApi2 === void 0 || _window$mainApi2.enableTask(taskId);
10539
+ } else {
10540
+ var _window$mainApi3;
10541
+ (_window$mainApi3 = window.mainApi) === null || _window$mainApi3 === void 0 || (_window$mainApi3 = _window$mainApi3.scheduler) === null || _window$mainApi3 === void 0 || _window$mainApi3.disableTask(taskId);
10542
+ }
10543
+ }
10544
+ }
10545
+ function handleScheduleTypeChange(type) {
10546
+ setScheduleType(type);
10547
+ saveTask({
10548
+ scheduleType: type,
10549
+ enabled: true
10550
+ });
10551
+ if (!enabled) setEnabled(true);
10552
+ }
10553
+ function handleIntervalChange(val, unit) {
10554
+ setIntervalValue(val);
10555
+ if (unit) setIntervalUnit(unit);
10556
+ var ms = intervalToMs(val, unit || intervalUnit);
10557
+ if (ms) {
10558
+ saveTask({
10559
+ scheduleType: "interval",
10560
+ intervalMs: ms,
10561
+ enabled: true
10562
+ });
10563
+ if (!enabled) setEnabled(true);
10564
+ }
10565
+ }
10566
+ function handleDayToggle(dayKey) {
10567
+ var newDays;
10568
+ if (dayKey === "every") {
10569
+ newDays = days.includes("every") ? [] : ["every"];
10570
+ } else {
10571
+ // Remove "every" if it's there, toggle the specific day
10572
+ var filtered = days.filter(function (d) {
10573
+ return d !== "every";
10574
+ });
10575
+ if (filtered.includes(dayKey)) {
10576
+ newDays = filtered.filter(function (d) {
10577
+ return d !== dayKey;
10578
+ });
10579
+ } else {
10580
+ newDays = [].concat(_toConsumableArray(filtered), [dayKey]);
10581
+ }
10582
+ if (newDays.length === 0) newDays = ["every"];
10583
+ }
10584
+ setDays(newDays);
10585
+ saveTask({
10586
+ scheduleType: "dayTime",
10587
+ days: newDays,
10588
+ time: time,
10589
+ enabled: true
10590
+ });
10591
+ if (!enabled) setEnabled(true);
10592
+ }
10593
+ function handleTimeChange(newTime) {
10594
+ setTime(newTime);
10595
+ saveTask({
10596
+ scheduleType: "dayTime",
10597
+ days: days,
10598
+ time: newTime,
10599
+ enabled: true
10600
+ });
10601
+ if (!enabled) setEnabled(true);
10602
+ }
10603
+ return /*#__PURE__*/jsxs("div", {
10604
+ className: "border border-white/10 rounded-lg p-4 space-y-3",
10605
+ children: [/*#__PURE__*/jsxs("div", {
10606
+ className: "flex flex-row items-center justify-between",
10607
+ children: [/*#__PURE__*/jsxs("div", {
10608
+ className: "flex flex-col",
10609
+ children: [/*#__PURE__*/jsx("span", {
10610
+ className: "text-sm font-medium",
10611
+ children: taskDef.displayName
10612
+ }), taskDef.description && /*#__PURE__*/jsx("span", {
10613
+ className: "text-xs opacity-50",
10614
+ children: taskDef.description
10615
+ })]
10616
+ }), /*#__PURE__*/jsx(Switch, {
10617
+ checked: enabled,
10618
+ onChange: handleToggle
10619
+ })]
10620
+ }), enabled && /*#__PURE__*/jsxs("div", {
10621
+ className: "space-y-3 pt-1",
10622
+ children: [/*#__PURE__*/jsxs("div", {
10623
+ className: "flex flex-row space-x-4",
10624
+ children: [/*#__PURE__*/jsxs("label", {
10625
+ className: "flex items-center space-x-2 cursor-pointer text-sm",
10626
+ children: [/*#__PURE__*/jsx("input", {
10627
+ type: "radio",
10628
+ name: "schedule-type-".concat(taskDef.key),
10629
+ checked: scheduleType === "interval",
10630
+ onChange: function onChange() {
10631
+ return handleScheduleTypeChange("interval");
10632
+ },
10633
+ className: "accent-blue-500"
10634
+ }), /*#__PURE__*/jsx("span", {
10635
+ children: "Interval"
10636
+ })]
10637
+ }), /*#__PURE__*/jsxs("label", {
10638
+ className: "flex items-center space-x-2 cursor-pointer text-sm",
10639
+ children: [/*#__PURE__*/jsx("input", {
10640
+ type: "radio",
10641
+ name: "schedule-type-".concat(taskDef.key),
10642
+ checked: scheduleType === "dayTime",
10643
+ onChange: function onChange() {
10644
+ return handleScheduleTypeChange("dayTime");
10645
+ },
10646
+ className: "accent-blue-500"
10647
+ }), /*#__PURE__*/jsx("span", {
10648
+ children: "Day & Time"
10649
+ })]
10650
+ })]
10651
+ }), scheduleType === "interval" && /*#__PURE__*/jsxs("div", {
10652
+ className: "flex flex-row items-end space-x-2",
10653
+ children: [/*#__PURE__*/jsx(InputText, {
10654
+ label: "Every",
10655
+ type: "number",
10656
+ value: String(intervalValue),
10657
+ onChange: function onChange(e) {
10658
+ return handleIntervalChange(e.target.value, intervalUnit);
10659
+ },
10660
+ className: "w-24",
10661
+ min: "1"
10662
+ }), /*#__PURE__*/jsx(SelectInput, {
10663
+ value: intervalUnit,
10664
+ onChange: function onChange(val) {
10665
+ return handleIntervalChange(intervalValue, val);
10666
+ },
10667
+ options: INTERVAL_UNITS,
10668
+ className: "w-32"
10669
+ })]
10670
+ }), scheduleType === "dayTime" && /*#__PURE__*/jsxs("div", {
10671
+ className: "space-y-3",
10672
+ children: [/*#__PURE__*/jsxs("div", {
10673
+ className: "flex flex-col space-y-2",
10674
+ children: [/*#__PURE__*/jsx("span", {
10675
+ className: "text-xs opacity-70",
10676
+ children: "Days"
10677
+ }), /*#__PURE__*/jsxs("div", {
10678
+ className: "flex flex-row flex-wrap gap-2",
10679
+ children: [DAYS.map(function (day) {
10680
+ var isSelected = days.includes(day.key) || days.includes("every");
10681
+ return /*#__PURE__*/jsx("button", {
10682
+ onClick: function onClick() {
10683
+ return handleDayToggle(day.key);
10684
+ },
10685
+ 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"),
10686
+ children: day.label
10687
+ }, day.key);
10688
+ }), /*#__PURE__*/jsx("button", {
10689
+ onClick: function onClick() {
10690
+ return handleDayToggle("every");
10691
+ },
10692
+ 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"),
10693
+ children: "Every day"
10694
+ })]
10695
+ })]
10696
+ }), /*#__PURE__*/jsx(InputText, {
10697
+ label: "Time",
10698
+ type: "time",
10699
+ value: time,
10700
+ onChange: function onChange(e) {
10701
+ return handleTimeChange(e.target.value);
10702
+ },
10703
+ className: "w-36"
10704
+ })]
10705
+ }), (taskState === null || taskState === void 0 ? void 0 : taskState.lastFiredAt) && /*#__PURE__*/jsxs("div", {
10706
+ className: "text-xs opacity-40",
10707
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
10708
+ icon: "clock",
10709
+ className: "h-3 w-3 mr-1"
10710
+ }), "Last fired: ", new Date(taskState.lastFiredAt).toLocaleString(), taskState.fireCount > 0 && " (".concat(taskState.fireCount, " total)")]
10711
+ })]
10712
+ })]
10713
+ });
10714
+ }
10715
+ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
10716
+ var item = _ref2.item,
10717
+ workspace = _ref2.workspace;
10718
+ _ref2.onUpdate;
10719
+ var widgetConfig = item ? ComponentManager.config(item.component, item) : null;
10720
+ var scheduledTaskDefs = (widgetConfig === null || widgetConfig === void 0 ? void 0 : widgetConfig.scheduledTasks) || [];
10721
+ var widgetUuid = (item === null || item === void 0 ? void 0 : item.uuid) || (item === null || item === void 0 ? void 0 : item.uuidString);
10722
+ var widgetName = item === null || item === void 0 ? void 0 : item.component;
10723
+ var workspaceId = workspace === null || workspace === void 0 ? void 0 : workspace.id;
10724
+ var _useState11 = useState({}),
10725
+ _useState12 = _slicedToArray(_useState11, 2),
10726
+ taskStates = _useState12[0],
10727
+ setTaskStates = _useState12[1];
10728
+ useEffect(function () {
10729
+ var _window$mainApi4;
10730
+ 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) {
10731
+ window.mainApi.scheduler.getTasks(widgetUuid).then(function (tasks) {
10732
+ var stateMap = {};
10733
+ var _iterator = _createForOfIteratorHelper$b(tasks || []),
10734
+ _step;
10735
+ try {
10736
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
10737
+ var task = _step.value;
10738
+ stateMap[task.taskKey] = task;
10739
+ }
10740
+ } catch (err) {
10741
+ _iterator.e(err);
10742
+ } finally {
10743
+ _iterator.f();
10744
+ }
10745
+ setTaskStates(stateMap);
10746
+ });
10747
+ }
10748
+ }, [widgetUuid, scheduledTaskDefs.length]);
10749
+ if (!item || scheduledTaskDefs.length === 0) return null;
10750
+ return /*#__PURE__*/jsxs("div", {
10751
+ className: "flex flex-col flex-1 min-h-0 overflow-y-auto p-6 space-y-4",
10752
+ children: [/*#__PURE__*/jsx(SubHeading3, {
10753
+ title: "Schedule",
10754
+ padding: false
10755
+ }), scheduledTaskDefs.map(function (taskDef) {
10756
+ return /*#__PURE__*/jsx(TaskScheduleEditor, {
10757
+ taskDef: taskDef,
10758
+ taskState: taskStates[taskDef.key] || null,
10759
+ widgetId: widgetUuid,
10760
+ widgetName: widgetName,
10761
+ workspaceId: workspaceId
10762
+ }, taskDef.key);
10763
+ })]
10764
+ });
10765
+ };
10766
+
10400
10767
  var PanelCode = function PanelCode(_ref) {
10401
10768
  var workspace = _ref.workspace,
10402
10769
  onUpdate = _ref.onUpdate,
@@ -10730,9 +11097,10 @@ var PanelEditItemHandlers = function PanelEditItemHandlers(_ref) {
10730
11097
  };
10731
11098
 
10732
11099
  var getSections = function getSections(item) {
10733
- var _widgetConfig$notific;
11100
+ var _widgetConfig$notific, _widgetConfig$schedul;
10734
11101
  var widgetConfig = item ? ComponentManager.config(item.component, item) : null;
10735
11102
  var hasNotifications = (widgetConfig === null || widgetConfig === void 0 || (_widgetConfig$notific = widgetConfig.notifications) === null || _widgetConfig$notific === void 0 ? void 0 : _widgetConfig$notific.length) > 0;
11103
+ var hasScheduledTasks = (widgetConfig === null || widgetConfig === void 0 || (_widgetConfig$schedul = widgetConfig.scheduledTasks) === null || _widgetConfig$schedul === void 0 ? void 0 : _widgetConfig$schedul.length) > 0;
10736
11104
  return [{
10737
11105
  key: "edit",
10738
11106
  label: "Settings",
@@ -10745,6 +11113,10 @@ var getSections = function getSections(item) {
10745
11113
  key: "notifications",
10746
11114
  label: "Notifications",
10747
11115
  icon: "bell"
11116
+ }] : []), _toConsumableArray(hasScheduledTasks ? [{
11117
+ key: "schedule",
11118
+ label: "Schedule",
11119
+ icon: "clock"
10748
11120
  }] : []), _toConsumableArray((item === null || item === void 0 ? void 0 : item.workspace) !== "layout" ? [{
10749
11121
  key: "handlers",
10750
11122
  label: "Listeners",
@@ -10863,6 +11235,10 @@ var LayoutBuilderConfigModal = function LayoutBuilderConfigModal(_ref) {
10863
11235
  item: itemSelected,
10864
11236
  onUpdate: handleEditChange,
10865
11237
  workspace: workspaceSelected
11238
+ }), activeSection === "schedule" && /*#__PURE__*/jsx(PanelEditItemSchedule, {
11239
+ item: itemSelected,
11240
+ onUpdate: handleEditChange,
11241
+ workspace: workspaceSelected
10866
11242
  }), activeSection === "handlers" && /*#__PURE__*/jsx(PanelEditItemHandlers, {
10867
11243
  item: itemSelected,
10868
11244
  onUpdate: handleEditChange,
@@ -13189,9 +13565,9 @@ var getUserConfigurableProviders = function getUserConfigurableProviders(provide
13189
13565
  });
13190
13566
  };
13191
13567
 
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; }
13568
+ 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; } } }; }
13569
+ 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; } }
13570
+ 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
13571
  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
13572
  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
13573
  var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
@@ -13458,11 +13834,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
13458
13834
 
13459
13835
  // Flatten all widgets from all packages for the widget list
13460
13836
  flatWidgets = [];
13461
- _iterator = _createForOfIteratorHelper$9(result.packages || []);
13837
+ _iterator = _createForOfIteratorHelper$a(result.packages || []);
13462
13838
  try {
13463
13839
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
13464
13840
  pkg = _step.value;
13465
- _iterator2 = _createForOfIteratorHelper$9(pkg.widgets || []);
13841
+ _iterator2 = _createForOfIteratorHelper$a(pkg.widgets || []);
13466
13842
  try {
13467
13843
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
13468
13844
  widget = _step2.value;
@@ -15018,9 +15394,9 @@ var ProviderBadge = function ProviderBadge(_ref) {
15018
15394
  });
15019
15395
  };
15020
15396
 
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; }
15397
+ 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; } } }; }
15398
+ 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; } }
15399
+ 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
15400
  var WidgetCardHeader = function WidgetCardHeader(_ref) {
15025
15401
  var item = _ref.item,
15026
15402
  widget = _ref.widget,
@@ -15064,7 +15440,7 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
15064
15440
  var el = headerRef.current;
15065
15441
  if (!el) return;
15066
15442
  var observer = new ResizeObserver(function (entries) {
15067
- var _iterator = _createForOfIteratorHelper$8(entries),
15443
+ var _iterator = _createForOfIteratorHelper$9(entries),
15068
15444
  _step;
15069
15445
  try {
15070
15446
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -19856,9 +20232,9 @@ var ExternalWidget = function ExternalWidget(_ref) {
19856
20232
  var GRID_CELL_WIDGET_TYPE = "grid-cell-widget";
19857
20233
  var SIDEBAR_WIDGET_TYPE = "sidebar-widget";
19858
20234
 
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; }
20235
+ 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; } } }; }
20236
+ 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; } }
20237
+ 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
20238
  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
20239
  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
20240
  var DraggableDroppableCellBody = function DraggableDroppableCellBody(_ref) {
@@ -20422,7 +20798,7 @@ var LayoutGridContainer = /*#__PURE__*/memo(function (_ref3) {
20422
20798
  return selectable["delete"](cn);
20423
20799
  });
20424
20800
  var resolved = new Set();
20425
- var _iterator = _createForOfIteratorHelper$7(selectable),
20801
+ var _iterator = _createForOfIteratorHelper$8(selectable),
20426
20802
  _step;
20427
20803
  try {
20428
20804
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -22562,9 +22938,9 @@ function isWidgetResolvable(componentKey) {
22562
22938
 
22563
22939
  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
22940
  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; }
22941
+ 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; } } }; }
22942
+ 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; } }
22943
+ 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
22944
  /**
22569
22945
  * The model for all layout components used primarily in the renderLayout method
22570
22946
  * @param {Object} layoutItem an object containing various attributes of the layout item
@@ -22576,7 +22952,7 @@ function _arrayLikeToArray$6(r, a) { (null == a || a > r.length) && (a = r.lengt
22576
22952
  function sortObjectByKeys(obj) {
22577
22953
  var sortedKeys = Object.keys(obj).sort();
22578
22954
  var sortedObj = {};
22579
- var _iterator = _createForOfIteratorHelper$6(sortedKeys),
22955
+ var _iterator = _createForOfIteratorHelper$7(sortedKeys),
22580
22956
  _step;
22581
22957
  try {
22582
22958
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -23225,6 +23601,13 @@ var ComponentConfigModel = function ComponentConfigModel() {
23225
23601
  * Each entry: { key, displayName, description, defaultEnabled }
23226
23602
  */
23227
23603
  obj.notifications = "notifications" in obj ? obj["notifications"] : [];
23604
+
23605
+ /**
23606
+ * scheduledTasks
23607
+ * Scheduled task handlers this widget exposes.
23608
+ * Each entry: { key, handler, displayName, description }
23609
+ */
23610
+ obj.scheduledTasks = "scheduledTasks" in obj ? obj["scheduledTasks"] : [];
23228
23611
  return obj;
23229
23612
  };
23230
23613
 
@@ -25834,9 +26217,9 @@ var useDashboard = function useDashboard() {
25834
26217
  });
25835
26218
  };
25836
26219
 
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; }
26220
+ 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; } } }; }
26221
+ 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; } }
26222
+ 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
26223
 
25841
26224
  /**
25842
26225
  * useWidgetProviders Hook
@@ -25887,7 +26270,7 @@ var useWidgetProviders = function useWidgetProviders() {
25887
26270
  // 1. Widget-level: stored directly on the layout item by handleSelectProvider
25888
26271
  // 2. Workspace-level: stored as workspace.selectedProviders[widgetId][providerType]
25889
26272
  var providers = {};
25890
- var _iterator = _createForOfIteratorHelper$5(providerDeclarations),
26273
+ var _iterator = _createForOfIteratorHelper$6(providerDeclarations),
25891
26274
  _step;
25892
26275
  try {
25893
26276
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -26622,6 +27005,146 @@ var useNotifications = function useNotifications() {
26622
27005
  };
26623
27006
  };
26624
27007
 
27008
+ 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; } } }; }
27009
+ 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; } }
27010
+ 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; }
27011
+
27012
+ /**
27013
+ * useScheduler Hook
27014
+ *
27015
+ * Provides scheduled task functionality for widgets.
27016
+ * The widget provides handler functions keyed by the task handler names
27017
+ * declared in the widget's .dash.js config (scheduledTasks[].handler).
27018
+ *
27019
+ * Tasks are registered/configured via the settings panel (PanelEditItemSchedule).
27020
+ * This hook listens for task-fired events and calls the matching handler.
27021
+ *
27022
+ * @param {Object} handlers - { [handlerName]: async () => void }
27023
+ * @returns {Object}
27024
+ * - tasks: TaskEntry[] — current schedule state
27025
+ * - lastFire: { taskId, taskKey, firedAt } | null — latest fire event
27026
+ * - pendingResults: fires that happened while widget was unmounted
27027
+ */
27028
+ var useScheduler = function useScheduler() {
27029
+ var _workspaceContext$wor;
27030
+ var handlers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
27031
+ var widgetContext = useContext(WidgetContext);
27032
+ var workspaceContext = useContext(WorkspaceContext);
27033
+ if (!widgetContext) {
27034
+ throw new Error("useScheduler must be used within a Widget component. " + "Make sure your component is rendered inside <Widget> and within a DashboardWrapper.");
27035
+ }
27036
+ var _ref = widgetContext.widgetData || {},
27037
+ componentName = _ref.componentName,
27038
+ uuid = _ref.uuid,
27039
+ scheduledTasks = _ref.scheduledTasks;
27040
+ var widgetId = uuid;
27041
+ workspaceContext === null || workspaceContext === void 0 || (_workspaceContext$wor = workspaceContext.workspaceData) === null || _workspaceContext$wor === void 0 ? void 0 : _workspaceContext$wor.id;
27042
+ var _useState = useState([]),
27043
+ _useState2 = _slicedToArray(_useState, 2),
27044
+ tasks = _useState2[0],
27045
+ setTasks = _useState2[1];
27046
+ var _useState3 = useState(null),
27047
+ _useState4 = _slicedToArray(_useState3, 2),
27048
+ lastFire = _useState4[0],
27049
+ setLastFire = _useState4[1];
27050
+ var _useState5 = useState([]),
27051
+ _useState6 = _slicedToArray(_useState5, 2),
27052
+ pendingResults = _useState6[0],
27053
+ setPendingResults = _useState6[1];
27054
+
27055
+ // Keep handlers in a ref so the event listener always has the latest
27056
+ var handlersRef = useRef(handlers);
27057
+ handlersRef.current = handlers;
27058
+
27059
+ // Validate handler keys against widget's declared scheduledTasks
27060
+ useEffect(function () {
27061
+ if (!scheduledTasks || scheduledTasks.length === 0) return;
27062
+ var declaredHandlers = scheduledTasks.map(function (t) {
27063
+ return t.handler;
27064
+ });
27065
+ for (var _i = 0, _Object$keys = Object.keys(handlers); _i < _Object$keys.length; _i++) {
27066
+ var key = _Object$keys[_i];
27067
+ if (!declaredHandlers.includes(key)) ;
27068
+ }
27069
+ // eslint-disable-next-line react-hooks/exhaustive-deps
27070
+ }, [componentName, scheduledTasks]);
27071
+
27072
+ // Load existing tasks and pending results on mount
27073
+ useEffect(function () {
27074
+ var _window$mainApi;
27075
+ if (!widgetId || !((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && _window$mainApi.scheduler)) return;
27076
+ window.mainApi.scheduler.getTasks(widgetId).then(function (existingTasks) {
27077
+ setTasks(existingTasks || []);
27078
+ });
27079
+ window.mainApi.scheduler.getPending(widgetId).then(function (pending) {
27080
+ if (pending && pending.length > 0) {
27081
+ setPendingResults(pending);
27082
+ // Call handlers for each pending result
27083
+ var _iterator = _createForOfIteratorHelper$5(pending),
27084
+ _step;
27085
+ try {
27086
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
27087
+ var result = _step.value;
27088
+ var handlerFn = handlersRef.current[result.taskKey];
27089
+ if (handlerFn) {
27090
+ try {
27091
+ handlerFn();
27092
+ } catch (err) {
27093
+ }
27094
+ }
27095
+ }
27096
+ } catch (err) {
27097
+ _iterator.e(err);
27098
+ } finally {
27099
+ _iterator.f();
27100
+ }
27101
+ }
27102
+ });
27103
+ }, [widgetId]);
27104
+
27105
+ // Subscribe to task-fired events
27106
+ useEffect(function () {
27107
+ var _window$mainApi2;
27108
+ 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;
27109
+ var removeListener = window.mainApi.scheduler.onTaskFired(function (data) {
27110
+ if (data.widgetId !== widgetId) return;
27111
+ setLastFire({
27112
+ taskId: data.taskId,
27113
+ taskKey: data.taskKey,
27114
+ firedAt: data.firedAt
27115
+ });
27116
+
27117
+ // Refresh tasks to get updated lastFiredAt / fireCount
27118
+ window.mainApi.scheduler.getTasks(widgetId).then(function (updated) {
27119
+ setTasks(updated || []);
27120
+ });
27121
+
27122
+ // Call the matching handler
27123
+ var handlerFn = handlersRef.current[data.taskKey];
27124
+ if (handlerFn) {
27125
+ try {
27126
+ handlerFn();
27127
+ } catch (err) {
27128
+ }
27129
+ }
27130
+ });
27131
+ return removeListener;
27132
+ }, [widgetId]);
27133
+ var refreshTasks = useCallback(function () {
27134
+ var _window$mainApi3;
27135
+ if (!widgetId || !((_window$mainApi3 = window.mainApi) !== null && _window$mainApi3 !== void 0 && _window$mainApi3.scheduler)) return;
27136
+ window.mainApi.scheduler.getTasks(widgetId).then(function (updated) {
27137
+ setTasks(updated || []);
27138
+ });
27139
+ }, [widgetId]);
27140
+ return {
27141
+ tasks: tasks,
27142
+ lastFire: lastFire,
27143
+ pendingResults: pendingResults,
27144
+ refreshTasks: refreshTasks
27145
+ };
27146
+ };
27147
+
26625
27148
  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
27149
  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
27150
  var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
@@ -45190,5 +45713,5 @@ var WorkspaceMenu = function WorkspaceMenu(_ref) {
45190
45713
 
45191
45714
  ComponentManager.registerContainerTypes(LayoutContainer, LayoutGridContainer);
45192
45715
 
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 };
45716
+ 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
45717
  //# sourceMappingURL=index.esm.js.map