@trops/dash-core 0.1.196 → 0.1.197
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/electron/index.js +11 -7
- package/dist/electron/index.js.map +1 -1
- package/dist/index.esm.js +394 -570
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +393 -571
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
2
|
import * as DashReact from '@trops/dash-react';
|
|
3
|
-
import { isObject, ThemeContext, deepCopy, MainSection, getUUID, getStylesForItem, themeObjects, Heading, SearchInput, ButtonIcon, SubHeading3, InputText, Button, FontAwesomeIcon, Tag, Sidebar, Paragraph, Modal, Panel, Stepper,
|
|
3
|
+
import { isObject, ThemeContext, deepCopy, MainSection, getUUID, getStylesForItem, themeObjects, Heading, SearchInput, ButtonIcon, SubHeading3, InputText, Button, FontAwesomeIcon, Tag, Sidebar, Paragraph, Modal, Panel, Stepper, Heading3, MenuItem3, FormLabel, SelectMenu, Switch, SelectInput, CodeEditorInline, SettingsModal, SubHeading2, tailwindHeightFractions, Menu3, Panel3, DropdownPanel, MenuItem2, ButtonIcon2, DragComponent, ConfirmationModal, DropComponent, getStyleName, capitalizeFirstLetter, colorTypes, getCSSStyleForClassname, Panel2, Heading2, SubHeading, Paragraph2, Paragraph3, Button2, Button3, MenuItem, Tag2, Tag3, ButtonIcon3, DashPanel, colorNames, shades, themeVariants, Tabs3, DataList, Checkbox, StatCard, Card, Tabs, Accordion, Alert, Toast, ProgressBar, Toggle, Breadcrumbs, Card2, Tabs2, Accordion2, Alert2, Toast2, ProgressBar2, Toggle2, Breadcrumbs2, Card3, Accordion3, Alert3, Toast3, ProgressBar3, Toggle3, Breadcrumbs3, ThemeFromUrlPane, TextArea, Icon2, AlgoliaSearchBox, CommandPalette, EmptyState, Navbar, withRouter, Menu as Menu$1 } from '@trops/dash-react';
|
|
4
4
|
export * from '@trops/dash-react';
|
|
5
5
|
export { ThemeContext } from '@trops/dash-react';
|
|
6
6
|
import _typeof from '@babel/runtime/helpers/typeof';
|
|
@@ -5256,192 +5256,6 @@ var LayoutQuickAddMenu = function LayoutQuickAddMenu(_ref) {
|
|
|
5256
5256
|
});
|
|
5257
5257
|
};
|
|
5258
5258
|
|
|
5259
|
-
var CATEGORIES = [{
|
|
5260
|
-
key: "reporting",
|
|
5261
|
-
label: "Reporting",
|
|
5262
|
-
icon: "chart-bar",
|
|
5263
|
-
description: "Dashboards for data visualization and reports"
|
|
5264
|
-
}, {
|
|
5265
|
-
key: "monitoring",
|
|
5266
|
-
label: "Monitoring",
|
|
5267
|
-
icon: "heart-pulse",
|
|
5268
|
-
description: "System health, uptime, and performance monitoring"
|
|
5269
|
-
}, {
|
|
5270
|
-
key: "productivity",
|
|
5271
|
-
label: "Productivity",
|
|
5272
|
-
icon: "list-check",
|
|
5273
|
-
description: "Task tracking, calendars, and workflow management"
|
|
5274
|
-
}, {
|
|
5275
|
-
key: "development",
|
|
5276
|
-
label: "Development",
|
|
5277
|
-
icon: "code",
|
|
5278
|
-
description: "Code repos, CI/CD, and developer tools"
|
|
5279
|
-
}, {
|
|
5280
|
-
key: "communication",
|
|
5281
|
-
label: "Communication",
|
|
5282
|
-
icon: "comments",
|
|
5283
|
-
description: "Messages, channels, and team communication"
|
|
5284
|
-
}, {
|
|
5285
|
-
key: "custom",
|
|
5286
|
-
label: "Custom",
|
|
5287
|
-
icon: "grid-2",
|
|
5288
|
-
description: "Build a fully custom dashboard"
|
|
5289
|
-
}];
|
|
5290
|
-
|
|
5291
|
-
/**
|
|
5292
|
-
* WizardIntentStep
|
|
5293
|
-
*
|
|
5294
|
-
* Step 0 of the Dashboard Wizard. Presents category cards so the user
|
|
5295
|
-
* can indicate what kind of dashboard they want to build.
|
|
5296
|
-
* Multi-select — user can pick multiple categories.
|
|
5297
|
-
*
|
|
5298
|
-
* @param {Object} props
|
|
5299
|
-
* @param {Object} props.state - Wizard state from useWizardState
|
|
5300
|
-
* @param {Function} props.dispatch - Wizard dispatch from useWizardState
|
|
5301
|
-
*/
|
|
5302
|
-
var WizardIntentStep = function WizardIntentStep(_ref) {
|
|
5303
|
-
var state = _ref.state,
|
|
5304
|
-
dispatch = _ref.dispatch;
|
|
5305
|
-
var handleToggle = function handleToggle(key) {
|
|
5306
|
-
dispatch({
|
|
5307
|
-
type: "TOGGLE_INTENT",
|
|
5308
|
-
payload: key
|
|
5309
|
-
});
|
|
5310
|
-
};
|
|
5311
|
-
return /*#__PURE__*/jsxs("div", {
|
|
5312
|
-
className: "wizard-intent-step",
|
|
5313
|
-
children: [/*#__PURE__*/jsx("h3", {
|
|
5314
|
-
className: "wizard-step-header",
|
|
5315
|
-
children: "What is this dashboard for?"
|
|
5316
|
-
}), /*#__PURE__*/jsx("div", {
|
|
5317
|
-
className: "wizard-card-grid",
|
|
5318
|
-
children: CATEGORIES.map(function (cat) {
|
|
5319
|
-
return /*#__PURE__*/jsx(SelectableCard, {
|
|
5320
|
-
icon: /*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
5321
|
-
icon: cat.icon,
|
|
5322
|
-
fixedWidth: true
|
|
5323
|
-
}),
|
|
5324
|
-
label: cat.label,
|
|
5325
|
-
description: cat.description,
|
|
5326
|
-
selected: state.intent.includes(cat.key),
|
|
5327
|
-
onSelect: function onSelect() {
|
|
5328
|
-
return handleToggle(cat.key);
|
|
5329
|
-
}
|
|
5330
|
-
}, cat.key);
|
|
5331
|
-
})
|
|
5332
|
-
})]
|
|
5333
|
-
});
|
|
5334
|
-
};
|
|
5335
|
-
|
|
5336
|
-
var FALLBACK = "puzzle-piece";
|
|
5337
|
-
|
|
5338
|
-
/**
|
|
5339
|
-
* Resolve an icon name to a valid FontAwesome icon reference.
|
|
5340
|
-
* Tries solid (fas) first, then brand (fab). Returns "puzzle-piece" if
|
|
5341
|
-
* the icon is falsy or not found in either prefix.
|
|
5342
|
-
*/
|
|
5343
|
-
var resolveIcon = function resolveIcon(iconName) {
|
|
5344
|
-
if (!iconName) return FALLBACK;
|
|
5345
|
-
|
|
5346
|
-
// Already an array tuple like ["fab", "github"] — pass through
|
|
5347
|
-
if (Array.isArray(iconName)) return iconName;
|
|
5348
|
-
|
|
5349
|
-
// Try solid
|
|
5350
|
-
if (findIconDefinition({
|
|
5351
|
-
prefix: "fas",
|
|
5352
|
-
iconName: iconName
|
|
5353
|
-
})) return iconName;
|
|
5354
|
-
|
|
5355
|
-
// Try brand
|
|
5356
|
-
if (findIconDefinition({
|
|
5357
|
-
prefix: "fab",
|
|
5358
|
-
iconName: iconName
|
|
5359
|
-
})) return ["fab", iconName];
|
|
5360
|
-
return FALLBACK;
|
|
5361
|
-
};
|
|
5362
|
-
|
|
5363
|
-
var WizardProvidersStep = function WizardProvidersStep(_ref) {
|
|
5364
|
-
var state = _ref.state,
|
|
5365
|
-
dispatch = _ref.dispatch;
|
|
5366
|
-
var _useContext = useContext(AppContext),
|
|
5367
|
-
providersMap = _useContext.providers;
|
|
5368
|
-
var providerList = useMemo(function () {
|
|
5369
|
-
if (!providersMap || _typeof(providersMap) !== "object") return [];
|
|
5370
|
-
return Object.values(providersMap).map(function (p) {
|
|
5371
|
-
return {
|
|
5372
|
-
key: p.type || p.name,
|
|
5373
|
-
name: p.name,
|
|
5374
|
-
type: p.type,
|
|
5375
|
-
icon: p.icon || p.type,
|
|
5376
|
-
configured: !!(p.credentials && Object.keys(p.credentials).length > 0)
|
|
5377
|
-
};
|
|
5378
|
-
});
|
|
5379
|
-
}, [providersMap]);
|
|
5380
|
-
|
|
5381
|
-
// Pre-check configured providers on first render
|
|
5382
|
-
React__default.useEffect(function () {
|
|
5383
|
-
if (state.providers.length === 0 && providerList.length > 0) {
|
|
5384
|
-
var configuredKeys = providerList.filter(function (p) {
|
|
5385
|
-
return p.configured;
|
|
5386
|
-
}).map(function (p) {
|
|
5387
|
-
return p.key;
|
|
5388
|
-
});
|
|
5389
|
-
if (configuredKeys.length > 0) {
|
|
5390
|
-
dispatch({
|
|
5391
|
-
type: "SET_PROVIDERS",
|
|
5392
|
-
payload: configuredKeys
|
|
5393
|
-
});
|
|
5394
|
-
}
|
|
5395
|
-
}
|
|
5396
|
-
}, [providerList, state.providers.length, dispatch]);
|
|
5397
|
-
var handleToggle = function handleToggle(key) {
|
|
5398
|
-
dispatch({
|
|
5399
|
-
type: "TOGGLE_PROVIDER",
|
|
5400
|
-
payload: key
|
|
5401
|
-
});
|
|
5402
|
-
};
|
|
5403
|
-
if (providerList.length === 0) {
|
|
5404
|
-
return /*#__PURE__*/jsxs("div", {
|
|
5405
|
-
className: "wizard-providers-step",
|
|
5406
|
-
children: [/*#__PURE__*/jsx("h3", {
|
|
5407
|
-
className: "wizard-step-header",
|
|
5408
|
-
children: "Which tools and services do you use?"
|
|
5409
|
-
}), /*#__PURE__*/jsx("p", {
|
|
5410
|
-
className: "wizard-empty-message",
|
|
5411
|
-
children: "No providers configured yet. Add providers in Settings first."
|
|
5412
|
-
})]
|
|
5413
|
-
});
|
|
5414
|
-
}
|
|
5415
|
-
return /*#__PURE__*/jsxs("div", {
|
|
5416
|
-
className: "wizard-providers-step",
|
|
5417
|
-
children: [/*#__PURE__*/jsx("h3", {
|
|
5418
|
-
className: "wizard-step-header",
|
|
5419
|
-
children: "Which tools and services do you use?"
|
|
5420
|
-
}), /*#__PURE__*/jsx("div", {
|
|
5421
|
-
className: "wizard-card-grid",
|
|
5422
|
-
children: providerList.map(function (provider) {
|
|
5423
|
-
var isSelected = state.providers.includes(provider.key);
|
|
5424
|
-
var needsSetup = isSelected && !provider.configured;
|
|
5425
|
-
return /*#__PURE__*/jsx(SelectableCard, {
|
|
5426
|
-
icon: /*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
5427
|
-
icon: resolveIcon(provider.icon),
|
|
5428
|
-
fixedWidth: true
|
|
5429
|
-
}),
|
|
5430
|
-
label: provider.name,
|
|
5431
|
-
description: needsSetup ? /*#__PURE__*/jsx("span", {
|
|
5432
|
-
className: "wizard-needs-setup-badge",
|
|
5433
|
-
children: "Needs setup"
|
|
5434
|
-
}) : null,
|
|
5435
|
-
selected: isSelected,
|
|
5436
|
-
onSelect: function onSelect() {
|
|
5437
|
-
return handleToggle(provider.key);
|
|
5438
|
-
}
|
|
5439
|
-
}, provider.key);
|
|
5440
|
-
})
|
|
5441
|
-
})]
|
|
5442
|
-
});
|
|
5443
|
-
};
|
|
5444
|
-
|
|
5445
5259
|
function _createForOfIteratorHelper$e(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$e(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; } } }; }
|
|
5446
5260
|
function _unsupportedIterableToArray$e(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$e(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$e(r, a) : void 0; } }
|
|
5447
5261
|
function _arrayLikeToArray$e(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; }
|
|
@@ -5729,372 +5543,408 @@ var useRegistrySearch = function useRegistrySearch() {
|
|
|
5729
5543
|
};
|
|
5730
5544
|
};
|
|
5731
5545
|
|
|
5732
|
-
var
|
|
5546
|
+
var FALLBACK = "puzzle-piece";
|
|
5547
|
+
|
|
5548
|
+
/**
|
|
5549
|
+
* Resolve an icon name to a valid FontAwesome icon reference.
|
|
5550
|
+
* Tries solid (fas) first, then brand (fab). Returns "puzzle-piece" if
|
|
5551
|
+
* the icon is falsy or not found in either prefix.
|
|
5552
|
+
*/
|
|
5553
|
+
var resolveIcon = function resolveIcon(iconName) {
|
|
5554
|
+
if (!iconName) return FALLBACK;
|
|
5555
|
+
|
|
5556
|
+
// Already an array tuple like ["fab", "github"] — pass through
|
|
5557
|
+
if (Array.isArray(iconName)) return iconName;
|
|
5558
|
+
|
|
5559
|
+
// Try solid
|
|
5560
|
+
if (findIconDefinition({
|
|
5561
|
+
prefix: "fas",
|
|
5562
|
+
iconName: iconName
|
|
5563
|
+
})) return iconName;
|
|
5564
|
+
|
|
5565
|
+
// Try brand
|
|
5566
|
+
if (findIconDefinition({
|
|
5567
|
+
prefix: "fab",
|
|
5568
|
+
iconName: iconName
|
|
5569
|
+
})) return ["fab", iconName];
|
|
5570
|
+
return FALLBACK;
|
|
5571
|
+
};
|
|
5572
|
+
|
|
5573
|
+
var DASHBOARD_TAGS$1 = ["productivity", "monitoring", "analytics", "communication", "developer", "sales", "marketing", "finance", "project-management", "social", "news", "utilities"];
|
|
5574
|
+
|
|
5575
|
+
var KNOWN_PROVIDERS = [{
|
|
5576
|
+
key: "google-drive",
|
|
5577
|
+
name: "Google Drive"
|
|
5578
|
+
}, {
|
|
5579
|
+
key: "slack",
|
|
5580
|
+
name: "Slack"
|
|
5581
|
+
}, {
|
|
5582
|
+
key: "github",
|
|
5583
|
+
name: "GitHub"
|
|
5584
|
+
}, {
|
|
5585
|
+
key: "gmail",
|
|
5586
|
+
name: "Gmail"
|
|
5587
|
+
}, {
|
|
5588
|
+
key: "google-calendar",
|
|
5589
|
+
name: "Google Calendar"
|
|
5590
|
+
}, {
|
|
5591
|
+
key: "notion",
|
|
5592
|
+
name: "Notion"
|
|
5593
|
+
}, {
|
|
5594
|
+
key: "linear",
|
|
5595
|
+
name: "Linear"
|
|
5596
|
+
}, {
|
|
5597
|
+
key: "algolia",
|
|
5598
|
+
name: "Algolia"
|
|
5599
|
+
}, {
|
|
5600
|
+
key: "contentful",
|
|
5601
|
+
name: "Contentful"
|
|
5602
|
+
}, {
|
|
5603
|
+
key: "jira",
|
|
5604
|
+
name: "Jira"
|
|
5605
|
+
}, {
|
|
5606
|
+
key: "openai",
|
|
5607
|
+
name: "OpenAI"
|
|
5608
|
+
}, {
|
|
5609
|
+
key: "postgres",
|
|
5610
|
+
name: "PostgreSQL"
|
|
5611
|
+
}];
|
|
5612
|
+
|
|
5613
|
+
/**
|
|
5614
|
+
* WizardDiscoverStep
|
|
5615
|
+
*
|
|
5616
|
+
* Step 0 of the Dashboard Wizard. Combines search, category/provider
|
|
5617
|
+
* filter chips, and results (dashboards + widgets) in a single view.
|
|
5618
|
+
* Replaces the old Intent, Providers, and Results steps.
|
|
5619
|
+
*
|
|
5620
|
+
* - Selecting a dashboard sets path to "prebuilt" and clears widget selections.
|
|
5621
|
+
* - Selecting widgets sets path to "custom" and clears dashboard selection.
|
|
5622
|
+
*
|
|
5623
|
+
* @param {Object} props
|
|
5624
|
+
* @param {Object} props.state - Wizard state from useWizardState
|
|
5625
|
+
* @param {Function} props.dispatch - Wizard dispatch from useWizardState
|
|
5626
|
+
*/
|
|
5627
|
+
var WizardDiscoverStep = function WizardDiscoverStep(_ref) {
|
|
5733
5628
|
var state = _ref.state,
|
|
5734
5629
|
dispatch = _ref.dispatch;
|
|
5735
|
-
var
|
|
5736
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
5737
|
-
activeTab = _useState2[0],
|
|
5738
|
-
setActiveTab = _useState2[1];
|
|
5630
|
+
var filters = state.filters;
|
|
5739
5631
|
|
|
5740
|
-
// ---
|
|
5741
|
-
var _useState3 = useState([]),
|
|
5742
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
5743
|
-
dashboards = _useState4[0],
|
|
5744
|
-
setDashboards = _useState4[1];
|
|
5745
|
-
var _useState5 = useState(false),
|
|
5746
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
5747
|
-
dashLoading = _useState6[0],
|
|
5748
|
-
setDashLoading = _useState6[1];
|
|
5749
|
-
var _useState7 = useState(null),
|
|
5750
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
5751
|
-
dashError = _useState8[0],
|
|
5752
|
-
setDashError = _useState8[1];
|
|
5753
|
-
var dashFilters = useMemo(function () {
|
|
5754
|
-
return {
|
|
5755
|
-
category: state.intent.length ? state.intent.join(",") : undefined,
|
|
5756
|
-
providerTypes: state.providers.length ? state.providers : undefined
|
|
5757
|
-
};
|
|
5758
|
-
}, [state.intent, state.providers]);
|
|
5759
|
-
var searchDashboards = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
5760
|
-
var _window$mainApi;
|
|
5761
|
-
var result, _t;
|
|
5762
|
-
return _regeneratorRuntime.wrap(function (_context) {
|
|
5763
|
-
while (1) switch (_context.prev = _context.next) {
|
|
5764
|
-
case 0:
|
|
5765
|
-
if ((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && (_window$mainApi = _window$mainApi.registry) !== null && _window$mainApi !== void 0 && _window$mainApi.searchDashboards) {
|
|
5766
|
-
_context.next = 1;
|
|
5767
|
-
break;
|
|
5768
|
-
}
|
|
5769
|
-
setDashboards([]);
|
|
5770
|
-
return _context.abrupt("return");
|
|
5771
|
-
case 1:
|
|
5772
|
-
setDashLoading(true);
|
|
5773
|
-
setDashError(null);
|
|
5774
|
-
_context.prev = 2;
|
|
5775
|
-
_context.next = 3;
|
|
5776
|
-
return window.mainApi.registry.searchDashboards("", dashFilters);
|
|
5777
|
-
case 3:
|
|
5778
|
-
result = _context.sent;
|
|
5779
|
-
setDashboards(result.packages || []);
|
|
5780
|
-
_context.next = 5;
|
|
5781
|
-
break;
|
|
5782
|
-
case 4:
|
|
5783
|
-
_context.prev = 4;
|
|
5784
|
-
_t = _context["catch"](2);
|
|
5785
|
-
setDashError(_t.message || "Failed to search dashboards");
|
|
5786
|
-
setDashboards([]);
|
|
5787
|
-
case 5:
|
|
5788
|
-
_context.prev = 5;
|
|
5789
|
-
setDashLoading(false);
|
|
5790
|
-
return _context.finish(5);
|
|
5791
|
-
case 6:
|
|
5792
|
-
case "end":
|
|
5793
|
-
return _context.stop();
|
|
5794
|
-
}
|
|
5795
|
-
}, _callee, null, [[2, 4, 5, 6]]);
|
|
5796
|
-
})), [dashFilters]);
|
|
5797
|
-
useEffect(function () {
|
|
5798
|
-
searchDashboards();
|
|
5799
|
-
}, [searchDashboards]);
|
|
5800
|
-
|
|
5801
|
-
// --- Widget search (Tab B) ---
|
|
5632
|
+
// --- Registry search ---
|
|
5802
5633
|
var _useRegistrySearch = useRegistrySearch({
|
|
5803
5634
|
filterByCapabilities: true
|
|
5804
5635
|
}),
|
|
5636
|
+
packages = _useRegistrySearch.packages,
|
|
5805
5637
|
flatWidgets = _useRegistrySearch.flatWidgets,
|
|
5806
|
-
|
|
5807
|
-
|
|
5808
|
-
|
|
5809
|
-
|
|
5810
|
-
var filteredWidgets = useMemo(function () {
|
|
5811
|
-
return flatWidgets.filter(function (w) {
|
|
5812
|
-
// Category filter: match if widget's category overlaps user intent
|
|
5813
|
-
var catMatch = state.intent.length === 0 || state.intent.some(function (cat) {
|
|
5814
|
-
return (w.packageCategory || "").toLowerCase() === cat.toLowerCase();
|
|
5815
|
-
});
|
|
5816
|
-
|
|
5817
|
-
// Provider filter: match if widget requires any of the selected providers
|
|
5818
|
-
var providerMatch = state.providers.length === 0 || (w.providers || []).some(function (p) {
|
|
5819
|
-
return state.providers.includes(p.type);
|
|
5820
|
-
}) || (w.packageProviders || []).some(function (p) {
|
|
5821
|
-
return state.providers.includes(p.type);
|
|
5822
|
-
});
|
|
5823
|
-
return catMatch && providerMatch;
|
|
5824
|
-
});
|
|
5825
|
-
}, [flatWidgets, state.intent, state.providers]);
|
|
5638
|
+
isLoading = _useRegistrySearch.isLoading,
|
|
5639
|
+
error = _useRegistrySearch.error,
|
|
5640
|
+
searchQuery = _useRegistrySearch.searchQuery,
|
|
5641
|
+
setSearchQuery = _useRegistrySearch.setSearchQuery;
|
|
5826
5642
|
|
|
5827
|
-
//
|
|
5828
|
-
|
|
5829
|
-
|
|
5643
|
+
// Sync search query from wizard state on mount
|
|
5644
|
+
useEffect(function () {
|
|
5645
|
+
if (filters.query) {
|
|
5646
|
+
setSearchQuery(filters.query);
|
|
5647
|
+
}
|
|
5648
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5649
|
+
}, []);
|
|
5650
|
+
var handleSearchChange = useCallback(function (e) {
|
|
5651
|
+
var q = e.target.value;
|
|
5652
|
+
setSearchQuery(q);
|
|
5830
5653
|
dispatch({
|
|
5831
|
-
type: "
|
|
5832
|
-
payload:
|
|
5654
|
+
type: "SET_SEARCH_QUERY",
|
|
5655
|
+
payload: q
|
|
5833
5656
|
});
|
|
5834
|
-
}, [dispatch]);
|
|
5657
|
+
}, [setSearchQuery, dispatch]);
|
|
5835
5658
|
|
|
5836
|
-
//
|
|
5837
|
-
|
|
5838
|
-
|
|
5839
|
-
|
|
5840
|
-
|
|
5841
|
-
|
|
5842
|
-
|
|
5843
|
-
|
|
5844
|
-
|
|
5659
|
+
// --- Client-side category + provider filtering ---
|
|
5660
|
+
var filteredDashboards = useMemo(function () {
|
|
5661
|
+
var dashPkgs = packages.filter(function (pkg) {
|
|
5662
|
+
return (pkg.type || "").toLowerCase() === "dashboard";
|
|
5663
|
+
});
|
|
5664
|
+
return applyFilters(dashPkgs, filters, "package");
|
|
5665
|
+
}, [packages, filters]);
|
|
5666
|
+
var filteredWidgets = useMemo(function () {
|
|
5667
|
+
return applyFilters(flatWidgets, filters, "widget");
|
|
5668
|
+
}, [flatWidgets, filters]);
|
|
5845
5669
|
|
|
5846
|
-
// ---
|
|
5670
|
+
// --- Selection handlers ---
|
|
5847
5671
|
var handleSelectDashboard = useCallback(function (dashboard) {
|
|
5848
5672
|
dispatch({
|
|
5849
5673
|
type: "SET_SELECTED_DASHBOARD",
|
|
5850
5674
|
payload: dashboard
|
|
5851
5675
|
});
|
|
5676
|
+
dispatch({
|
|
5677
|
+
type: "SET_SELECTED_WIDGETS",
|
|
5678
|
+
payload: []
|
|
5679
|
+
});
|
|
5680
|
+
dispatch({
|
|
5681
|
+
type: "SET_PATH",
|
|
5682
|
+
payload: "prebuilt"
|
|
5683
|
+
});
|
|
5852
5684
|
}, [dispatch]);
|
|
5853
|
-
|
|
5854
|
-
// --- Widget selection (multi-select) ---
|
|
5855
5685
|
var handleToggleWidget = useCallback(function (widget) {
|
|
5856
5686
|
dispatch({
|
|
5857
5687
|
type: "TOGGLE_WIDGET",
|
|
5858
5688
|
payload: widget
|
|
5859
5689
|
});
|
|
5690
|
+
dispatch({
|
|
5691
|
+
type: "SET_SELECTED_DASHBOARD",
|
|
5692
|
+
payload: null
|
|
5693
|
+
});
|
|
5694
|
+
dispatch({
|
|
5695
|
+
type: "SET_PATH",
|
|
5696
|
+
payload: "custom"
|
|
5697
|
+
});
|
|
5860
5698
|
}, [dispatch]);
|
|
5861
5699
|
var isWidgetSelected = useCallback(function (widget) {
|
|
5862
5700
|
return state.selectedWidgets.some(function (w) {
|
|
5863
5701
|
return w.name === widget.name;
|
|
5864
5702
|
});
|
|
5865
5703
|
}, [state.selectedWidgets]);
|
|
5866
|
-
return /*#__PURE__*/jsxs("div", {
|
|
5867
|
-
className: "wizard-results-step",
|
|
5868
|
-
children: [/*#__PURE__*/jsx("h3", {
|
|
5869
|
-
className: "wizard-step-header",
|
|
5870
|
-
children: "Choose your starting point"
|
|
5871
|
-
}), /*#__PURE__*/jsxs(Tabs3, {
|
|
5872
|
-
value: activeTab,
|
|
5873
|
-
onValueChange: handleTabChange,
|
|
5874
|
-
className: "wizard-results-tabs",
|
|
5875
|
-
children: [/*#__PURE__*/jsxs(Tabs3.List, {
|
|
5876
|
-
className: "wizard-results-tab-list",
|
|
5877
|
-
children: [/*#__PURE__*/jsx(Tabs3.Trigger, {
|
|
5878
|
-
value: "prebuilt",
|
|
5879
|
-
children: "Pre-built Dashboards"
|
|
5880
|
-
}), /*#__PURE__*/jsxs(Tabs3.Trigger, {
|
|
5881
|
-
value: "custom",
|
|
5882
|
-
children: ["Build Your Own", state.selectedWidgets.length > 0 && /*#__PURE__*/jsx("span", {
|
|
5883
|
-
className: "wizard-count-badge",
|
|
5884
|
-
children: state.selectedWidgets.length
|
|
5885
|
-
})]
|
|
5886
|
-
})]
|
|
5887
|
-
}), /*#__PURE__*/jsx(Tabs3.Content, {
|
|
5888
|
-
value: "prebuilt",
|
|
5889
|
-
children: /*#__PURE__*/jsx(DashboardList, {
|
|
5890
|
-
dashboards: dashboards,
|
|
5891
|
-
isLoading: dashLoading,
|
|
5892
|
-
error: dashError,
|
|
5893
|
-
selectedDashboard: state.selectedDashboard,
|
|
5894
|
-
onSelect: handleSelectDashboard
|
|
5895
|
-
})
|
|
5896
|
-
}), /*#__PURE__*/jsx(Tabs3.Content, {
|
|
5897
|
-
value: "custom",
|
|
5898
|
-
children: /*#__PURE__*/jsx(WidgetList, {
|
|
5899
|
-
widgets: filteredWidgets,
|
|
5900
|
-
isLoading: widgetsLoading,
|
|
5901
|
-
error: widgetsError,
|
|
5902
|
-
isSelected: isWidgetSelected,
|
|
5903
|
-
onToggle: handleToggleWidget,
|
|
5904
|
-
selectedCount: state.selectedWidgets.length
|
|
5905
|
-
})
|
|
5906
|
-
})]
|
|
5907
|
-
})]
|
|
5908
|
-
});
|
|
5909
|
-
};
|
|
5910
|
-
|
|
5911
|
-
// --- Sub-components ---
|
|
5912
5704
|
|
|
5913
|
-
|
|
5914
|
-
var
|
|
5915
|
-
|
|
5916
|
-
|
|
5917
|
-
|
|
5918
|
-
onSelect = _ref3.onSelect;
|
|
5919
|
-
if (isLoading) {
|
|
5920
|
-
return /*#__PURE__*/jsxs("div", {
|
|
5921
|
-
className: "wizard-loading",
|
|
5922
|
-
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
5923
|
-
icon: "spinner",
|
|
5924
|
-
spin: true,
|
|
5925
|
-
fixedWidth: true,
|
|
5926
|
-
className: "wizard-loading-icon"
|
|
5927
|
-
}), /*#__PURE__*/jsx("span", {
|
|
5928
|
-
children: "Searching dashboards..."
|
|
5929
|
-
})]
|
|
5930
|
-
});
|
|
5931
|
-
}
|
|
5932
|
-
if (error) {
|
|
5933
|
-
return /*#__PURE__*/jsxs("div", {
|
|
5934
|
-
className: "wizard-error",
|
|
5935
|
-
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
5936
|
-
icon: "circle-exclamation",
|
|
5937
|
-
fixedWidth: true
|
|
5938
|
-
}), /*#__PURE__*/jsx("span", {
|
|
5939
|
-
children: error
|
|
5940
|
-
})]
|
|
5941
|
-
});
|
|
5942
|
-
}
|
|
5943
|
-
if (dashboards.length === 0) {
|
|
5944
|
-
return /*#__PURE__*/jsxs("div", {
|
|
5945
|
-
className: "wizard-empty",
|
|
5946
|
-
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
5947
|
-
icon: "box-open",
|
|
5948
|
-
fixedWidth: true,
|
|
5949
|
-
className: "wizard-empty-icon"
|
|
5950
|
-
}), /*#__PURE__*/jsx("p", {
|
|
5951
|
-
children: "No pre-built dashboards match your selections."
|
|
5952
|
-
}), /*#__PURE__*/jsx("p", {
|
|
5953
|
-
className: "wizard-empty-hint",
|
|
5954
|
-
children: "Try the \"Build Your Own\" tab to pick individual widgets."
|
|
5955
|
-
})]
|
|
5956
|
-
});
|
|
5957
|
-
}
|
|
5958
|
-
return /*#__PURE__*/jsx("div", {
|
|
5959
|
-
className: "wizard-dashboard-list",
|
|
5960
|
-
children: dashboards.map(function (dash) {
|
|
5961
|
-
var isSelected = selectedDashboard && selectedDashboard.name === dash.name;
|
|
5962
|
-
var widgetCount = (dash.widgets || []).length;
|
|
5963
|
-
var providerNames = (dash.providers || []).map(function (p) {
|
|
5964
|
-
return p.name || p.type;
|
|
5965
|
-
}).join(", ");
|
|
5966
|
-
return /*#__PURE__*/jsxs("button", {
|
|
5967
|
-
type: "button",
|
|
5968
|
-
className: "wizard-dashboard-card ".concat(isSelected ? "wizard-dashboard-card--selected" : ""),
|
|
5969
|
-
onClick: function onClick() {
|
|
5970
|
-
return onSelect(dash);
|
|
5971
|
-
},
|
|
5972
|
-
children: [/*#__PURE__*/jsxs("div", {
|
|
5973
|
-
className: "wizard-dashboard-card-header",
|
|
5974
|
-
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
5975
|
-
icon: resolveIcon(dash.icon || "grid-2"),
|
|
5976
|
-
fixedWidth: true,
|
|
5977
|
-
className: "wizard-dashboard-card-icon"
|
|
5978
|
-
}), /*#__PURE__*/jsx("span", {
|
|
5979
|
-
className: "wizard-dashboard-card-name",
|
|
5980
|
-
children: dash.displayName || dash.name
|
|
5981
|
-
}), isSelected && /*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
5982
|
-
icon: "circle-check",
|
|
5983
|
-
className: "wizard-dashboard-card-check"
|
|
5984
|
-
})]
|
|
5985
|
-
}), dash.description && /*#__PURE__*/jsx("p", {
|
|
5986
|
-
className: "wizard-dashboard-card-desc",
|
|
5987
|
-
children: dash.description
|
|
5988
|
-
}), /*#__PURE__*/jsxs("div", {
|
|
5989
|
-
className: "wizard-dashboard-card-meta",
|
|
5990
|
-
children: [/*#__PURE__*/jsxs("span", {
|
|
5991
|
-
children: [widgetCount, " widget", widgetCount !== 1 ? "s" : ""]
|
|
5992
|
-
}), providerNames && /*#__PURE__*/jsx("span", {
|
|
5993
|
-
children: providerNames
|
|
5994
|
-
})]
|
|
5995
|
-
})]
|
|
5996
|
-
}, dash.name);
|
|
5997
|
-
})
|
|
5998
|
-
});
|
|
5999
|
-
};
|
|
6000
|
-
var WidgetList = function WidgetList(_ref4) {
|
|
6001
|
-
var widgets = _ref4.widgets,
|
|
6002
|
-
isLoading = _ref4.isLoading,
|
|
6003
|
-
error = _ref4.error,
|
|
6004
|
-
isSelected = _ref4.isSelected,
|
|
6005
|
-
onToggle = _ref4.onToggle,
|
|
6006
|
-
selectedCount = _ref4.selectedCount;
|
|
6007
|
-
if (isLoading) {
|
|
6008
|
-
return /*#__PURE__*/jsxs("div", {
|
|
6009
|
-
className: "wizard-loading",
|
|
6010
|
-
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
6011
|
-
icon: "spinner",
|
|
6012
|
-
spin: true,
|
|
6013
|
-
fixedWidth: true,
|
|
6014
|
-
className: "wizard-loading-icon"
|
|
6015
|
-
}), /*#__PURE__*/jsx("span", {
|
|
6016
|
-
children: "Searching widgets..."
|
|
6017
|
-
})]
|
|
6018
|
-
});
|
|
6019
|
-
}
|
|
6020
|
-
if (error) {
|
|
6021
|
-
return /*#__PURE__*/jsxs("div", {
|
|
6022
|
-
className: "wizard-error",
|
|
6023
|
-
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
6024
|
-
icon: "circle-exclamation",
|
|
6025
|
-
fixedWidth: true
|
|
6026
|
-
}), /*#__PURE__*/jsx("span", {
|
|
6027
|
-
children: error
|
|
6028
|
-
})]
|
|
5705
|
+
// --- Filter chip handlers ---
|
|
5706
|
+
var handleToggleCategory = useCallback(function (cat) {
|
|
5707
|
+
return dispatch({
|
|
5708
|
+
type: "TOGGLE_FILTER_CATEGORY",
|
|
5709
|
+
payload: cat
|
|
6029
5710
|
});
|
|
6030
|
-
}
|
|
6031
|
-
|
|
6032
|
-
return
|
|
6033
|
-
|
|
6034
|
-
|
|
6035
|
-
icon: "puzzle-piece",
|
|
6036
|
-
fixedWidth: true,
|
|
6037
|
-
className: "wizard-empty-icon"
|
|
6038
|
-
}), /*#__PURE__*/jsx("p", {
|
|
6039
|
-
children: "No widgets match your selections."
|
|
6040
|
-
}), /*#__PURE__*/jsx("p", {
|
|
6041
|
-
className: "wizard-empty-hint",
|
|
6042
|
-
children: "Try adjusting your categories or providers in the previous steps."
|
|
6043
|
-
})]
|
|
5711
|
+
}, [dispatch]);
|
|
5712
|
+
var handleToggleProvider = useCallback(function (prov) {
|
|
5713
|
+
return dispatch({
|
|
5714
|
+
type: "TOGGLE_FILTER_PROVIDER",
|
|
5715
|
+
payload: prov
|
|
6044
5716
|
});
|
|
6045
|
-
}
|
|
5717
|
+
}, [dispatch]);
|
|
5718
|
+
var hasResults = filteredDashboards.length > 0 || filteredWidgets.length > 0;
|
|
5719
|
+
var hasActiveFilters = filters.categories.length > 0 || filters.providers.length > 0;
|
|
6046
5720
|
return /*#__PURE__*/jsxs("div", {
|
|
6047
|
-
className: "wizard-
|
|
6048
|
-
children: [
|
|
6049
|
-
className: "wizard-
|
|
6050
|
-
children:
|
|
6051
|
-
|
|
6052
|
-
|
|
6053
|
-
|
|
6054
|
-
|
|
6055
|
-
|
|
6056
|
-
|
|
6057
|
-
|
|
6058
|
-
|
|
6059
|
-
|
|
6060
|
-
|
|
6061
|
-
|
|
6062
|
-
|
|
6063
|
-
|
|
5721
|
+
className: "wizard-discover-step",
|
|
5722
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
5723
|
+
className: "wizard-discover-search",
|
|
5724
|
+
children: /*#__PURE__*/jsxs("div", {
|
|
5725
|
+
className: "wizard-discover-search-input",
|
|
5726
|
+
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
5727
|
+
icon: "magnifying-glass",
|
|
5728
|
+
fixedWidth: true,
|
|
5729
|
+
className: "wizard-discover-search-icon"
|
|
5730
|
+
}), /*#__PURE__*/jsx("input", {
|
|
5731
|
+
type: "text",
|
|
5732
|
+
placeholder: "Search registry...",
|
|
5733
|
+
value: searchQuery,
|
|
5734
|
+
onChange: handleSearchChange,
|
|
5735
|
+
className: "wizard-discover-input"
|
|
5736
|
+
})]
|
|
5737
|
+
})
|
|
5738
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
5739
|
+
className: "wizard-discover-filters",
|
|
5740
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
5741
|
+
className: "wizard-discover-filter-row",
|
|
5742
|
+
children: [/*#__PURE__*/jsx("span", {
|
|
5743
|
+
className: "wizard-discover-filter-label",
|
|
5744
|
+
children: "Categories"
|
|
5745
|
+
}), /*#__PURE__*/jsx("div", {
|
|
5746
|
+
className: "wizard-discover-chips",
|
|
5747
|
+
children: DASHBOARD_TAGS$1.map(function (tag) {
|
|
5748
|
+
return /*#__PURE__*/jsx("button", {
|
|
5749
|
+
type: "button",
|
|
5750
|
+
className: "wizard-chip ".concat(filters.categories.includes(tag) ? "wizard-chip--active" : ""),
|
|
5751
|
+
onClick: function onClick() {
|
|
5752
|
+
return handleToggleCategory(tag);
|
|
5753
|
+
},
|
|
5754
|
+
children: tag
|
|
5755
|
+
}, tag);
|
|
6064
5756
|
})
|
|
6065
|
-
})
|
|
6066
|
-
|
|
6067
|
-
|
|
6068
|
-
|
|
6069
|
-
|
|
6070
|
-
|
|
6071
|
-
|
|
6072
|
-
|
|
6073
|
-
|
|
6074
|
-
|
|
6075
|
-
|
|
5757
|
+
})]
|
|
5758
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
5759
|
+
className: "wizard-discover-filter-row",
|
|
5760
|
+
children: [/*#__PURE__*/jsx("span", {
|
|
5761
|
+
className: "wizard-discover-filter-label",
|
|
5762
|
+
children: "Providers"
|
|
5763
|
+
}), /*#__PURE__*/jsx("div", {
|
|
5764
|
+
className: "wizard-discover-chips",
|
|
5765
|
+
children: KNOWN_PROVIDERS.map(function (prov) {
|
|
5766
|
+
return /*#__PURE__*/jsx("button", {
|
|
5767
|
+
type: "button",
|
|
5768
|
+
className: "wizard-chip ".concat(filters.providers.includes(prov.key) ? "wizard-chip--active" : ""),
|
|
5769
|
+
onClick: function onClick() {
|
|
5770
|
+
return handleToggleProvider(prov.key);
|
|
5771
|
+
},
|
|
5772
|
+
children: prov.name
|
|
5773
|
+
}, prov.key);
|
|
5774
|
+
})
|
|
5775
|
+
})]
|
|
5776
|
+
})]
|
|
5777
|
+
}), /*#__PURE__*/jsx("div", {
|
|
5778
|
+
className: "wizard-discover-results",
|
|
5779
|
+
children: isLoading ? /*#__PURE__*/jsxs("div", {
|
|
5780
|
+
className: "wizard-loading",
|
|
5781
|
+
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
5782
|
+
icon: "spinner",
|
|
5783
|
+
spin: true,
|
|
5784
|
+
fixedWidth: true,
|
|
5785
|
+
className: "wizard-loading-icon"
|
|
5786
|
+
}), /*#__PURE__*/jsx("span", {
|
|
5787
|
+
children: "Searching registry..."
|
|
5788
|
+
})]
|
|
5789
|
+
}) : error ? /*#__PURE__*/jsxs("div", {
|
|
5790
|
+
className: "wizard-error",
|
|
5791
|
+
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
5792
|
+
icon: "circle-exclamation",
|
|
5793
|
+
fixedWidth: true
|
|
5794
|
+
}), /*#__PURE__*/jsx("span", {
|
|
5795
|
+
children: error
|
|
5796
|
+
})]
|
|
5797
|
+
}) : !hasResults ? /*#__PURE__*/jsxs("div", {
|
|
5798
|
+
className: "wizard-empty",
|
|
5799
|
+
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
5800
|
+
icon: "magnifying-glass",
|
|
5801
|
+
fixedWidth: true,
|
|
5802
|
+
className: "wizard-empty-icon"
|
|
5803
|
+
}), /*#__PURE__*/jsx("p", {
|
|
5804
|
+
children: "No results match your search."
|
|
5805
|
+
}), hasActiveFilters && /*#__PURE__*/jsx("p", {
|
|
5806
|
+
className: "wizard-empty-hint",
|
|
5807
|
+
children: "Try removing some filters to see more results."
|
|
5808
|
+
})]
|
|
5809
|
+
}) : /*#__PURE__*/jsxs(Fragment, {
|
|
5810
|
+
children: [filteredDashboards.length > 0 && /*#__PURE__*/jsxs("div", {
|
|
5811
|
+
className: "wizard-discover-section",
|
|
5812
|
+
children: [/*#__PURE__*/jsxs("h4", {
|
|
5813
|
+
className: "wizard-discover-section-title",
|
|
5814
|
+
children: ["Dashboards (", filteredDashboards.length, " result", filteredDashboards.length !== 1 ? "s" : "", ")"]
|
|
5815
|
+
}), /*#__PURE__*/jsx("div", {
|
|
5816
|
+
className: "wizard-dashboard-list",
|
|
5817
|
+
children: filteredDashboards.map(function (dash) {
|
|
5818
|
+
var isSelected = state.selectedDashboard && state.selectedDashboard.name === dash.name;
|
|
5819
|
+
var widgetCount = (dash.widgets || []).length;
|
|
5820
|
+
var providerNames = (dash.providers || []).map(function (p) {
|
|
5821
|
+
return p.name || p.type;
|
|
5822
|
+
}).join(", ");
|
|
5823
|
+
return /*#__PURE__*/jsxs("button", {
|
|
5824
|
+
type: "button",
|
|
5825
|
+
className: "wizard-dashboard-card ".concat(isSelected ? "wizard-dashboard-card--selected" : ""),
|
|
5826
|
+
onClick: function onClick() {
|
|
5827
|
+
return handleSelectDashboard(dash);
|
|
5828
|
+
},
|
|
5829
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
5830
|
+
className: "wizard-dashboard-card-header",
|
|
5831
|
+
children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
5832
|
+
icon: resolveIcon(dash.icon || "grid-2"),
|
|
5833
|
+
fixedWidth: true,
|
|
5834
|
+
className: "wizard-dashboard-card-icon"
|
|
5835
|
+
}), /*#__PURE__*/jsx("span", {
|
|
5836
|
+
className: "wizard-dashboard-card-name",
|
|
5837
|
+
children: dash.displayName || dash.name
|
|
5838
|
+
}), isSelected && /*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
5839
|
+
icon: "circle-check",
|
|
5840
|
+
className: "wizard-dashboard-card-check"
|
|
5841
|
+
})]
|
|
5842
|
+
}), dash.description && /*#__PURE__*/jsx("p", {
|
|
5843
|
+
className: "wizard-dashboard-card-desc",
|
|
5844
|
+
children: dash.description
|
|
5845
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
5846
|
+
className: "wizard-dashboard-card-meta",
|
|
5847
|
+
children: [/*#__PURE__*/jsxs("span", {
|
|
5848
|
+
children: [widgetCount, " widget", widgetCount !== 1 ? "s" : ""]
|
|
5849
|
+
}), providerNames && /*#__PURE__*/jsx("span", {
|
|
5850
|
+
children: providerNames
|
|
5851
|
+
})]
|
|
5852
|
+
})]
|
|
5853
|
+
}, dash.name);
|
|
5854
|
+
})
|
|
5855
|
+
})]
|
|
5856
|
+
}), filteredWidgets.length > 0 && /*#__PURE__*/jsxs("div", {
|
|
5857
|
+
className: "wizard-discover-section",
|
|
5858
|
+
children: [/*#__PURE__*/jsxs("h4", {
|
|
5859
|
+
className: "wizard-discover-section-title",
|
|
5860
|
+
children: ["Widgets (", filteredWidgets.length, " result", filteredWidgets.length !== 1 ? "s" : "", ")", state.selectedWidgets.length > 0 && /*#__PURE__*/jsxs("span", {
|
|
5861
|
+
className: "wizard-count-badge",
|
|
5862
|
+
children: [state.selectedWidgets.length, " selected"]
|
|
6076
5863
|
})]
|
|
6077
|
-
}),
|
|
6078
|
-
className: "wizard-widget-
|
|
6079
|
-
children: widget
|
|
6080
|
-
|
|
6081
|
-
|
|
6082
|
-
|
|
5864
|
+
}), /*#__PURE__*/jsx("div", {
|
|
5865
|
+
className: "wizard-widget-list",
|
|
5866
|
+
children: filteredWidgets.map(function (widget) {
|
|
5867
|
+
var checked = isWidgetSelected(widget);
|
|
5868
|
+
return /*#__PURE__*/jsxs("button", {
|
|
5869
|
+
type: "button",
|
|
5870
|
+
className: "wizard-widget-card ".concat(checked ? "wizard-widget-card--selected" : ""),
|
|
5871
|
+
onClick: function onClick() {
|
|
5872
|
+
return handleToggleWidget(widget);
|
|
5873
|
+
},
|
|
5874
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
5875
|
+
className: "wizard-widget-card-checkbox",
|
|
5876
|
+
children: /*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
5877
|
+
icon: checked ? "square-check" : "square",
|
|
5878
|
+
fixedWidth: true
|
|
5879
|
+
})
|
|
5880
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
5881
|
+
className: "wizard-widget-card-info",
|
|
5882
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
5883
|
+
className: "wizard-widget-card-header",
|
|
5884
|
+
children: [widget.icon && /*#__PURE__*/jsx(FontAwesomeIcon, {
|
|
5885
|
+
icon: resolveIcon(widget.icon),
|
|
5886
|
+
fixedWidth: true,
|
|
5887
|
+
className: "wizard-widget-card-icon"
|
|
5888
|
+
}), /*#__PURE__*/jsx("span", {
|
|
5889
|
+
className: "wizard-widget-card-name",
|
|
5890
|
+
children: widget.name
|
|
5891
|
+
})]
|
|
5892
|
+
}), widget.description && /*#__PURE__*/jsx("p", {
|
|
5893
|
+
className: "wizard-widget-card-desc",
|
|
5894
|
+
children: widget.description
|
|
5895
|
+
}), widget.packageDisplayName && /*#__PURE__*/jsx("span", {
|
|
5896
|
+
className: "wizard-widget-card-package",
|
|
5897
|
+
children: widget.packageDisplayName
|
|
5898
|
+
})]
|
|
5899
|
+
})]
|
|
5900
|
+
}, widget.key);
|
|
5901
|
+
})
|
|
6083
5902
|
})]
|
|
6084
5903
|
})]
|
|
6085
|
-
}
|
|
5904
|
+
})
|
|
6086
5905
|
})]
|
|
6087
5906
|
});
|
|
6088
5907
|
};
|
|
6089
5908
|
|
|
5909
|
+
// --- Helpers ---
|
|
5910
|
+
|
|
5911
|
+
function applyFilters(items, filters, mode) {
|
|
5912
|
+
return items.filter(function (item) {
|
|
5913
|
+
// Category filter
|
|
5914
|
+
if (filters.categories.length > 0) {
|
|
5915
|
+
var itemCategory = mode === "widget" ? (item.packageCategory || "").toLowerCase() : (item.category || "").toLowerCase();
|
|
5916
|
+
if (!filters.categories.some(function (c) {
|
|
5917
|
+
return c.toLowerCase() === itemCategory;
|
|
5918
|
+
})) {
|
|
5919
|
+
return false;
|
|
5920
|
+
}
|
|
5921
|
+
}
|
|
5922
|
+
|
|
5923
|
+
// Provider filter
|
|
5924
|
+
if (filters.providers.length > 0) {
|
|
5925
|
+
var itemProviders = mode === "widget" ? [].concat(_toConsumableArray(item.providers || []), _toConsumableArray(item.packageProviders || [])) : item.providers || [];
|
|
5926
|
+
var hasMatchingProvider = itemProviders.some(function (p) {
|
|
5927
|
+
return filters.providers.includes(p.type);
|
|
5928
|
+
});
|
|
5929
|
+
if (!hasMatchingProvider) {
|
|
5930
|
+
return false;
|
|
5931
|
+
}
|
|
5932
|
+
}
|
|
5933
|
+
return true;
|
|
5934
|
+
});
|
|
5935
|
+
}
|
|
5936
|
+
|
|
6090
5937
|
function ownKeys$B(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
6091
5938
|
function _objectSpread$B(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$B(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$B(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6092
|
-
var TOTAL_STEPS =
|
|
5939
|
+
var TOTAL_STEPS = 3; // Steps 0-2: Discover, Layout, Customize
|
|
6093
5940
|
|
|
6094
5941
|
var initialState = {
|
|
6095
5942
|
step: 0,
|
|
6096
|
-
|
|
6097
|
-
|
|
5943
|
+
filters: {
|
|
5944
|
+
categories: [],
|
|
5945
|
+
providers: [],
|
|
5946
|
+
query: ""
|
|
5947
|
+
},
|
|
6098
5948
|
selectedWidgets: [],
|
|
6099
5949
|
selectedDashboard: null,
|
|
6100
5950
|
layout: {
|
|
@@ -6114,32 +5964,38 @@ function wizardReducer(state, action) {
|
|
|
6114
5964
|
return _objectSpread$B(_objectSpread$B({}, state), {}, {
|
|
6115
5965
|
step: action.payload
|
|
6116
5966
|
});
|
|
6117
|
-
case "
|
|
5967
|
+
case "SET_FILTERS":
|
|
6118
5968
|
return _objectSpread$B(_objectSpread$B({}, state), {}, {
|
|
6119
|
-
|
|
5969
|
+
filters: _objectSpread$B(_objectSpread$B({}, state.filters), action.payload)
|
|
6120
5970
|
});
|
|
6121
|
-
case "
|
|
5971
|
+
case "TOGGLE_FILTER_CATEGORY":
|
|
6122
5972
|
{
|
|
6123
|
-
var
|
|
6124
|
-
return
|
|
6125
|
-
}) : [].concat(_toConsumableArray(state.
|
|
5973
|
+
var categories = state.filters.categories.includes(action.payload) ? state.filters.categories.filter(function (c) {
|
|
5974
|
+
return c !== action.payload;
|
|
5975
|
+
}) : [].concat(_toConsumableArray(state.filters.categories), [action.payload]);
|
|
6126
5976
|
return _objectSpread$B(_objectSpread$B({}, state), {}, {
|
|
6127
|
-
|
|
5977
|
+
filters: _objectSpread$B(_objectSpread$B({}, state.filters), {}, {
|
|
5978
|
+
categories: categories
|
|
5979
|
+
})
|
|
6128
5980
|
});
|
|
6129
5981
|
}
|
|
6130
|
-
case "
|
|
6131
|
-
return _objectSpread$B(_objectSpread$B({}, state), {}, {
|
|
6132
|
-
providers: action.payload
|
|
6133
|
-
});
|
|
6134
|
-
case "TOGGLE_PROVIDER":
|
|
5982
|
+
case "TOGGLE_FILTER_PROVIDER":
|
|
6135
5983
|
{
|
|
6136
|
-
var providers = state.providers.includes(action.payload) ? state.providers.filter(function (p) {
|
|
5984
|
+
var providers = state.filters.providers.includes(action.payload) ? state.filters.providers.filter(function (p) {
|
|
6137
5985
|
return p !== action.payload;
|
|
6138
|
-
}) : [].concat(_toConsumableArray(state.providers), [action.payload]);
|
|
5986
|
+
}) : [].concat(_toConsumableArray(state.filters.providers), [action.payload]);
|
|
6139
5987
|
return _objectSpread$B(_objectSpread$B({}, state), {}, {
|
|
6140
|
-
|
|
5988
|
+
filters: _objectSpread$B(_objectSpread$B({}, state.filters), {}, {
|
|
5989
|
+
providers: providers
|
|
5990
|
+
})
|
|
6141
5991
|
});
|
|
6142
5992
|
}
|
|
5993
|
+
case "SET_SEARCH_QUERY":
|
|
5994
|
+
return _objectSpread$B(_objectSpread$B({}, state), {}, {
|
|
5995
|
+
filters: _objectSpread$B(_objectSpread$B({}, state.filters), {}, {
|
|
5996
|
+
query: action.payload
|
|
5997
|
+
})
|
|
5998
|
+
});
|
|
6143
5999
|
case "SET_SELECTED_WIDGETS":
|
|
6144
6000
|
return _objectSpread$B(_objectSpread$B({}, state), {}, {
|
|
6145
6001
|
selectedWidgets: action.payload
|
|
@@ -6195,17 +6051,11 @@ function widgetCountToTemplate(count) {
|
|
|
6195
6051
|
function getCanProceed(state) {
|
|
6196
6052
|
switch (state.step) {
|
|
6197
6053
|
case 0:
|
|
6198
|
-
return state.
|
|
6054
|
+
return state.selectedDashboard !== null || state.selectedWidgets.length > 0;
|
|
6199
6055
|
case 1:
|
|
6200
|
-
return state.providers.length > 0;
|
|
6201
|
-
case 2:
|
|
6202
|
-
return state.path === "prebuilt" ? state.selectedDashboard !== null : state.selectedWidgets.length > 0;
|
|
6203
|
-
case 3:
|
|
6204
6056
|
return state.layout.templateKey !== null;
|
|
6205
|
-
case
|
|
6057
|
+
case 2:
|
|
6206
6058
|
return state.customization.name.trim().length > 0;
|
|
6207
|
-
case 5:
|
|
6208
|
-
return true;
|
|
6209
6059
|
default:
|
|
6210
6060
|
return false;
|
|
6211
6061
|
}
|
|
@@ -6844,7 +6694,7 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
|
|
|
6844
6694
|
}
|
|
6845
6695
|
|
|
6846
6696
|
// --- Provider setup summary ---
|
|
6847
|
-
var selectedProviders = (state.providers || []).map(function (provKey) {
|
|
6697
|
+
var selectedProviders = (state.filters && state.filters.providers || []).map(function (provKey) {
|
|
6848
6698
|
var prov = (providersMap === null || providersMap === void 0 ? void 0 : providersMap[provKey]) || {};
|
|
6849
6699
|
return {
|
|
6850
6700
|
key: provKey,
|
|
@@ -7136,14 +6986,8 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
|
|
|
7136
6986
|
};
|
|
7137
6987
|
|
|
7138
6988
|
var STEP_LABELS = [{
|
|
7139
|
-
label: "
|
|
7140
|
-
description: "
|
|
7141
|
-
}, {
|
|
7142
|
-
label: "Providers",
|
|
7143
|
-
description: "Select data sources"
|
|
7144
|
-
}, {
|
|
7145
|
-
label: "Browse",
|
|
7146
|
-
description: "Pick widgets or dashboards"
|
|
6989
|
+
label: "Discover",
|
|
6990
|
+
description: "Search & select"
|
|
7147
6991
|
}, {
|
|
7148
6992
|
label: "Layout",
|
|
7149
6993
|
description: "Arrange your widgets"
|
|
@@ -7205,23 +7049,23 @@ var DashboardWizardModal = function DashboardWizardModal(_ref) {
|
|
|
7205
7049
|
// Skip layout step for prebuilt path
|
|
7206
7050
|
var handleNext = useCallback(function () {
|
|
7207
7051
|
if (!canProceed) return;
|
|
7208
|
-
if (state.step ===
|
|
7209
|
-
// Skip layout step (
|
|
7210
|
-
goToStep(
|
|
7052
|
+
if (state.step === 0 && isPrebuiltPath) {
|
|
7053
|
+
// Skip layout step (1), go straight to customize (2)
|
|
7054
|
+
goToStep(2);
|
|
7211
7055
|
} else {
|
|
7212
7056
|
nextStep();
|
|
7213
7057
|
}
|
|
7214
7058
|
}, [canProceed, state.step, isPrebuiltPath, goToStep, nextStep]);
|
|
7215
7059
|
var handleBack = useCallback(function () {
|
|
7216
|
-
if (state.step ===
|
|
7217
|
-
// Skip back over layout step (
|
|
7218
|
-
goToStep(
|
|
7060
|
+
if (state.step === 2 && isPrebuiltPath) {
|
|
7061
|
+
// Skip back over layout step (1), go to discover (0)
|
|
7062
|
+
goToStep(0);
|
|
7219
7063
|
} else {
|
|
7220
7064
|
prevStep();
|
|
7221
7065
|
}
|
|
7222
7066
|
}, [state.step, isPrebuiltPath, goToStep, prevStep]);
|
|
7223
|
-
var isLastStep = state.step ===
|
|
7224
|
-
state.step ===
|
|
7067
|
+
var isLastStep = state.step === 2;
|
|
7068
|
+
state.step === 2 && state._created;
|
|
7225
7069
|
return /*#__PURE__*/jsx(Modal, {
|
|
7226
7070
|
isOpen: open,
|
|
7227
7071
|
setIsOpen: setIsOpen,
|
|
@@ -7263,7 +7107,7 @@ var DashboardWizardModal = function DashboardWizardModal(_ref) {
|
|
|
7263
7107
|
description: STEP_LABELS[0].description,
|
|
7264
7108
|
children: /*#__PURE__*/jsx("div", {
|
|
7265
7109
|
className: "flex-1 min-h-0 overflow-y-auto",
|
|
7266
|
-
children: /*#__PURE__*/jsx(
|
|
7110
|
+
children: /*#__PURE__*/jsx(WizardDiscoverStep, {
|
|
7267
7111
|
state: state,
|
|
7268
7112
|
dispatch: dispatch
|
|
7269
7113
|
})
|
|
@@ -7273,7 +7117,7 @@ var DashboardWizardModal = function DashboardWizardModal(_ref) {
|
|
|
7273
7117
|
description: STEP_LABELS[1].description,
|
|
7274
7118
|
children: /*#__PURE__*/jsx("div", {
|
|
7275
7119
|
className: "flex-1 min-h-0 overflow-y-auto",
|
|
7276
|
-
children: /*#__PURE__*/jsx(
|
|
7120
|
+
children: /*#__PURE__*/jsx(WizardLayoutPreviewStep, {
|
|
7277
7121
|
state: state,
|
|
7278
7122
|
dispatch: dispatch
|
|
7279
7123
|
})
|
|
@@ -7281,26 +7125,6 @@ var DashboardWizardModal = function DashboardWizardModal(_ref) {
|
|
|
7281
7125
|
}), /*#__PURE__*/jsx(Stepper.Step, {
|
|
7282
7126
|
label: STEP_LABELS[2].label,
|
|
7283
7127
|
description: STEP_LABELS[2].description,
|
|
7284
|
-
children: /*#__PURE__*/jsx("div", {
|
|
7285
|
-
className: "flex-1 min-h-0 overflow-y-auto",
|
|
7286
|
-
children: /*#__PURE__*/jsx(WizardResultsStep, {
|
|
7287
|
-
state: state,
|
|
7288
|
-
dispatch: dispatch
|
|
7289
|
-
})
|
|
7290
|
-
})
|
|
7291
|
-
}), /*#__PURE__*/jsx(Stepper.Step, {
|
|
7292
|
-
label: STEP_LABELS[3].label,
|
|
7293
|
-
description: STEP_LABELS[3].description,
|
|
7294
|
-
children: /*#__PURE__*/jsx("div", {
|
|
7295
|
-
className: "flex-1 min-h-0 overflow-y-auto",
|
|
7296
|
-
children: /*#__PURE__*/jsx(WizardLayoutPreviewStep, {
|
|
7297
|
-
state: state,
|
|
7298
|
-
dispatch: dispatch
|
|
7299
|
-
})
|
|
7300
|
-
})
|
|
7301
|
-
}), /*#__PURE__*/jsx(Stepper.Step, {
|
|
7302
|
-
label: STEP_LABELS[4].label,
|
|
7303
|
-
description: STEP_LABELS[4].description,
|
|
7304
7128
|
children: /*#__PURE__*/jsx("div", {
|
|
7305
7129
|
className: "flex-1 min-h-0 overflow-y-auto",
|
|
7306
7130
|
children: /*#__PURE__*/jsx(WizardCustomizeStep, {
|
|
@@ -50024,5 +49848,5 @@ var WorkspaceMenu = function WorkspaceMenu(_ref) {
|
|
|
50024
49848
|
|
|
50025
49849
|
ComponentManager.registerContainerTypes(LayoutContainer, LayoutGridContainer);
|
|
50026
49850
|
|
|
50027
|
-
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, 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, 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_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, 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, WizardCustomizeStep,
|
|
49851
|
+
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, 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, 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_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, 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, WizardCustomizeStep, WizardDiscoverStep, WizardLayoutPreviewStep, 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, useMcpDashServer, useMcpProvider, useNotifications, useProvider, useProviderClient, useScheduler, useWebSocketProvider, useWidgetEvents, useWidgetProviders, useWidgetSchedulerStatus, useWizardState, validateCellMerge, validateGridCell, validateGridPlacement, validateWidgetPlacement, widgetCountToTemplate, withProviderDetection };
|
|
50028
49852
|
//# sourceMappingURL=index.esm.js.map
|