@trops/dash-core 0.1.402 → 0.1.404

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
@@ -12773,15 +12773,12 @@ var deepEqual = function deepEqual(a, b, opts) {
12773
12773
 
12774
12774
  var deepEqual$1 = /*@__PURE__*/getDefaultExportFromCjs(deepEqual);
12775
12775
 
12776
- 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; }
12777
- 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; }
12778
12776
  var PanelEditItem = function PanelEditItem(_ref) {
12779
12777
  var _ComponentManager$get;
12780
12778
  var workspace = _ref.workspace,
12781
12779
  onUpdate = _ref.onUpdate,
12782
12780
  _ref$item = _ref.item,
12783
12781
  item = _ref$item === void 0 ? null : _ref$item;
12784
- var appContext = useContext(AppContext);
12785
12782
  var _useState = useState(item),
12786
12783
  _useState2 = _slicedToArray(_useState, 2),
12787
12784
  itemSelected = _useState2[0],
@@ -12796,10 +12793,6 @@ var PanelEditItem = function PanelEditItem(_ref) {
12796
12793
  var forceUpdate = useCallback(function () {
12797
12794
  return updateState({});
12798
12795
  }, []);
12799
- var allProviders = (appContext === null || appContext === void 0 ? void 0 : appContext.providers) || {};
12800
- var widgetConfig = itemSelected ? ComponentManager.config(itemSelected.component, itemSelected) : null;
12801
- var providerRequirements = (widgetConfig === null || widgetConfig === void 0 ? void 0 : widgetConfig.providers) || [];
12802
- var selectedProviders = (itemSelected === null || itemSelected === void 0 ? void 0 : itemSelected.selectedProviders) || {};
12803
12796
  useEffect(function () {
12804
12797
  if (deepEqual$1(item, itemSelected) === false) {
12805
12798
  setItemSelected(function () {
@@ -12822,23 +12815,6 @@ var PanelEditItem = function PanelEditItem(_ref) {
12822
12815
  onUpdate(data, workspaceTemp);
12823
12816
  forceUpdate();
12824
12817
  }
12825
- function handleProviderChange(providerType, providerId) {
12826
- var newItem = JSON.parse(JSON.stringify(itemSelected));
12827
- newItem.selectedProviders = newItem.selectedProviders || {};
12828
- newItem.selectedProviders[providerType] = providerId;
12829
- var workspaceTemp = WorkspaceModel(workspaceSelected);
12830
- var newLayout = replaceItemInLayout(workspaceTemp.layout, newItem["id"], newItem);
12831
- workspaceTemp.layout = newLayout;
12832
-
12833
- // Also update workspace-level selectedProviders
12834
- var uuid = newItem.uuid || newItem.uuidString;
12835
- if (uuid) {
12836
- workspaceTemp.selectedProviders = workspaceTemp.selectedProviders || {};
12837
- workspaceTemp.selectedProviders[uuid] = _objectSpread$O(_objectSpread$O({}, workspaceTemp.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
12838
- }
12839
- onUpdate(newItem, workspaceTemp);
12840
- forceUpdate();
12841
- }
12842
12818
  function renderCustomSettings() {
12843
12819
  if (itemSelected) {
12844
12820
  var componentConfig = ComponentManager.getComponent(itemSelected.component);
@@ -12939,68 +12915,15 @@ var PanelEditItem = function PanelEditItem(_ref) {
12939
12915
  }, "config-item-".concat(key));
12940
12916
  }
12941
12917
  var hasCustomSettings = itemSelected && ((_ComponentManager$get = ComponentManager.getComponent(itemSelected.component)) === null || _ComponentManager$get === void 0 ? void 0 : _ComponentManager$get.userConfig);
12942
- return itemSelected && workspaceSelected && /*#__PURE__*/jsxs("div", {
12918
+ return itemSelected && workspaceSelected && /*#__PURE__*/jsx("div", {
12943
12919
  className: "flex flex-col flex-1 min-h-0 overflow-y-auto p-6 space-y-6",
12944
- children: [hasCustomSettings && /*#__PURE__*/jsxs("div", {
12920
+ children: hasCustomSettings && /*#__PURE__*/jsxs("div", {
12945
12921
  className: "flex flex-col space-y-3",
12946
12922
  children: [/*#__PURE__*/jsx(SubHeading3, {
12947
12923
  title: "Configuration",
12948
12924
  padding: false
12949
12925
  }), renderCustomSettings()]
12950
- }), providerRequirements.length > 0 && /*#__PURE__*/jsxs("div", {
12951
- className: "flex flex-col space-y-3",
12952
- children: [/*#__PURE__*/jsx(SubHeading3, {
12953
- title: "Providers",
12954
- padding: false
12955
- }), providerRequirements.map(function (req) {
12956
- var providerType = req.type;
12957
- var currentSelection = selectedProviders[providerType] || "";
12958
- var availableProviders = Object.entries(allProviders).filter(function (_ref2) {
12959
- var _ref3 = _slicedToArray(_ref2, 2),
12960
- p = _ref3[1];
12961
- return p.type === providerType;
12962
- }).map(function (_ref4) {
12963
- var _ref5 = _slicedToArray(_ref4, 2),
12964
- name = _ref5[0],
12965
- p = _ref5[1];
12966
- return _objectSpread$O({
12967
- name: name
12968
- }, p);
12969
- });
12970
- return /*#__PURE__*/jsxs("div", {
12971
- className: "flex flex-col space-y-1",
12972
- children: [/*#__PURE__*/jsxs("div", {
12973
- className: "flex items-center gap-1",
12974
- children: [/*#__PURE__*/jsx(FormLabel, {
12975
- title: providerType,
12976
- textSize: "text-sm"
12977
- }), req.required && /*#__PURE__*/jsx("span", {
12978
- className: "text-red-500 text-sm",
12979
- children: "*"
12980
- })]
12981
- }), /*#__PURE__*/jsxs(SelectMenu, {
12982
- name: "provider-".concat(providerType),
12983
- textSize: "text-sm",
12984
- selectedValue: currentSelection,
12985
- onChange: function onChange(e) {
12986
- return handleProviderChange(providerType, e.target.value);
12987
- },
12988
- children: [/*#__PURE__*/jsx("option", {
12989
- value: "",
12990
- children: "-- Select Provider --"
12991
- }), availableProviders.map(function (provider) {
12992
- return /*#__PURE__*/jsx("option", {
12993
- value: provider.name,
12994
- children: provider.name
12995
- }, provider.name);
12996
- })]
12997
- }), availableProviders.length === 0 && /*#__PURE__*/jsxs("span", {
12998
- className: "text-xs opacity-40",
12999
- children: ["No ", providerType, " providers configured"]
13000
- })]
13001
- }, providerType);
13002
- })]
13003
- })]
12926
+ })
13004
12927
  });
13005
12928
  };
13006
12929
 
@@ -13008,8 +12931,8 @@ var _excluded$6 = ["rows", "cols"];
13008
12931
  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; } } }; }
13009
12932
  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; } }
13010
12933
  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; }
13011
- 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; }
13012
- 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; }
12934
+ 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; }
12935
+ 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; }
13013
12936
  var defaultGrid = {
13014
12937
  rows: 1,
13015
12938
  cols: 1,
@@ -13030,7 +12953,7 @@ function GridEditor(_ref) {
13030
12953
  setGrid = _useState2[1];
13031
12954
  var addRow = function addRow() {
13032
12955
  var newRow = grid.rows;
13033
- var newGrid = _objectSpread$N(_objectSpread$N({}, grid), {}, {
12956
+ var newGrid = _objectSpread$O(_objectSpread$O({}, grid), {}, {
13034
12957
  rows: grid.rows + 1
13035
12958
  });
13036
12959
  for (var col = 0; col < grid.cols; col++) {
@@ -13045,7 +12968,7 @@ function GridEditor(_ref) {
13045
12968
  };
13046
12969
  var addColumn = function addColumn() {
13047
12970
  var newCol = grid.cols;
13048
- var newGrid = _objectSpread$N(_objectSpread$N({}, grid), {}, {
12971
+ var newGrid = _objectSpread$O(_objectSpread$O({}, grid), {}, {
13049
12972
  cols: grid.cols + 1
13050
12973
  });
13051
12974
  for (var row = 0; row < grid.rows; row++) {
@@ -13078,8 +13001,8 @@ function GridEditor(_ref) {
13078
13001
  });
13079
13002
  }
13080
13003
  if (grid[nextKey]) {
13081
- var newGrid = _objectSpread$N({}, grid);
13082
- newGrid[currentKey] = _objectSpread$N(_objectSpread$N({}, newGrid[currentKey]), {}, {
13004
+ var newGrid = _objectSpread$O({}, grid);
13005
+ newGrid[currentKey] = _objectSpread$O(_objectSpread$O({}, newGrid[currentKey]), {}, {
13083
13006
  colSpan: newGrid[currentKey].colSpan + 1
13084
13007
  });
13085
13008
  delete newGrid[nextKey];
@@ -13092,8 +13015,8 @@ function GridEditor(_ref) {
13092
13015
  var currentKey = "".concat(row, ".").concat(col);
13093
13016
  var belowKey = "".concat(row + 1, ".").concat(col);
13094
13017
  if (grid[belowKey]) {
13095
- var newGrid = _objectSpread$N({}, grid);
13096
- newGrid[currentKey] = _objectSpread$N(_objectSpread$N({}, newGrid[currentKey]), {}, {
13018
+ var newGrid = _objectSpread$O({}, grid);
13019
+ newGrid[currentKey] = _objectSpread$O(_objectSpread$O({}, newGrid[currentKey]), {}, {
13097
13020
  rowSpan: newGrid[currentKey].rowSpan + 1
13098
13021
  });
13099
13022
  delete newGrid[belowKey];
@@ -13110,7 +13033,7 @@ function GridEditor(_ref) {
13110
13033
  var splitCell = function splitCell(row, col) {
13111
13034
  var key = "".concat(row, ".").concat(col);
13112
13035
  var cell = grid[key];
13113
- var newGrid = _objectSpread$N({}, grid);
13036
+ var newGrid = _objectSpread$O({}, grid);
13114
13037
 
13115
13038
  // we have to check the colspan, and since the colspan is greater than 1
13116
13039
  // Only handle horizontal split if colSpan > 1
@@ -13126,13 +13049,13 @@ function GridEditor(_ref) {
13126
13049
  var oldKey = "".concat(row, ".").concat(c);
13127
13050
  var newKey = "".concat(row, ".").concat(c + 1);
13128
13051
  if (newGrid[oldKey]) {
13129
- newGrid[newKey] = _objectSpread$N({}, newGrid[oldKey]);
13052
+ newGrid[newKey] = _objectSpread$O({}, newGrid[oldKey]);
13130
13053
  delete newGrid[oldKey];
13131
13054
  }
13132
13055
  }
13133
13056
 
13134
13057
  // Update the original cell's colSpan
13135
- newGrid[key] = _objectSpread$N(_objectSpread$N({}, cell), {}, {
13058
+ newGrid[key] = _objectSpread$O(_objectSpread$O({}, cell), {}, {
13136
13059
  colSpan: cell.colSpan - 1
13137
13060
  });
13138
13061
 
@@ -13144,7 +13067,7 @@ function GridEditor(_ref) {
13144
13067
  };
13145
13068
  }
13146
13069
  if (cell.rowSpan > 1) {
13147
- newGrid[key] = _objectSpread$N(_objectSpread$N({}, newGrid[key]), {}, {
13070
+ newGrid[key] = _objectSpread$O(_objectSpread$O({}, newGrid[key]), {}, {
13148
13071
  rowSpan: cell.rowSpan - 1
13149
13072
  });
13150
13073
  newGrid["".concat(row + 1, ".").concat(col)] = {
@@ -13263,7 +13186,7 @@ function GridEditor(_ref) {
13263
13186
  var fromKey = "".concat(from.row, ".").concat(from.col);
13264
13187
  var toKey = "".concat(to.row, ".").concat(to.col);
13265
13188
  if (fromKey === toKey) return;
13266
- var newGrid = _objectSpread$N({}, grid);
13189
+ var newGrid = _objectSpread$O({}, grid);
13267
13190
 
13268
13191
  // Swap the cells
13269
13192
  var temp = newGrid[fromKey];
@@ -13289,7 +13212,7 @@ function GridEditor(_ref) {
13289
13212
  // console.log("Grid updated:", sequencedGrid);
13290
13213
  }
13291
13214
  function resetGridLayout() {
13292
- var newGrid = _objectSpread$N({}, defaultGrid);
13215
+ var newGrid = _objectSpread$O({}, defaultGrid);
13293
13216
  setGrid(newGrid);
13294
13217
  onUpdate(newGrid);
13295
13218
  }
@@ -13567,8 +13490,8 @@ var PanelEditItemGrid = function PanelEditItemGrid(_ref) {
13567
13490
  });
13568
13491
  };
13569
13492
 
13570
- 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; }
13571
- 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; }
13493
+ 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; }
13494
+ 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; }
13572
13495
  var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
13573
13496
  var item = _ref.item;
13574
13497
  _ref.workspace;
@@ -13591,7 +13514,7 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
13591
13514
  }, [widgetUuid, notificationDefs.length]);
13592
13515
  function handleNotifToggle(typeKey, value) {
13593
13516
  var _window$mainApi2;
13594
- var updated = _objectSpread$M(_objectSpread$M({}, notifPrefs), {}, _defineProperty({}, typeKey, value));
13517
+ var updated = _objectSpread$N(_objectSpread$N({}, notifPrefs), {}, _defineProperty({}, typeKey, value));
13595
13518
  setNotifPrefs(updated);
13596
13519
  if ((_window$mainApi2 = window.mainApi) !== null && _window$mainApi2 !== void 0 && (_window$mainApi2 = _window$mainApi2.notifications) !== null && _window$mainApi2 !== void 0 && _window$mainApi2.setPreferences && widgetUuid) {
13597
13520
  window.mainApi.notifications.setPreferences(widgetUuid, _defineProperty({}, typeKey, value));
@@ -13636,8 +13559,8 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
13636
13559
  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; } } }; }
13637
13560
  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; } }
13638
13561
  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; }
13639
- 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; }
13640
- 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; }
13562
+ 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; }
13563
+ 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; }
13641
13564
  var DAYS = [{
13642
13565
  key: "mon",
13643
13566
  label: "Mon"
@@ -13738,7 +13661,7 @@ function TaskScheduleEditor(_ref) {
13738
13661
  var _window$mainApi;
13739
13662
  var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
13740
13663
  if (!((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && (_window$mainApi = _window$mainApi.scheduler) !== null && _window$mainApi !== void 0 && _window$mainApi.registerTask)) return;
13741
- var payload = _objectSpread$L({
13664
+ var payload = _objectSpread$M({
13742
13665
  widgetId: widgetId,
13743
13666
  widgetName: widgetName,
13744
13667
  workspaceId: workspaceId || "",
@@ -14359,11 +14282,147 @@ var PanelEditItemHandlers = function PanelEditItemHandlers(_ref) {
14359
14282
  });
14360
14283
  };
14361
14284
 
14285
+ var getUserConfigurableProviders = function getUserConfigurableProviders(providers) {
14286
+ if (!providers) return [];
14287
+ return providers.filter(function (p) {
14288
+ return p.providerClass !== "api";
14289
+ });
14290
+ };
14291
+
14292
+ 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; }
14293
+ 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; }
14294
+ var PanelEditItemProviders = function PanelEditItemProviders(_ref) {
14295
+ var workspace = _ref.workspace,
14296
+ onUpdate = _ref.onUpdate,
14297
+ _ref$item = _ref.item,
14298
+ item = _ref$item === void 0 ? null : _ref$item;
14299
+ var appCtx = useContext(AppContext);
14300
+ var appProviders = (appCtx === null || appCtx === void 0 ? void 0 : appCtx.providers) || {};
14301
+ var _useState = useState(item),
14302
+ _useState2 = _slicedToArray(_useState, 2),
14303
+ itemSelected = _useState2[0],
14304
+ setItemSelected = _useState2[1];
14305
+ var _useState3 = useState(workspace),
14306
+ _useState4 = _slicedToArray(_useState3, 2),
14307
+ workspaceSelected = _useState4[0],
14308
+ setWorkspaceSelected = _useState4[1];
14309
+ useEffect(function () {
14310
+ if (!deepEqual$1(item, itemSelected)) setItemSelected(function () {
14311
+ return item;
14312
+ });
14313
+ if (!deepEqual$1(workspace, workspaceSelected)) setWorkspaceSelected(function () {
14314
+ return workspace;
14315
+ });
14316
+ // eslint-disable-next-line react-hooks/exhaustive-deps
14317
+ }, [workspace, item]);
14318
+ if (!itemSelected || !workspaceSelected) return null;
14319
+ var widgetConfig = ComponentManager.config(itemSelected.component, itemSelected);
14320
+ 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 : [];
14321
+ var providerRequirements = getUserConfigurableProviders(declaredProviders);
14322
+ var selectedProviders = itemSelected.selectedProviders || {};
14323
+ function handleProviderChange(providerType, providerName) {
14324
+ var updatedItem = deepCopy(itemSelected);
14325
+ var nextProviders = _objectSpread$L({}, updatedItem.selectedProviders || {});
14326
+ if (providerName) {
14327
+ nextProviders[providerType] = providerName;
14328
+ } else {
14329
+ delete nextProviders[providerType];
14330
+ }
14331
+ updatedItem.selectedProviders = nextProviders;
14332
+ var updatedWorkspace = deepCopy(workspaceSelected);
14333
+ updatedWorkspace.layout = replaceItemInLayout(updatedWorkspace.layout, updatedItem.id, updatedItem);
14334
+ setItemSelected(function () {
14335
+ return updatedItem;
14336
+ });
14337
+ setWorkspaceSelected(function () {
14338
+ return updatedWorkspace;
14339
+ });
14340
+ onUpdate(updatedItem, updatedWorkspace);
14341
+ }
14342
+ if (providerRequirements.length === 0) {
14343
+ return /*#__PURE__*/jsx("div", {
14344
+ className: "flex items-center justify-center h-full text-sm opacity-60 text-center px-6",
14345
+ children: "This widget doesn't declare any providers."
14346
+ });
14347
+ }
14348
+ return /*#__PURE__*/jsxs("div", {
14349
+ className: "flex flex-col flex-1 min-h-0 overflow-y-auto p-6 space-y-4",
14350
+ children: [/*#__PURE__*/jsx("div", {
14351
+ className: "text-sm opacity-70",
14352
+ children: "Bind each required provider so the widget can connect to its data source. Changes save immediately."
14353
+ }), /*#__PURE__*/jsx("div", {
14354
+ className: "space-y-3",
14355
+ children: providerRequirements.map(function (req) {
14356
+ var type = req.type;
14357
+ var current = selectedProviders[type] || "";
14358
+ var options = Object.entries(appProviders).filter(function (_ref2) {
14359
+ var _ref3 = _slicedToArray(_ref2, 2),
14360
+ p = _ref3[1];
14361
+ return p && p.type === type;
14362
+ }).map(function (_ref4) {
14363
+ var _ref5 = _slicedToArray(_ref4, 2),
14364
+ name = _ref5[0],
14365
+ p = _ref5[1];
14366
+ return _objectSpread$L({
14367
+ name: name
14368
+ }, p);
14369
+ });
14370
+ var isConfigured = !!current;
14371
+ var isMissing = req.required && !isConfigured;
14372
+ return /*#__PURE__*/jsxs("div", {
14373
+ className: "rounded border px-3 py-2 ".concat(isMissing ? "bg-red-900 border-red-500" : "bg-gray-800 border-gray-700"),
14374
+ children: [/*#__PURE__*/jsxs("div", {
14375
+ className: "flex items-center gap-2",
14376
+ children: [/*#__PURE__*/jsx("span", {
14377
+ className: "text-sm font-medium ".concat(isMissing ? "text-red-100" : "text-gray-100"),
14378
+ children: type
14379
+ }), /*#__PURE__*/jsx("span", {
14380
+ 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"),
14381
+ children: req.required ? "required" : "optional"
14382
+ })]
14383
+ }), req.description && /*#__PURE__*/jsx("div", {
14384
+ className: "text-xs opacity-60 mt-1",
14385
+ children: req.description
14386
+ }), /*#__PURE__*/jsxs("div", {
14387
+ className: "mt-2",
14388
+ children: [/*#__PURE__*/jsxs("select", {
14389
+ value: current,
14390
+ onChange: function onChange(e) {
14391
+ return handleProviderChange(type, e.target.value);
14392
+ },
14393
+ className: "w-full bg-gray-900 border rounded px-2 py-1.5 text-sm ".concat(isMissing ? "border-red-500" : "border-gray-700"),
14394
+ children: [/*#__PURE__*/jsx("option", {
14395
+ value: "",
14396
+ children: req.required ? "— select a provider —" : "— none —"
14397
+ }), options.map(function (opt) {
14398
+ return /*#__PURE__*/jsx("option", {
14399
+ value: opt.name,
14400
+ children: opt.name
14401
+ }, opt.name);
14402
+ })]
14403
+ }), options.length === 0 && /*#__PURE__*/jsxs("div", {
14404
+ className: "mt-1 text-[11px] text-amber-300",
14405
+ children: ["No ", type, " providers configured. Add one in Settings > Providers."]
14406
+ })]
14407
+ })]
14408
+ }, type);
14409
+ })
14410
+ })]
14411
+ });
14412
+ };
14413
+
14362
14414
  var getSections = function getSections(item) {
14363
14415
  var _widgetConfig$notific, _widgetConfig$schedul;
14364
14416
  var widgetConfig = item ? ComponentManager.config(item.component, item) : null;
14365
14417
  var hasNotifications = (widgetConfig === null || widgetConfig === void 0 || (_widgetConfig$notific = widgetConfig.notifications) === null || _widgetConfig$notific === void 0 ? void 0 : _widgetConfig$notific.length) > 0;
14366
14418
  var hasScheduledTasks = (widgetConfig === null || widgetConfig === void 0 || (_widgetConfig$schedul = widgetConfig.scheduledTasks) === null || _widgetConfig$schedul === void 0 ? void 0 : _widgetConfig$schedul.length) > 0;
14419
+ // Show the Providers section whenever the widget declares any
14420
+ // user-configurable providers. Previously provider selection lived
14421
+ // inline in the card header dropdown; this moves it into the
14422
+ // widget config modal so the header stays uncluttered and there's
14423
+ // room for richer per-provider UX.
14424
+ 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 : [];
14425
+ var userConfigurableProviders = getUserConfigurableProviders(declaredProviders);
14367
14426
  return [{
14368
14427
  key: "edit",
14369
14428
  label: "Settings",
@@ -14384,6 +14443,10 @@ var getSections = function getSections(item) {
14384
14443
  key: "handlers",
14385
14444
  label: "Listeners",
14386
14445
  icon: "phone"
14446
+ }] : []), _toConsumableArray(userConfigurableProviders.length > 0 ? [{
14447
+ key: "providers",
14448
+ label: "Providers",
14449
+ icon: "plug"
14387
14450
  }] : []), [{
14388
14451
  key: "code",
14389
14452
  label: "Code",
@@ -14506,6 +14569,10 @@ var LayoutBuilderConfigModal = function LayoutBuilderConfigModal(_ref) {
14506
14569
  item: itemSelected,
14507
14570
  onUpdate: handleEditChange,
14508
14571
  workspace: workspaceSelected
14572
+ }), activeSection === "providers" && /*#__PURE__*/jsx(PanelEditItemProviders, {
14573
+ item: itemSelected,
14574
+ onUpdate: handleEditChange,
14575
+ workspace: workspaceSelected
14509
14576
  }), activeSection === "code" && /*#__PURE__*/jsx(PanelCode, {
14510
14577
  item: itemSelected,
14511
14578
  onUpdate: handleEditChange,
@@ -16821,13 +16888,6 @@ function mcpJsonToFormState(jsonString, nextRowId) {
16821
16888
  return result;
16822
16889
  }
16823
16890
 
16824
- var getUserConfigurableProviders = function getUserConfigurableProviders(providers) {
16825
- if (!providers) return [];
16826
- return providers.filter(function (p) {
16827
- return p.providerClass !== "api";
16828
- });
16829
- };
16830
-
16831
16891
  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; } } }; }
16832
16892
  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; } }
16833
16893
  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; }
@@ -18701,13 +18761,12 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
18701
18761
  var item = _ref.item,
18702
18762
  widget = _ref.widget,
18703
18763
  _ref$cellNumber = _ref.cellNumber,
18704
- cellNumber = _ref$cellNumber === void 0 ? null : _ref$cellNumber,
18705
- _ref$providers = _ref.providers,
18706
- providers = _ref$providers === void 0 ? [] : _ref$providers,
18707
- _ref$selectedProvider = _ref.selectedProviders,
18708
- selectedProviders = _ref$selectedProvider === void 0 ? {} : _ref$selectedProvider,
18709
- onProviderChange = _ref.onProviderChange,
18710
- onConfigure = _ref.onConfigure,
18764
+ cellNumber = _ref$cellNumber === void 0 ? null : _ref$cellNumber;
18765
+ _ref.providers;
18766
+ var _ref$selectedProvider = _ref.selectedProviders,
18767
+ selectedProviders = _ref$selectedProvider === void 0 ? {} : _ref$selectedProvider;
18768
+ _ref.onProviderChange;
18769
+ var onConfigure = _ref.onConfigure,
18711
18770
  onDelete = _ref.onDelete,
18712
18771
  onRemove = _ref.onRemove,
18713
18772
  _ref$onSplitHorizonta = _ref.onSplitHorizontal,
@@ -18761,29 +18820,13 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
18761
18820
  };
18762
18821
  var providerRequirements = getProviderRequirements();
18763
18822
 
18764
- // Get providers filtered by type
18765
- var getProvidersForType = function getProvidersForType(type) {
18766
- return providers.filter(function (p) {
18767
- return p.type === type;
18768
- });
18769
- };
18770
-
18771
- // Check if provider is configured
18823
+ // Check if provider is configured — used only for the amber-dot
18824
+ // indicator now. Actual provider editing lives in the config
18825
+ // modal's Providers section (opened via the "Providers" menu item).
18772
18826
  var isProviderConfigured = function isProviderConfigured(providerType) {
18773
18827
  return selectedProviders[providerType] != null;
18774
18828
  };
18775
18829
 
18776
- // Handle provider selection
18777
- var handleProviderSelect = function handleProviderSelect(providerType, providerId) {
18778
- if (providerId === "_new") {
18779
- onProviderChange(providerType, null, true); // true = create new
18780
- } else if (providerId === "_unset") {
18781
- onProviderChange(providerType, null, false); // unset — no provider
18782
- } else {
18783
- onProviderChange(providerType, providerId);
18784
- }
18785
- };
18786
-
18787
18830
  // True when any required provider lacks a selection — drives the
18788
18831
  // amber dot on the overflow button so the user can see unresolved
18789
18832
  // state at a glance without opening the menu.
@@ -18791,8 +18834,12 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
18791
18834
  return req.required && !isProviderConfigured(req.type);
18792
18835
  });
18793
18836
 
18794
- // Build overflow actions list — single source of truth for both
18795
- // the dropdown items and any future quick-access surface.
18837
+ // Build overflow actions list — single source of truth for the
18838
+ // dropdown items. Provider editing used to live inline in this
18839
+ // menu as dropdowns per provider; that's moved to the widget
18840
+ // config modal under a "Providers" section, so here we just show
18841
+ // a "Providers" entry (when the widget declares any) that opens
18842
+ // the modal pre-selected on that section.
18796
18843
  var overflowActions = [];
18797
18844
  if (onConfigure) {
18798
18845
  overflowActions.push({
@@ -18804,6 +18851,27 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
18804
18851
  }
18805
18852
  });
18806
18853
  }
18854
+ if (onConfigure && providerRequirements.length > 0) {
18855
+ overflowActions.push({
18856
+ icon: "plug",
18857
+ label: "Providers",
18858
+ badge: hasUnresolvedRequiredProvider ? "!" : null,
18859
+ onClick: function onClick() {
18860
+ onConfigure(widgetItem, "providers");
18861
+ setShowOverflowMenu(false);
18862
+ }
18863
+ });
18864
+ }
18865
+ if (onConfigure) {
18866
+ overflowActions.push({
18867
+ icon: "phone",
18868
+ label: "Listeners",
18869
+ onClick: function onClick() {
18870
+ onConfigure(widgetItem, "handlers");
18871
+ setShowOverflowMenu(false);
18872
+ }
18873
+ });
18874
+ }
18807
18875
  if (onEditWithAI && widgetItem) {
18808
18876
  overflowActions.push({
18809
18877
  icon: "wand-magic-sparkles",
@@ -18898,7 +18966,7 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
18898
18966
  className: "absolute top-1 right-1 h-2 w-2 rounded-full bg-amber-400 border border-black pointer-events-none",
18899
18967
  title: "Required provider not set"
18900
18968
  })]
18901
- }), /*#__PURE__*/jsxs(DropdownPanel, {
18969
+ }), /*#__PURE__*/jsx(DropdownPanel, {
18902
18970
  isOpen: showOverflowMenu,
18903
18971
  onClose: function onClose() {
18904
18972
  return setShowOverflowMenu(false);
@@ -18906,71 +18974,21 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
18906
18974
  position: "absolute top-full right-0 mt-1",
18907
18975
  portal: true,
18908
18976
  align: "right",
18909
- children: [providerRequirements.length > 0 && /*#__PURE__*/jsxs(Fragment, {
18910
- children: [/*#__PURE__*/jsx(DropdownPanel.Header, {
18911
- children: "Providers"
18912
- }), providerRequirements.map(function (providerReq) {
18913
- var providerType = providerReq.type;
18914
- var availableProviders = getProvidersForType(providerType);
18915
- var selectedProviderId = selectedProviders[providerType] || "";
18916
- var isConfigured = isProviderConfigured(providerType);
18917
- return /*#__PURE__*/jsxs("div", {
18918
- className: "px-3 py-2 text-xs",
18919
- onClick: function onClick(e) {
18920
- return e.stopPropagation();
18921
- },
18922
- children: [/*#__PURE__*/jsxs("div", {
18923
- className: "flex items-center gap-2 mb-1",
18924
- children: [/*#__PURE__*/jsx("span", {
18925
- className: "font-medium text-gray-200",
18926
- children: providerType
18927
- }), providerReq.required && !isConfigured && /*#__PURE__*/jsx("span", {
18928
- className: "text-[10px] text-amber-300 uppercase tracking-wide",
18929
- children: "required"
18930
- })]
18931
- }), /*#__PURE__*/jsxs("select", {
18932
- value: selectedProviderId,
18933
- onChange: function onChange(e) {
18934
- var v = e.target.value;
18935
- if (v === "_new") {
18936
- handleProviderSelect(providerType, "_new");
18937
- } else if (v === "") {
18938
- handleProviderSelect(providerType, "_unset");
18939
- } else {
18940
- handleProviderSelect(providerType, v);
18941
- }
18942
- },
18943
- className: "w-full bg-gray-800 border border-gray-700 text-gray-100 text-xs rounded px-2 py-1",
18944
- children: [/*#__PURE__*/jsx("option", {
18945
- value: "",
18946
- children: providerReq.required ? "— select provider —" : "— none —"
18947
- }), availableProviders.map(function (provider) {
18948
- return /*#__PURE__*/jsx("option", {
18949
- value: provider.id,
18950
- children: provider.name
18951
- }, provider.id);
18952
- }), /*#__PURE__*/jsx("option", {
18953
- value: "_new",
18954
- children: "+ Create new\u2026"
18955
- })]
18956
- })]
18957
- }, providerType);
18958
- }), overflowActions.length > 0 && /*#__PURE__*/jsx(DropdownPanel.Divider, {})]
18959
- }), overflowActions.length > 0 && /*#__PURE__*/jsxs(Fragment, {
18960
- children: [/*#__PURE__*/jsx(DropdownPanel.Header, {
18961
- children: "Actions"
18962
- }), overflowActions.map(function (action) {
18963
- return /*#__PURE__*/jsxs(MenuItem2, {
18964
- onClick: action.onClick,
18965
- children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
18966
- icon: action.icon,
18967
- className: "w-4 text-center opacity-60"
18968
- }), /*#__PURE__*/jsx("span", {
18969
- children: action.label
18970
- })]
18971
- }, action.label);
18972
- })]
18973
- })]
18977
+ children: overflowActions.map(function (action) {
18978
+ return /*#__PURE__*/jsxs(MenuItem2, {
18979
+ onClick: action.onClick,
18980
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
18981
+ icon: action.icon,
18982
+ className: "w-4 text-center opacity-60"
18983
+ }), /*#__PURE__*/jsx("span", {
18984
+ className: "flex-1",
18985
+ children: action.label
18986
+ }), action.badge && /*#__PURE__*/jsx("span", {
18987
+ className: "ml-auto text-[10px] font-bold text-amber-300",
18988
+ children: action.badge
18989
+ })]
18990
+ }, action.label);
18991
+ })
18974
18992
  })]
18975
18993
  })]
18976
18994
  });
@@ -22300,8 +22318,8 @@ var WidgetContainerGridItem = function WidgetContainerGridItem(_ref) {
22300
22318
  function handleChangeOrder(direction) {
22301
22319
  onChangeOrder(item, direction);
22302
22320
  }
22303
- function handleOpenConfig() {
22304
- onOpenConfig(item);
22321
+ function handleOpenConfig(widgetItem, section) {
22322
+ onOpenConfig(item, section);
22305
22323
  }
22306
22324
  function handleProviderChange(providerType, providerId) {
22307
22325
  var createNew = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
@@ -22608,8 +22626,8 @@ var LayoutBuilderGridItem = function LayoutBuilderGridItem(_ref) {
22608
22626
  function handleChangeOrder(direction) {
22609
22627
  onChangeOrder(item, direction);
22610
22628
  }
22611
- function handleOpenConfig() {
22612
- onOpenConfig(item);
22629
+ function handleOpenConfig(widgetItem, section) {
22630
+ onOpenConfig(item, section);
22613
22631
  }
22614
22632
  function renderArrows() {
22615
22633
  return preview === false && /*#__PURE__*/jsx("div", {
@@ -25546,8 +25564,8 @@ var LayoutGridContainer = /*#__PURE__*/memo(function (_ref3) {
25546
25564
  }
25547
25565
  }
25548
25566
  } : undefined,
25549
- onConfigure: cellComponent ? function () {
25550
- if (onOpenConfig) onOpenConfig(cellComponent);
25567
+ onConfigure: cellComponent ? function (widgetItem, section) {
25568
+ if (onOpenConfig) onOpenConfig(cellComponent, section);
25551
25569
  } : undefined,
25552
25570
  onDelete: cellComponent ? function () {
25553
25571
  if (onClickRemove) onClickRemove(cellComponent.id);
@@ -60144,5 +60162,5 @@ function MarkdownFormEditor(_ref8) {
60144
60162
 
60145
60163
  ComponentManager.registerContainerTypes(LayoutContainer, LayoutGridContainer);
60146
60164
 
60147
- 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 };
60165
+ 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 };
60148
60166
  //# sourceMappingURL=index.esm.js.map