@trops/dash-core 0.1.123 → 0.1.125

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
@@ -13170,6 +13170,13 @@ function mcpJsonToFormState(jsonString, nextRowId) {
13170
13170
  return result;
13171
13171
  }
13172
13172
 
13173
+ var getUserConfigurableProviders = function getUserConfigurableProviders(providers) {
13174
+ if (!providers) return [];
13175
+ return providers.filter(function (p) {
13176
+ return p.providerClass !== "api";
13177
+ });
13178
+ };
13179
+
13173
13180
  function _createForOfIteratorHelper$8(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$8(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
13174
13181
  function _unsupportedIterableToArray$8(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$8(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$8(r, a) : void 0; } }
13175
13182
  function _arrayLikeToArray$8(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
@@ -13530,8 +13537,9 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
13530
13537
  var providers = new Set();
13531
13538
  providers.add("none"); // For widgets without providers
13532
13539
  widgets.forEach(function (widget) {
13533
- if (widget.providers && widget.providers.length > 0) {
13534
- widget.providers.forEach(function (provider) {
13540
+ var configurable = getUserConfigurableProviders(widget.providers);
13541
+ if (configurable.length > 0) {
13542
+ configurable.forEach(function (provider) {
13535
13543
  providers.add(provider.type);
13536
13544
  });
13537
13545
  }
@@ -13556,9 +13564,9 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
13556
13564
  var matchesProvider = true;
13557
13565
  if (selectedProvider !== "all") {
13558
13566
  if (selectedProvider === "none") {
13559
- matchesProvider = !widget.providers || widget.providers.length === 0;
13567
+ matchesProvider = getUserConfigurableProviders(widget.providers).length === 0;
13560
13568
  } else {
13561
- matchesProvider = widget.providers && widget.providers.some(function (p) {
13569
+ matchesProvider = getUserConfigurableProviders(widget.providers).some(function (p) {
13562
13570
  return p.type === selectedProvider;
13563
13571
  });
13564
13572
  }
@@ -13985,7 +13993,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
13985
13993
  }
13986
13994
 
13987
13995
  // Check providers: all required providers must be selected
13988
- var hasRequiredProviders = selectedWidget.providers ? selectedWidget.providers.filter(function (p) {
13996
+ var hasRequiredProviders = selectedWidget.providers ? getUserConfigurableProviders(selectedWidget.providers).filter(function (p) {
13989
13997
  return p.required === true;
13990
13998
  }).every(function (p) {
13991
13999
  return selectedProviders[p.type] && selectedProviders[p.type] !== "";
@@ -14107,7 +14115,6 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14107
14115
  })
14108
14116
  })
14109
14117
  }), expandedPackages.has(group.name) && group.widgets.map(function (widget) {
14110
- var _widget$providers;
14111
14118
  return /*#__PURE__*/jsx(MenuItem3, {
14112
14119
  onClick: function onClick() {
14113
14120
  return handleWidgetSelect(widget);
@@ -14127,9 +14134,9 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14127
14134
  }), widget.description && /*#__PURE__*/jsx("div", {
14128
14135
  className: "text-xs opacity-50 truncate",
14129
14136
  children: widget.description
14130
- }), ((_widget$providers = widget.providers) === null || _widget$providers === void 0 ? void 0 : _widget$providers.length) > 0 && /*#__PURE__*/jsx("div", {
14137
+ }), getUserConfigurableProviders(widget.providers).length > 0 && /*#__PURE__*/jsx("div", {
14131
14138
  className: "flex flex-wrap gap-1 mt-0.5",
14132
- children: widget.providers.map(function (p) {
14139
+ children: getUserConfigurableProviders(widget.providers).map(function (p) {
14133
14140
  return /*#__PURE__*/jsx("span", {
14134
14141
  className: "text-[10px] px-1.5 py-0.5 rounded bg-blue-500/20 text-blue-300",
14135
14142
  children: p.type
@@ -14151,7 +14158,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14151
14158
  padding: true,
14152
14159
  height: "h-full",
14153
14160
  children: filteredWidgets.map(function (widget) {
14154
- var _widget$providers2;
14161
+ var _widget$providers;
14155
14162
  return /*#__PURE__*/jsx(MenuItem3, {
14156
14163
  onClick: function onClick() {
14157
14164
  return handleWidgetSelect(widget);
@@ -14171,7 +14178,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14171
14178
  }), widget.description && /*#__PURE__*/jsx("div", {
14172
14179
  className: "text-xs opacity-50 truncate",
14173
14180
  children: widget.description
14174
- }), ((_widget$providers2 = widget.providers) === null || _widget$providers2 === void 0 ? void 0 : _widget$providers2.length) > 0 && /*#__PURE__*/jsx("div", {
14181
+ }), ((_widget$providers = widget.providers) === null || _widget$providers === void 0 ? void 0 : _widget$providers.length) > 0 && /*#__PURE__*/jsx("div", {
14175
14182
  className: "flex flex-wrap gap-1 mt-0.5",
14176
14183
  children: widget.providers.map(function (p) {
14177
14184
  return /*#__PURE__*/jsx("span", {
@@ -14259,9 +14266,9 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14259
14266
  }), w.description && /*#__PURE__*/jsx("div", {
14260
14267
  className: "text-xs text-gray-400 mt-0.5",
14261
14268
  children: w.description
14262
- }), w.providers && w.providers.length > 0 && /*#__PURE__*/jsx("div", {
14269
+ }), getUserConfigurableProviders(w.providers).length > 0 && /*#__PURE__*/jsx("div", {
14263
14270
  className: "flex gap-1 mt-1",
14264
- children: w.providers.map(function (p, pidx) {
14271
+ children: getUserConfigurableProviders(w.providers).map(function (p, pidx) {
14265
14272
  return /*#__PURE__*/jsxs("span", {
14266
14273
  className: "text-xs px-1.5 py-0.5 rounded bg-blue-900/30 text-blue-400",
14267
14274
  children: [p.type, p.required ? " *" : ""]
@@ -14467,7 +14474,6 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14467
14474
  children: groupedInstalledWidgets[groupName].length
14468
14475
  })]
14469
14476
  }), expandedGroups.has(groupName) && groupedInstalledWidgets[groupName].map(function (widget) {
14470
- var _widget$providers3;
14471
14477
  return /*#__PURE__*/jsx(MenuItem3, {
14472
14478
  onClick: function onClick() {
14473
14479
  return handleWidgetSelect(widget);
@@ -14487,9 +14493,9 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14487
14493
  }), widget.description && /*#__PURE__*/jsx("div", {
14488
14494
  className: "text-xs opacity-50 truncate",
14489
14495
  children: widget.description
14490
- }), ((_widget$providers3 = widget.providers) === null || _widget$providers3 === void 0 ? void 0 : _widget$providers3.length) > 0 && /*#__PURE__*/jsx("div", {
14496
+ }), getUserConfigurableProviders(widget.providers).length > 0 && /*#__PURE__*/jsx("div", {
14491
14497
  className: "flex flex-wrap gap-1 mt-0.5",
14492
- children: widget.providers.map(function (p) {
14498
+ children: getUserConfigurableProviders(widget.providers).map(function (p) {
14493
14499
  return /*#__PURE__*/jsx("span", {
14494
14500
  className: "text-[10px] px-1.5 py-0.5 rounded bg-blue-500/20 text-blue-300",
14495
14501
  children: p.type
@@ -14547,7 +14553,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14547
14553
  className: "text-sm",
14548
14554
  children: selectedWidget.description
14549
14555
  })
14550
- }), selectedWidget.providers && selectedWidget.providers.length > 0 && /*#__PURE__*/jsxs("div", {
14556
+ }), getUserConfigurableProviders(selectedWidget.providers).length > 0 && /*#__PURE__*/jsxs("div", {
14551
14557
  className: "mb-2",
14552
14558
  children: [/*#__PURE__*/jsx(Paragraph, {
14553
14559
  padding: false,
@@ -14555,7 +14561,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14555
14561
  children: "REQUIRED PROVIDERS"
14556
14562
  }), /*#__PURE__*/jsx("div", {
14557
14563
  className: "space-y-2",
14558
- children: selectedWidget.providers.map(function (providerReq, idx) {
14564
+ children: getUserConfigurableProviders(selectedWidget.providers).map(function (providerReq, idx) {
14559
14565
  var _inlineCatalogEntry$m, _inlineCatalogEntry$m2, _inlineCatalogEntry$m3, _inlineCatalogEntry$m4, _inlineCatalogEntry$m5, _inlineTestResult$too;
14560
14566
  // Get available providers of this type
14561
14567
  var providersOfType = Object.values(availableProviders).filter(function (p) {
@@ -32975,15 +32981,11 @@ var DashboardsSection = function DashboardsSection(_ref) {
32975
32981
  _useState10 = _slicedToArray(_useState1, 2),
32976
32982
  viewMode = _useState10[0],
32977
32983
  setViewMode = _useState10[1];
32978
- // null | "marketplace" | "import-result"
32984
+ // null | "marketplace"
32979
32985
  var _useState11 = useState(null),
32980
32986
  _useState12 = _slicedToArray(_useState11, 2),
32981
32987
  installMode = _useState12[0],
32982
32988
  setInstallMode = _useState12[1];
32983
- var _useState13 = useState(null),
32984
- _useState14 = _slicedToArray(_useState13, 2),
32985
- importResult = _useState14[0],
32986
- setImportResult = _useState14[1];
32987
32989
  var appId = credentials === null || credentials === void 0 ? void 0 : credentials.appId;
32988
32990
  var _useContext = useContext(ThemeContext),
32989
32991
  currentTheme = _useContext.currentTheme;
@@ -33070,7 +33072,6 @@ var DashboardsSection = function DashboardsSection(_ref) {
33070
33072
  if (createRequested && !prevCreateRequested.current) {
33071
33073
  setSelectedId(null);
33072
33074
  setInstallMode("marketplace");
33073
- setImportResult(null);
33074
33075
  }
33075
33076
  prevCreateRequested.current = createRequested;
33076
33077
  if (createRequested && onCreateAcknowledged) {
@@ -33078,69 +33079,6 @@ var DashboardsSection = function DashboardsSection(_ref) {
33078
33079
  }
33079
33080
  // eslint-disable-next-line react-hooks/exhaustive-deps
33080
33081
  }, [createRequested]);
33081
- function handleImport() {
33082
- return _handleImport.apply(this, arguments);
33083
- }
33084
- function _handleImport() {
33085
- _handleImport = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
33086
- var result, _result$workspace, _t;
33087
- return _regeneratorRuntime.wrap(function (_context) {
33088
- while (1) switch (_context.prev = _context.next) {
33089
- case 0:
33090
- if (appId) {
33091
- _context.next = 1;
33092
- break;
33093
- }
33094
- return _context.abrupt("return");
33095
- case 1:
33096
- setInstallMode("import-result");
33097
- setImportResult({
33098
- status: "loading",
33099
- message: "Importing dashboard..."
33100
- });
33101
- _context.prev = 2;
33102
- _context.next = 3;
33103
- return window.mainApi.dashboardConfig.importDashboardConfig(appId);
33104
- case 3:
33105
- result = _context.sent;
33106
- if (!(!result || result.canceled)) {
33107
- _context.next = 4;
33108
- break;
33109
- }
33110
- // User cancelled the file picker
33111
- setInstallMode(null);
33112
- setImportResult(null);
33113
- return _context.abrupt("return");
33114
- case 4:
33115
- if (result.success) {
33116
- setImportResult({
33117
- status: "success",
33118
- message: "Dashboard \"".concat(((_result$workspace = result.workspace) === null || _result$workspace === void 0 ? void 0 : _result$workspace.name) || "Untitled", "\" imported successfully.")
33119
- });
33120
- onReloadWorkspaces && onReloadWorkspaces();
33121
- } else {
33122
- setImportResult({
33123
- status: "error",
33124
- message: result.error || "Import failed."
33125
- });
33126
- }
33127
- _context.next = 6;
33128
- break;
33129
- case 5:
33130
- _context.prev = 5;
33131
- _t = _context["catch"](2);
33132
- setImportResult({
33133
- status: "error",
33134
- message: _t.message || "Failed to import dashboard."
33135
- });
33136
- case 6:
33137
- case "end":
33138
- return _context.stop();
33139
- }
33140
- }, _callee, null, [[2, 5]]);
33141
- }));
33142
- return _handleImport.apply(this, arguments);
33143
- }
33144
33082
  var selectedWorkspace = workspaces.find(function (ws) {
33145
33083
  return ws.id === selectedId;
33146
33084
  });
@@ -33156,7 +33094,6 @@ var DashboardsSection = function DashboardsSection(_ref) {
33156
33094
  onClick: function onClick() {
33157
33095
  setSelectedId(ws.id);
33158
33096
  setInstallMode(null);
33159
- setImportResult(null);
33160
33097
  },
33161
33098
  badge: String(widgetCount),
33162
33099
  className: isSelected ? "bg-white/10 opacity-100" : "",
@@ -33192,9 +33129,9 @@ var DashboardsSection = function DashboardsSection(_ref) {
33192
33129
  className: "flex flex-col h-full",
33193
33130
  children: [/*#__PURE__*/jsxs("div", {
33194
33131
  className: "flex-shrink-0 flex flex-col gap-2 px-3 py-2 ".concat(headerStyles.backgroundColor || ""),
33195
- children: [/*#__PURE__*/jsxs("div", {
33132
+ children: [/*#__PURE__*/jsx("div", {
33196
33133
  className: "flex items-center gap-2",
33197
- children: [/*#__PURE__*/jsx("div", {
33134
+ children: /*#__PURE__*/jsx("div", {
33198
33135
  className: "flex-1",
33199
33136
  children: /*#__PURE__*/jsx(SearchInput, {
33200
33137
  value: searchQuery,
@@ -33202,12 +33139,7 @@ var DashboardsSection = function DashboardsSection(_ref) {
33202
33139
  placeholder: "Search dashboards...",
33203
33140
  inputClassName: "py-1.5 text-xs"
33204
33141
  })
33205
- }), /*#__PURE__*/jsx(ButtonIcon, {
33206
- icon: "file-import",
33207
- onClick: handleImport,
33208
- size: "sm",
33209
- title: "Import dashboard"
33210
- })]
33142
+ })
33211
33143
  }), /*#__PURE__*/jsx("div", {
33212
33144
  className: "flex bg-white/5 rounded-md p-0.5",
33213
33145
  children: [{
@@ -33229,7 +33161,6 @@ var DashboardsSection = function DashboardsSection(_ref) {
33229
33161
  setSelectedId(null);
33230
33162
  } else {
33231
33163
  setInstallMode(null);
33232
- setImportResult(null);
33233
33164
  setViewMode(tab.key);
33234
33165
  }
33235
33166
  },
@@ -33257,37 +33188,6 @@ var DashboardsSection = function DashboardsSection(_ref) {
33257
33188
  },
33258
33189
  appId: appId
33259
33190
  });
33260
- } else if (installMode === "import-result") {
33261
- detailContent = /*#__PURE__*/jsxs("div", {
33262
- className: "flex flex-col flex-1 min-h-0 p-6 space-y-4",
33263
- children: [(importResult === null || importResult === void 0 ? void 0 : importResult.status) === "loading" && /*#__PURE__*/jsxs("div", {
33264
- className: "flex items-center gap-3",
33265
- children: [/*#__PURE__*/jsx("div", {
33266
- className: "animate-spin rounded-full h-5 w-5 border-b-2 border-blue-500"
33267
- }), /*#__PURE__*/jsx("span", {
33268
- className: "text-sm opacity-70",
33269
- children: importResult.message
33270
- })]
33271
- }), (importResult === null || importResult === void 0 ? void 0 : importResult.status) === "success" && /*#__PURE__*/jsxs("div", {
33272
- className: "flex items-center gap-2",
33273
- children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
33274
- icon: "circle-check",
33275
- className: "h-4 w-4 text-green-400"
33276
- }), /*#__PURE__*/jsx("span", {
33277
- className: "text-sm",
33278
- children: importResult.message
33279
- })]
33280
- }), (importResult === null || importResult === void 0 ? void 0 : importResult.status) === "error" && /*#__PURE__*/jsxs("div", {
33281
- className: "flex items-center gap-2",
33282
- children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
33283
- icon: "circle-xmark",
33284
- className: "h-4 w-4 text-red-400"
33285
- }), /*#__PURE__*/jsx("span", {
33286
- className: "text-sm text-red-400",
33287
- children: importResult.message
33288
- })]
33289
- })]
33290
- });
33291
33191
  } else if (selectedWorkspace) {
33292
33192
  detailContent = /*#__PURE__*/jsx(DashboardDetail, {
33293
33193
  workspace: selectedWorkspace,
@@ -36902,14 +36802,14 @@ var InstalledWidgetDetail = function InstalledWidgetDetail(_ref) {
36902
36802
  className: "text-sm opacity-70",
36903
36803
  children: widget.workspace
36904
36804
  })]
36905
- }), widget.providers && widget.providers.length > 0 && /*#__PURE__*/jsxs("div", {
36805
+ }), getUserConfigurableProviders(widget.providers).length > 0 && /*#__PURE__*/jsxs("div", {
36906
36806
  className: "flex flex-col space-y-1",
36907
36807
  children: [/*#__PURE__*/jsx("span", {
36908
36808
  className: "text-xs font-semibold opacity-50",
36909
36809
  children: "PROVIDERS"
36910
36810
  }), /*#__PURE__*/jsx("div", {
36911
36811
  className: "flex flex-wrap gap-1.5",
36912
- children: widget.providers.map(function (p, i) {
36812
+ children: getUserConfigurableProviders(widget.providers).map(function (p, i) {
36913
36813
  return /*#__PURE__*/jsxs("div", {
36914
36814
  className: "flex flex-col gap-1",
36915
36815
  children: [/*#__PURE__*/jsxs("span", {
@@ -37108,22 +37008,22 @@ var RegistryPackageDetail = function RegistryPackageDetail(_ref) {
37108
37008
  }), w.description && /*#__PURE__*/jsx("div", {
37109
37009
  className: "text-xs opacity-50 mt-0.5",
37110
37010
  children: w.description
37111
- }), w.providers && w.providers.length > 0 && /*#__PURE__*/jsxs("div", {
37011
+ }), getUserConfigurableProviders(w.providers).length > 0 && /*#__PURE__*/jsxs("div", {
37112
37012
  className: "space-y-1 mt-1",
37113
37013
  children: [/*#__PURE__*/jsx("div", {
37114
37014
  className: "flex gap-1 flex-wrap",
37115
- children: w.providers.map(function (p, pidx) {
37015
+ children: getUserConfigurableProviders(w.providers).map(function (p, pidx) {
37116
37016
  return /*#__PURE__*/jsxs("span", {
37117
37017
  className: "text-xs px-1.5 py-0.5 rounded bg-blue-900/30 text-blue-400",
37118
37018
  children: [p.type, p.required ? " *" : ""]
37119
37019
  }, pidx);
37120
37020
  })
37121
- }), w.providers.some(function (p) {
37021
+ }), getUserConfigurableProviders(w.providers).some(function (p) {
37122
37022
  var _p$requiredTools;
37123
37023
  return ((_p$requiredTools = p.requiredTools) === null || _p$requiredTools === void 0 ? void 0 : _p$requiredTools.length) > 0;
37124
37024
  }) && /*#__PURE__*/jsx("div", {
37125
37025
  className: "flex flex-wrap gap-1 ml-1",
37126
- children: w.providers.filter(function (p) {
37026
+ children: getUserConfigurableProviders(w.providers).filter(function (p) {
37127
37027
  var _p$requiredTools2;
37128
37028
  return ((_p$requiredTools2 = p.requiredTools) === null || _p$requiredTools2 === void 0 ? void 0 : _p$requiredTools2.length) > 0;
37129
37029
  }).flatMap(function (p) {
@@ -38058,7 +37958,7 @@ var WidgetsSection = function WidgetsSection(_ref) {
38058
37958
  }, [widgets]);
38059
37959
  var uniqueProviders = useMemo(function () {
38060
37960
  return _toConsumableArray(new Set(widgets.flatMap(function (w) {
38061
- return (w.providers || []).map(function (p) {
37961
+ return getUserConfigurableProviders(w.providers || []).map(function (p) {
38062
37962
  return p.type;
38063
37963
  });
38064
37964
  }))).sort();
@@ -38082,9 +37982,9 @@ var WidgetsSection = function WidgetsSection(_ref) {
38082
37982
  // Provider filter
38083
37983
  if (filterProvider !== "all") {
38084
37984
  if (filterProvider === "none") {
38085
- if (w.providers && w.providers.length > 0) return false;
37985
+ if (getUserConfigurableProviders(w.providers).length > 0) return false;
38086
37986
  } else {
38087
- if (!w.providers || !w.providers.some(function (p) {
37987
+ if (!getUserConfigurableProviders(w.providers).some(function (p) {
38088
37988
  return p.type === filterProvider;
38089
37989
  })) return false;
38090
37990
  }
@@ -43463,5 +43363,5 @@ var WorkspaceMenu = function WorkspaceMenu(_ref) {
43463
43363
 
43464
43364
  ComponentManager.registerContainerTypes(LayoutContainer, LayoutGridContainer);
43465
43365
 
43466
- export { ALGOLIA_ANALYTICS_FOR_QUERY, ALGOLIA_ANALYTICS_FOR_QUERY_COMPLETE, ALGOLIA_ANALYTICS_FOR_QUERY_ERROR, ALGOLIA_LIST_INDICES, ALGOLIA_LIST_INDICES_COMPLETE, ALGOLIA_LIST_INDICES_ERROR, AVAILABLE_COLORS, AddMenuItemModal, AdvancedMcpConfig, AppContext, AppSettingsModal, AppThemeScope, AppWrapper, CHOOSE_FILE, CHOOSE_FILE_COMPLETE, CHOOSE_FILE_ERROR, ColorModel, ComponentConfigModel, ComponentManager, ContextModel, DATA_JSON_TO_CSV_FILE, DATA_JSON_TO_CSV_FILE_COMPLETE, DATA_JSON_TO_CSV_FILE_ERROR, DATA_JSON_TO_CSV_STRING, DATA_JSON_TO_CSV_STRING_COMPLETE, DATA_JSON_TO_CSV_STRING_ERROR, DATA_READ_FROM_FILE, DATA_READ_FROM_FILE_COMPLETE, DATA_READ_FROM_FILE_ERROR, DATA_SAVE_TO_FILE, DATA_SAVE_TO_FILE_COMPLETE, DATA_SAVE_TO_FILE_ERROR, DashCommandPalette, DashNavbar, DashSidebar, DashTabBar, DashboardStage as Dashboard, DashboardApi, DashboardContext, DashboardFooter, DashboardHeader, DashboardMenuItem, DashboardModel, DashboardMonitor, DashboardPublisher, DashboardStage, DashboardThemeProvider, DashboardWrapper, ElectronDashboardApi, ErrorBoundary, ExternalWidget, GRID_CELL_WIDGET_TYPE, HARMONY_STRATEGIES, LAYOUT_LIST, LAYOUT_LIST_COMPLETE, LAYOUT_LIST_ERROR, LAYOUT_SAVE, LAYOUT_SAVE_COMPLETE, LAYOUT_SAVE_ERROR, Layout, LayoutBuilder, LayoutBuilderAddItemModal, LayoutBuilderConfigContainerMenuItem, LayoutBuilderConfigMenuItem, LayoutBuilderConfigModal, LayoutBuilderEditItemModal, LayoutBuilderEventModal, LayoutBuilderGridItem, LayoutContainer, LayoutDragBuilder, LayoutDragBuilderEdit, LayoutGridContainer, LayoutManagerModal, LayoutModel, LayoutQuickAddMenu, MCP_CALL_TOOL_COMPLETE, MCP_CALL_TOOL_ERROR, MCP_GET_CATALOG_COMPLETE, MCP_GET_CATALOG_ERROR, MCP_LIST_RESOURCES_COMPLETE, MCP_LIST_RESOURCES_ERROR, MCP_LIST_TOOLS_COMPLETE, MCP_LIST_TOOLS_ERROR, MCP_READ_RESOURCE_COMPLETE, MCP_READ_RESOURCE_ERROR, MCP_RUN_AUTH_COMPLETE, MCP_RUN_AUTH_ERROR, MCP_SERVER_STATUS_COMPLETE, MCP_SERVER_STATUS_ERROR, MCP_START_SERVER_COMPLETE, MCP_START_SERVER_ERROR, MCP_STOP_SERVER_COMPLETE, MCP_STOP_SERVER_ERROR, MENU_ITEMS_DELETE, MENU_ITEMS_DELETE_COMPLETE, MENU_ITEMS_DELETE_ERROR, MENU_ITEMS_LIST, MENU_ITEMS_LIST_COMPLETE, MENU_ITEMS_LIST_ERROR, MENU_ITEMS_SAVE, MENU_ITEMS_SAVE_COMPLETE, MENU_ITEMS_SAVE_ERROR, MainMenu, MainMenuItem, MainMenuSection, McpServerPicker, MenuItemModel, MenuSlideOverlay, MergeCellsModal, MissingProviderPrompt, MockDashboardApi, PROVIDER_DELETE_COMPLETE, PROVIDER_DELETE_ERROR, PROVIDER_GET_COMPLETE, PROVIDER_GET_ERROR, PROVIDER_LIST_COMPLETE, PROVIDER_LIST_ERROR, PROVIDER_SAVE_COMPLETE, PROVIDER_SAVE_ERROR, PanelCode, PanelEditItem, PanelEditItemHandlers, PanelEditItemNotifications, ProviderContext, ProviderErrorBoundary, ProviderForm, ProviderSelector, SECURE_STORAGE_ENCRYPT_STRING, SECURE_STORAGE_ENCRYPT_STRING_COMPLETE, SECURE_STORAGE_ENCRYPT_STRING_ERROR, SECURE_STORE_ENCRYPTION_CHECK, SECURE_STORE_ENCRYPTION_CHECK_COMPLETE, SECURE_STORE_ENCRYPTION_CHECK_ERROR, SECURE_STORE_GET_DATA, SECURE_STORE_GET_DATA_COMPLETE, SECURE_STORE_GET_DATA_ERROR, SECURE_STORE_SET_DATA, SECURE_STORE_SET_DATA_COMPLETE, SECURE_STORE_SET_DATA_ERROR, SETTINGS_GET, SETTINGS_GET_COMPLETE, SETTINGS_GET_ERROR, SETTINGS_SAVE, SETTINGS_SAVE_COMPLETE, SETTINGS_SAVE_ERROR, SIDEBAR_WIDGET_TYPE, SettingsModel, SideMenu, SplitCellModal, THEME_DELETE, THEME_DELETE_COMPLETE, THEME_DELETE_ERROR, THEME_LIST, THEME_LIST_COMPLETE, THEME_LIST_ERROR, THEME_SAVE, THEME_SAVE_COMPLETE, THEME_SAVE_ERROR, ThemeApi, ThemeManagerModal, ThemeModel, ThemeWrapper, WORKSPACE_DELETE, WORKSPACE_DELETE_COMPLETE, WORKSPACE_DELETE_ERROR, WORKSPACE_LIST, WORKSPACE_LIST_COMPLETE, WORKSPACE_LIST_ERROR, WORKSPACE_SAVE, WORKSPACE_SAVE_COMPLETE, WORKSPACE_SAVE_ERROR, WebDashboardApi, Widget, WidgetApi, WidgetConfigPanel, WidgetContext, WidgetFactory, WidgetPopoutStage, WidgetProviderWrapper, WidgetSidebar, Workspace, WorkspaceContext, WorkspaceFooter, WorkspaceMenu, WorkspaceModel, addChildToLayoutItem, addItemToItemLayout, buildMcpConfigFromOverrides, canHaveChildren, changeDirectionForLayoutItem, createProviderRegistry, deriveFormFields, envMappingToRows, evaluateBundle, extractWidgetConfigs, formStateToMcpJson, formatFieldName, generateCustomTheme, generateHarmonyTheme, generateRandomTheme, generateThemeName, getBorderStyle, getChildrenForLayoutItem, getComponentInLayout, getContainerBorderColor, getContainerColor, getIndexOfLayoutChildrenForItem, getIndexOfLayoutItem, getLayoutItemById, getLayoutItemForWorkspace, getNearestParentWorkspace, getNextHighestId, getNextHighestItemInLayout, getNextHighestOrder, getNextHighestParentId, getNextLowestItemInLayout, getParentForLayoutItem, getParentWorkspaceForItem, getThemePresets, getWidgetsForWorkspace, getWorkspacesForWorkspace, headerTemplateToRows, isContainer, isLikelySecret, isMaxOrderForItem, isMinOrderForItem, isWidget, isWidgetResolvable, isWorkspace, layoutItemHasWorkspaceAsChild, loadWidgetBundle, mcpJsonToFormState, numChildrenForLayout, removeItemFromLayout, renderComponent, renderGridLayout, renderGridLayoutFlow, _renderLayout as renderLayout, renderLayoutMenu, replaceItemInLayout, resolveIcon, setHostModules, traverseParentTree, updateLayoutItem, updateParentForItem, useDashboard, useMcpProvider, useNotifications, useProvider, useProviderClient, useWidgetEvents, useWidgetProviders, validateCellMerge, validateGridCell, validateGridPlacement, validateWidgetPlacement, withProviderDetection };
43366
+ export { ALGOLIA_ANALYTICS_FOR_QUERY, ALGOLIA_ANALYTICS_FOR_QUERY_COMPLETE, ALGOLIA_ANALYTICS_FOR_QUERY_ERROR, ALGOLIA_LIST_INDICES, ALGOLIA_LIST_INDICES_COMPLETE, ALGOLIA_LIST_INDICES_ERROR, AVAILABLE_COLORS, AddMenuItemModal, AdvancedMcpConfig, AppContext, AppSettingsModal, AppThemeScope, AppWrapper, CHOOSE_FILE, CHOOSE_FILE_COMPLETE, CHOOSE_FILE_ERROR, ColorModel, ComponentConfigModel, ComponentManager, ContextModel, DATA_JSON_TO_CSV_FILE, DATA_JSON_TO_CSV_FILE_COMPLETE, DATA_JSON_TO_CSV_FILE_ERROR, DATA_JSON_TO_CSV_STRING, DATA_JSON_TO_CSV_STRING_COMPLETE, DATA_JSON_TO_CSV_STRING_ERROR, DATA_READ_FROM_FILE, DATA_READ_FROM_FILE_COMPLETE, DATA_READ_FROM_FILE_ERROR, DATA_SAVE_TO_FILE, DATA_SAVE_TO_FILE_COMPLETE, DATA_SAVE_TO_FILE_ERROR, DashCommandPalette, DashNavbar, DashSidebar, DashTabBar, DashboardStage as Dashboard, DashboardApi, DashboardContext, DashboardFooter, DashboardHeader, DashboardMenuItem, DashboardModel, DashboardMonitor, DashboardPublisher, DashboardStage, DashboardThemeProvider, DashboardWrapper, ElectronDashboardApi, ErrorBoundary, ExternalWidget, GRID_CELL_WIDGET_TYPE, HARMONY_STRATEGIES, LAYOUT_LIST, LAYOUT_LIST_COMPLETE, LAYOUT_LIST_ERROR, LAYOUT_SAVE, LAYOUT_SAVE_COMPLETE, LAYOUT_SAVE_ERROR, Layout, LayoutBuilder, LayoutBuilderAddItemModal, LayoutBuilderConfigContainerMenuItem, LayoutBuilderConfigMenuItem, LayoutBuilderConfigModal, LayoutBuilderEditItemModal, LayoutBuilderEventModal, LayoutBuilderGridItem, LayoutContainer, LayoutDragBuilder, LayoutDragBuilderEdit, LayoutGridContainer, LayoutManagerModal, LayoutModel, LayoutQuickAddMenu, MCP_CALL_TOOL_COMPLETE, MCP_CALL_TOOL_ERROR, MCP_GET_CATALOG_COMPLETE, MCP_GET_CATALOG_ERROR, MCP_LIST_RESOURCES_COMPLETE, MCP_LIST_RESOURCES_ERROR, MCP_LIST_TOOLS_COMPLETE, MCP_LIST_TOOLS_ERROR, MCP_READ_RESOURCE_COMPLETE, MCP_READ_RESOURCE_ERROR, MCP_RUN_AUTH_COMPLETE, MCP_RUN_AUTH_ERROR, MCP_SERVER_STATUS_COMPLETE, MCP_SERVER_STATUS_ERROR, MCP_START_SERVER_COMPLETE, MCP_START_SERVER_ERROR, MCP_STOP_SERVER_COMPLETE, MCP_STOP_SERVER_ERROR, MENU_ITEMS_DELETE, MENU_ITEMS_DELETE_COMPLETE, MENU_ITEMS_DELETE_ERROR, MENU_ITEMS_LIST, MENU_ITEMS_LIST_COMPLETE, MENU_ITEMS_LIST_ERROR, MENU_ITEMS_SAVE, MENU_ITEMS_SAVE_COMPLETE, MENU_ITEMS_SAVE_ERROR, MainMenu, MainMenuItem, MainMenuSection, McpServerPicker, MenuItemModel, MenuSlideOverlay, MergeCellsModal, MissingProviderPrompt, MockDashboardApi, PROVIDER_DELETE_COMPLETE, PROVIDER_DELETE_ERROR, PROVIDER_GET_COMPLETE, PROVIDER_GET_ERROR, PROVIDER_LIST_COMPLETE, PROVIDER_LIST_ERROR, PROVIDER_SAVE_COMPLETE, PROVIDER_SAVE_ERROR, PanelCode, PanelEditItem, PanelEditItemHandlers, PanelEditItemNotifications, ProviderContext, ProviderErrorBoundary, ProviderForm, ProviderSelector, SECURE_STORAGE_ENCRYPT_STRING, SECURE_STORAGE_ENCRYPT_STRING_COMPLETE, SECURE_STORAGE_ENCRYPT_STRING_ERROR, SECURE_STORE_ENCRYPTION_CHECK, SECURE_STORE_ENCRYPTION_CHECK_COMPLETE, SECURE_STORE_ENCRYPTION_CHECK_ERROR, SECURE_STORE_GET_DATA, SECURE_STORE_GET_DATA_COMPLETE, SECURE_STORE_GET_DATA_ERROR, SECURE_STORE_SET_DATA, SECURE_STORE_SET_DATA_COMPLETE, SECURE_STORE_SET_DATA_ERROR, SETTINGS_GET, SETTINGS_GET_COMPLETE, SETTINGS_GET_ERROR, SETTINGS_SAVE, SETTINGS_SAVE_COMPLETE, SETTINGS_SAVE_ERROR, SIDEBAR_WIDGET_TYPE, SettingsModel, SideMenu, SplitCellModal, THEME_DELETE, THEME_DELETE_COMPLETE, THEME_DELETE_ERROR, THEME_LIST, THEME_LIST_COMPLETE, THEME_LIST_ERROR, THEME_SAVE, THEME_SAVE_COMPLETE, THEME_SAVE_ERROR, ThemeApi, ThemeManagerModal, ThemeModel, ThemeWrapper, WORKSPACE_DELETE, WORKSPACE_DELETE_COMPLETE, WORKSPACE_DELETE_ERROR, WORKSPACE_LIST, WORKSPACE_LIST_COMPLETE, WORKSPACE_LIST_ERROR, WORKSPACE_SAVE, WORKSPACE_SAVE_COMPLETE, WORKSPACE_SAVE_ERROR, WebDashboardApi, Widget, WidgetApi, WidgetConfigPanel, WidgetContext, WidgetFactory, WidgetPopoutStage, WidgetProviderWrapper, WidgetSidebar, Workspace, WorkspaceContext, WorkspaceFooter, WorkspaceMenu, WorkspaceModel, addChildToLayoutItem, addItemToItemLayout, buildMcpConfigFromOverrides, canHaveChildren, changeDirectionForLayoutItem, createProviderRegistry, deriveFormFields, envMappingToRows, evaluateBundle, extractWidgetConfigs, formStateToMcpJson, formatFieldName, generateCustomTheme, generateHarmonyTheme, generateRandomTheme, generateThemeName, getBorderStyle, getChildrenForLayoutItem, getComponentInLayout, getContainerBorderColor, getContainerColor, getIndexOfLayoutChildrenForItem, getIndexOfLayoutItem, getLayoutItemById, getLayoutItemForWorkspace, getNearestParentWorkspace, getNextHighestId, getNextHighestItemInLayout, getNextHighestOrder, getNextHighestParentId, getNextLowestItemInLayout, getParentForLayoutItem, getParentWorkspaceForItem, getThemePresets, getUserConfigurableProviders, getWidgetsForWorkspace, getWorkspacesForWorkspace, headerTemplateToRows, isContainer, isLikelySecret, isMaxOrderForItem, isMinOrderForItem, isWidget, isWidgetResolvable, isWorkspace, layoutItemHasWorkspaceAsChild, loadWidgetBundle, mcpJsonToFormState, numChildrenForLayout, removeItemFromLayout, renderComponent, renderGridLayout, renderGridLayoutFlow, _renderLayout as renderLayout, renderLayoutMenu, replaceItemInLayout, resolveIcon, setHostModules, traverseParentTree, updateLayoutItem, updateParentForItem, useDashboard, useMcpProvider, useNotifications, useProvider, useProviderClient, useWidgetEvents, useWidgetProviders, validateCellMerge, validateGridCell, validateGridPlacement, validateWidgetPlacement, withProviderDetection };
43467
43367
  //# sourceMappingURL=index.esm.js.map