@trops/dash-core 0.1.401 → 0.1.403

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
@@ -2,7 +2,7 @@ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
2
  import _typeof from '@babel/runtime/helpers/typeof';
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
4
  import * as DashReact from '@trops/dash-react';
5
- import { isObject, ThemeContext, deepCopy, MainSection, getUUID, getStylesForItem, themeObjects, Heading, SearchInput, ButtonIcon, SubHeading3, InputText, Button, FontAwesomeIcon, Tag, Modal, Paragraph, Sidebar, Panel, Stepper, Tag2, Tag3, Card2, Card3, 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, ButtonIcon3, DashPanel, colorNames, shades, themeVariants, Tabs3, DataList, Checkbox, StatCard, Card, Tabs, Accordion, Alert, Toast, ProgressBar, Toggle, Breadcrumbs, Tabs2, Accordion2, Alert2, Toast2, ProgressBar2, Toggle2, Breadcrumbs2, Accordion3, Alert3, Toast3, ProgressBar3, Toggle3, Breadcrumbs3, ThemeFromUrlPane, TextArea, Icon2, AlgoliaSearchBox, CommandPalette, useSidebar, EmptyState, Navbar, withRouter, Menu as Menu$1 } from '@trops/dash-react';
5
+ import { isObject, ThemeContext, deepCopy, MainSection, getUUID, getStylesForItem, themeObjects, Heading, SearchInput, ButtonIcon, SubHeading3, InputText, Button, FontAwesomeIcon, Tag, Modal, Paragraph, Sidebar, Panel, Stepper, Tag2, Tag3, Card2, Card3, Heading3, MenuItem3, FormLabel, SelectMenu, Switch, SelectInput, CodeEditorInline, SettingsModal, SubHeading2, tailwindHeightFractions, Menu3, Panel3, ButtonIcon2, DropdownPanel, MenuItem2, DragComponent, ConfirmationModal, DropComponent, getStyleName, capitalizeFirstLetter, colorTypes, getCSSStyleForClassname, Panel2, Heading2, SubHeading, Paragraph2, Paragraph3, Button2, Button3, MenuItem, ButtonIcon3, DashPanel, colorNames, shades, themeVariants, Tabs3, DataList, Checkbox, StatCard, Card, Tabs, Accordion, Alert, Toast, ProgressBar, Toggle, Breadcrumbs, Tabs2, Accordion2, Alert2, Toast2, ProgressBar2, Toggle2, Breadcrumbs2, Accordion3, Alert3, Toast3, ProgressBar3, Toggle3, Breadcrumbs3, ThemeFromUrlPane, TextArea, Icon2, AlgoliaSearchBox, CommandPalette, useSidebar, EmptyState, Navbar, withRouter, Menu as Menu$1 } from '@trops/dash-react';
6
6
  export * from '@trops/dash-react';
7
7
  export { ThemeContext } from '@trops/dash-react';
8
8
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
@@ -32,8 +32,8 @@ import { InstantSearch, Hits } from 'react-instantsearch-hooks-web';
32
32
  import { Link } from 'react-router-dom';
33
33
  import { marked } from 'marked';
34
34
 
35
- 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; }
36
- 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; }
35
+ 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; }
36
+ 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; }
37
37
  var event = {
38
38
  list: new Map(),
39
39
  // Map(1) { '<widget-UUID>' => { 'CustomSearchbar[10].searchQueryChanged': [] } }
@@ -95,7 +95,7 @@ var event = {
95
95
  uuid: subscriber["uuid"]
96
96
  };
97
97
  if ("action" in subscriber && subscriber.action !== undefined) {
98
- subscriber["action"](_objectSpread$W({}, objectToSend));
98
+ subscriber["action"](_objectSpread$X({}, objectToSend));
99
99
  }
100
100
  });
101
101
  }
@@ -2873,8 +2873,8 @@ var DashboardWrapper = function DashboardWrapper(_ref) {
2873
2873
  });
2874
2874
  };
2875
2875
 
2876
- 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; }
2877
- 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; }
2876
+ 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; }
2877
+ 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; }
2878
2878
  function ThemeBroadcast(_ref) {
2879
2879
  var ctx = _ref.ctx;
2880
2880
  useEffect(function () {
@@ -2907,7 +2907,7 @@ var DashboardThemeProvider = function DashboardThemeProvider(_ref2) {
2907
2907
  var dashboardTheme = themes[themeKey];
2908
2908
  var themeValue = dashboardTheme ? dashboardTheme[themeVariant] || null : null;
2909
2909
  if (!themeValue) return null;
2910
- return _objectSpread$V(_objectSpread$V({}, parentContext), {}, {
2910
+ return _objectSpread$W(_objectSpread$W({}, parentContext), {}, {
2911
2911
  currentTheme: themeValue,
2912
2912
  currentThemeKey: themeKey,
2913
2913
  theme: themeValue,
@@ -2934,8 +2934,8 @@ var DashboardThemeProvider = function DashboardThemeProvider(_ref2) {
2934
2934
  });
2935
2935
  };
2936
2936
 
2937
- function ownKeys$U(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; }
2938
- function _objectSpread$U(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$U(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$U(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2937
+ 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; }
2938
+ 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; }
2939
2939
  var AppThemeScope = function AppThemeScope(_ref) {
2940
2940
  var children = _ref.children;
2941
2941
  var ctx = useContext(ThemeContext);
@@ -2943,7 +2943,7 @@ var AppThemeScope = function AppThemeScope(_ref) {
2943
2943
  children: children
2944
2944
  });
2945
2945
  return /*#__PURE__*/jsx(ThemeContext.Provider, {
2946
- value: _objectSpread$U(_objectSpread$U({}, ctx), {}, {
2946
+ value: _objectSpread$V(_objectSpread$V({}, ctx), {}, {
2947
2947
  currentTheme: ctx.appTheme,
2948
2948
  currentThemeKey: ctx.appThemeKey,
2949
2949
  theme: ctx.appTheme,
@@ -3055,11 +3055,11 @@ var LayoutContainer = function LayoutContainer(_ref) {
3055
3055
  });
3056
3056
  };
3057
3057
 
3058
- function ownKeys$T(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; }
3059
- function _objectSpread$T(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$T(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$T(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3060
- function _createForOfIteratorHelper$t(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$t(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; } } }; }
3061
- function _unsupportedIterableToArray$t(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$t(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$t(r, a) : void 0; } }
3062
- function _arrayLikeToArray$t(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; }
3058
+ function ownKeys$U(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; }
3059
+ function _objectSpread$U(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$U(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$U(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3060
+ function _createForOfIteratorHelper$s(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$s(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; } } }; }
3061
+ function _unsupportedIterableToArray$s(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$s(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$s(r, a) : void 0; } }
3062
+ function _arrayLikeToArray$s(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; }
3063
3063
  /**
3064
3064
  * Layout template definitions for the dashboard template picker.
3065
3065
  *
@@ -3333,12 +3333,12 @@ function createLayoutFromTemplate(template) {
3333
3333
  cols: template.cols,
3334
3334
  gap: "gap-2"
3335
3335
  };
3336
- var _iterator = _createForOfIteratorHelper$t(template.cells),
3336
+ var _iterator = _createForOfIteratorHelper$s(template.cells),
3337
3337
  _step;
3338
3338
  try {
3339
3339
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
3340
3340
  var cell = _step.value;
3341
- grid[cell.key] = _objectSpread$T({
3341
+ grid[cell.key] = _objectSpread$U({
3342
3342
  component: null,
3343
3343
  hide: cell.hide || false
3344
3344
  }, cell.span ? {
@@ -4264,11 +4264,11 @@ var RegistryAuthModal = function RegistryAuthModal(_ref) {
4264
4264
  });
4265
4265
  };
4266
4266
 
4267
- function _createForOfIteratorHelper$s(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$s(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; } } }; }
4268
- function _unsupportedIterableToArray$s(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$s(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$s(r, a) : void 0; } }
4269
- function _arrayLikeToArray$s(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; }
4270
- 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; }
4271
- 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; }
4267
+ function _createForOfIteratorHelper$r(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$r(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; } } }; }
4268
+ function _unsupportedIterableToArray$r(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$r(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$r(r, a) : void 0; } }
4269
+ function _arrayLikeToArray$r(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; }
4270
+ function ownKeys$T(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; }
4271
+ function _objectSpread$T(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$T(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$T(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4272
4272
  var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
4273
4273
  var dashboardPackage = _ref.dashboardPackage,
4274
4274
  appId = _ref.appId,
@@ -4384,7 +4384,7 @@ var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
4384
4384
  setProgressWidgets(function (prev) {
4385
4385
  var next = _toConsumableArray(prev);
4386
4386
  if (data.index >= 0 && data.index < next.length) {
4387
- next[data.index] = _objectSpread$S(_objectSpread$S({}, next[data.index]), {}, {
4387
+ next[data.index] = _objectSpread$T(_objectSpread$T({}, next[data.index]), {}, {
4388
4388
  status: data.status,
4389
4389
  error: data.error || null
4390
4390
  });
@@ -4480,7 +4480,7 @@ var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
4480
4480
  var raw = preview === null || preview === void 0 ? void 0 : preview.compatibility;
4481
4481
  if (!raw) return raw;
4482
4482
  var cMap = ComponentManager.componentMap();
4483
- var augWidgets = _objectSpread$S({}, raw.widgets);
4483
+ var augWidgets = _objectSpread$T({}, raw.widgets);
4484
4484
  var fixedCount = 0;
4485
4485
  var _loop = function _loop() {
4486
4486
  var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
@@ -4507,7 +4507,7 @@ var RegistryDashboardDetail = function RegistryDashboardDetail(_ref) {
4507
4507
  toInstall = 0,
4508
4508
  unavailable = 0,
4509
4509
  hasUnavailableRequired = false;
4510
- var _iterator = _createForOfIteratorHelper$s(widgetDeps),
4510
+ var _iterator = _createForOfIteratorHelper$r(widgetDeps),
4511
4511
  _step;
4512
4512
  try {
4513
4513
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -5063,8 +5063,8 @@ var DiscoverDashboardsDetail = function DiscoverDashboardsDetail(_ref) {
5063
5063
  });
5064
5064
  };
5065
5065
 
5066
- function ownKeys$R(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; }
5067
- function _objectSpread$R(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$R(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$R(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5066
+ 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; }
5067
+ 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; }
5068
5068
  var LayoutManagerModal = function LayoutManagerModal(_ref) {
5069
5069
  var open = _ref.open,
5070
5070
  setIsOpen = _ref.setIsOpen,
@@ -5309,7 +5309,7 @@ var LayoutManagerModal = function LayoutManagerModal(_ref) {
5309
5309
  }
5310
5310
  return _context2.abrupt("return");
5311
5311
  case 6:
5312
- updatedWorkspace = _objectSpread$R(_objectSpread$R({}, importedWorkspace), {}, {
5312
+ updatedWorkspace = _objectSpread$S(_objectSpread$S({}, importedWorkspace), {}, {
5313
5313
  name: dashboardName.trim(),
5314
5314
  menuId: menuId,
5315
5315
  themeKey: selectedThemeKey
@@ -6282,9 +6282,9 @@ function cleanIpcError(message) {
6282
6282
  return match ? match[1] : message;
6283
6283
  }
6284
6284
 
6285
- function _createForOfIteratorHelper$r(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$r(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; } } }; }
6286
- function _unsupportedIterableToArray$r(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$r(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$r(r, a) : void 0; } }
6287
- function _arrayLikeToArray$r(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; }
6285
+ function _createForOfIteratorHelper$q(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$q(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; } } }; }
6286
+ function _unsupportedIterableToArray$q(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$q(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$q(r, a) : void 0; } }
6287
+ function _arrayLikeToArray$q(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; }
6288
6288
 
6289
6289
  /**
6290
6290
  * useRegistrySearch — shared hook for browsing and installing registry packages.
@@ -6398,13 +6398,13 @@ var useRegistrySearch = function useRegistrySearch() {
6398
6398
  return c.toLowerCase();
6399
6399
  }));
6400
6400
  widgets = [];
6401
- _iterator = _createForOfIteratorHelper$r(pkgs);
6401
+ _iterator = _createForOfIteratorHelper$q(pkgs);
6402
6402
  try {
6403
6403
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
6404
6404
  pkg = _step.value;
6405
6405
  // Compute missing APIs for the entire package
6406
6406
  allApiProviders = [];
6407
- _iterator2 = _createForOfIteratorHelper$r(pkg.providers || []);
6407
+ _iterator2 = _createForOfIteratorHelper$q(pkg.providers || []);
6408
6408
  try {
6409
6409
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
6410
6410
  p = _step2.value;
@@ -6417,11 +6417,11 @@ var useRegistrySearch = function useRegistrySearch() {
6417
6417
  } finally {
6418
6418
  _iterator2.f();
6419
6419
  }
6420
- _iterator3 = _createForOfIteratorHelper$r(pkg.widgets || []);
6420
+ _iterator3 = _createForOfIteratorHelper$q(pkg.widgets || []);
6421
6421
  try {
6422
6422
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
6423
6423
  w = _step3.value;
6424
- _iterator5 = _createForOfIteratorHelper$r(w.providers || []);
6424
+ _iterator5 = _createForOfIteratorHelper$q(w.providers || []);
6425
6425
  try {
6426
6426
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
6427
6427
  _p = _step5.value;
@@ -6443,7 +6443,7 @@ var useRegistrySearch = function useRegistrySearch() {
6443
6443
  missingApis = _toConsumableArray(new Set(allApiProviders)).filter(function (api) {
6444
6444
  return !capSet.has(api.toLowerCase());
6445
6445
  });
6446
- _iterator4 = _createForOfIteratorHelper$r(pkg.widgets || []);
6446
+ _iterator4 = _createForOfIteratorHelper$q(pkg.widgets || []);
6447
6447
  try {
6448
6448
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
6449
6449
  widget = _step4.value;
@@ -7064,11 +7064,11 @@ function applyFilters(items, filters, mode) {
7064
7064
  });
7065
7065
  }
7066
7066
 
7067
- function _createForOfIteratorHelper$q(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$q(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; } } }; }
7068
- function _unsupportedIterableToArray$q(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$q(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$q(r, a) : void 0; } }
7069
- function _arrayLikeToArray$q(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; }
7070
- function ownKeys$Q(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; }
7071
- function _objectSpread$Q(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$Q(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$Q(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7067
+ function _createForOfIteratorHelper$p(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$p(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; } } }; }
7068
+ function _unsupportedIterableToArray$p(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$p(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$p(r, a) : void 0; } }
7069
+ function _arrayLikeToArray$p(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; }
7070
+ function ownKeys$R(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; }
7071
+ function _objectSpread$R(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$R(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$R(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7072
7072
  var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
7073
7073
  var _state$selectedDashbo, _state$selectedDashbo2;
7074
7074
  var state = _ref.state,
@@ -7238,7 +7238,7 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
7238
7238
  _context2.next = 7;
7239
7239
  break;
7240
7240
  }
7241
- updatedWorkspace = _objectSpread$Q(_objectSpread$Q({}, installResult.workspace), {}, {
7241
+ updatedWorkspace = _objectSpread$R(_objectSpread$R({}, installResult.workspace), {}, {
7242
7242
  name: name.trim(),
7243
7243
  menuId: menuId || 1,
7244
7244
  themeKey: theme
@@ -7290,7 +7290,7 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
7290
7290
  installedNames = new Set(installedList.map(function (w) {
7291
7291
  return w.name;
7292
7292
  }));
7293
- _iterator = _createForOfIteratorHelper$q(state.selectedWidgets);
7293
+ _iterator = _createForOfIteratorHelper$p(state.selectedWidgets);
7294
7294
  _context2.prev = 13;
7295
7295
  _iterator.s();
7296
7296
  case 14:
@@ -7993,8 +7993,8 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
7993
7993
  });
7994
7994
  };
7995
7995
 
7996
- function ownKeys$P(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; }
7997
- function _objectSpread$P(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$P(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$P(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7996
+ function ownKeys$Q(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; }
7997
+ function _objectSpread$Q(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$Q(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$Q(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
7998
7998
  var TOTAL_STEPS = 2; // Steps 0-1: Discover, Customize
7999
7999
 
8000
8000
  var initialState = {
@@ -8020,20 +8020,20 @@ var initialState = {
8020
8020
  function wizardReducer(state, action) {
8021
8021
  switch (action.type) {
8022
8022
  case "SET_STEP":
8023
- return _objectSpread$P(_objectSpread$P({}, state), {}, {
8023
+ return _objectSpread$Q(_objectSpread$Q({}, state), {}, {
8024
8024
  step: action.payload
8025
8025
  });
8026
8026
  case "SET_FILTERS":
8027
- return _objectSpread$P(_objectSpread$P({}, state), {}, {
8028
- filters: _objectSpread$P(_objectSpread$P({}, state.filters), action.payload)
8027
+ return _objectSpread$Q(_objectSpread$Q({}, state), {}, {
8028
+ filters: _objectSpread$Q(_objectSpread$Q({}, state.filters), action.payload)
8029
8029
  });
8030
8030
  case "TOGGLE_FILTER_CATEGORY":
8031
8031
  {
8032
8032
  var categories = state.filters.categories.includes(action.payload) ? state.filters.categories.filter(function (c) {
8033
8033
  return c !== action.payload;
8034
8034
  }) : [].concat(_toConsumableArray(state.filters.categories), [action.payload]);
8035
- return _objectSpread$P(_objectSpread$P({}, state), {}, {
8036
- filters: _objectSpread$P(_objectSpread$P({}, state.filters), {}, {
8035
+ return _objectSpread$Q(_objectSpread$Q({}, state), {}, {
8036
+ filters: _objectSpread$Q(_objectSpread$Q({}, state.filters), {}, {
8037
8037
  categories: categories
8038
8038
  })
8039
8039
  });
@@ -8043,15 +8043,15 @@ function wizardReducer(state, action) {
8043
8043
  var providers = state.filters.providers.includes(action.payload) ? state.filters.providers.filter(function (p) {
8044
8044
  return p !== action.payload;
8045
8045
  }) : [].concat(_toConsumableArray(state.filters.providers), [action.payload]);
8046
- return _objectSpread$P(_objectSpread$P({}, state), {}, {
8047
- filters: _objectSpread$P(_objectSpread$P({}, state.filters), {}, {
8046
+ return _objectSpread$Q(_objectSpread$Q({}, state), {}, {
8047
+ filters: _objectSpread$Q(_objectSpread$Q({}, state.filters), {}, {
8048
8048
  providers: providers
8049
8049
  })
8050
8050
  });
8051
8051
  }
8052
8052
  case "SET_SEARCH_QUERY":
8053
- return _objectSpread$P(_objectSpread$P({}, state), {}, {
8054
- filters: _objectSpread$P(_objectSpread$P({}, state.filters), {}, {
8053
+ return _objectSpread$Q(_objectSpread$Q({}, state), {}, {
8054
+ filters: _objectSpread$Q(_objectSpread$Q({}, state.filters), {}, {
8055
8055
  query: action.payload
8056
8056
  })
8057
8057
  });
@@ -8061,7 +8061,7 @@ function wizardReducer(state, action) {
8061
8061
  var widgetOrder = action.payload.map(function (w) {
8062
8062
  return w.name || w.key;
8063
8063
  });
8064
- return _objectSpread$P(_objectSpread$P({}, state), {}, {
8064
+ return _objectSpread$Q(_objectSpread$Q({}, state), {}, {
8065
8065
  selectedWidgets: action.payload,
8066
8066
  layout: {
8067
8067
  templateKey: templateKey,
@@ -8081,7 +8081,7 @@ function wizardReducer(state, action) {
8081
8081
  var toggleWidgetOrder = selectedWidgets.map(function (w) {
8082
8082
  return w.name || w.key;
8083
8083
  });
8084
- return _objectSpread$P(_objectSpread$P({}, state), {}, {
8084
+ return _objectSpread$Q(_objectSpread$Q({}, state), {}, {
8085
8085
  selectedWidgets: selectedWidgets,
8086
8086
  layout: {
8087
8087
  templateKey: toggleTemplateKey,
@@ -8090,29 +8090,29 @@ function wizardReducer(state, action) {
8090
8090
  });
8091
8091
  }
8092
8092
  case "SET_SELECTED_DASHBOARD":
8093
- return _objectSpread$P(_objectSpread$P({}, state), {}, {
8093
+ return _objectSpread$Q(_objectSpread$Q({}, state), {}, {
8094
8094
  selectedDashboard: action.payload
8095
8095
  });
8096
8096
  case "SET_PATH":
8097
- return _objectSpread$P(_objectSpread$P({}, state), {}, {
8097
+ return _objectSpread$Q(_objectSpread$Q({}, state), {}, {
8098
8098
  path: action.payload
8099
8099
  });
8100
8100
  case "SET_LAYOUT":
8101
- return _objectSpread$P(_objectSpread$P({}, state), {}, {
8101
+ return _objectSpread$Q(_objectSpread$Q({}, state), {}, {
8102
8102
  layout: action.payload
8103
8103
  });
8104
8104
  case "REORDER_WIDGETS":
8105
- return _objectSpread$P(_objectSpread$P({}, state), {}, {
8106
- layout: _objectSpread$P(_objectSpread$P({}, state.layout), {}, {
8105
+ return _objectSpread$Q(_objectSpread$Q({}, state), {}, {
8106
+ layout: _objectSpread$Q(_objectSpread$Q({}, state.layout), {}, {
8107
8107
  widgetOrder: action.payload
8108
8108
  })
8109
8109
  });
8110
8110
  case "SET_CUSTOMIZATION":
8111
- return _objectSpread$P(_objectSpread$P({}, state), {}, {
8112
- customization: _objectSpread$P(_objectSpread$P({}, state.customization), action.payload)
8111
+ return _objectSpread$Q(_objectSpread$Q({}, state), {}, {
8112
+ customization: _objectSpread$Q(_objectSpread$Q({}, state.customization), action.payload)
8113
8113
  });
8114
8114
  case "RESET":
8115
- return _objectSpread$P({}, initialState);
8115
+ return _objectSpread$Q({}, initialState);
8116
8116
  default:
8117
8117
  return state;
8118
8118
  }
@@ -12764,8 +12764,8 @@ var deepEqual = function deepEqual(a, b, opts) {
12764
12764
 
12765
12765
  var deepEqual$1 = /*@__PURE__*/getDefaultExportFromCjs(deepEqual);
12766
12766
 
12767
- function ownKeys$O(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; }
12768
- function _objectSpread$O(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$O(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$O(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12767
+ function ownKeys$P(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; }
12768
+ function _objectSpread$P(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$P(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$P(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12769
12769
  var PanelEditItem = function PanelEditItem(_ref) {
12770
12770
  var _ComponentManager$get;
12771
12771
  var workspace = _ref.workspace,
@@ -12825,7 +12825,7 @@ var PanelEditItem = function PanelEditItem(_ref) {
12825
12825
  var uuid = newItem.uuid || newItem.uuidString;
12826
12826
  if (uuid) {
12827
12827
  workspaceTemp.selectedProviders = workspaceTemp.selectedProviders || {};
12828
- workspaceTemp.selectedProviders[uuid] = _objectSpread$O(_objectSpread$O({}, workspaceTemp.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
12828
+ workspaceTemp.selectedProviders[uuid] = _objectSpread$P(_objectSpread$P({}, workspaceTemp.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
12829
12829
  }
12830
12830
  onUpdate(newItem, workspaceTemp);
12831
12831
  forceUpdate();
@@ -12954,7 +12954,7 @@ var PanelEditItem = function PanelEditItem(_ref) {
12954
12954
  var _ref5 = _slicedToArray(_ref4, 2),
12955
12955
  name = _ref5[0],
12956
12956
  p = _ref5[1];
12957
- return _objectSpread$O({
12957
+ return _objectSpread$P({
12958
12958
  name: name
12959
12959
  }, p);
12960
12960
  });
@@ -12996,11 +12996,11 @@ var PanelEditItem = function PanelEditItem(_ref) {
12996
12996
  };
12997
12997
 
12998
12998
  var _excluded$6 = ["rows", "cols"];
12999
- function _createForOfIteratorHelper$p(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$p(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; } } }; }
13000
- function _unsupportedIterableToArray$p(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$p(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$p(r, a) : void 0; } }
13001
- function _arrayLikeToArray$p(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; }
13002
- function ownKeys$N(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; }
13003
- function _objectSpread$N(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$N(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$N(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12999
+ function _createForOfIteratorHelper$o(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$o(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; } } }; }
13000
+ function _unsupportedIterableToArray$o(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$o(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$o(r, a) : void 0; } }
13001
+ function _arrayLikeToArray$o(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; }
13002
+ function ownKeys$O(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; }
13003
+ function _objectSpread$O(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$O(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$O(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13004
13004
  var defaultGrid = {
13005
13005
  rows: 1,
13006
13006
  cols: 1,
@@ -13021,7 +13021,7 @@ function GridEditor(_ref) {
13021
13021
  setGrid = _useState2[1];
13022
13022
  var addRow = function addRow() {
13023
13023
  var newRow = grid.rows;
13024
- var newGrid = _objectSpread$N(_objectSpread$N({}, grid), {}, {
13024
+ var newGrid = _objectSpread$O(_objectSpread$O({}, grid), {}, {
13025
13025
  rows: grid.rows + 1
13026
13026
  });
13027
13027
  for (var col = 0; col < grid.cols; col++) {
@@ -13036,7 +13036,7 @@ function GridEditor(_ref) {
13036
13036
  };
13037
13037
  var addColumn = function addColumn() {
13038
13038
  var newCol = grid.cols;
13039
- var newGrid = _objectSpread$N(_objectSpread$N({}, grid), {}, {
13039
+ var newGrid = _objectSpread$O(_objectSpread$O({}, grid), {}, {
13040
13040
  cols: grid.cols + 1
13041
13041
  });
13042
13042
  for (var row = 0; row < grid.rows; row++) {
@@ -13069,8 +13069,8 @@ function GridEditor(_ref) {
13069
13069
  });
13070
13070
  }
13071
13071
  if (grid[nextKey]) {
13072
- var newGrid = _objectSpread$N({}, grid);
13073
- newGrid[currentKey] = _objectSpread$N(_objectSpread$N({}, newGrid[currentKey]), {}, {
13072
+ var newGrid = _objectSpread$O({}, grid);
13073
+ newGrid[currentKey] = _objectSpread$O(_objectSpread$O({}, newGrid[currentKey]), {}, {
13074
13074
  colSpan: newGrid[currentKey].colSpan + 1
13075
13075
  });
13076
13076
  delete newGrid[nextKey];
@@ -13083,8 +13083,8 @@ function GridEditor(_ref) {
13083
13083
  var currentKey = "".concat(row, ".").concat(col);
13084
13084
  var belowKey = "".concat(row + 1, ".").concat(col);
13085
13085
  if (grid[belowKey]) {
13086
- var newGrid = _objectSpread$N({}, grid);
13087
- newGrid[currentKey] = _objectSpread$N(_objectSpread$N({}, newGrid[currentKey]), {}, {
13086
+ var newGrid = _objectSpread$O({}, grid);
13087
+ newGrid[currentKey] = _objectSpread$O(_objectSpread$O({}, newGrid[currentKey]), {}, {
13088
13088
  rowSpan: newGrid[currentKey].rowSpan + 1
13089
13089
  });
13090
13090
  delete newGrid[belowKey];
@@ -13101,7 +13101,7 @@ function GridEditor(_ref) {
13101
13101
  var splitCell = function splitCell(row, col) {
13102
13102
  var key = "".concat(row, ".").concat(col);
13103
13103
  var cell = grid[key];
13104
- var newGrid = _objectSpread$N({}, grid);
13104
+ var newGrid = _objectSpread$O({}, grid);
13105
13105
 
13106
13106
  // we have to check the colspan, and since the colspan is greater than 1
13107
13107
  // Only handle horizontal split if colSpan > 1
@@ -13117,13 +13117,13 @@ function GridEditor(_ref) {
13117
13117
  var oldKey = "".concat(row, ".").concat(c);
13118
13118
  var newKey = "".concat(row, ".").concat(c + 1);
13119
13119
  if (newGrid[oldKey]) {
13120
- newGrid[newKey] = _objectSpread$N({}, newGrid[oldKey]);
13120
+ newGrid[newKey] = _objectSpread$O({}, newGrid[oldKey]);
13121
13121
  delete newGrid[oldKey];
13122
13122
  }
13123
13123
  }
13124
13124
 
13125
13125
  // Update the original cell's colSpan
13126
- newGrid[key] = _objectSpread$N(_objectSpread$N({}, cell), {}, {
13126
+ newGrid[key] = _objectSpread$O(_objectSpread$O({}, cell), {}, {
13127
13127
  colSpan: cell.colSpan - 1
13128
13128
  });
13129
13129
 
@@ -13135,7 +13135,7 @@ function GridEditor(_ref) {
13135
13135
  };
13136
13136
  }
13137
13137
  if (cell.rowSpan > 1) {
13138
- newGrid[key] = _objectSpread$N(_objectSpread$N({}, newGrid[key]), {}, {
13138
+ newGrid[key] = _objectSpread$O(_objectSpread$O({}, newGrid[key]), {}, {
13139
13139
  rowSpan: cell.rowSpan - 1
13140
13140
  });
13141
13141
  newGrid["".concat(row + 1, ".").concat(col)] = {
@@ -13151,7 +13151,7 @@ function GridEditor(_ref) {
13151
13151
  function sortObjectByKeys(obj) {
13152
13152
  var sortedKeys = Object.keys(obj).sort();
13153
13153
  var sortedObj = {};
13154
- var _iterator = _createForOfIteratorHelper$p(sortedKeys),
13154
+ var _iterator = _createForOfIteratorHelper$o(sortedKeys),
13155
13155
  _step;
13156
13156
  try {
13157
13157
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -13254,7 +13254,7 @@ function GridEditor(_ref) {
13254
13254
  var fromKey = "".concat(from.row, ".").concat(from.col);
13255
13255
  var toKey = "".concat(to.row, ".").concat(to.col);
13256
13256
  if (fromKey === toKey) return;
13257
- var newGrid = _objectSpread$N({}, grid);
13257
+ var newGrid = _objectSpread$O({}, grid);
13258
13258
 
13259
13259
  // Swap the cells
13260
13260
  var temp = newGrid[fromKey];
@@ -13280,7 +13280,7 @@ function GridEditor(_ref) {
13280
13280
  // console.log("Grid updated:", sequencedGrid);
13281
13281
  }
13282
13282
  function resetGridLayout() {
13283
- var newGrid = _objectSpread$N({}, defaultGrid);
13283
+ var newGrid = _objectSpread$O({}, defaultGrid);
13284
13284
  setGrid(newGrid);
13285
13285
  onUpdate(newGrid);
13286
13286
  }
@@ -13558,8 +13558,8 @@ var PanelEditItemGrid = function PanelEditItemGrid(_ref) {
13558
13558
  });
13559
13559
  };
13560
13560
 
13561
- function ownKeys$M(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; }
13562
- function _objectSpread$M(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$M(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$M(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13561
+ function ownKeys$N(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; }
13562
+ function _objectSpread$N(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$N(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$N(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13563
13563
  var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
13564
13564
  var item = _ref.item;
13565
13565
  _ref.workspace;
@@ -13582,7 +13582,7 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
13582
13582
  }, [widgetUuid, notificationDefs.length]);
13583
13583
  function handleNotifToggle(typeKey, value) {
13584
13584
  var _window$mainApi2;
13585
- var updated = _objectSpread$M(_objectSpread$M({}, notifPrefs), {}, _defineProperty({}, typeKey, value));
13585
+ var updated = _objectSpread$N(_objectSpread$N({}, notifPrefs), {}, _defineProperty({}, typeKey, value));
13586
13586
  setNotifPrefs(updated);
13587
13587
  if ((_window$mainApi2 = window.mainApi) !== null && _window$mainApi2 !== void 0 && (_window$mainApi2 = _window$mainApi2.notifications) !== null && _window$mainApi2 !== void 0 && _window$mainApi2.setPreferences && widgetUuid) {
13588
13588
  window.mainApi.notifications.setPreferences(widgetUuid, _defineProperty({}, typeKey, value));
@@ -13624,11 +13624,11 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
13624
13624
  });
13625
13625
  };
13626
13626
 
13627
- function _createForOfIteratorHelper$o(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$o(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; } } }; }
13628
- function _unsupportedIterableToArray$o(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$o(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$o(r, a) : void 0; } }
13629
- function _arrayLikeToArray$o(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; }
13630
- 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; }
13631
- 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; }
13627
+ function _createForOfIteratorHelper$n(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$n(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; } } }; }
13628
+ function _unsupportedIterableToArray$n(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$n(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$n(r, a) : void 0; } }
13629
+ function _arrayLikeToArray$n(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; }
13630
+ function ownKeys$M(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; }
13631
+ function _objectSpread$M(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$M(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$M(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13632
13632
  var DAYS = [{
13633
13633
  key: "mon",
13634
13634
  label: "Mon"
@@ -13729,7 +13729,7 @@ function TaskScheduleEditor(_ref) {
13729
13729
  var _window$mainApi;
13730
13730
  var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
13731
13731
  if (!((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && (_window$mainApi = _window$mainApi.scheduler) !== null && _window$mainApi !== void 0 && _window$mainApi.registerTask)) return;
13732
- var payload = _objectSpread$L({
13732
+ var payload = _objectSpread$M({
13733
13733
  widgetId: widgetId,
13734
13734
  widgetName: widgetName,
13735
13735
  workspaceId: workspaceId || "",
@@ -13955,7 +13955,7 @@ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
13955
13955
  setIsLoading(true);
13956
13956
  window.mainApi.scheduler.getTasks(widgetUuid).then(function (tasks) {
13957
13957
  var stateMap = {};
13958
- var _iterator = _createForOfIteratorHelper$o(tasks || []),
13958
+ var _iterator = _createForOfIteratorHelper$n(tasks || []),
13959
13959
  _step;
13960
13960
  try {
13961
13961
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -14350,11 +14350,147 @@ var PanelEditItemHandlers = function PanelEditItemHandlers(_ref) {
14350
14350
  });
14351
14351
  };
14352
14352
 
14353
+ var getUserConfigurableProviders = function getUserConfigurableProviders(providers) {
14354
+ if (!providers) return [];
14355
+ return providers.filter(function (p) {
14356
+ return p.providerClass !== "api";
14357
+ });
14358
+ };
14359
+
14360
+ 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; }
14361
+ 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; }
14362
+ var PanelEditItemProviders = function PanelEditItemProviders(_ref) {
14363
+ var workspace = _ref.workspace,
14364
+ onUpdate = _ref.onUpdate,
14365
+ _ref$item = _ref.item,
14366
+ item = _ref$item === void 0 ? null : _ref$item;
14367
+ var appCtx = useContext(AppContext);
14368
+ var appProviders = (appCtx === null || appCtx === void 0 ? void 0 : appCtx.providers) || {};
14369
+ var _useState = useState(item),
14370
+ _useState2 = _slicedToArray(_useState, 2),
14371
+ itemSelected = _useState2[0],
14372
+ setItemSelected = _useState2[1];
14373
+ var _useState3 = useState(workspace),
14374
+ _useState4 = _slicedToArray(_useState3, 2),
14375
+ workspaceSelected = _useState4[0],
14376
+ setWorkspaceSelected = _useState4[1];
14377
+ useEffect(function () {
14378
+ if (!deepEqual$1(item, itemSelected)) setItemSelected(function () {
14379
+ return item;
14380
+ });
14381
+ if (!deepEqual$1(workspace, workspaceSelected)) setWorkspaceSelected(function () {
14382
+ return workspace;
14383
+ });
14384
+ // eslint-disable-next-line react-hooks/exhaustive-deps
14385
+ }, [workspace, item]);
14386
+ if (!itemSelected || !workspaceSelected) return null;
14387
+ var widgetConfig = ComponentManager.config(itemSelected.component, itemSelected);
14388
+ var declaredProviders = Array.isArray(widgetConfig === null || widgetConfig === void 0 ? void 0 : widgetConfig.providers) ? widgetConfig.providers : Array.isArray(itemSelected === null || itemSelected === void 0 ? void 0 : itemSelected.providers) ? itemSelected.providers : [];
14389
+ var providerRequirements = getUserConfigurableProviders(declaredProviders);
14390
+ var selectedProviders = itemSelected.selectedProviders || {};
14391
+ function handleProviderChange(providerType, providerName) {
14392
+ var updatedItem = deepCopy(itemSelected);
14393
+ var nextProviders = _objectSpread$L({}, updatedItem.selectedProviders || {});
14394
+ if (providerName) {
14395
+ nextProviders[providerType] = providerName;
14396
+ } else {
14397
+ delete nextProviders[providerType];
14398
+ }
14399
+ updatedItem.selectedProviders = nextProviders;
14400
+ var updatedWorkspace = deepCopy(workspaceSelected);
14401
+ updatedWorkspace.layout = replaceItemInLayout(updatedWorkspace.layout, updatedItem.id, updatedItem);
14402
+ setItemSelected(function () {
14403
+ return updatedItem;
14404
+ });
14405
+ setWorkspaceSelected(function () {
14406
+ return updatedWorkspace;
14407
+ });
14408
+ onUpdate(updatedItem, updatedWorkspace);
14409
+ }
14410
+ if (providerRequirements.length === 0) {
14411
+ return /*#__PURE__*/jsx("div", {
14412
+ className: "flex items-center justify-center h-full text-sm opacity-60 text-center px-6",
14413
+ children: "This widget doesn't declare any providers."
14414
+ });
14415
+ }
14416
+ return /*#__PURE__*/jsxs("div", {
14417
+ className: "flex flex-col flex-1 min-h-0 overflow-y-auto p-6 space-y-4",
14418
+ children: [/*#__PURE__*/jsx("div", {
14419
+ className: "text-sm opacity-70",
14420
+ children: "Bind each required provider so the widget can connect to its data source. Changes save immediately."
14421
+ }), /*#__PURE__*/jsx("div", {
14422
+ className: "space-y-3",
14423
+ children: providerRequirements.map(function (req) {
14424
+ var type = req.type;
14425
+ var current = selectedProviders[type] || "";
14426
+ var options = Object.entries(appProviders).filter(function (_ref2) {
14427
+ var _ref3 = _slicedToArray(_ref2, 2),
14428
+ p = _ref3[1];
14429
+ return p && p.type === type;
14430
+ }).map(function (_ref4) {
14431
+ var _ref5 = _slicedToArray(_ref4, 2),
14432
+ name = _ref5[0],
14433
+ p = _ref5[1];
14434
+ return _objectSpread$L({
14435
+ name: name
14436
+ }, p);
14437
+ });
14438
+ var isConfigured = !!current;
14439
+ var isMissing = req.required && !isConfigured;
14440
+ return /*#__PURE__*/jsxs("div", {
14441
+ className: "rounded border px-3 py-2 ".concat(isMissing ? "bg-red-900 border-red-500" : "bg-gray-800 border-gray-700"),
14442
+ children: [/*#__PURE__*/jsxs("div", {
14443
+ className: "flex items-center gap-2",
14444
+ children: [/*#__PURE__*/jsx("span", {
14445
+ className: "text-sm font-medium ".concat(isMissing ? "text-red-100" : "text-gray-100"),
14446
+ children: type
14447
+ }), /*#__PURE__*/jsx("span", {
14448
+ className: "text-[10px] uppercase tracking-wide px-1.5 py-0.5 rounded font-semibold ".concat(isMissing ? "bg-red-600 text-white" : req.required ? "bg-indigo-800 text-indigo-100" : "bg-gray-700 text-gray-300"),
14449
+ children: req.required ? "required" : "optional"
14450
+ })]
14451
+ }), req.description && /*#__PURE__*/jsx("div", {
14452
+ className: "text-xs opacity-60 mt-1",
14453
+ children: req.description
14454
+ }), /*#__PURE__*/jsxs("div", {
14455
+ className: "mt-2",
14456
+ children: [/*#__PURE__*/jsxs("select", {
14457
+ value: current,
14458
+ onChange: function onChange(e) {
14459
+ return handleProviderChange(type, e.target.value);
14460
+ },
14461
+ className: "w-full bg-gray-900 border rounded px-2 py-1.5 text-sm ".concat(isMissing ? "border-red-500" : "border-gray-700"),
14462
+ children: [/*#__PURE__*/jsx("option", {
14463
+ value: "",
14464
+ children: req.required ? "— select a provider —" : "— none —"
14465
+ }), options.map(function (opt) {
14466
+ return /*#__PURE__*/jsx("option", {
14467
+ value: opt.name,
14468
+ children: opt.name
14469
+ }, opt.name);
14470
+ })]
14471
+ }), options.length === 0 && /*#__PURE__*/jsxs("div", {
14472
+ className: "mt-1 text-[11px] text-amber-300",
14473
+ children: ["No ", type, " providers configured. Add one in Settings > Providers."]
14474
+ })]
14475
+ })]
14476
+ }, type);
14477
+ })
14478
+ })]
14479
+ });
14480
+ };
14481
+
14353
14482
  var getSections = function getSections(item) {
14354
14483
  var _widgetConfig$notific, _widgetConfig$schedul;
14355
14484
  var widgetConfig = item ? ComponentManager.config(item.component, item) : null;
14356
14485
  var hasNotifications = (widgetConfig === null || widgetConfig === void 0 || (_widgetConfig$notific = widgetConfig.notifications) === null || _widgetConfig$notific === void 0 ? void 0 : _widgetConfig$notific.length) > 0;
14357
14486
  var hasScheduledTasks = (widgetConfig === null || widgetConfig === void 0 || (_widgetConfig$schedul = widgetConfig.scheduledTasks) === null || _widgetConfig$schedul === void 0 ? void 0 : _widgetConfig$schedul.length) > 0;
14487
+ // Show the Providers section whenever the widget declares any
14488
+ // user-configurable providers. Previously provider selection lived
14489
+ // inline in the card header dropdown; this moves it into the
14490
+ // widget config modal so the header stays uncluttered and there's
14491
+ // room for richer per-provider UX.
14492
+ var declaredProviders = Array.isArray(widgetConfig === null || widgetConfig === void 0 ? void 0 : widgetConfig.providers) ? widgetConfig.providers : Array.isArray(item === null || item === void 0 ? void 0 : item.providers) ? item.providers : [];
14493
+ var userConfigurableProviders = getUserConfigurableProviders(declaredProviders);
14358
14494
  return [{
14359
14495
  key: "edit",
14360
14496
  label: "Settings",
@@ -14375,6 +14511,10 @@ var getSections = function getSections(item) {
14375
14511
  key: "handlers",
14376
14512
  label: "Listeners",
14377
14513
  icon: "phone"
14514
+ }] : []), _toConsumableArray(userConfigurableProviders.length > 0 ? [{
14515
+ key: "providers",
14516
+ label: "Providers",
14517
+ icon: "plug"
14378
14518
  }] : []), [{
14379
14519
  key: "code",
14380
14520
  label: "Code",
@@ -14497,6 +14637,10 @@ var LayoutBuilderConfigModal = function LayoutBuilderConfigModal(_ref) {
14497
14637
  item: itemSelected,
14498
14638
  onUpdate: handleEditChange,
14499
14639
  workspace: workspaceSelected
14640
+ }), activeSection === "providers" && /*#__PURE__*/jsx(PanelEditItemProviders, {
14641
+ item: itemSelected,
14642
+ onUpdate: handleEditChange,
14643
+ workspace: workspaceSelected
14500
14644
  }), activeSection === "code" && /*#__PURE__*/jsx(PanelCode, {
14501
14645
  item: itemSelected,
14502
14646
  onUpdate: handleEditChange,
@@ -16812,16 +16956,9 @@ function mcpJsonToFormState(jsonString, nextRowId) {
16812
16956
  return result;
16813
16957
  }
16814
16958
 
16815
- var getUserConfigurableProviders = function getUserConfigurableProviders(providers) {
16816
- if (!providers) return [];
16817
- return providers.filter(function (p) {
16818
- return p.providerClass !== "api";
16819
- });
16820
- };
16821
-
16822
- function _createForOfIteratorHelper$n(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$n(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; } } }; }
16823
- function _unsupportedIterableToArray$n(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$n(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$n(r, a) : void 0; } }
16824
- function _arrayLikeToArray$n(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; }
16959
+ function _createForOfIteratorHelper$m(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$m(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; } } }; }
16960
+ function _unsupportedIterableToArray$m(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$m(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$m(r, a) : void 0; } }
16961
+ function _arrayLikeToArray$m(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; }
16825
16962
  function ownKeys$I(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; }
16826
16963
  function _objectSpread$I(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$I(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$I(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
16827
16964
  var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
@@ -17106,11 +17243,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
17106
17243
 
17107
17244
  // Flatten all widgets from all packages for the widget list
17108
17245
  flatWidgets = [];
17109
- _iterator = _createForOfIteratorHelper$n(result.packages || []);
17246
+ _iterator = _createForOfIteratorHelper$m(result.packages || []);
17110
17247
  try {
17111
17248
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
17112
17249
  pkg = _step.value;
17113
- _iterator2 = _createForOfIteratorHelper$n(pkg.widgets || []);
17250
+ _iterator2 = _createForOfIteratorHelper$m(pkg.widgets || []);
17114
17251
  try {
17115
17252
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
17116
17253
  widget = _step2.value;
@@ -18688,80 +18825,16 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
18688
18825
  });
18689
18826
  };
18690
18827
 
18691
- /**
18692
- * ProviderBadge
18693
- *
18694
- * Visual indicator of provider status for widgets.
18695
- * Shows connection status and allows quick access to provider configuration.
18696
- */
18697
-
18698
- var ProviderBadge = function ProviderBadge(_ref) {
18699
- var providerType = _ref.providerType;
18700
- _ref.providerId;
18701
- var providerName = _ref.providerName,
18702
- _ref$isConfigured = _ref.isConfigured,
18703
- isConfigured = _ref$isConfigured === void 0 ? false : _ref$isConfigured,
18704
- _ref$isRequired = _ref.isRequired,
18705
- isRequired = _ref$isRequired === void 0 ? false : _ref$isRequired,
18706
- onClick = _ref.onClick,
18707
- _ref$className = _ref.className,
18708
- className = _ref$className === void 0 ? "" : _ref$className;
18709
- // Status variants
18710
- var getStatusStyle = function getStatusStyle() {
18711
- if (isConfigured) {
18712
- return {
18713
- bg: "bg-green-50 dark:bg-green-900/20",
18714
- border: "border-green-300 dark:border-green-700",
18715
- text: "text-green-700 dark:text-green-400",
18716
- icon: "✓",
18717
- label: providerName || "Connected"
18718
- };
18719
- }
18720
- if (isRequired) {
18721
- return {
18722
- bg: "bg-yellow-50 dark:bg-yellow-900/20",
18723
- border: "border-yellow-300 dark:border-yellow-700",
18724
- text: "text-yellow-700 dark:text-yellow-400",
18725
- icon: "⚠️",
18726
- label: "Required"
18727
- };
18728
- }
18729
- return {
18730
- bg: "bg-gray-50 dark:bg-gray-900/20",
18731
- border: "border-gray-300 dark:border-gray-700",
18732
- text: "text-gray-600 dark:text-gray-400",
18733
- icon: "○",
18734
- label: "Optional"
18735
- };
18736
- };
18737
- var status = getStatusStyle();
18738
- return /*#__PURE__*/jsxs("button", {
18739
- onClick: onClick,
18740
- className: "\n inline-flex items-center gap-1.5 px-2 py-1 rounded text-xs font-medium border\n ".concat(status.bg, " ").concat(status.border, " ").concat(status.text, "\n hover:opacity-80 transition-opacity\n ").concat(className, "\n "),
18741
- title: "".concat(providerType, ": ").concat(status.label),
18742
- children: [/*#__PURE__*/jsx("span", {
18743
- children: status.icon
18744
- }), /*#__PURE__*/jsx("span", {
18745
- className: "capitalize",
18746
- children: providerType
18747
- })]
18748
- });
18749
- };
18750
-
18751
- function _createForOfIteratorHelper$m(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$m(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; } } }; }
18752
- function _unsupportedIterableToArray$m(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$m(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$m(r, a) : void 0; } }
18753
- function _arrayLikeToArray$m(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; }
18754
18828
  var WidgetCardHeader = function WidgetCardHeader(_ref) {
18755
18829
  var item = _ref.item,
18756
18830
  widget = _ref.widget,
18757
18831
  _ref$cellNumber = _ref.cellNumber,
18758
- cellNumber = _ref$cellNumber === void 0 ? null : _ref$cellNumber,
18759
- _ref$providers = _ref.providers,
18760
- providers = _ref$providers === void 0 ? [] : _ref$providers,
18761
- _ref$selectedProvider = _ref.selectedProviders,
18762
- selectedProviders = _ref$selectedProvider === void 0 ? {} : _ref$selectedProvider,
18763
- onProviderChange = _ref.onProviderChange,
18764
- onConfigure = _ref.onConfigure,
18832
+ cellNumber = _ref$cellNumber === void 0 ? null : _ref$cellNumber;
18833
+ _ref.providers;
18834
+ var _ref$selectedProvider = _ref.selectedProviders,
18835
+ selectedProviders = _ref$selectedProvider === void 0 ? {} : _ref$selectedProvider;
18836
+ _ref.onProviderChange;
18837
+ var onConfigure = _ref.onConfigure,
18765
18838
  onDelete = _ref.onDelete,
18766
18839
  onRemove = _ref.onRemove,
18767
18840
  _ref$onSplitHorizonta = _ref.onSplitHorizontal,
@@ -18776,43 +18849,15 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
18776
18849
  isSelectable = _ref$isSelectable === void 0 ? true : _ref$isSelectable,
18777
18850
  _ref$onToggleSelect = _ref.onToggleSelect,
18778
18851
  onToggleSelect = _ref$onToggleSelect === void 0 ? null : _ref$onToggleSelect;
18779
- var _useState = useState(null),
18852
+ // One overflow menu holds both provider pickers AND action items,
18853
+ // so the widget title always gets the full header width regardless
18854
+ // of cell size. Previous design kept provider badges + action
18855
+ // buttons inline (both flex-shrink-0) which cropped the title on
18856
+ // narrow cells and made the config button unreachable.
18857
+ var _useState = useState(false),
18780
18858
  _useState2 = _slicedToArray(_useState, 2),
18781
- showProviderDropdown = _useState2[0],
18782
- setShowProviderDropdown = _useState2[1];
18783
- var _useState3 = useState(false),
18784
- _useState4 = _slicedToArray(_useState3, 2),
18785
- isCompact = _useState4[0],
18786
- setIsCompact = _useState4[1];
18787
- var _useState5 = useState(false),
18788
- _useState6 = _slicedToArray(_useState5, 2),
18789
- showOverflowMenu = _useState6[0],
18790
- setShowOverflowMenu = _useState6[1];
18791
- var headerRef = useRef(null);
18792
-
18793
- // ResizeObserver to detect compact mode
18794
- useEffect(function () {
18795
- var el = headerRef.current;
18796
- if (!el) return;
18797
- var observer = new ResizeObserver(function (entries) {
18798
- var _iterator = _createForOfIteratorHelper$m(entries),
18799
- _step;
18800
- try {
18801
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
18802
- var entry = _step.value;
18803
- setIsCompact(entry.contentRect.width < 320);
18804
- }
18805
- } catch (err) {
18806
- _iterator.e(err);
18807
- } finally {
18808
- _iterator.f();
18809
- }
18810
- });
18811
- observer.observe(el);
18812
- return function () {
18813
- return observer.disconnect();
18814
- };
18815
- }, []);
18859
+ showOverflowMenu = _useState2[0],
18860
+ setShowOverflowMenu = _useState2[1];
18816
18861
 
18817
18862
  // Support both 'item' and 'widget' props
18818
18863
  var widgetItem = item || widget;
@@ -18843,41 +18888,26 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
18843
18888
  };
18844
18889
  var providerRequirements = getProviderRequirements();
18845
18890
 
18846
- // Get providers filtered by type
18847
- var getProvidersForType = function getProvidersForType(type) {
18848
- return providers.filter(function (p) {
18849
- return p.type === type;
18850
- });
18851
- };
18852
-
18853
- // Check if provider is configured
18891
+ // Check if provider is configured — used only for the amber-dot
18892
+ // indicator now. Actual provider editing lives in the config
18893
+ // modal's Providers section (opened via the "Providers" menu item).
18854
18894
  var isProviderConfigured = function isProviderConfigured(providerType) {
18855
18895
  return selectedProviders[providerType] != null;
18856
18896
  };
18857
18897
 
18858
- // Get provider name
18859
- var getProviderName = function getProviderName(providerType) {
18860
- var providerId = selectedProviders[providerType];
18861
- if (!providerId) return null;
18862
- var provider = providers.find(function (p) {
18863
- return p.id === providerId;
18864
- });
18865
- return provider === null || provider === void 0 ? void 0 : provider.name;
18866
- };
18867
-
18868
- // Handle provider selection
18869
- var handleProviderSelect = function handleProviderSelect(providerType, providerId) {
18870
- if (providerId === "_new") {
18871
- onProviderChange(providerType, null, true); // true = create new
18872
- } else if (providerId === "_unset") {
18873
- onProviderChange(providerType, null, false); // unset — no provider
18874
- } else {
18875
- onProviderChange(providerType, providerId);
18876
- }
18877
- setShowProviderDropdown(null);
18878
- };
18898
+ // True when any required provider lacks a selection — drives the
18899
+ // amber dot on the overflow button so the user can see unresolved
18900
+ // state at a glance without opening the menu.
18901
+ var hasUnresolvedRequiredProvider = providerRequirements.some(function (req) {
18902
+ return req.required && !isProviderConfigured(req.type);
18903
+ });
18879
18904
 
18880
- // Build overflow actions for compact mode
18905
+ // Build overflow actions list — single source of truth for the
18906
+ // dropdown items. Provider editing used to live inline in this
18907
+ // menu as dropdowns per provider; that's moved to the widget
18908
+ // config modal under a "Providers" section, so here we just show
18909
+ // a "Providers" entry (when the widget declares any) that opens
18910
+ // the modal pre-selected on that section.
18881
18911
  var overflowActions = [];
18882
18912
  if (onConfigure) {
18883
18913
  overflowActions.push({
@@ -18889,6 +18919,27 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
18889
18919
  }
18890
18920
  });
18891
18921
  }
18922
+ if (onConfigure && providerRequirements.length > 0) {
18923
+ overflowActions.push({
18924
+ icon: "plug",
18925
+ label: "Providers",
18926
+ badge: hasUnresolvedRequiredProvider ? "!" : null,
18927
+ onClick: function onClick() {
18928
+ onConfigure(widgetItem, "providers");
18929
+ setShowOverflowMenu(false);
18930
+ }
18931
+ });
18932
+ }
18933
+ if (onConfigure) {
18934
+ overflowActions.push({
18935
+ icon: "phone",
18936
+ label: "Listeners",
18937
+ onClick: function onClick() {
18938
+ onConfigure(widgetItem, "handlers");
18939
+ setShowOverflowMenu(false);
18940
+ }
18941
+ });
18942
+ }
18892
18943
  if (onEditWithAI && widgetItem) {
18893
18944
  overflowActions.push({
18894
18945
  icon: "wand-magic-sparkles",
@@ -18940,7 +18991,6 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
18940
18991
  });
18941
18992
  }
18942
18993
  return /*#__PURE__*/jsxs("div", {
18943
- ref: headerRef,
18944
18994
  className: "flex items-center gap-3 px-3 py-2.5 bg-transparent border-b border-gray-700 ".concat(isSelected ? "ring-2 ring-blue-500 ring-inset" : ""),
18945
18995
  children: [onToggleSelect && /*#__PURE__*/jsx("button", {
18946
18996
  className: "w-5 h-5 rounded-full border-2 flex items-center justify-center transition-colors flex-shrink-0 ".concat(isSelected ? "bg-blue-500 border-blue-500 text-white" : isSelectable ? "bg-gray-800/80 border-blue-400 animate-pulse" : "bg-gray-800/80 border-gray-500 opacity-30 cursor-not-allowed"),
@@ -18967,166 +19017,47 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
18967
19017
  children: "(not found)"
18968
19018
  })]
18969
19019
  })]
18970
- }), providerRequirements.length > 0 && /*#__PURE__*/jsx("div", {
18971
- className: "flex items-center gap-2 flex-shrink-0",
18972
- children: providerRequirements.map(function (providerReq) {
18973
- var providerType = providerReq.type;
18974
- var isConfigured = isProviderConfigured(providerType);
18975
- var providerName = getProviderName(providerType);
18976
- var availableProviders = getProvidersForType(providerType);
18977
- var selectedProviderId = selectedProviders[providerType];
18978
- return /*#__PURE__*/jsxs("div", {
18979
- className: "relative",
18980
- children: [/*#__PURE__*/jsx(ProviderBadge, {
18981
- providerType: providerType,
18982
- providerId: selectedProviderId,
18983
- providerName: providerName,
18984
- isConfigured: isConfigured,
18985
- isRequired: providerReq.required,
18986
- onClick: function onClick() {
18987
- setShowOverflowMenu(false);
18988
- setShowProviderDropdown(showProviderDropdown === providerType ? null : providerType);
18989
- }
18990
- }), /*#__PURE__*/jsxs(DropdownPanel, {
18991
- isOpen: showProviderDropdown === providerType,
18992
- onClose: function onClose() {
18993
- return setShowProviderDropdown(null);
18994
- },
18995
- position: "absolute top-full right-0 mt-1",
18996
- portal: true,
18997
- direction: "right",
18998
- children: [availableProviders.length > 0 ? /*#__PURE__*/jsxs(Fragment, {
18999
- children: [/*#__PURE__*/jsxs(DropdownPanel.Header, {
19000
- children: ["Select ", providerType]
19001
- }), availableProviders.map(function (provider) {
19002
- var isSelected = provider.id === selectedProviderId;
19003
- return /*#__PURE__*/jsx(MenuItem2, {
19004
- onClick: function onClick() {
19005
- return handleProviderSelect(providerType, provider.id);
19006
- },
19007
- selected: isSelected,
19008
- children: /*#__PURE__*/jsxs("div", {
19009
- className: "flex items-center gap-2 w-full",
19010
- children: [/*#__PURE__*/jsx("span", {
19011
- className: "w-4 text-center text-xs flex-shrink-0 ".concat(isSelected ? "text-green-400" : "opacity-0"),
19012
- children: "\u2713"
19013
- }), /*#__PURE__*/jsxs("div", {
19014
- className: "flex-1 min-w-0",
19015
- children: [/*#__PURE__*/jsx("div", {
19016
- className: "font-medium",
19017
- children: provider.name
19018
- }), provider.description && /*#__PURE__*/jsx("div", {
19019
- className: "text-xs opacity-60 mt-0.5",
19020
- children: provider.description
19021
- })]
19022
- })]
19023
- })
19024
- }, provider.id);
19025
- }), /*#__PURE__*/jsx(DropdownPanel.Divider, {})]
19026
- }) : /*#__PURE__*/jsxs("div", {
19027
- className: "px-3 py-2 text-xs opacity-50 italic",
19028
- children: ["No ", providerType, " providers configured"]
19029
- }), !providerReq.required && /*#__PURE__*/jsx(MenuItem2, {
19030
- onClick: function onClick() {
19031
- handleProviderSelect(providerType, "_unset");
19032
- },
19033
- children: /*#__PURE__*/jsxs("span", {
19034
- className: "text-gray-400",
19035
- children: ["\xD7 Unset ", providerType]
19036
- })
19037
- }), /*#__PURE__*/jsx(MenuItem2, {
19038
- onClick: function onClick() {
19039
- handleProviderSelect(providerType, "_new");
19040
- },
19041
- children: /*#__PURE__*/jsxs("span", {
19042
- className: "text-blue-400",
19043
- children: ["+ Create New ", providerType]
19044
- })
19045
- })]
19046
- })]
19047
- }, providerType);
19048
- })
19049
- }), /*#__PURE__*/jsx("div", {
19050
- className: "flex items-center gap-0.5 flex-shrink-0",
19051
- children: !isCompact ? /*#__PURE__*/jsxs(Fragment, {
19052
- children: [onConfigure && /*#__PURE__*/jsx(ButtonIcon2, {
19053
- icon: "cog",
19054
- onClick: function onClick() {
19055
- return onConfigure(widgetItem);
19056
- },
19057
- title: "Configure widget",
19058
- theme: false
19059
- }), onEditWithAI && widgetItem && /*#__PURE__*/jsx(ButtonIcon2, {
19060
- icon: "wand-magic-sparkles",
19061
- onClick: function onClick() {
19062
- return onEditWithAI(widgetItem);
19063
- },
19064
- title: "Edit with AI",
19065
- theme: false
19066
- }), onSplitHorizontal && /*#__PURE__*/jsx(ButtonIcon2, {
19067
- icon: "arrows-left-right",
19068
- onClick: function onClick(e) {
19069
- e.stopPropagation();
19070
- onSplitHorizontal();
19071
- },
19072
- title: "Split horizontally (left/right)",
19073
- theme: false
19074
- }), onSplitVertical && /*#__PURE__*/jsx(ButtonIcon2, {
19075
- icon: "arrows-up-down",
19076
- onClick: function onClick(e) {
19077
- e.stopPropagation();
19078
- onSplitVertical();
19079
- },
19080
- title: "Split vertically (top/bottom)",
19081
- theme: false
19082
- }), handleDelete && /*#__PURE__*/jsx(ButtonIcon2, {
19083
- icon: "trash",
19084
- onClick: function onClick() {
19085
- return handleDelete(widgetItem);
19086
- },
19087
- title: "Remove widget",
19088
- theme: false
19089
- }), onMoreOptions && /*#__PURE__*/jsx(ButtonIcon2, {
19090
- icon: "ellipsis-vertical",
19091
- onClick: function onClick() {
19092
- return onMoreOptions(widget);
19093
- },
19094
- title: "More options",
19095
- theme: false
19096
- })]
19097
- }) : overflowActions.length > 0 ? /*#__PURE__*/jsxs("div", {
19098
- className: "relative",
19020
+ }), (providerRequirements.length > 0 || overflowActions.length > 0 || onMoreOptions) && /*#__PURE__*/jsxs("div", {
19021
+ className: "relative flex-shrink-0",
19022
+ children: [/*#__PURE__*/jsxs("div", {
19023
+ className: "relative inline-flex",
19099
19024
  children: [/*#__PURE__*/jsx(ButtonIcon2, {
19100
- icon: "chevron-down",
19025
+ icon: "ellipsis-vertical",
19101
19026
  onClick: function onClick() {
19102
- setShowProviderDropdown(null);
19103
- setShowOverflowMenu(!showOverflowMenu);
19027
+ return setShowOverflowMenu(function (v) {
19028
+ return !v;
19029
+ });
19104
19030
  },
19105
- title: "Actions",
19031
+ title: "Providers & actions",
19106
19032
  theme: false
19107
- }), /*#__PURE__*/jsxs(DropdownPanel, {
19108
- isOpen: showOverflowMenu,
19109
- onClose: function onClose() {
19110
- return setShowOverflowMenu(false);
19111
- },
19112
- position: "absolute top-full right-0 mt-1",
19113
- portal: true,
19114
- align: "right",
19115
- children: [/*#__PURE__*/jsx(DropdownPanel.Header, {
19116
- children: "Actions"
19117
- }), overflowActions.map(function (action) {
19118
- return /*#__PURE__*/jsxs(MenuItem2, {
19119
- onClick: action.onClick,
19120
- children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
19121
- icon: action.icon,
19122
- className: "w-4 text-center opacity-60"
19123
- }), /*#__PURE__*/jsx("span", {
19124
- children: action.label
19125
- })]
19126
- }, action.label);
19127
- })]
19033
+ }), hasUnresolvedRequiredProvider && /*#__PURE__*/jsx("span", {
19034
+ className: "absolute top-1 right-1 h-2 w-2 rounded-full bg-amber-400 border border-black pointer-events-none",
19035
+ title: "Required provider not set"
19128
19036
  })]
19129
- }) : null
19037
+ }), /*#__PURE__*/jsx(DropdownPanel, {
19038
+ isOpen: showOverflowMenu,
19039
+ onClose: function onClose() {
19040
+ return setShowOverflowMenu(false);
19041
+ },
19042
+ position: "absolute top-full right-0 mt-1",
19043
+ portal: true,
19044
+ align: "right",
19045
+ children: overflowActions.map(function (action) {
19046
+ return /*#__PURE__*/jsxs(MenuItem2, {
19047
+ onClick: action.onClick,
19048
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
19049
+ icon: action.icon,
19050
+ className: "w-4 text-center opacity-60"
19051
+ }), /*#__PURE__*/jsx("span", {
19052
+ className: "flex-1",
19053
+ children: action.label
19054
+ }), action.badge && /*#__PURE__*/jsx("span", {
19055
+ className: "ml-auto text-[10px] font-bold text-amber-300",
19056
+ children: action.badge
19057
+ })]
19058
+ }, action.label);
19059
+ })
19060
+ })]
19130
19061
  })]
19131
19062
  });
19132
19063
  };
@@ -22455,8 +22386,8 @@ var WidgetContainerGridItem = function WidgetContainerGridItem(_ref) {
22455
22386
  function handleChangeOrder(direction) {
22456
22387
  onChangeOrder(item, direction);
22457
22388
  }
22458
- function handleOpenConfig() {
22459
- onOpenConfig(item);
22389
+ function handleOpenConfig(widgetItem, section) {
22390
+ onOpenConfig(item, section);
22460
22391
  }
22461
22392
  function handleProviderChange(providerType, providerId) {
22462
22393
  var createNew = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
@@ -22763,8 +22694,8 @@ var LayoutBuilderGridItem = function LayoutBuilderGridItem(_ref) {
22763
22694
  function handleChangeOrder(direction) {
22764
22695
  onChangeOrder(item, direction);
22765
22696
  }
22766
- function handleOpenConfig() {
22767
- onOpenConfig(item);
22697
+ function handleOpenConfig(widgetItem, section) {
22698
+ onOpenConfig(item, section);
22768
22699
  }
22769
22700
  function renderArrows() {
22770
22701
  return preview === false && /*#__PURE__*/jsx("div", {
@@ -25701,8 +25632,8 @@ var LayoutGridContainer = /*#__PURE__*/memo(function (_ref3) {
25701
25632
  }
25702
25633
  }
25703
25634
  } : undefined,
25704
- onConfigure: cellComponent ? function () {
25705
- if (onOpenConfig) onOpenConfig(cellComponent);
25635
+ onConfigure: cellComponent ? function (widgetItem, section) {
25636
+ if (onOpenConfig) onOpenConfig(cellComponent, section);
25706
25637
  } : undefined,
25707
25638
  onDelete: cellComponent ? function () {
25708
25639
  if (onClickRemove) onClickRemove(cellComponent.id);
@@ -60299,5 +60230,5 @@ function MarkdownFormEditor(_ref8) {
60299
60230
 
60300
60231
  ComponentManager.registerContainerTypes(LayoutContainer, LayoutGridContainer);
60301
60232
 
60302
- 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, ChatCore, ChatInput, ChatMessages, 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, DashboardActionsApi, DashboardApi, DashboardContext, DashboardFooter, DashboardHeader, DashboardMenuItem, DashboardModel, DashboardMonitor, DashboardPublisher, DashboardStage, DashboardThemeProvider, DashboardWizardModal, 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, MarkdownFormEditor, McpServerPicker, MenuItemModel, MenuSlideOverlay, MergeCellsModal, MessageBubble, 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, PageTabBar, PanelCode, PanelEditItem, PanelEditItemHandlers, PanelEditItemNotifications, PinnedSidebar, 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, StreamingText, THEME_DELETE, THEME_DELETE_COMPLETE, THEME_DELETE_ERROR, THEME_EXTRACT_FROM_URL, THEME_EXTRACT_FROM_URL_COMPLETE, THEME_EXTRACT_FROM_URL_ERROR, THEME_LIST, THEME_LIST_COMPLETE, THEME_LIST_ERROR, THEME_MAP_PALETTE, THEME_MAP_PALETTE_COMPLETE, THEME_MAP_PALETTE_ERROR, THEME_SAVE, THEME_SAVE_COMPLETE, THEME_SAVE_ERROR, ThemeApi, ThemeColorDots, ThemeManagerModal, ThemeModel, ThemeWrapper, ToolCallBlock, ToolSelector, WELCOME_STORAGE_KEY, 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, WelcomePrompt, Widget, WidgetApi, WidgetConfigPanel, WidgetContext, WidgetFactory, WidgetNotFound, WidgetPopoutStage, WidgetProviderWrapper, WidgetSidebar, WizardCustomizeStep, WizardDiscoverStep, 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, parse, removeItemFromLayout, renderComponent, renderGridLayout, renderGridLayoutFlow, _renderLayout as renderLayout, renderLayoutMenu, replaceItemInLayout, resolveIcon, serialize, setHostModules, traverseParentTree, updateLayoutItem, updateParentForItem, useDashboard, useMcpDashServer, useMcpProvider, useNotifications, useProvider, useProviderClient, useScheduler, useWebSocketProvider, useWidgetEvents, useWidgetProviders, useWidgetSchedulerStatus, useWizardState, validateCellMerge, validateGridCell, validateGridPlacement, validateWidgetPlacement, widgetCountToTemplate, withProviderDetection };
60233
+ 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, ChatCore, ChatInput, ChatMessages, 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, DashboardActionsApi, DashboardApi, DashboardContext, DashboardFooter, DashboardHeader, DashboardMenuItem, DashboardModel, DashboardMonitor, DashboardPublisher, DashboardStage, DashboardThemeProvider, DashboardWizardModal, 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, MarkdownFormEditor, McpServerPicker, MenuItemModel, MenuSlideOverlay, MergeCellsModal, MessageBubble, 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, PageTabBar, PanelCode, PanelEditItem, PanelEditItemHandlers, PanelEditItemNotifications, PanelEditItemProviders, PinnedSidebar, 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, StreamingText, THEME_DELETE, THEME_DELETE_COMPLETE, THEME_DELETE_ERROR, THEME_EXTRACT_FROM_URL, THEME_EXTRACT_FROM_URL_COMPLETE, THEME_EXTRACT_FROM_URL_ERROR, THEME_LIST, THEME_LIST_COMPLETE, THEME_LIST_ERROR, THEME_MAP_PALETTE, THEME_MAP_PALETTE_COMPLETE, THEME_MAP_PALETTE_ERROR, THEME_SAVE, THEME_SAVE_COMPLETE, THEME_SAVE_ERROR, ThemeApi, ThemeColorDots, ThemeManagerModal, ThemeModel, ThemeWrapper, ToolCallBlock, ToolSelector, WELCOME_STORAGE_KEY, 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, WelcomePrompt, Widget, WidgetApi, WidgetConfigPanel, WidgetContext, WidgetFactory, WidgetNotFound, WidgetPopoutStage, WidgetProviderWrapper, WidgetSidebar, WizardCustomizeStep, WizardDiscoverStep, 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, parse, removeItemFromLayout, renderComponent, renderGridLayout, renderGridLayoutFlow, _renderLayout as renderLayout, renderLayoutMenu, replaceItemInLayout, resolveIcon, serialize, setHostModules, traverseParentTree, updateLayoutItem, updateParentForItem, useDashboard, useMcpDashServer, useMcpProvider, useNotifications, useProvider, useProviderClient, useScheduler, useWebSocketProvider, useWidgetEvents, useWidgetProviders, useWidgetSchedulerStatus, useWizardState, validateCellMerge, validateGridCell, validateGridPlacement, validateWidgetPlacement, widgetCountToTemplate, withProviderDetection };
60303
60234
  //# sourceMappingURL=index.esm.js.map