@trops/dash-core 0.1.188 → 0.1.190

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.js CHANGED
@@ -2945,6 +2945,44 @@ var layoutTemplates = [{
2945
2945
  row: 2,
2946
2946
  col: 2
2947
2947
  }]
2948
+ }, {
2949
+ id: "two-by-three",
2950
+ name: "2x3 Grid",
2951
+ description: "Six panels in two rows of three. Good for medium-density dashboards.",
2952
+ rows: 2,
2953
+ cols: 3,
2954
+ cells: [{
2955
+ key: "1.1"
2956
+ }, {
2957
+ key: "1.2"
2958
+ }, {
2959
+ key: "1.3"
2960
+ }, {
2961
+ key: "2.1"
2962
+ }, {
2963
+ key: "2.2"
2964
+ }, {
2965
+ key: "2.3"
2966
+ }],
2967
+ previewCells: [{
2968
+ row: 1,
2969
+ col: 1
2970
+ }, {
2971
+ row: 1,
2972
+ col: 2
2973
+ }, {
2974
+ row: 1,
2975
+ col: 3
2976
+ }, {
2977
+ row: 2,
2978
+ col: 1
2979
+ }, {
2980
+ row: 2,
2981
+ col: 2
2982
+ }, {
2983
+ row: 2,
2984
+ col: 3
2985
+ }]
2948
2986
  }, {
2949
2987
  id: "three-by-three",
2950
2988
  name: "3x3 Grid",
@@ -5408,6 +5446,1085 @@ var WizardProvidersStep = function WizardProvidersStep(_ref) {
5408
5446
  });
5409
5447
  };
5410
5448
 
5449
+ 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; } } }; }
5450
+ 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; } }
5451
+ 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; }
5452
+
5453
+ /**
5454
+ * useRegistrySearch — shared hook for browsing and installing registry packages.
5455
+ *
5456
+ * Extracted from EnhancedWidgetDropdown so the same logic can power the
5457
+ * Discover tab inside AppSettingsModal (and anywhere else).
5458
+ *
5459
+ * Options:
5460
+ * filterByCapabilities – if true (default), only show packages compatible
5461
+ * with the app's API capabilities
5462
+ *
5463
+ * Returns:
5464
+ * packages – raw package objects from the registry
5465
+ * flatWidgets – flattened widget entries with `isRegistry: true`
5466
+ * isLoading – true while a search request is in flight
5467
+ * error – error message string (or null)
5468
+ * searchQuery / setSearchQuery – controlled search input
5469
+ * isInstalling – true during an install
5470
+ * installError – install error string (or null)
5471
+ * search() – manually trigger a search
5472
+ * installPackage(widget) – install a specific registry widget
5473
+ * showAllPackages / setShowAllPackages – toggle to show incompatible packages
5474
+ * appCapabilities – the app's API namespaces
5475
+ */
5476
+ var useRegistrySearch = function useRegistrySearch() {
5477
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
5478
+ _ref$filterByCapabili = _ref.filterByCapabilities,
5479
+ filterByCapabilities = _ref$filterByCapabili === void 0 ? true : _ref$filterByCapabili;
5480
+ var _useState = React.useState(false),
5481
+ _useState2 = _slicedToArray(_useState, 2),
5482
+ isLoading = _useState2[0],
5483
+ setIsLoading = _useState2[1];
5484
+ var _useState3 = React.useState(null),
5485
+ _useState4 = _slicedToArray(_useState3, 2),
5486
+ error = _useState4[0],
5487
+ setError = _useState4[1];
5488
+ var _useState5 = React.useState([]),
5489
+ _useState6 = _slicedToArray(_useState5, 2),
5490
+ packages = _useState6[0],
5491
+ setPackages = _useState6[1];
5492
+ var _useState7 = React.useState([]),
5493
+ _useState8 = _slicedToArray(_useState7, 2),
5494
+ flatWidgets = _useState8[0],
5495
+ setFlatWidgets = _useState8[1];
5496
+ var _useState9 = React.useState(""),
5497
+ _useState0 = _slicedToArray(_useState9, 2),
5498
+ searchQuery = _useState0[0],
5499
+ setSearchQuery = _useState0[1];
5500
+ var _useState1 = React.useState(false),
5501
+ _useState10 = _slicedToArray(_useState1, 2),
5502
+ isInstalling = _useState10[0],
5503
+ setIsInstalling = _useState10[1];
5504
+ var _useState11 = React.useState(null),
5505
+ _useState12 = _slicedToArray(_useState11, 2),
5506
+ installError = _useState12[0],
5507
+ setInstallError = _useState12[1];
5508
+ var _useState13 = React.useState(false),
5509
+ _useState14 = _slicedToArray(_useState13, 2),
5510
+ showAllPackages = _useState14[0],
5511
+ setShowAllPackages = _useState14[1];
5512
+
5513
+ // Discover app capabilities from window.mainApi
5514
+ var appCapabilities = React.useMemo(function () {
5515
+ if (typeof window !== "undefined" && window.mainApi) {
5516
+ return Object.keys(window.mainApi);
5517
+ }
5518
+ return [];
5519
+ }, []);
5520
+ var search = React.useCallback(/*#__PURE__*/function () {
5521
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(query) {
5522
+ var _window$mainApi;
5523
+ var filters, result, pkgs, capSet, widgets, _iterator, _step, pkg, allApiProviders, _iterator2, _step2, p, _iterator3, _step3, w, _iterator5, _step5, _p, missingApis, _iterator4, _step4, widget, _t;
5524
+ return _regeneratorRuntime.wrap(function (_context) {
5525
+ while (1) switch (_context.prev = _context.next) {
5526
+ case 0:
5527
+ if ((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && _window$mainApi.registry) {
5528
+ _context.next = 1;
5529
+ break;
5530
+ }
5531
+ setPackages([]);
5532
+ setFlatWidgets([]);
5533
+ return _context.abrupt("return");
5534
+ case 1:
5535
+ setIsLoading(true);
5536
+ setError(null);
5537
+ _context.prev = 2;
5538
+ filters = {};
5539
+ if (filterByCapabilities && !showAllPackages && appCapabilities.length) {
5540
+ filters.appCapabilities = appCapabilities;
5541
+ }
5542
+ _context.next = 3;
5543
+ return window.mainApi.registry.search(query !== null && query !== void 0 ? query : searchQuery, filters);
5544
+ case 3:
5545
+ result = _context.sent;
5546
+ // Only include packages that contain at least one widget
5547
+ // (filters out theme-only packages, etc.)
5548
+ pkgs = (result.packages || []).filter(function (pkg) {
5549
+ return pkg.widgets && pkg.widgets.length > 0;
5550
+ });
5551
+ setPackages(pkgs);
5552
+
5553
+ // Flatten packages into widget entries
5554
+ capSet = new Set(appCapabilities.map(function (c) {
5555
+ return c.toLowerCase();
5556
+ }));
5557
+ widgets = [];
5558
+ _iterator = _createForOfIteratorHelper$e(pkgs);
5559
+ try {
5560
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
5561
+ pkg = _step.value;
5562
+ // Compute missing APIs for the entire package
5563
+ allApiProviders = [];
5564
+ _iterator2 = _createForOfIteratorHelper$e(pkg.providers || []);
5565
+ try {
5566
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
5567
+ p = _step2.value;
5568
+ if (p.providerClass === "api" && p.required !== false) {
5569
+ allApiProviders.push(p.type);
5570
+ }
5571
+ }
5572
+ } catch (err) {
5573
+ _iterator2.e(err);
5574
+ } finally {
5575
+ _iterator2.f();
5576
+ }
5577
+ _iterator3 = _createForOfIteratorHelper$e(pkg.widgets || []);
5578
+ try {
5579
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
5580
+ w = _step3.value;
5581
+ _iterator5 = _createForOfIteratorHelper$e(w.providers || []);
5582
+ try {
5583
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
5584
+ _p = _step5.value;
5585
+ if (_p.providerClass === "api" && _p.required !== false) {
5586
+ allApiProviders.push(_p.type);
5587
+ }
5588
+ }
5589
+ } catch (err) {
5590
+ _iterator5.e(err);
5591
+ } finally {
5592
+ _iterator5.f();
5593
+ }
5594
+ }
5595
+ } catch (err) {
5596
+ _iterator3.e(err);
5597
+ } finally {
5598
+ _iterator3.f();
5599
+ }
5600
+ missingApis = _toConsumableArray(new Set(allApiProviders)).filter(function (api) {
5601
+ return !capSet.has(api.toLowerCase());
5602
+ });
5603
+ _iterator4 = _createForOfIteratorHelper$e(pkg.widgets || []);
5604
+ try {
5605
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
5606
+ widget = _step4.value;
5607
+ widgets.push({
5608
+ key: "".concat(pkg.name, "/").concat(widget.name),
5609
+ name: widget.displayName || widget.name,
5610
+ description: widget.description || "",
5611
+ icon: widget.icon || null,
5612
+ providers: widget.providers || [],
5613
+ isRegistry: true,
5614
+ packageName: pkg.name,
5615
+ packageDisplayName: pkg.displayName || pkg.name,
5616
+ packageVersion: pkg.version,
5617
+ packageAuthor: pkg.author || "",
5618
+ packageDescription: pkg.description || "",
5619
+ packageTags: pkg.tags || [],
5620
+ packageCategory: pkg.category || "",
5621
+ downloadUrl: pkg.downloadUrl || "",
5622
+ repository: pkg.repository || "",
5623
+ publishedAt: pkg.publishedAt || "",
5624
+ packageWidgets: pkg.widgets || [],
5625
+ appOrigin: pkg.appOrigin || null,
5626
+ packageProviders: pkg.providers || [],
5627
+ missingApis: missingApis
5628
+ });
5629
+ }
5630
+ } catch (err) {
5631
+ _iterator4.e(err);
5632
+ } finally {
5633
+ _iterator4.f();
5634
+ }
5635
+ }
5636
+ } catch (err) {
5637
+ _iterator.e(err);
5638
+ } finally {
5639
+ _iterator.f();
5640
+ }
5641
+ setFlatWidgets(widgets);
5642
+ _context.next = 5;
5643
+ break;
5644
+ case 4:
5645
+ _context.prev = 4;
5646
+ _t = _context["catch"](2);
5647
+ setError(_t.message || "Failed to load registry");
5648
+ setPackages([]);
5649
+ setFlatWidgets([]);
5650
+ case 5:
5651
+ _context.prev = 5;
5652
+ setIsLoading(false);
5653
+ return _context.finish(5);
5654
+ case 6:
5655
+ case "end":
5656
+ return _context.stop();
5657
+ }
5658
+ }, _callee, null, [[2, 4, 5, 6]]);
5659
+ }));
5660
+ return function (_x) {
5661
+ return _ref2.apply(this, arguments);
5662
+ };
5663
+ }(), [searchQuery, filterByCapabilities, showAllPackages, appCapabilities]);
5664
+
5665
+ // Debounce search on query changes (300ms)
5666
+ React.useEffect(function () {
5667
+ var timer = setTimeout(function () {
5668
+ search(searchQuery);
5669
+ }, 300);
5670
+ return function () {
5671
+ return clearTimeout(timer);
5672
+ };
5673
+ // eslint-disable-next-line react-hooks/exhaustive-deps
5674
+ }, [searchQuery, showAllPackages]);
5675
+ var installPackage = React.useCallback(/*#__PURE__*/function () {
5676
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(widget) {
5677
+ var packageName, downloadUrl, packageVersion, resolvedUrl, _t2;
5678
+ return _regeneratorRuntime.wrap(function (_context2) {
5679
+ while (1) switch (_context2.prev = _context2.next) {
5680
+ case 0:
5681
+ if (!(!widget || !widget.isRegistry)) {
5682
+ _context2.next = 1;
5683
+ break;
5684
+ }
5685
+ return _context2.abrupt("return");
5686
+ case 1:
5687
+ setIsInstalling(true);
5688
+ setInstallError(null);
5689
+ _context2.prev = 2;
5690
+ packageName = widget.packageName, downloadUrl = widget.downloadUrl, packageVersion = widget.packageVersion; // Resolve placeholders in the download URL
5691
+ resolvedUrl = downloadUrl.replace(/\{version\}/g, packageVersion).replace(/\{name\}/g, packageName);
5692
+ _context2.next = 3;
5693
+ return window.mainApi.widgets.install(packageName, resolvedUrl);
5694
+ case 3:
5695
+ _context2.next = 5;
5696
+ break;
5697
+ case 4:
5698
+ _context2.prev = 4;
5699
+ _t2 = _context2["catch"](2);
5700
+ setInstallError(_t2.message || "Failed to install package");
5701
+ case 5:
5702
+ _context2.prev = 5;
5703
+ setIsInstalling(false);
5704
+ return _context2.finish(5);
5705
+ case 6:
5706
+ case "end":
5707
+ return _context2.stop();
5708
+ }
5709
+ }, _callee2, null, [[2, 4, 5, 6]]);
5710
+ }));
5711
+ return function (_x2) {
5712
+ return _ref3.apply(this, arguments);
5713
+ };
5714
+ }(), []);
5715
+ var retry = React.useCallback(function () {
5716
+ search(searchQuery);
5717
+ }, [search, searchQuery]);
5718
+ return {
5719
+ packages: packages,
5720
+ flatWidgets: flatWidgets,
5721
+ isLoading: isLoading,
5722
+ error: error,
5723
+ searchQuery: searchQuery,
5724
+ setSearchQuery: setSearchQuery,
5725
+ isInstalling: isInstalling,
5726
+ installError: installError,
5727
+ search: search,
5728
+ installPackage: installPackage,
5729
+ retry: retry,
5730
+ showAllPackages: showAllPackages,
5731
+ setShowAllPackages: setShowAllPackages,
5732
+ appCapabilities: appCapabilities
5733
+ };
5734
+ };
5735
+
5736
+ var WizardResultsStep = function WizardResultsStep(_ref) {
5737
+ var state = _ref.state,
5738
+ dispatch = _ref.dispatch;
5739
+ var _useState = React.useState("prebuilt"),
5740
+ _useState2 = _slicedToArray(_useState, 2),
5741
+ activeTab = _useState2[0],
5742
+ setActiveTab = _useState2[1];
5743
+
5744
+ // --- Dashboard search (Tab A) ---
5745
+ var _useState3 = React.useState([]),
5746
+ _useState4 = _slicedToArray(_useState3, 2),
5747
+ dashboards = _useState4[0],
5748
+ setDashboards = _useState4[1];
5749
+ var _useState5 = React.useState(false),
5750
+ _useState6 = _slicedToArray(_useState5, 2),
5751
+ dashLoading = _useState6[0],
5752
+ setDashLoading = _useState6[1];
5753
+ var _useState7 = React.useState(null),
5754
+ _useState8 = _slicedToArray(_useState7, 2),
5755
+ dashError = _useState8[0],
5756
+ setDashError = _useState8[1];
5757
+ var dashFilters = React.useMemo(function () {
5758
+ return {
5759
+ category: state.intent.length ? state.intent.join(",") : undefined,
5760
+ providerTypes: state.providers.length ? state.providers : undefined
5761
+ };
5762
+ }, [state.intent, state.providers]);
5763
+ var searchDashboards = React.useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
5764
+ var _window$mainApi;
5765
+ var result, _t;
5766
+ return _regeneratorRuntime.wrap(function (_context) {
5767
+ while (1) switch (_context.prev = _context.next) {
5768
+ case 0:
5769
+ if ((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && (_window$mainApi = _window$mainApi.registry) !== null && _window$mainApi !== void 0 && _window$mainApi.searchDashboards) {
5770
+ _context.next = 1;
5771
+ break;
5772
+ }
5773
+ setDashboards([]);
5774
+ return _context.abrupt("return");
5775
+ case 1:
5776
+ setDashLoading(true);
5777
+ setDashError(null);
5778
+ _context.prev = 2;
5779
+ _context.next = 3;
5780
+ return window.mainApi.registry.searchDashboards("", dashFilters);
5781
+ case 3:
5782
+ result = _context.sent;
5783
+ setDashboards(result.packages || []);
5784
+ _context.next = 5;
5785
+ break;
5786
+ case 4:
5787
+ _context.prev = 4;
5788
+ _t = _context["catch"](2);
5789
+ setDashError(_t.message || "Failed to search dashboards");
5790
+ setDashboards([]);
5791
+ case 5:
5792
+ _context.prev = 5;
5793
+ setDashLoading(false);
5794
+ return _context.finish(5);
5795
+ case 6:
5796
+ case "end":
5797
+ return _context.stop();
5798
+ }
5799
+ }, _callee, null, [[2, 4, 5, 6]]);
5800
+ })), [dashFilters]);
5801
+ React.useEffect(function () {
5802
+ searchDashboards();
5803
+ }, [searchDashboards]);
5804
+
5805
+ // --- Widget search (Tab B) ---
5806
+ var _useRegistrySearch = useRegistrySearch({
5807
+ filterByCapabilities: true
5808
+ }),
5809
+ flatWidgets = _useRegistrySearch.flatWidgets,
5810
+ widgetsLoading = _useRegistrySearch.isLoading,
5811
+ widgetsError = _useRegistrySearch.error;
5812
+
5813
+ // Filter widgets by selected categories + providers
5814
+ var filteredWidgets = React.useMemo(function () {
5815
+ return flatWidgets.filter(function (w) {
5816
+ // Category filter: match if widget's category overlaps user intent
5817
+ var catMatch = state.intent.length === 0 || state.intent.some(function (cat) {
5818
+ return (w.packageCategory || "").toLowerCase() === cat.toLowerCase();
5819
+ });
5820
+
5821
+ // Provider filter: match if widget requires any of the selected providers
5822
+ var providerMatch = state.providers.length === 0 || (w.providers || []).some(function (p) {
5823
+ return state.providers.includes(p.type);
5824
+ }) || (w.packageProviders || []).some(function (p) {
5825
+ return state.providers.includes(p.type);
5826
+ });
5827
+ return catMatch && providerMatch;
5828
+ });
5829
+ }, [flatWidgets, state.intent, state.providers]);
5830
+
5831
+ // --- Tab change: set wizard path ---
5832
+ var handleTabChange = React.useCallback(function (tab) {
5833
+ setActiveTab(tab);
5834
+ dispatch({
5835
+ type: "SET_PATH",
5836
+ payload: tab === "prebuilt" ? "prebuilt" : "custom"
5837
+ });
5838
+ }, [dispatch]);
5839
+
5840
+ // Set initial path on mount
5841
+ React.useEffect(function () {
5842
+ if (!state.path) {
5843
+ dispatch({
5844
+ type: "SET_PATH",
5845
+ payload: "prebuilt"
5846
+ });
5847
+ }
5848
+ }, [state.path, dispatch]);
5849
+
5850
+ // --- Dashboard selection (single-select) ---
5851
+ var handleSelectDashboard = React.useCallback(function (dashboard) {
5852
+ dispatch({
5853
+ type: "SET_SELECTED_DASHBOARD",
5854
+ payload: dashboard
5855
+ });
5856
+ }, [dispatch]);
5857
+
5858
+ // --- Widget selection (multi-select) ---
5859
+ var handleToggleWidget = React.useCallback(function (widget) {
5860
+ dispatch({
5861
+ type: "TOGGLE_WIDGET",
5862
+ payload: widget
5863
+ });
5864
+ }, [dispatch]);
5865
+ var isWidgetSelected = React.useCallback(function (widget) {
5866
+ return state.selectedWidgets.some(function (w) {
5867
+ return w.name === widget.name;
5868
+ });
5869
+ }, [state.selectedWidgets]);
5870
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
5871
+ className: "wizard-results-step",
5872
+ children: [/*#__PURE__*/jsxRuntime.jsx("h3", {
5873
+ className: "wizard-step-header",
5874
+ children: "Choose your starting point"
5875
+ }), /*#__PURE__*/jsxRuntime.jsxs(DashReact.Tabs3, {
5876
+ value: activeTab,
5877
+ onValueChange: handleTabChange,
5878
+ className: "wizard-results-tabs",
5879
+ children: [/*#__PURE__*/jsxRuntime.jsxs(DashReact.Tabs3.List, {
5880
+ className: "wizard-results-tab-list",
5881
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Tabs3.Trigger, {
5882
+ value: "prebuilt",
5883
+ children: "Pre-built Dashboards"
5884
+ }), /*#__PURE__*/jsxRuntime.jsxs(DashReact.Tabs3.Trigger, {
5885
+ value: "custom",
5886
+ children: ["Build Your Own", state.selectedWidgets.length > 0 && /*#__PURE__*/jsxRuntime.jsx("span", {
5887
+ className: "wizard-count-badge",
5888
+ children: state.selectedWidgets.length
5889
+ })]
5890
+ })]
5891
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tabs3.Content, {
5892
+ value: "prebuilt",
5893
+ children: /*#__PURE__*/jsxRuntime.jsx(DashboardList, {
5894
+ dashboards: dashboards,
5895
+ isLoading: dashLoading,
5896
+ error: dashError,
5897
+ selectedDashboard: state.selectedDashboard,
5898
+ onSelect: handleSelectDashboard
5899
+ })
5900
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tabs3.Content, {
5901
+ value: "custom",
5902
+ children: /*#__PURE__*/jsxRuntime.jsx(WidgetList, {
5903
+ widgets: filteredWidgets,
5904
+ isLoading: widgetsLoading,
5905
+ error: widgetsError,
5906
+ isSelected: isWidgetSelected,
5907
+ onToggle: handleToggleWidget,
5908
+ selectedCount: state.selectedWidgets.length
5909
+ })
5910
+ })]
5911
+ })]
5912
+ });
5913
+ };
5914
+
5915
+ // --- Sub-components ---
5916
+
5917
+ var DashboardList = function DashboardList(_ref3) {
5918
+ var dashboards = _ref3.dashboards,
5919
+ isLoading = _ref3.isLoading,
5920
+ error = _ref3.error,
5921
+ selectedDashboard = _ref3.selectedDashboard,
5922
+ onSelect = _ref3.onSelect;
5923
+ if (isLoading) {
5924
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
5925
+ className: "wizard-loading",
5926
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5927
+ icon: "spinner",
5928
+ spin: true,
5929
+ fixedWidth: true,
5930
+ className: "wizard-loading-icon"
5931
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
5932
+ children: "Searching dashboards..."
5933
+ })]
5934
+ });
5935
+ }
5936
+ if (error) {
5937
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
5938
+ className: "wizard-error",
5939
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5940
+ icon: "circle-exclamation",
5941
+ fixedWidth: true
5942
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
5943
+ children: error
5944
+ })]
5945
+ });
5946
+ }
5947
+ if (dashboards.length === 0) {
5948
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
5949
+ className: "wizard-empty",
5950
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5951
+ icon: "box-open",
5952
+ fixedWidth: true,
5953
+ className: "wizard-empty-icon"
5954
+ }), /*#__PURE__*/jsxRuntime.jsx("p", {
5955
+ children: "No pre-built dashboards match your selections."
5956
+ }), /*#__PURE__*/jsxRuntime.jsx("p", {
5957
+ className: "wizard-empty-hint",
5958
+ children: "Try the \"Build Your Own\" tab to pick individual widgets."
5959
+ })]
5960
+ });
5961
+ }
5962
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
5963
+ className: "wizard-dashboard-list",
5964
+ children: dashboards.map(function (dash) {
5965
+ var isSelected = selectedDashboard && selectedDashboard.name === dash.name;
5966
+ var widgetCount = (dash.widgets || []).length;
5967
+ var providerNames = (dash.providers || []).map(function (p) {
5968
+ return p.name || p.type;
5969
+ }).join(", ");
5970
+ return /*#__PURE__*/jsxRuntime.jsxs("button", {
5971
+ type: "button",
5972
+ className: "wizard-dashboard-card ".concat(isSelected ? "wizard-dashboard-card--selected" : ""),
5973
+ onClick: function onClick() {
5974
+ return onSelect(dash);
5975
+ },
5976
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
5977
+ className: "wizard-dashboard-card-header",
5978
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5979
+ icon: resolveIcon(dash.icon || "grid-2"),
5980
+ fixedWidth: true,
5981
+ className: "wizard-dashboard-card-icon"
5982
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
5983
+ className: "wizard-dashboard-card-name",
5984
+ children: dash.displayName || dash.name
5985
+ }), isSelected && /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5986
+ icon: "circle-check",
5987
+ className: "wizard-dashboard-card-check"
5988
+ })]
5989
+ }), dash.description && /*#__PURE__*/jsxRuntime.jsx("p", {
5990
+ className: "wizard-dashboard-card-desc",
5991
+ children: dash.description
5992
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
5993
+ className: "wizard-dashboard-card-meta",
5994
+ children: [/*#__PURE__*/jsxRuntime.jsxs("span", {
5995
+ children: [widgetCount, " widget", widgetCount !== 1 ? "s" : ""]
5996
+ }), providerNames && /*#__PURE__*/jsxRuntime.jsx("span", {
5997
+ children: providerNames
5998
+ })]
5999
+ })]
6000
+ }, dash.name);
6001
+ })
6002
+ });
6003
+ };
6004
+ var WidgetList = function WidgetList(_ref4) {
6005
+ var widgets = _ref4.widgets,
6006
+ isLoading = _ref4.isLoading,
6007
+ error = _ref4.error,
6008
+ isSelected = _ref4.isSelected,
6009
+ onToggle = _ref4.onToggle,
6010
+ selectedCount = _ref4.selectedCount;
6011
+ if (isLoading) {
6012
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
6013
+ className: "wizard-loading",
6014
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6015
+ icon: "spinner",
6016
+ spin: true,
6017
+ fixedWidth: true,
6018
+ className: "wizard-loading-icon"
6019
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
6020
+ children: "Searching widgets..."
6021
+ })]
6022
+ });
6023
+ }
6024
+ if (error) {
6025
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
6026
+ className: "wizard-error",
6027
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6028
+ icon: "circle-exclamation",
6029
+ fixedWidth: true
6030
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
6031
+ children: error
6032
+ })]
6033
+ });
6034
+ }
6035
+ if (widgets.length === 0) {
6036
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
6037
+ className: "wizard-empty",
6038
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6039
+ icon: "puzzle-piece",
6040
+ fixedWidth: true,
6041
+ className: "wizard-empty-icon"
6042
+ }), /*#__PURE__*/jsxRuntime.jsx("p", {
6043
+ children: "No widgets match your selections."
6044
+ }), /*#__PURE__*/jsxRuntime.jsx("p", {
6045
+ className: "wizard-empty-hint",
6046
+ children: "Try adjusting your categories or providers in the previous steps."
6047
+ })]
6048
+ });
6049
+ }
6050
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
6051
+ className: "wizard-widget-list",
6052
+ children: [selectedCount > 0 && /*#__PURE__*/jsxRuntime.jsxs("p", {
6053
+ className: "wizard-widget-count",
6054
+ children: [selectedCount, " widget", selectedCount !== 1 ? "s" : "", " selected"]
6055
+ }), widgets.map(function (widget) {
6056
+ var checked = isSelected(widget);
6057
+ return /*#__PURE__*/jsxRuntime.jsxs("button", {
6058
+ type: "button",
6059
+ className: "wizard-widget-card ".concat(checked ? "wizard-widget-card--selected" : ""),
6060
+ onClick: function onClick() {
6061
+ return onToggle(widget);
6062
+ },
6063
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
6064
+ className: "wizard-widget-card-checkbox",
6065
+ children: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6066
+ icon: checked ? "square-check" : "square",
6067
+ fixedWidth: true
6068
+ })
6069
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
6070
+ className: "wizard-widget-card-info",
6071
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
6072
+ className: "wizard-widget-card-header",
6073
+ children: [widget.icon && /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6074
+ icon: resolveIcon(widget.icon),
6075
+ fixedWidth: true,
6076
+ className: "wizard-widget-card-icon"
6077
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
6078
+ className: "wizard-widget-card-name",
6079
+ children: widget.name
6080
+ })]
6081
+ }), widget.description && /*#__PURE__*/jsxRuntime.jsx("p", {
6082
+ className: "wizard-widget-card-desc",
6083
+ children: widget.description
6084
+ }), widget.packageDisplayName && /*#__PURE__*/jsxRuntime.jsx("span", {
6085
+ className: "wizard-widget-card-package",
6086
+ children: widget.packageDisplayName
6087
+ })]
6088
+ })]
6089
+ }, widget.key);
6090
+ })]
6091
+ });
6092
+ };
6093
+
6094
+ function ownKeys$A(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6095
+ function _objectSpread$A(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$A(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$A(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6096
+ var TOTAL_STEPS = 6; // Steps 0-5
6097
+
6098
+ var initialState = {
6099
+ step: 0,
6100
+ intent: [],
6101
+ providers: [],
6102
+ selectedWidgets: [],
6103
+ selectedDashboard: null,
6104
+ layout: {
6105
+ templateKey: null,
6106
+ widgetOrder: []
6107
+ },
6108
+ customization: {
6109
+ name: "",
6110
+ menuId: null,
6111
+ theme: null
6112
+ },
6113
+ path: null
6114
+ };
6115
+ function wizardReducer(state, action) {
6116
+ switch (action.type) {
6117
+ case "SET_STEP":
6118
+ return _objectSpread$A(_objectSpread$A({}, state), {}, {
6119
+ step: action.payload
6120
+ });
6121
+ case "SET_INTENT":
6122
+ return _objectSpread$A(_objectSpread$A({}, state), {}, {
6123
+ intent: action.payload
6124
+ });
6125
+ case "TOGGLE_INTENT":
6126
+ {
6127
+ var intent = state.intent.includes(action.payload) ? state.intent.filter(function (i) {
6128
+ return i !== action.payload;
6129
+ }) : [].concat(_toConsumableArray(state.intent), [action.payload]);
6130
+ return _objectSpread$A(_objectSpread$A({}, state), {}, {
6131
+ intent: intent
6132
+ });
6133
+ }
6134
+ case "SET_PROVIDERS":
6135
+ return _objectSpread$A(_objectSpread$A({}, state), {}, {
6136
+ providers: action.payload
6137
+ });
6138
+ case "TOGGLE_PROVIDER":
6139
+ {
6140
+ var providers = state.providers.includes(action.payload) ? state.providers.filter(function (p) {
6141
+ return p !== action.payload;
6142
+ }) : [].concat(_toConsumableArray(state.providers), [action.payload]);
6143
+ return _objectSpread$A(_objectSpread$A({}, state), {}, {
6144
+ providers: providers
6145
+ });
6146
+ }
6147
+ case "SET_SELECTED_WIDGETS":
6148
+ return _objectSpread$A(_objectSpread$A({}, state), {}, {
6149
+ selectedWidgets: action.payload
6150
+ });
6151
+ case "TOGGLE_WIDGET":
6152
+ {
6153
+ var exists = state.selectedWidgets.some(function (w) {
6154
+ return w.name === action.payload.name;
6155
+ });
6156
+ var selectedWidgets = exists ? state.selectedWidgets.filter(function (w) {
6157
+ return w.name !== action.payload.name;
6158
+ }) : [].concat(_toConsumableArray(state.selectedWidgets), [action.payload]);
6159
+ return _objectSpread$A(_objectSpread$A({}, state), {}, {
6160
+ selectedWidgets: selectedWidgets
6161
+ });
6162
+ }
6163
+ case "SET_SELECTED_DASHBOARD":
6164
+ return _objectSpread$A(_objectSpread$A({}, state), {}, {
6165
+ selectedDashboard: action.payload
6166
+ });
6167
+ case "SET_PATH":
6168
+ return _objectSpread$A(_objectSpread$A({}, state), {}, {
6169
+ path: action.payload
6170
+ });
6171
+ case "SET_LAYOUT":
6172
+ return _objectSpread$A(_objectSpread$A({}, state), {}, {
6173
+ layout: action.payload
6174
+ });
6175
+ case "REORDER_WIDGETS":
6176
+ return _objectSpread$A(_objectSpread$A({}, state), {}, {
6177
+ layout: _objectSpread$A(_objectSpread$A({}, state.layout), {}, {
6178
+ widgetOrder: action.payload
6179
+ })
6180
+ });
6181
+ case "SET_CUSTOMIZATION":
6182
+ return _objectSpread$A(_objectSpread$A({}, state), {}, {
6183
+ customization: _objectSpread$A(_objectSpread$A({}, state.customization), action.payload)
6184
+ });
6185
+ case "RESET":
6186
+ return _objectSpread$A({}, initialState);
6187
+ default:
6188
+ return state;
6189
+ }
6190
+ }
6191
+ function widgetCountToTemplate(count) {
6192
+ if (count <= 1) return "single";
6193
+ if (count === 2) return "two-columns";
6194
+ if (count === 3) return "three-columns";
6195
+ if (count === 4) return "two-by-two";
6196
+ if (count <= 6) return "two-by-three";
6197
+ return "three-by-three";
6198
+ }
6199
+ function getCanProceed(state) {
6200
+ switch (state.step) {
6201
+ case 0:
6202
+ return state.intent.length > 0;
6203
+ case 1:
6204
+ return state.providers.length > 0;
6205
+ case 2:
6206
+ return state.path === "prebuilt" ? state.selectedDashboard !== null : state.selectedWidgets.length > 0;
6207
+ case 3:
6208
+ return state.layout.templateKey !== null;
6209
+ case 4:
6210
+ return state.customization.name.trim().length > 0;
6211
+ case 5:
6212
+ return true;
6213
+ default:
6214
+ return false;
6215
+ }
6216
+ }
6217
+ var useWizardState = function useWizardState() {
6218
+ var _useReducer = React.useReducer(wizardReducer, initialState),
6219
+ _useReducer2 = _slicedToArray(_useReducer, 2),
6220
+ state = _useReducer2[0],
6221
+ dispatch = _useReducer2[1];
6222
+ var canProceed = React.useMemo(function () {
6223
+ return getCanProceed(state);
6224
+ }, [state]);
6225
+ var selectedCount = React.useMemo(function () {
6226
+ return state.selectedWidgets.length;
6227
+ }, [state.selectedWidgets]);
6228
+ var isPrebuiltPath = state.path === "prebuilt";
6229
+ var isCustomPath = state.path === "custom";
6230
+ var nextStep = React.useCallback(function () {
6231
+ if (getCanProceed(state) && state.step < TOTAL_STEPS - 1) {
6232
+ dispatch({
6233
+ type: "SET_STEP",
6234
+ payload: state.step + 1
6235
+ });
6236
+ }
6237
+ }, [state]);
6238
+ var prevStep = React.useCallback(function () {
6239
+ if (state.step > 0) {
6240
+ dispatch({
6241
+ type: "SET_STEP",
6242
+ payload: state.step - 1
6243
+ });
6244
+ }
6245
+ }, [state.step]);
6246
+ var goToStep = React.useCallback(function (n) {
6247
+ if (n >= 0 && n < TOTAL_STEPS) {
6248
+ dispatch({
6249
+ type: "SET_STEP",
6250
+ payload: n
6251
+ });
6252
+ }
6253
+ }, []);
6254
+ return {
6255
+ state: state,
6256
+ dispatch: dispatch,
6257
+ nextStep: nextStep,
6258
+ prevStep: prevStep,
6259
+ goToStep: goToStep,
6260
+ canProceed: canProceed,
6261
+ selectedCount: selectedCount,
6262
+ isPrebuiltPath: isPrebuiltPath,
6263
+ isCustomPath: isCustomPath,
6264
+ widgetCountToTemplate: widgetCountToTemplate
6265
+ };
6266
+ };
6267
+
6268
+ var WizardLayoutPreviewStep = function WizardLayoutPreviewStep(_ref) {
6269
+ var state = _ref.state,
6270
+ dispatch = _ref.dispatch;
6271
+ var isPrebuilt = state.path === "prebuilt";
6272
+
6273
+ // Auto-select template and populate widget order on mount / widget change
6274
+ React.useEffect(function () {
6275
+ if (isPrebuilt) return;
6276
+ var templateKey = widgetCountToTemplate(state.selectedWidgets.length);
6277
+ var template = layoutTemplates.find(function (t) {
6278
+ return t.id === templateKey;
6279
+ });
6280
+ if (!template) return;
6281
+
6282
+ // Only update if template changed or widget order is empty
6283
+ if (state.layout.templateKey !== templateKey || state.layout.widgetOrder.length === 0) {
6284
+ var widgetOrder = state.selectedWidgets.map(function (w) {
6285
+ return w.name || w.key;
6286
+ });
6287
+ dispatch({
6288
+ type: "SET_LAYOUT",
6289
+ payload: {
6290
+ templateKey: templateKey,
6291
+ widgetOrder: widgetOrder
6292
+ }
6293
+ });
6294
+ }
6295
+ }, [isPrebuilt, state.selectedWidgets, state.layout.templateKey, state.layout.widgetOrder.length, dispatch]);
6296
+ if (isPrebuilt) {
6297
+ return /*#__PURE__*/jsxRuntime.jsx(PrebuiltPreview, {
6298
+ dashboard: state.selectedDashboard
6299
+ });
6300
+ }
6301
+ var template = layoutTemplates.find(function (t) {
6302
+ return t.id === state.layout.templateKey;
6303
+ });
6304
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
6305
+ className: "wizard-layout-step",
6306
+ children: [/*#__PURE__*/jsxRuntime.jsx("h3", {
6307
+ className: "wizard-step-header",
6308
+ children: "Preview your layout"
6309
+ }), /*#__PURE__*/jsxRuntime.jsx("p", {
6310
+ className: "wizard-step-description",
6311
+ children: "Drag widgets to rearrange their placement in the grid."
6312
+ }), template ? /*#__PURE__*/jsxRuntime.jsx(LayoutGrid, {
6313
+ template: template,
6314
+ widgetOrder: state.layout.widgetOrder,
6315
+ widgets: state.selectedWidgets,
6316
+ dispatch: dispatch
6317
+ }) : /*#__PURE__*/jsxRuntime.jsxs("div", {
6318
+ className: "wizard-empty",
6319
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6320
+ icon: "grid-2",
6321
+ fixedWidth: true,
6322
+ className: "wizard-empty-icon"
6323
+ }), /*#__PURE__*/jsxRuntime.jsx("p", {
6324
+ children: "No layout template available."
6325
+ })]
6326
+ })]
6327
+ });
6328
+ };
6329
+
6330
+ // --- Pre-built dashboard preview ---
6331
+
6332
+ var PrebuiltPreview = function PrebuiltPreview(_ref2) {
6333
+ var dashboard = _ref2.dashboard;
6334
+ if (!dashboard) {
6335
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
6336
+ className: "wizard-layout-step",
6337
+ children: [/*#__PURE__*/jsxRuntime.jsx("h3", {
6338
+ className: "wizard-step-header",
6339
+ children: "Dashboard preview"
6340
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
6341
+ className: "wizard-empty",
6342
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6343
+ icon: "box-open",
6344
+ fixedWidth: true,
6345
+ className: "wizard-empty-icon"
6346
+ }), /*#__PURE__*/jsxRuntime.jsx("p", {
6347
+ children: "No dashboard selected."
6348
+ })]
6349
+ })]
6350
+ });
6351
+ }
6352
+ var widgets = dashboard.widgets || [];
6353
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
6354
+ className: "wizard-layout-step",
6355
+ children: [/*#__PURE__*/jsxRuntime.jsx("h3", {
6356
+ className: "wizard-step-header",
6357
+ children: "Dashboard preview"
6358
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
6359
+ className: "wizard-prebuilt-preview",
6360
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
6361
+ className: "wizard-prebuilt-header",
6362
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6363
+ icon: resolveIcon(dashboard.icon || "grid-2"),
6364
+ fixedWidth: true,
6365
+ className: "wizard-prebuilt-icon"
6366
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
6367
+ className: "wizard-prebuilt-name",
6368
+ children: dashboard.displayName || dashboard.name
6369
+ })]
6370
+ }), dashboard.description && /*#__PURE__*/jsxRuntime.jsx("p", {
6371
+ className: "wizard-prebuilt-desc",
6372
+ children: dashboard.description
6373
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
6374
+ className: "wizard-prebuilt-widgets",
6375
+ children: [/*#__PURE__*/jsxRuntime.jsxs("span", {
6376
+ className: "wizard-prebuilt-widgets-label",
6377
+ children: ["Includes ", widgets.length, " widget", widgets.length !== 1 ? "s" : "", ":"]
6378
+ }), /*#__PURE__*/jsxRuntime.jsx("ul", {
6379
+ className: "wizard-prebuilt-widget-list",
6380
+ children: widgets.map(function (w, i) {
6381
+ return /*#__PURE__*/jsxRuntime.jsxs("li", {
6382
+ children: [w.icon && /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6383
+ icon: resolveIcon(w.icon),
6384
+ fixedWidth: true,
6385
+ className: "wizard-prebuilt-widget-icon"
6386
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
6387
+ children: w.displayName || w.name
6388
+ })]
6389
+ }, w.name || i);
6390
+ })
6391
+ })]
6392
+ })]
6393
+ })]
6394
+ });
6395
+ };
6396
+
6397
+ // --- Drag-reorder grid ---
6398
+
6399
+ var LayoutGrid = function LayoutGrid(_ref3) {
6400
+ var template = _ref3.template,
6401
+ widgetOrder = _ref3.widgetOrder,
6402
+ widgets = _ref3.widgets,
6403
+ dispatch = _ref3.dispatch;
6404
+ var _useState = React.useState(null),
6405
+ _useState2 = _slicedToArray(_useState, 2),
6406
+ dragIndex = _useState2[0],
6407
+ setDragIndex = _useState2[1];
6408
+ var _useState3 = React.useState(null),
6409
+ _useState4 = _slicedToArray(_useState3, 2),
6410
+ dragOverIndex = _useState4[0],
6411
+ setDragOverIndex = _useState4[1];
6412
+ var dragRef = React.useRef(null);
6413
+ var totalCells = template.previewCells.length;
6414
+
6415
+ // Build cell contents: widget names for filled cells, null for empty
6416
+ var cellContents = template.previewCells.map(function (_, i) {
6417
+ var widgetId = widgetOrder[i] || null;
6418
+ if (!widgetId) return null;
6419
+ var widget = widgets.find(function (w) {
6420
+ return (w.name || w.key) === widgetId;
6421
+ });
6422
+ return widget || {
6423
+ name: widgetId
6424
+ };
6425
+ });
6426
+ var handleDragStart = React.useCallback(function (e, index) {
6427
+ setDragIndex(index);
6428
+ dragRef.current = index;
6429
+ e.dataTransfer.effectAllowed = "move";
6430
+ e.dataTransfer.setData("text/plain", String(index));
6431
+ }, []);
6432
+ var handleDragOver = React.useCallback(function (e, index) {
6433
+ e.preventDefault();
6434
+ e.dataTransfer.dropEffect = "move";
6435
+ setDragOverIndex(index);
6436
+ }, []);
6437
+ var handleDragLeave = React.useCallback(function () {
6438
+ setDragOverIndex(null);
6439
+ }, []);
6440
+ var handleDrop = React.useCallback(function (e, dropIndex) {
6441
+ e.preventDefault();
6442
+ var fromIndex = dragRef.current;
6443
+ setDragIndex(null);
6444
+ setDragOverIndex(null);
6445
+ dragRef.current = null;
6446
+ if (fromIndex === null || fromIndex === dropIndex) return;
6447
+
6448
+ // Swap the two positions in widgetOrder
6449
+ var newOrder = _toConsumableArray(widgetOrder);
6450
+ // Pad array to cover all cells
6451
+ while (newOrder.length < totalCells) {
6452
+ newOrder.push(null);
6453
+ }
6454
+ var temp = newOrder[fromIndex];
6455
+ newOrder[fromIndex] = newOrder[dropIndex];
6456
+ newOrder[dropIndex] = temp;
6457
+
6458
+ // Trim trailing nulls
6459
+ while (newOrder.length > 0 && newOrder[newOrder.length - 1] === null) {
6460
+ newOrder.pop();
6461
+ }
6462
+ dispatch({
6463
+ type: "REORDER_WIDGETS",
6464
+ payload: newOrder
6465
+ });
6466
+ }, [widgetOrder, totalCells, dispatch]);
6467
+ var handleDragEnd = React.useCallback(function () {
6468
+ setDragIndex(null);
6469
+ setDragOverIndex(null);
6470
+ dragRef.current = null;
6471
+ }, []);
6472
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
6473
+ className: "wizard-layout-grid",
6474
+ style: {
6475
+ display: "grid",
6476
+ gridTemplateRows: "repeat(".concat(template.rows, ", 1fr)"),
6477
+ gridTemplateColumns: "repeat(".concat(template.cols, ", 1fr)")
6478
+ },
6479
+ children: template.previewCells.map(function (cell, i) {
6480
+ var content = cellContents[i];
6481
+ var isDragging = dragIndex === i;
6482
+ var isDragOver = dragOverIndex === i;
6483
+ var hasWidget = content !== null;
6484
+ var cellStyle = {};
6485
+ if (cell.rowSpan) cellStyle.gridRow = "span ".concat(cell.rowSpan);
6486
+ if (cell.colSpan) cellStyle.gridColumn = "span ".concat(cell.colSpan);
6487
+ var classNames = ["wizard-layout-cell", hasWidget ? "wizard-layout-cell--filled" : "wizard-layout-cell--empty", isDragging ? "wizard-layout-cell--dragging" : "", isDragOver ? "wizard-layout-cell--drag-over" : ""].filter(Boolean).join(" ");
6488
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
6489
+ className: classNames,
6490
+ style: cellStyle,
6491
+ draggable: hasWidget,
6492
+ onDragStart: hasWidget ? function (e) {
6493
+ return handleDragStart(e, i);
6494
+ } : undefined,
6495
+ onDragOver: function onDragOver(e) {
6496
+ return handleDragOver(e, i);
6497
+ },
6498
+ onDragLeave: handleDragLeave,
6499
+ onDrop: function onDrop(e) {
6500
+ return handleDrop(e, i);
6501
+ },
6502
+ onDragEnd: handleDragEnd,
6503
+ children: hasWidget ? /*#__PURE__*/jsxRuntime.jsxs("div", {
6504
+ className: "wizard-layout-cell-content",
6505
+ children: [content.icon && /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6506
+ icon: resolveIcon(content.icon),
6507
+ fixedWidth: true,
6508
+ className: "wizard-layout-cell-icon"
6509
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
6510
+ className: "wizard-layout-cell-name",
6511
+ children: content.displayName || content.name || content.key
6512
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6513
+ icon: "grip-vertical",
6514
+ className: "wizard-layout-cell-grip"
6515
+ })]
6516
+ }) : /*#__PURE__*/jsxRuntime.jsx("div", {
6517
+ className: "wizard-layout-cell-placeholder",
6518
+ children: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6519
+ icon: "plus",
6520
+ fixedWidth: true
6521
+ })
6522
+ })
6523
+ }, "".concat(cell.row, "-").concat(cell.col));
6524
+ })
6525
+ });
6526
+ };
6527
+
5411
6528
  var LayoutBuilderAddItemModal = function LayoutBuilderAddItemModal(_ref) {
5412
6529
  var workspace = _ref.workspace,
5413
6530
  open = _ref.open,
@@ -9808,8 +10925,8 @@ var deepEqual = function deepEqual(a, b, opts) {
9808
10925
 
9809
10926
  var deepEqual$1 = /*@__PURE__*/getDefaultExportFromCjs(deepEqual);
9810
10927
 
9811
- function ownKeys$A(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9812
- function _objectSpread$A(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$A(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$A(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10928
+ function ownKeys$z(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10929
+ function _objectSpread$z(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$z(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$z(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
9813
10930
  var PanelEditItem = function PanelEditItem(_ref) {
9814
10931
  var _ComponentManager$get;
9815
10932
  var workspace = _ref.workspace,
@@ -9869,7 +10986,7 @@ var PanelEditItem = function PanelEditItem(_ref) {
9869
10986
  var uuid = newItem.uuid || newItem.uuidString;
9870
10987
  if (uuid) {
9871
10988
  workspaceTemp.selectedProviders = workspaceTemp.selectedProviders || {};
9872
- workspaceTemp.selectedProviders[uuid] = _objectSpread$A(_objectSpread$A({}, workspaceTemp.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
10989
+ workspaceTemp.selectedProviders[uuid] = _objectSpread$z(_objectSpread$z({}, workspaceTemp.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
9873
10990
  }
9874
10991
  onUpdate(newItem, workspaceTemp);
9875
10992
  forceUpdate();
@@ -9998,7 +11115,7 @@ var PanelEditItem = function PanelEditItem(_ref) {
9998
11115
  var _ref5 = _slicedToArray(_ref4, 2),
9999
11116
  name = _ref5[0],
10000
11117
  p = _ref5[1];
10001
- return _objectSpread$A({
11118
+ return _objectSpread$z({
10002
11119
  name: name
10003
11120
  }, p);
10004
11121
  });
@@ -10040,11 +11157,11 @@ var PanelEditItem = function PanelEditItem(_ref) {
10040
11157
  };
10041
11158
 
10042
11159
  var _excluded$5 = ["rows", "cols"];
10043
- 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; } } }; }
10044
- 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; } }
10045
- 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; }
10046
- function ownKeys$z(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10047
- function _objectSpread$z(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$z(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$z(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11160
+ function _createForOfIteratorHelper$d(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$d(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
11161
+ function _unsupportedIterableToArray$d(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$d(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$d(r, a) : void 0; } }
11162
+ function _arrayLikeToArray$d(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
11163
+ function ownKeys$y(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11164
+ function _objectSpread$y(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$y(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$y(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10048
11165
  var defaultGrid = {
10049
11166
  rows: 1,
10050
11167
  cols: 1,
@@ -10065,7 +11182,7 @@ function GridEditor(_ref) {
10065
11182
  setGrid = _useState2[1];
10066
11183
  var addRow = function addRow() {
10067
11184
  var newRow = grid.rows;
10068
- var newGrid = _objectSpread$z(_objectSpread$z({}, grid), {}, {
11185
+ var newGrid = _objectSpread$y(_objectSpread$y({}, grid), {}, {
10069
11186
  rows: grid.rows + 1
10070
11187
  });
10071
11188
  for (var col = 0; col < grid.cols; col++) {
@@ -10080,7 +11197,7 @@ function GridEditor(_ref) {
10080
11197
  };
10081
11198
  var addColumn = function addColumn() {
10082
11199
  var newCol = grid.cols;
10083
- var newGrid = _objectSpread$z(_objectSpread$z({}, grid), {}, {
11200
+ var newGrid = _objectSpread$y(_objectSpread$y({}, grid), {}, {
10084
11201
  cols: grid.cols + 1
10085
11202
  });
10086
11203
  for (var row = 0; row < grid.rows; row++) {
@@ -10113,8 +11230,8 @@ function GridEditor(_ref) {
10113
11230
  });
10114
11231
  }
10115
11232
  if (grid[nextKey]) {
10116
- var newGrid = _objectSpread$z({}, grid);
10117
- newGrid[currentKey] = _objectSpread$z(_objectSpread$z({}, newGrid[currentKey]), {}, {
11233
+ var newGrid = _objectSpread$y({}, grid);
11234
+ newGrid[currentKey] = _objectSpread$y(_objectSpread$y({}, newGrid[currentKey]), {}, {
10118
11235
  colSpan: newGrid[currentKey].colSpan + 1
10119
11236
  });
10120
11237
  delete newGrid[nextKey];
@@ -10127,8 +11244,8 @@ function GridEditor(_ref) {
10127
11244
  var currentKey = "".concat(row, ".").concat(col);
10128
11245
  var belowKey = "".concat(row + 1, ".").concat(col);
10129
11246
  if (grid[belowKey]) {
10130
- var newGrid = _objectSpread$z({}, grid);
10131
- newGrid[currentKey] = _objectSpread$z(_objectSpread$z({}, newGrid[currentKey]), {}, {
11247
+ var newGrid = _objectSpread$y({}, grid);
11248
+ newGrid[currentKey] = _objectSpread$y(_objectSpread$y({}, newGrid[currentKey]), {}, {
10132
11249
  rowSpan: newGrid[currentKey].rowSpan + 1
10133
11250
  });
10134
11251
  delete newGrid[belowKey];
@@ -10145,7 +11262,7 @@ function GridEditor(_ref) {
10145
11262
  var splitCell = function splitCell(row, col) {
10146
11263
  var key = "".concat(row, ".").concat(col);
10147
11264
  var cell = grid[key];
10148
- var newGrid = _objectSpread$z({}, grid);
11265
+ var newGrid = _objectSpread$y({}, grid);
10149
11266
 
10150
11267
  // we have to check the colspan, and since the colspan is greater than 1
10151
11268
  // Only handle horizontal split if colSpan > 1
@@ -10161,13 +11278,13 @@ function GridEditor(_ref) {
10161
11278
  var oldKey = "".concat(row, ".").concat(c);
10162
11279
  var newKey = "".concat(row, ".").concat(c + 1);
10163
11280
  if (newGrid[oldKey]) {
10164
- newGrid[newKey] = _objectSpread$z({}, newGrid[oldKey]);
11281
+ newGrid[newKey] = _objectSpread$y({}, newGrid[oldKey]);
10165
11282
  delete newGrid[oldKey];
10166
11283
  }
10167
11284
  }
10168
11285
 
10169
11286
  // Update the original cell's colSpan
10170
- newGrid[key] = _objectSpread$z(_objectSpread$z({}, cell), {}, {
11287
+ newGrid[key] = _objectSpread$y(_objectSpread$y({}, cell), {}, {
10171
11288
  colSpan: cell.colSpan - 1
10172
11289
  });
10173
11290
 
@@ -10179,7 +11296,7 @@ function GridEditor(_ref) {
10179
11296
  };
10180
11297
  }
10181
11298
  if (cell.rowSpan > 1) {
10182
- newGrid[key] = _objectSpread$z(_objectSpread$z({}, newGrid[key]), {}, {
11299
+ newGrid[key] = _objectSpread$y(_objectSpread$y({}, newGrid[key]), {}, {
10183
11300
  rowSpan: cell.rowSpan - 1
10184
11301
  });
10185
11302
  newGrid["".concat(row + 1, ".").concat(col)] = {
@@ -10195,7 +11312,7 @@ function GridEditor(_ref) {
10195
11312
  function sortObjectByKeys(obj) {
10196
11313
  var sortedKeys = Object.keys(obj).sort();
10197
11314
  var sortedObj = {};
10198
- var _iterator = _createForOfIteratorHelper$e(sortedKeys),
11315
+ var _iterator = _createForOfIteratorHelper$d(sortedKeys),
10199
11316
  _step;
10200
11317
  try {
10201
11318
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -10298,7 +11415,7 @@ function GridEditor(_ref) {
10298
11415
  var fromKey = "".concat(from.row, ".").concat(from.col);
10299
11416
  var toKey = "".concat(to.row, ".").concat(to.col);
10300
11417
  if (fromKey === toKey) return;
10301
- var newGrid = _objectSpread$z({}, grid);
11418
+ var newGrid = _objectSpread$y({}, grid);
10302
11419
 
10303
11420
  // Swap the cells
10304
11421
  var temp = newGrid[fromKey];
@@ -10324,7 +11441,7 @@ function GridEditor(_ref) {
10324
11441
  // console.log("Grid updated:", sequencedGrid);
10325
11442
  }
10326
11443
  function resetGridLayout() {
10327
- var newGrid = _objectSpread$z({}, defaultGrid);
11444
+ var newGrid = _objectSpread$y({}, defaultGrid);
10328
11445
  setGrid(newGrid);
10329
11446
  onUpdate(newGrid);
10330
11447
  }
@@ -10602,8 +11719,8 @@ var PanelEditItemGrid = function PanelEditItemGrid(_ref) {
10602
11719
  });
10603
11720
  };
10604
11721
 
10605
- function ownKeys$y(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10606
- function _objectSpread$y(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$y(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$y(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11722
+ function ownKeys$x(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11723
+ function _objectSpread$x(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$x(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$x(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10607
11724
  var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
10608
11725
  var item = _ref.item;
10609
11726
  _ref.workspace;
@@ -10626,7 +11743,7 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
10626
11743
  }, [widgetUuid, notificationDefs.length]);
10627
11744
  function handleNotifToggle(typeKey, value) {
10628
11745
  var _window$mainApi2;
10629
- var updated = _objectSpread$y(_objectSpread$y({}, notifPrefs), {}, _defineProperty({}, typeKey, value));
11746
+ var updated = _objectSpread$x(_objectSpread$x({}, notifPrefs), {}, _defineProperty({}, typeKey, value));
10630
11747
  setNotifPrefs(updated);
10631
11748
  if ((_window$mainApi2 = window.mainApi) !== null && _window$mainApi2 !== void 0 && (_window$mainApi2 = _window$mainApi2.notifications) !== null && _window$mainApi2 !== void 0 && _window$mainApi2.setPreferences && widgetUuid) {
10632
11749
  window.mainApi.notifications.setPreferences(widgetUuid, _defineProperty({}, typeKey, value));
@@ -10668,11 +11785,11 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
10668
11785
  });
10669
11786
  };
10670
11787
 
10671
- function _createForOfIteratorHelper$d(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$d(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
10672
- function _unsupportedIterableToArray$d(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$d(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$d(r, a) : void 0; } }
10673
- function _arrayLikeToArray$d(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
10674
- function ownKeys$x(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10675
- function _objectSpread$x(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$x(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$x(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11788
+ function _createForOfIteratorHelper$c(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$c(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
11789
+ function _unsupportedIterableToArray$c(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$c(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$c(r, a) : void 0; } }
11790
+ function _arrayLikeToArray$c(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
11791
+ function ownKeys$w(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11792
+ function _objectSpread$w(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$w(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$w(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10676
11793
  var DAYS = [{
10677
11794
  key: "mon",
10678
11795
  label: "Mon"
@@ -10773,7 +11890,7 @@ function TaskScheduleEditor(_ref) {
10773
11890
  var _window$mainApi;
10774
11891
  var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
10775
11892
  if (!((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && (_window$mainApi = _window$mainApi.scheduler) !== null && _window$mainApi !== void 0 && _window$mainApi.registerTask)) return;
10776
- var payload = _objectSpread$x({
11893
+ var payload = _objectSpread$w({
10777
11894
  widgetId: widgetId,
10778
11895
  widgetName: widgetName,
10779
11896
  workspaceId: workspaceId || "",
@@ -10999,7 +12116,7 @@ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
10999
12116
  setIsLoading(true);
11000
12117
  window.mainApi.scheduler.getTasks(widgetUuid).then(function (tasks) {
11001
12118
  var stateMap = {};
11002
- var _iterator = _createForOfIteratorHelper$d(tasks || []),
12119
+ var _iterator = _createForOfIteratorHelper$c(tasks || []),
11003
12120
  _step;
11004
12121
  try {
11005
12122
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -13044,8 +14161,8 @@ var WidgetIcon = function WidgetIcon(_ref) {
13044
14161
  });
13045
14162
  };
13046
14163
 
13047
- function ownKeys$w(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13048
- function _objectSpread$w(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$w(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$w(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14164
+ function ownKeys$v(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14165
+ function _objectSpread$v(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$v(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$v(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13049
14166
  var ProviderForm = function ProviderForm(_ref) {
13050
14167
  var credentialSchema = _ref.credentialSchema,
13051
14168
  _ref$initialValues = _ref.initialValues,
@@ -13090,14 +14207,14 @@ var ProviderForm = function ProviderForm(_ref) {
13090
14207
  var oldKey = f.key;
13091
14208
  if (oldKey && formData[oldKey] !== undefined) {
13092
14209
  setFormData(function (fd) {
13093
- var updated = _objectSpread$w({}, fd);
14210
+ var updated = _objectSpread$v({}, fd);
13094
14211
  var val = updated[oldKey];
13095
14212
  delete updated[oldKey];
13096
14213
  if (newKey.trim()) updated[newKey] = val;
13097
14214
  return updated;
13098
14215
  });
13099
14216
  }
13100
- return _objectSpread$w(_objectSpread$w({}, f), {}, {
14217
+ return _objectSpread$v(_objectSpread$v({}, f), {}, {
13101
14218
  key: newKey
13102
14219
  });
13103
14220
  });
@@ -13109,14 +14226,14 @@ var ProviderForm = function ProviderForm(_ref) {
13109
14226
  });
13110
14227
  if (field !== null && field !== void 0 && field.key) {
13111
14228
  setFormData(function (prev) {
13112
- return _objectSpread$w(_objectSpread$w({}, prev), {}, _defineProperty({}, field.key, value));
14229
+ return _objectSpread$v(_objectSpread$v({}, prev), {}, _defineProperty({}, field.key, value));
13113
14230
  });
13114
14231
  }
13115
14232
  };
13116
14233
  var handleDynamicSecretToggle = function handleDynamicSecretToggle(id) {
13117
14234
  setDynamicFields(function (prev) {
13118
14235
  return prev.map(function (f) {
13119
- return f.id === id ? _objectSpread$w(_objectSpread$w({}, f), {}, {
14236
+ return f.id === id ? _objectSpread$v(_objectSpread$v({}, f), {}, {
13120
14237
  secret: !f.secret
13121
14238
  }) : f;
13122
14239
  });
@@ -13138,7 +14255,7 @@ var ProviderForm = function ProviderForm(_ref) {
13138
14255
  });
13139
14256
  if (field !== null && field !== void 0 && field.key) {
13140
14257
  setFormData(function (prev) {
13141
- var updated = _objectSpread$w({}, prev);
14258
+ var updated = _objectSpread$v({}, prev);
13142
14259
  delete updated[field.key];
13143
14260
  return updated;
13144
14261
  });
@@ -13180,13 +14297,13 @@ var ProviderForm = function ProviderForm(_ref) {
13180
14297
  */
13181
14298
  var handleInputChange = function handleInputChange(fieldName, value) {
13182
14299
  setFormData(function (prev) {
13183
- return _objectSpread$w(_objectSpread$w({}, prev), {}, _defineProperty({}, fieldName, value));
14300
+ return _objectSpread$v(_objectSpread$v({}, prev), {}, _defineProperty({}, fieldName, value));
13184
14301
  });
13185
14302
 
13186
14303
  // Clear error for this field if it was filled
13187
14304
  if (errors[fieldName] && value !== null && value !== void 0 && value.trim()) {
13188
14305
  setErrors(function (prev) {
13189
- var newErrors = _objectSpread$w({}, prev);
14306
+ var newErrors = _objectSpread$v({}, prev);
13190
14307
  delete newErrors[fieldName];
13191
14308
  return newErrors;
13192
14309
  });
@@ -13224,7 +14341,7 @@ var ProviderForm = function ProviderForm(_ref) {
13224
14341
  // Clear error if filled
13225
14342
  if (errors.providerName && value !== null && value !== void 0 && value.trim()) {
13226
14343
  setErrors(function (prev) {
13227
- var newErrors = _objectSpread$w({}, prev);
14344
+ var newErrors = _objectSpread$v({}, prev);
13228
14345
  delete newErrors.providerName;
13229
14346
  return newErrors;
13230
14347
  });
@@ -13461,8 +14578,8 @@ var ToolSelector = function ToolSelector(_ref) {
13461
14578
  });
13462
14579
  };
13463
14580
 
13464
- function ownKeys$v(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13465
- function _objectSpread$v(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$v(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$v(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14581
+ function ownKeys$u(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14582
+ function _objectSpread$u(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$u(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$u(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13466
14583
  /**
13467
14584
  * Shared MCP utility functions.
13468
14585
  *
@@ -13590,7 +14707,7 @@ function buildMcpConfigFromOverrides(baseMcpConfig, envMappingRows, headerRows)
13590
14707
  headerTemplate[name] = value;
13591
14708
  }
13592
14709
  });
13593
- var config = _objectSpread$v({}, baseMcpConfig);
14710
+ var config = _objectSpread$u({}, baseMcpConfig);
13594
14711
  if (Object.keys(headerTemplate).length > 0) {
13595
14712
  config.headerTemplate = headerTemplate;
13596
14713
  } else {
@@ -13608,7 +14725,7 @@ function buildMcpConfigFromOverrides(baseMcpConfig, envMappingRows, headerRows)
13608
14725
  envMapping[env] = cred;
13609
14726
  }
13610
14727
  });
13611
- return _objectSpread$v(_objectSpread$v({}, baseMcpConfig), {}, {
14728
+ return _objectSpread$u(_objectSpread$u({}, baseMcpConfig), {}, {
13612
14729
  envMapping: envMapping
13613
14730
  });
13614
14731
  }
@@ -13849,11 +14966,11 @@ var getUserConfigurableProviders = function getUserConfigurableProviders(provide
13849
14966
  });
13850
14967
  };
13851
14968
 
13852
- function _createForOfIteratorHelper$c(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$c(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
13853
- function _unsupportedIterableToArray$c(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$c(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$c(r, a) : void 0; } }
13854
- function _arrayLikeToArray$c(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
13855
- function ownKeys$u(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13856
- function _objectSpread$u(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$u(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$u(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14969
+ function _createForOfIteratorHelper$b(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$b(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
14970
+ function _unsupportedIterableToArray$b(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$b(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$b(r, a) : void 0; } }
14971
+ function _arrayLikeToArray$b(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
14972
+ function ownKeys$t(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14973
+ function _objectSpread$t(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$t(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$t(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13857
14974
  var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
13858
14975
  var isOpen = _ref.isOpen,
13859
14976
  onClose = _ref.onClose,
@@ -14030,7 +15147,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14030
15147
  .map(function (entry) {
14031
15148
  var widget = allWidgets[entry.widgetKey];
14032
15149
  if (!widget) return null; // Widget no longer exists
14033
- return _objectSpread$u(_objectSpread$u({
15150
+ return _objectSpread$t(_objectSpread$t({
14034
15151
  key: entry.widgetKey
14035
15152
  }, widget), {}, {
14036
15153
  savedProviders: entry.providers || {},
@@ -14118,11 +15235,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14118
15235
 
14119
15236
  // Flatten all widgets from all packages for the widget list
14120
15237
  flatWidgets = [];
14121
- _iterator = _createForOfIteratorHelper$c(result.packages || []);
15238
+ _iterator = _createForOfIteratorHelper$b(result.packages || []);
14122
15239
  try {
14123
15240
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
14124
15241
  pkg = _step.value;
14125
- _iterator2 = _createForOfIteratorHelper$c(pkg.widgets || []);
15242
+ _iterator2 = _createForOfIteratorHelper$b(pkg.widgets || []);
14126
15243
  try {
14127
15244
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
14128
15245
  widget = _step2.value;
@@ -14181,7 +15298,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14181
15298
  // Get widgets from ComponentManager
14182
15299
  var allWidgets = ComponentManager.map();
14183
15300
  var widgetList = Object.keys(allWidgets).map(function (key) {
14184
- return _objectSpread$u({
15301
+ return _objectSpread$t({
14185
15302
  key: key
14186
15303
  }, allWidgets[key]);
14187
15304
  }).filter(function (widget) {
@@ -14412,7 +15529,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14412
15529
  setInlineCreateType(null);
14413
15530
  setInlineCreateSchema({});
14414
15531
  setInlineCreateError(null);
14415
- setSelectedProviders(_objectSpread$u(_objectSpread$u({}, selectedProviders), {}, _defineProperty({}, providerType, providerName)));
15532
+ setSelectedProviders(_objectSpread$t(_objectSpread$t({}, selectedProviders), {}, _defineProperty({}, providerType, providerName)));
14416
15533
  }
14417
15534
  };
14418
15535
  var handleInlineProviderSubmit = function handleInlineProviderSubmit(formData) {
@@ -14433,7 +15550,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14433
15550
 
14434
15551
  // Auto-select the newly created provider
14435
15552
  setSelectedProviders(function (prev) {
14436
- return _objectSpread$u(_objectSpread$u({}, prev), {}, _defineProperty({}, providerType, providerName));
15553
+ return _objectSpread$t(_objectSpread$t({}, prev), {}, _defineProperty({}, providerType, providerName));
14437
15554
  });
14438
15555
 
14439
15556
  // Collapse the inline form
@@ -14487,11 +15604,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14487
15604
  };
14488
15605
  var inlineHandleCredentialChange = function inlineHandleCredentialChange(fieldName, value) {
14489
15606
  setInlineCredentialData(function (prev) {
14490
- return _objectSpread$u(_objectSpread$u({}, prev), {}, _defineProperty({}, fieldName, value));
15607
+ return _objectSpread$t(_objectSpread$t({}, prev), {}, _defineProperty({}, fieldName, value));
14491
15608
  });
14492
15609
  if (inlineFormErrors[fieldName] && value !== null && value !== void 0 && value.trim()) {
14493
15610
  setInlineFormErrors(function (prev) {
14494
- var next = _objectSpread$u({}, prev);
15611
+ var next = _objectSpread$t({}, prev);
14495
15612
  delete next[fieldName];
14496
15613
  return next;
14497
15614
  });
@@ -14584,7 +15701,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14584
15701
  refreshProviders();
14585
15702
  }
14586
15703
  setSelectedProviders(function (prev) {
14587
- return _objectSpread$u(_objectSpread$u({}, prev), {}, _defineProperty({}, providerType, providerName));
15704
+ return _objectSpread$t(_objectSpread$t({}, prev), {}, _defineProperty({}, providerType, providerName));
14588
15705
  });
14589
15706
 
14590
15707
  // Reset stepper state
@@ -14605,7 +15722,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14605
15722
  });
14606
15723
  };
14607
15724
  var handleConfigChange = function handleConfigChange(key, value) {
14608
- setUserConfigValues(_objectSpread$u(_objectSpread$u({}, userConfigValues), {}, _defineProperty({}, key, value)));
15725
+ setUserConfigValues(_objectSpread$t(_objectSpread$t({}, userConfigValues), {}, _defineProperty({}, key, value)));
14609
15726
  };
14610
15727
 
14611
15728
  // Install a package from the registry
@@ -14695,7 +15812,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
14695
15812
 
14696
15813
  // Phase 3: Save to recent widgets
14697
15814
  saveToRecent(selectedWidget, selectedProviders, userConfigValues);
14698
- onSelectWidget(_objectSpread$u(_objectSpread$u({}, selectedWidget), {}, {
15815
+ onSelectWidget(_objectSpread$t(_objectSpread$t({}, selectedWidget), {}, {
14699
15816
  selectedProviders: selectedProviders,
14700
15817
  // Pass to parent
14701
15818
  userConfigValues: userConfigValues // Pass to parent
@@ -15331,7 +16448,7 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
15331
16448
  setInlineProviderName(value);
15332
16449
  if (inlineFormErrors.providerName && value !== null && value !== void 0 && value.trim()) {
15333
16450
  setInlineFormErrors(function (prev) {
15334
- var next = _objectSpread$u({}, prev);
16451
+ var next = _objectSpread$t({}, prev);
15335
16452
  delete next.providerName;
15336
16453
  return next;
15337
16454
  });
@@ -15678,9 +16795,9 @@ var ProviderBadge = function ProviderBadge(_ref) {
15678
16795
  });
15679
16796
  };
15680
16797
 
15681
- function _createForOfIteratorHelper$b(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$b(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
15682
- function _unsupportedIterableToArray$b(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$b(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$b(r, a) : void 0; } }
15683
- function _arrayLikeToArray$b(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
16798
+ function _createForOfIteratorHelper$a(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$a(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
16799
+ function _unsupportedIterableToArray$a(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$a(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$a(r, a) : void 0; } }
16800
+ function _arrayLikeToArray$a(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
15684
16801
  var WidgetCardHeader = function WidgetCardHeader(_ref) {
15685
16802
  var item = _ref.item,
15686
16803
  widget = _ref.widget,
@@ -15724,7 +16841,7 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
15724
16841
  var el = headerRef.current;
15725
16842
  if (!el) return;
15726
16843
  var observer = new ResizeObserver(function (entries) {
15727
- var _iterator = _createForOfIteratorHelper$b(entries),
16844
+ var _iterator = _createForOfIteratorHelper$a(entries),
15728
16845
  _step;
15729
16846
  try {
15730
16847
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -16081,9 +17198,9 @@ var useWidgetSchedulerStatus = function useWidgetSchedulerStatus(widgetId) {
16081
17198
  };
16082
17199
  };
16083
17200
 
16084
- function _createForOfIteratorHelper$a(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$a(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
16085
- function _unsupportedIterableToArray$a(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$a(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$a(r, a) : void 0; } }
16086
- function _arrayLikeToArray$a(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
17201
+ function _createForOfIteratorHelper$9(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$9(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
17202
+ function _unsupportedIterableToArray$9(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$9(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$9(r, a) : void 0; } }
17203
+ function _arrayLikeToArray$9(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
16087
17204
  function formatCountdown(ms) {
16088
17205
  if (ms == null || ms < 0) return "--";
16089
17206
  if (ms < 1000) return "< 1s";
@@ -16200,7 +17317,7 @@ var WidgetCardStatusBar = function WidgetCardStatusBar(_ref) {
16200
17317
 
16201
17318
  // Find soonest countdown among enabled tasks
16202
17319
  var soonestMs = null;
16203
- var _iterator = _createForOfIteratorHelper$a(enabledTasks),
17320
+ var _iterator = _createForOfIteratorHelper$9(enabledTasks),
16204
17321
  _step;
16205
17322
  try {
16206
17323
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -16651,8 +17768,8 @@ var ProviderSelector = function ProviderSelector(_ref) {
16651
17768
  });
16652
17769
  };
16653
17770
 
16654
- function ownKeys$t(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16655
- function _objectSpread$t(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$t(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$t(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17771
+ function ownKeys$s(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
17772
+ function _objectSpread$s(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$s(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$s(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
16656
17773
  var AdvancedMcpConfig = function AdvancedMcpConfig(_ref) {
16657
17774
  var transport = _ref.transport,
16658
17775
  envMappingRows = _ref.envMappingRows,
@@ -16681,7 +17798,7 @@ var AdvancedMcpConfig = function AdvancedMcpConfig(_ref) {
16681
17798
  var updateEnvRow = function updateEnvRow(id, field, value) {
16682
17799
  onEnvMappingRowsChange(function (prev) {
16683
17800
  return prev.map(function (row) {
16684
- return row.id === id ? _objectSpread$t(_objectSpread$t({}, row), {}, _defineProperty({}, field, value)) : row;
17801
+ return row.id === id ? _objectSpread$s(_objectSpread$s({}, row), {}, _defineProperty({}, field, value)) : row;
16685
17802
  });
16686
17803
  });
16687
17804
  };
@@ -16706,7 +17823,7 @@ var AdvancedMcpConfig = function AdvancedMcpConfig(_ref) {
16706
17823
  var updateHeaderRow = function updateHeaderRow(id, field, value) {
16707
17824
  onHeaderRowsChange(function (prev) {
16708
17825
  return prev.map(function (row) {
16709
- return row.id === id ? _objectSpread$t(_objectSpread$t({}, row), {}, _defineProperty({}, field, value)) : row;
17826
+ return row.id === id ? _objectSpread$s(_objectSpread$s({}, row), {}, _defineProperty({}, field, value)) : row;
16710
17827
  });
16711
17828
  });
16712
17829
  };
@@ -16855,8 +17972,8 @@ var AdvancedMcpConfig = function AdvancedMcpConfig(_ref) {
16855
17972
  });
16856
17973
  };
16857
17974
 
16858
- function ownKeys$s(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16859
- function _objectSpread$s(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$s(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$s(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17975
+ function ownKeys$r(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
17976
+ function _objectSpread$r(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$r(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$r(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
16860
17977
  var McpServerPicker = function McpServerPicker(_ref) {
16861
17978
  var _testResult$tools;
16862
17979
  var isOpen = _ref.isOpen,
@@ -17035,11 +18152,11 @@ var McpServerPicker = function McpServerPicker(_ref) {
17035
18152
  // Handle credential field changes
17036
18153
  var handleCredentialChange = function handleCredentialChange(fieldName, value) {
17037
18154
  setCredentialData(function (prev) {
17038
- return _objectSpread$s(_objectSpread$s({}, prev), {}, _defineProperty({}, fieldName, value));
18155
+ return _objectSpread$r(_objectSpread$r({}, prev), {}, _defineProperty({}, fieldName, value));
17039
18156
  });
17040
18157
  if (formErrors[fieldName] && value !== null && value !== void 0 && value.trim()) {
17041
18158
  setFormErrors(function (prev) {
17042
- var next = _objectSpread$s({}, prev);
18159
+ var next = _objectSpread$r({}, prev);
17043
18160
  delete next[fieldName];
17044
18161
  return next;
17045
18162
  });
@@ -17377,7 +18494,7 @@ var McpServerPicker = function McpServerPicker(_ref) {
17377
18494
  setProviderName(value);
17378
18495
  if (formErrors.providerName && value !== null && value !== void 0 && value.trim()) {
17379
18496
  setFormErrors(function (prev) {
17380
- var next = _objectSpread$s({}, prev);
18497
+ var next = _objectSpread$r({}, prev);
17381
18498
  delete next.providerName;
17382
18499
  return next;
17383
18500
  });
@@ -17567,8 +18684,8 @@ var McpServerPicker = function McpServerPicker(_ref) {
17567
18684
  });
17568
18685
  };
17569
18686
 
17570
- function ownKeys$r(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
17571
- function _objectSpread$r(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$r(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$r(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
18687
+ function ownKeys$q(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
18688
+ function _objectSpread$q(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$q(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$q(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17572
18689
  var USE_ENHANCED_WIDGET_SELECTOR = true; // Set to false to use original modal
17573
18690
 
17574
18691
  /**
@@ -17614,7 +18731,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
17614
18731
  var _ref3 = _slicedToArray(_ref2, 2),
17615
18732
  id = _ref3[0],
17616
18733
  p = _ref3[1];
17617
- return _objectSpread$r(_objectSpread$r({}, p), {}, {
18734
+ return _objectSpread$q(_objectSpread$q({}, p), {}, {
17618
18735
  id: id,
17619
18736
  name: p.name || id
17620
18737
  });
@@ -17701,7 +18818,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
17701
18818
  // so we use its layout to replace any corrupted grid data.
17702
18819
  if (workspace && workspace["layout"]) {
17703
18820
  var model = new DashboardModel(workspace);
17704
- setCurrentWorkspace(_objectSpread$r(_objectSpread$r({}, workspace), {}, {
18821
+ setCurrentWorkspace(_objectSpread$q(_objectSpread$q({}, workspace), {}, {
17705
18822
  layout: model.layout
17706
18823
  }));
17707
18824
  } else {
@@ -18092,7 +19209,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
18092
19209
  var uuid = widget.uuid || widget.uuidString;
18093
19210
  if (uuid) {
18094
19211
  newWorkspace.selectedProviders = newWorkspace.selectedProviders || {};
18095
- newWorkspace.selectedProviders[uuid] = _objectSpread$r(_objectSpread$r({}, newWorkspace.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
19212
+ newWorkspace.selectedProviders[uuid] = _objectSpread$q(_objectSpread$q({}, newWorkspace.selectedProviders[uuid] || {}), {}, _defineProperty({}, providerType, providerId));
18096
19213
  }
18097
19214
  setCurrentWorkspace(newWorkspace);
18098
19215
  }
@@ -18227,7 +19344,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
18227
19344
  try {
18228
19345
  var config = ComponentManager.config(widgetKey);
18229
19346
  if (!config) return;
18230
- var widgetItem = _objectSpread$r(_objectSpread$r({}, config), {}, {
19347
+ var widgetItem = _objectSpread$q(_objectSpread$q({}, config), {}, {
18231
19348
  component: widgetKey,
18232
19349
  key: widgetKey
18233
19350
  });
@@ -18456,7 +19573,7 @@ var LayoutBuilder = function LayoutBuilder(_ref) {
18456
19573
  onSelectWidget: function onSelectWidget(widget) {
18457
19574
 
18458
19575
  // Add component property from widget.key
18459
- var widgetWithComponent = _objectSpread$r(_objectSpread$r({}, widget), {}, {
19576
+ var widgetWithComponent = _objectSpread$q(_objectSpread$q({}, widget), {}, {
18460
19577
  component: widget.key
18461
19578
  });
18462
19579
  handleClickConfirmAdd(widgetWithComponent, dropdownTarget);
@@ -20084,8 +21201,8 @@ var MissingProviderPrompt = function MissingProviderPrompt(_ref) {
20084
21201
  });
20085
21202
  };
20086
21203
 
20087
- function ownKeys$q(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
20088
- function _objectSpread$q(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$q(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$q(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
21204
+ function ownKeys$p(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
21205
+ function _objectSpread$p(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$p(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$p(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
20089
21206
  function _callSuper$4(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$4() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
20090
21207
  function _isNativeReflectConstruct$4() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$4 = function _isNativeReflectConstruct() { return !!t; })(); }
20091
21208
  var ProviderErrorBoundary = /*#__PURE__*/function (_Component) {
@@ -20140,7 +21257,7 @@ var ProviderErrorBoundary = /*#__PURE__*/function (_Component) {
20140
21257
  _defineProperty(_this, "handleProviderSelect", function (providerType, providerName, credentials) {
20141
21258
 
20142
21259
  // Update local selected providers state
20143
- var updatedSelected = _objectSpread$q(_objectSpread$q({}, _this.state.selectedProviders), {}, _defineProperty({}, providerType, providerName));
21260
+ var updatedSelected = _objectSpread$p(_objectSpread$p({}, _this.state.selectedProviders), {}, _defineProperty({}, providerType, providerName));
20144
21261
  _this.setState({
20145
21262
  selectedProviders: updatedSelected
20146
21263
  }, function () {
@@ -20214,8 +21331,8 @@ var ProviderErrorBoundary = /*#__PURE__*/function (_Component) {
20214
21331
  }(React.Component);
20215
21332
  _defineProperty(ProviderErrorBoundary, "contextType", ProviderContext);
20216
21333
 
20217
- function ownKeys$p(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
20218
- function _objectSpread$p(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$p(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$p(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
21334
+ 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; }
21335
+ 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; }
20219
21336
  var withProviderDetection = function withProviderDetection(Component) {
20220
21337
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
20221
21338
  _ref$requiredProvider = _ref.requiredProviders,
@@ -20240,7 +21357,7 @@ var withProviderDetection = function withProviderDetection(Component) {
20240
21357
  onProviderSelect: onProviderSelect
20241
21358
  });
20242
21359
  }
20243
- return /*#__PURE__*/jsxRuntime.jsx(Component, _objectSpread$p({}, props));
21360
+ return /*#__PURE__*/jsxRuntime.jsx(Component, _objectSpread$o({}, props));
20244
21361
  };
20245
21362
  };
20246
21363
 
@@ -20454,8 +21571,8 @@ var WidgetHelpers = /*#__PURE__*/function () {
20454
21571
  }]);
20455
21572
  }();
20456
21573
 
20457
- 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; }
20458
- 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; }
21574
+ 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; }
21575
+ 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; }
20459
21576
  function _callSuper$2(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct$2() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
20460
21577
  function _isNativeReflectConstruct$2() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$2 = function _isNativeReflectConstruct() { return !!t; })(); }
20461
21578
  var WidgetErrorBoundary = /*#__PURE__*/function (_Component) {
@@ -20582,7 +21699,7 @@ var WidgetRenderer = function WidgetRenderer(_ref) {
20582
21699
 
20583
21700
  // Build widgetData for WidgetContext — hooks read from this
20584
21701
  var uuidString = DashReact.getUUID(params.uuid);
20585
- var widgetData = _objectSpread$o(_objectSpread$o({}, params), {}, {
21702
+ var widgetData = _objectSpread$n(_objectSpread$n({}, params), {}, {
20586
21703
  uuidString: uuidString,
20587
21704
  providers: (config === null || config === void 0 ? void 0 : config.providers) || [],
20588
21705
  notifications: (config === null || config === void 0 ? void 0 : config.notifications) || []
@@ -20606,7 +21723,7 @@ var WidgetRenderer = function WidgetRenderer(_ref) {
20606
21723
  widgetData: widgetData
20607
21724
  };
20608
21725
  var hasScheduledTasks = ((config === null || config === void 0 ? void 0 : config.scheduledTasks) || []).length > 0;
20609
- var widgetElement = children === null ? /*#__PURE__*/jsxRuntime.jsx(WidgetComponent, _objectSpread$o(_objectSpread$o(_objectSpread$o({
21726
+ var widgetElement = children === null ? /*#__PURE__*/jsxRuntime.jsx(WidgetComponent, _objectSpread$n(_objectSpread$n(_objectSpread$n({
20610
21727
  id: "widget-nokids-".concat(widgetKey),
20611
21728
  listen: function listen(listeners, handlers) {
20612
21729
  return helpers.listen(listeners, handlers);
@@ -20619,7 +21736,7 @@ var WidgetRenderer = function WidgetRenderer(_ref) {
20619
21736
  backgroundColor: bgColor,
20620
21737
  widgetConfig: helpers.config(),
20621
21738
  widgetEventNames: helpers.events()
20622
- }), "widget-nokids-".concat(widgetKey)) : /*#__PURE__*/jsxRuntime.jsx(WidgetComponent, _objectSpread$o(_objectSpread$o(_objectSpread$o({
21739
+ }), "widget-nokids-".concat(widgetKey)) : /*#__PURE__*/jsxRuntime.jsx(WidgetComponent, _objectSpread$n(_objectSpread$n(_objectSpread$n({
20623
21740
  listen: function listen(listeners, handlers) {
20624
21741
  return helpers.listen(listeners, handlers);
20625
21742
  },
@@ -20813,11 +21930,11 @@ var ExternalWidget = function ExternalWidget(_ref) {
20813
21930
  var GRID_CELL_WIDGET_TYPE = "grid-cell-widget";
20814
21931
  var SIDEBAR_WIDGET_TYPE = "sidebar-widget";
20815
21932
 
20816
- function _createForOfIteratorHelper$9(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$9(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
20817
- function _unsupportedIterableToArray$9(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$9(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$9(r, a) : void 0; } }
20818
- function _arrayLikeToArray$9(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
20819
- 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; }
20820
- 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; }
21933
+ 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; } } }; }
21934
+ 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; } }
21935
+ 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; }
21936
+ 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; }
21937
+ 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; }
20821
21938
  var DraggableDroppableCellBody = function DraggableDroppableCellBody(_ref) {
20822
21939
  var cellNumber = _ref.cellNumber,
20823
21940
  gridContainerId = _ref.gridContainerId,
@@ -21004,7 +22121,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
21004
22121
  var _ref5 = _slicedToArray(_ref4, 2),
21005
22122
  id = _ref5[0],
21006
22123
  provider = _ref5[1];
21007
- return _objectSpread$n({
22124
+ return _objectSpread$m({
21008
22125
  id: id
21009
22126
  }, provider);
21010
22127
  }) : [];
@@ -21379,7 +22496,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
21379
22496
  return selectable["delete"](cn);
21380
22497
  });
21381
22498
  var resolved = new Set();
21382
- var _iterator = _createForOfIteratorHelper$9(selectable),
22499
+ var _iterator = _createForOfIteratorHelper$8(selectable),
21383
22500
  _step;
21384
22501
  try {
21385
22502
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -22004,7 +23121,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
22004
23121
  var widgetSpecificSelections = (workspace === null || workspace === void 0 || (_workspace$selectedPr = workspace.selectedProviders) === null || _workspace$selectedPr === void 0 ? void 0 : _workspace$selectedPr[id]) || {};
22005
23122
 
22006
23123
  // Add provider-related props from workspace
22007
- var itemWithProviders = _objectSpread$n(_objectSpread$n({}, item), {}, {
23124
+ var itemWithProviders = _objectSpread$m(_objectSpread$m({}, item), {}, {
22008
23125
  selectedProviders: widgetSpecificSelections,
22009
23126
  onProviderSelect: onProviderSelect
22010
23127
  });
@@ -23517,11 +24634,11 @@ function isWidgetResolvable(componentKey) {
23517
24634
  // isMinOrderForItem
23518
24635
  // }
23519
24636
 
23520
- 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; }
23521
- 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; }
23522
- 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; } } }; }
23523
- 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; } }
23524
- 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; }
24637
+ 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; }
24638
+ 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; }
24639
+ function _createForOfIteratorHelper$7(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$7(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
24640
+ function _unsupportedIterableToArray$7(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$7(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$7(r, a) : void 0; } }
24641
+ function _arrayLikeToArray$7(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
23525
24642
  /**
23526
24643
  * The model for all layout components used primarily in the renderLayout method
23527
24644
  * @param {Object} layoutItem an object containing various attributes of the layout item
@@ -23533,7 +24650,7 @@ function _arrayLikeToArray$8(r, a) { (null == a || a > r.length) && (a = r.lengt
23533
24650
  function sortObjectByKeys(obj) {
23534
24651
  var sortedKeys = Object.keys(obj).sort();
23535
24652
  var sortedObj = {};
23536
- var _iterator = _createForOfIteratorHelper$8(sortedKeys),
24653
+ var _iterator = _createForOfIteratorHelper$7(sortedKeys),
23537
24654
  _step;
23538
24655
  try {
23539
24656
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -23674,7 +24791,7 @@ var LayoutModel = function LayoutModel(layoutItem, workspaceLayout, dashboardId)
23674
24791
 
23675
24792
  // Merge user-entered config values (from EnhancedWidgetDropdown) into userPrefs
23676
24793
  if ("userConfigValues" in obj && obj.userConfigValues) {
23677
- layout.userPrefs = _objectSpread$m(_objectSpread$m({}, layout.userPrefs), obj.userConfigValues);
24794
+ layout.userPrefs = _objectSpread$l(_objectSpread$l({}, layout.userPrefs), obj.userConfigValues);
23678
24795
  }
23679
24796
 
23680
24797
  // Preserve provider selections for this widget
@@ -24202,8 +25319,8 @@ var MenuItemModel = function MenuItemModel() {
24202
25319
  return m;
24203
25320
  };
24204
25321
 
24205
- 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; }
24206
- 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; }
25322
+ function ownKeys$k(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
25323
+ function _objectSpread$k(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$k(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$k(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
24207
25324
  /**
24208
25325
  * A Model for a Workspace (Dashboard)
24209
25326
  * The Dashboard in this instance is the entire Layout inclusive of the workspaces and widgets
@@ -25467,7 +26584,7 @@ var DashboardModel = /*#__PURE__*/function () {
25467
26584
  visibleCells.push({
25468
26585
  row: r,
25469
26586
  col: c,
25470
- data: _objectSpread$l({}, cell),
26587
+ data: _objectSpread$k({}, cell),
25471
26588
  spanCol: ((_cell$span = cell.span) === null || _cell$span === void 0 ? void 0 : _cell$span.col) || 1,
25472
26589
  spanRow: ((_cell$span2 = cell.span) === null || _cell$span2 === void 0 ? void 0 : _cell$span2.row) || 1
25473
26590
  });
@@ -25489,7 +26606,7 @@ var DashboardModel = /*#__PURE__*/function () {
25489
26606
  var vc = _visibleCells[_i5];
25490
26607
  var newCol = (vc.col - 1) * count + 1;
25491
26608
  var _key7 = "".concat(vc.row, ".").concat(newCol);
25492
- grid[_key7] = _objectSpread$l(_objectSpread$l({}, vc.data), {}, {
26609
+ grid[_key7] = _objectSpread$k(_objectSpread$k({}, vc.data), {}, {
25493
26610
  hide: false,
25494
26611
  span: {
25495
26612
  row: vc.spanRow,
@@ -25564,7 +26681,7 @@ var DashboardModel = /*#__PURE__*/function () {
25564
26681
  _visibleCells2.push({
25565
26682
  row: _r1,
25566
26683
  col: _c10,
25567
- data: _objectSpread$l({}, _cell6),
26684
+ data: _objectSpread$k({}, _cell6),
25568
26685
  spanRow: ((_cell6$span = _cell6.span) === null || _cell6$span === void 0 ? void 0 : _cell6$span.row) || 1,
25569
26686
  spanCol: ((_cell6$span2 = _cell6.span) === null || _cell6$span2 === void 0 ? void 0 : _cell6$span2.col) || 1
25570
26687
  });
@@ -25586,7 +26703,7 @@ var DashboardModel = /*#__PURE__*/function () {
25586
26703
  var _vc = _visibleCells3[_i9];
25587
26704
  var newRow = (_vc.row - 1) * count + 1;
25588
26705
  var _key10 = "".concat(newRow, ".").concat(_vc.col);
25589
- grid[_key10] = _objectSpread$l(_objectSpread$l({}, _vc.data), {}, {
26706
+ grid[_key10] = _objectSpread$k(_objectSpread$k({}, _vc.data), {}, {
25590
26707
  hide: false,
25591
26708
  span: {
25592
26709
  row: _vc.spanRow * count,
@@ -26733,8 +27850,8 @@ var ErrorBoundary = /*#__PURE__*/function (_React$Component) {
26733
27850
  }]);
26734
27851
  }(React.Component);
26735
27852
 
26736
- function ownKeys$k(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
26737
- function _objectSpread$k(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$k(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$k(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
27853
+ function ownKeys$j(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; }
27854
+ function _objectSpread$j(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$j(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$j(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26738
27855
 
26739
27856
  /**
26740
27857
  * useDashboard Hook
@@ -26790,7 +27907,7 @@ var useDashboard = function useDashboard() {
26790
27907
  }
26791
27908
  });
26792
27909
  }
26793
- return _objectSpread$k({
27910
+ return _objectSpread$j({
26794
27911
  app: app,
26795
27912
  dashboard: dashboard,
26796
27913
  theme: theme
@@ -26799,9 +27916,9 @@ var useDashboard = function useDashboard() {
26799
27916
  });
26800
27917
  };
26801
27918
 
26802
- function _createForOfIteratorHelper$7(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$7(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
26803
- function _unsupportedIterableToArray$7(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$7(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$7(r, a) : void 0; } }
26804
- function _arrayLikeToArray$7(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
27919
+ function _createForOfIteratorHelper$6(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$6(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
27920
+ function _unsupportedIterableToArray$6(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$6(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$6(r, a) : void 0; } }
27921
+ function _arrayLikeToArray$6(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
26805
27922
 
26806
27923
  /**
26807
27924
  * useWidgetProviders Hook
@@ -26852,7 +27969,7 @@ var useWidgetProviders = function useWidgetProviders() {
26852
27969
  // 1. Widget-level: stored directly on the layout item by handleSelectProvider
26853
27970
  // 2. Workspace-level: stored as workspace.selectedProviders[widgetId][providerType]
26854
27971
  var providers = {};
26855
- var _iterator = _createForOfIteratorHelper$7(providerDeclarations),
27972
+ var _iterator = _createForOfIteratorHelper$6(providerDeclarations),
26856
27973
  _step;
26857
27974
  try {
26858
27975
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -27587,9 +28704,9 @@ var useNotifications = function useNotifications() {
27587
28704
  };
27588
28705
  };
27589
28706
 
27590
- function _createForOfIteratorHelper$6(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$6(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
27591
- function _unsupportedIterableToArray$6(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$6(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$6(r, a) : void 0; } }
27592
- function _arrayLikeToArray$6(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
28707
+ function _createForOfIteratorHelper$5(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$5(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
28708
+ function _unsupportedIterableToArray$5(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$5(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$5(r, a) : void 0; } }
28709
+ function _arrayLikeToArray$5(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
27593
28710
 
27594
28711
  /**
27595
28712
  * useScheduler Hook
@@ -27662,7 +28779,7 @@ var useScheduler = function useScheduler() {
27662
28779
  if (pending && pending.length > 0) {
27663
28780
  setPendingResults(pending);
27664
28781
  // Call handlers for each pending result
27665
- var _iterator = _createForOfIteratorHelper$6(pending),
28782
+ var _iterator = _createForOfIteratorHelper$5(pending),
27666
28783
  _step;
27667
28784
  try {
27668
28785
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -28503,180 +29620,6 @@ function useMcpDashServer() {
28503
29620
  };
28504
29621
  }
28505
29622
 
28506
- function ownKeys$j(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; }
28507
- function _objectSpread$j(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$j(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$j(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
28508
- var TOTAL_STEPS = 6; // Steps 0-5
28509
-
28510
- var initialState = {
28511
- step: 0,
28512
- intent: [],
28513
- providers: [],
28514
- selectedWidgets: [],
28515
- selectedDashboard: null,
28516
- layout: {
28517
- templateKey: null,
28518
- widgetOrder: []
28519
- },
28520
- customization: {
28521
- name: "",
28522
- menuId: null,
28523
- theme: null
28524
- },
28525
- path: null
28526
- };
28527
- function wizardReducer(state, action) {
28528
- switch (action.type) {
28529
- case "SET_STEP":
28530
- return _objectSpread$j(_objectSpread$j({}, state), {}, {
28531
- step: action.payload
28532
- });
28533
- case "SET_INTENT":
28534
- return _objectSpread$j(_objectSpread$j({}, state), {}, {
28535
- intent: action.payload
28536
- });
28537
- case "TOGGLE_INTENT":
28538
- {
28539
- var intent = state.intent.includes(action.payload) ? state.intent.filter(function (i) {
28540
- return i !== action.payload;
28541
- }) : [].concat(_toConsumableArray(state.intent), [action.payload]);
28542
- return _objectSpread$j(_objectSpread$j({}, state), {}, {
28543
- intent: intent
28544
- });
28545
- }
28546
- case "SET_PROVIDERS":
28547
- return _objectSpread$j(_objectSpread$j({}, state), {}, {
28548
- providers: action.payload
28549
- });
28550
- case "TOGGLE_PROVIDER":
28551
- {
28552
- var providers = state.providers.includes(action.payload) ? state.providers.filter(function (p) {
28553
- return p !== action.payload;
28554
- }) : [].concat(_toConsumableArray(state.providers), [action.payload]);
28555
- return _objectSpread$j(_objectSpread$j({}, state), {}, {
28556
- providers: providers
28557
- });
28558
- }
28559
- case "SET_SELECTED_WIDGETS":
28560
- return _objectSpread$j(_objectSpread$j({}, state), {}, {
28561
- selectedWidgets: action.payload
28562
- });
28563
- case "TOGGLE_WIDGET":
28564
- {
28565
- var exists = state.selectedWidgets.some(function (w) {
28566
- return w.name === action.payload.name;
28567
- });
28568
- var selectedWidgets = exists ? state.selectedWidgets.filter(function (w) {
28569
- return w.name !== action.payload.name;
28570
- }) : [].concat(_toConsumableArray(state.selectedWidgets), [action.payload]);
28571
- return _objectSpread$j(_objectSpread$j({}, state), {}, {
28572
- selectedWidgets: selectedWidgets
28573
- });
28574
- }
28575
- case "SET_SELECTED_DASHBOARD":
28576
- return _objectSpread$j(_objectSpread$j({}, state), {}, {
28577
- selectedDashboard: action.payload
28578
- });
28579
- case "SET_PATH":
28580
- return _objectSpread$j(_objectSpread$j({}, state), {}, {
28581
- path: action.payload
28582
- });
28583
- case "SET_LAYOUT":
28584
- return _objectSpread$j(_objectSpread$j({}, state), {}, {
28585
- layout: action.payload
28586
- });
28587
- case "REORDER_WIDGETS":
28588
- return _objectSpread$j(_objectSpread$j({}, state), {}, {
28589
- layout: _objectSpread$j(_objectSpread$j({}, state.layout), {}, {
28590
- widgetOrder: action.payload
28591
- })
28592
- });
28593
- case "SET_CUSTOMIZATION":
28594
- return _objectSpread$j(_objectSpread$j({}, state), {}, {
28595
- customization: _objectSpread$j(_objectSpread$j({}, state.customization), action.payload)
28596
- });
28597
- case "RESET":
28598
- return _objectSpread$j({}, initialState);
28599
- default:
28600
- return state;
28601
- }
28602
- }
28603
- function widgetCountToTemplate(count) {
28604
- if (count <= 1) return "single";
28605
- if (count === 2) return "two-columns";
28606
- if (count === 3) return "three-columns";
28607
- if (count === 4) return "two-by-two";
28608
- if (count <= 6) return "two-by-three";
28609
- return "three-by-three";
28610
- }
28611
- function getCanProceed(state) {
28612
- switch (state.step) {
28613
- case 0:
28614
- return state.intent.length > 0;
28615
- case 1:
28616
- return state.providers.length > 0;
28617
- case 2:
28618
- return state.path === "prebuilt" ? state.selectedDashboard !== null : state.selectedWidgets.length > 0;
28619
- case 3:
28620
- return state.layout.templateKey !== null;
28621
- case 4:
28622
- return state.customization.name.trim().length > 0;
28623
- case 5:
28624
- return true;
28625
- default:
28626
- return false;
28627
- }
28628
- }
28629
- var useWizardState = function useWizardState() {
28630
- var _useReducer = React.useReducer(wizardReducer, initialState),
28631
- _useReducer2 = _slicedToArray(_useReducer, 2),
28632
- state = _useReducer2[0],
28633
- dispatch = _useReducer2[1];
28634
- var canProceed = React.useMemo(function () {
28635
- return getCanProceed(state);
28636
- }, [state]);
28637
- var selectedCount = React.useMemo(function () {
28638
- return state.selectedWidgets.length;
28639
- }, [state.selectedWidgets]);
28640
- var isPrebuiltPath = state.path === "prebuilt";
28641
- var isCustomPath = state.path === "custom";
28642
- var nextStep = React.useCallback(function () {
28643
- if (getCanProceed(state) && state.step < TOTAL_STEPS - 1) {
28644
- dispatch({
28645
- type: "SET_STEP",
28646
- payload: state.step + 1
28647
- });
28648
- }
28649
- }, [state]);
28650
- var prevStep = React.useCallback(function () {
28651
- if (state.step > 0) {
28652
- dispatch({
28653
- type: "SET_STEP",
28654
- payload: state.step - 1
28655
- });
28656
- }
28657
- }, [state.step]);
28658
- var goToStep = React.useCallback(function (n) {
28659
- if (n >= 0 && n < TOTAL_STEPS) {
28660
- dispatch({
28661
- type: "SET_STEP",
28662
- payload: n
28663
- });
28664
- }
28665
- }, []);
28666
- return {
28667
- state: state,
28668
- dispatch: dispatch,
28669
- nextStep: nextStep,
28670
- prevStep: prevStep,
28671
- goToStep: goToStep,
28672
- canProceed: canProceed,
28673
- selectedCount: selectedCount,
28674
- isPrebuiltPath: isPrebuiltPath,
28675
- isCustomPath: isCustomPath,
28676
- widgetCountToTemplate: widgetCountToTemplate
28677
- };
28678
- };
28679
-
28680
29623
  function ownKeys$i(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
28681
29624
  function _objectSpread$i(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$i(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$i(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
28682
29625
  var PreviewComponentsPane = function PreviewComponentsPane(_ref) {
@@ -30839,9 +31782,9 @@ function loadWidgetBundle(source, widgetName) {
30839
31782
  };
30840
31783
  }
30841
31784
 
30842
- function _createForOfIteratorHelper$5(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$5(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
30843
- function _unsupportedIterableToArray$5(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$5(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$5(r, a) : void 0; } }
30844
- function _arrayLikeToArray$5(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
31785
+ function _createForOfIteratorHelper$4(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$4(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; } } }; }
31786
+ function _unsupportedIterableToArray$4(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$4(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$4(r, a) : void 0; } }
31787
+ function _arrayLikeToArray$4(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; }
30845
31788
  /**
30846
31789
  * Validation utilities for grid-first dashboard architecture
30847
31790
  *
@@ -31080,7 +32023,7 @@ var validateCellMerge = function validateCellMerge(cellNumbers, grid) {
31080
32023
 
31081
32024
  // Validate each cell
31082
32025
  var cells = [];
31083
- var _iterator = _createForOfIteratorHelper$5(cellNumbers),
32026
+ var _iterator = _createForOfIteratorHelper$4(cellNumbers),
31084
32027
  _step;
31085
32028
  try {
31086
32029
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -38824,9 +39767,9 @@ var McpCatalogDetail = function McpCatalogDetail(_ref) {
38824
39767
 
38825
39768
  function ownKeys$6(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; }
38826
39769
  function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
38827
- function _createForOfIteratorHelper$4(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$4(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; } } }; }
38828
- function _unsupportedIterableToArray$4(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$4(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$4(r, a) : void 0; } }
38829
- function _arrayLikeToArray$4(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; }
39770
+ function _createForOfIteratorHelper$3(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$3(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; } } }; }
39771
+ function _unsupportedIterableToArray$3(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$3(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$3(r, a) : void 0; } }
39772
+ function _arrayLikeToArray$3(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; }
38830
39773
  function isValidWsUrl(url) {
38831
39774
  if (!url) return false;
38832
39775
  try {
@@ -38873,7 +39816,7 @@ function extractCredentialFields(url, headerRows) {
38873
39816
  fields.add(match[1]);
38874
39817
  }
38875
39818
  }
38876
- var _iterator = _createForOfIteratorHelper$4(headerRows),
39819
+ var _iterator = _createForOfIteratorHelper$3(headerRows),
38877
39820
  _step;
38878
39821
  try {
38879
39822
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -38976,7 +39919,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
38976
39919
  if (!url.trim()) errs.url = "WebSocket URL is required";else if (!isValidWsUrl(url)) errs.url = "URL must start with ws:// or wss://";
38977
39920
 
38978
39921
  // Check required credential fields are filled
38979
- var _iterator2 = _createForOfIteratorHelper$4(credentialFields),
39922
+ var _iterator2 = _createForOfIteratorHelper$3(credentialFields),
38980
39923
  _step2;
38981
39924
  try {
38982
39925
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -38999,7 +39942,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
38999
39942
 
39000
39943
  // Build headers object from rows
39001
39944
  var headers = {};
39002
- var _iterator3 = _createForOfIteratorHelper$4(headerRows),
39945
+ var _iterator3 = _createForOfIteratorHelper$3(headerRows),
39003
39946
  _step3;
39004
39947
  try {
39005
39948
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -39068,7 +40011,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
39068
40011
 
39069
40012
  // Build config from current form state (same as handleSave)
39070
40013
  headers = {};
39071
- _iterator4 = _createForOfIteratorHelper$4(headerRows);
40014
+ _iterator4 = _createForOfIteratorHelper$3(headerRows);
39072
40015
  try {
39073
40016
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
39074
40017
  row = _step4.value;
@@ -41712,293 +42655,6 @@ var RegistryPackageDetail = function RegistryPackageDetail(_ref) {
41712
42655
  });
41713
42656
  };
41714
42657
 
41715
- function _createForOfIteratorHelper$3(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$3(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; } } }; }
41716
- function _unsupportedIterableToArray$3(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$3(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$3(r, a) : void 0; } }
41717
- function _arrayLikeToArray$3(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; }
41718
-
41719
- /**
41720
- * useRegistrySearch — shared hook for browsing and installing registry packages.
41721
- *
41722
- * Extracted from EnhancedWidgetDropdown so the same logic can power the
41723
- * Discover tab inside AppSettingsModal (and anywhere else).
41724
- *
41725
- * Options:
41726
- * filterByCapabilities – if true (default), only show packages compatible
41727
- * with the app's API capabilities
41728
- *
41729
- * Returns:
41730
- * packages – raw package objects from the registry
41731
- * flatWidgets – flattened widget entries with `isRegistry: true`
41732
- * isLoading – true while a search request is in flight
41733
- * error – error message string (or null)
41734
- * searchQuery / setSearchQuery – controlled search input
41735
- * isInstalling – true during an install
41736
- * installError – install error string (or null)
41737
- * search() – manually trigger a search
41738
- * installPackage(widget) – install a specific registry widget
41739
- * showAllPackages / setShowAllPackages – toggle to show incompatible packages
41740
- * appCapabilities – the app's API namespaces
41741
- */
41742
- var useRegistrySearch = function useRegistrySearch() {
41743
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
41744
- _ref$filterByCapabili = _ref.filterByCapabilities,
41745
- filterByCapabilities = _ref$filterByCapabili === void 0 ? true : _ref$filterByCapabili;
41746
- var _useState = React.useState(false),
41747
- _useState2 = _slicedToArray(_useState, 2),
41748
- isLoading = _useState2[0],
41749
- setIsLoading = _useState2[1];
41750
- var _useState3 = React.useState(null),
41751
- _useState4 = _slicedToArray(_useState3, 2),
41752
- error = _useState4[0],
41753
- setError = _useState4[1];
41754
- var _useState5 = React.useState([]),
41755
- _useState6 = _slicedToArray(_useState5, 2),
41756
- packages = _useState6[0],
41757
- setPackages = _useState6[1];
41758
- var _useState7 = React.useState([]),
41759
- _useState8 = _slicedToArray(_useState7, 2),
41760
- flatWidgets = _useState8[0],
41761
- setFlatWidgets = _useState8[1];
41762
- var _useState9 = React.useState(""),
41763
- _useState0 = _slicedToArray(_useState9, 2),
41764
- searchQuery = _useState0[0],
41765
- setSearchQuery = _useState0[1];
41766
- var _useState1 = React.useState(false),
41767
- _useState10 = _slicedToArray(_useState1, 2),
41768
- isInstalling = _useState10[0],
41769
- setIsInstalling = _useState10[1];
41770
- var _useState11 = React.useState(null),
41771
- _useState12 = _slicedToArray(_useState11, 2),
41772
- installError = _useState12[0],
41773
- setInstallError = _useState12[1];
41774
- var _useState13 = React.useState(false),
41775
- _useState14 = _slicedToArray(_useState13, 2),
41776
- showAllPackages = _useState14[0],
41777
- setShowAllPackages = _useState14[1];
41778
-
41779
- // Discover app capabilities from window.mainApi
41780
- var appCapabilities = React.useMemo(function () {
41781
- if (typeof window !== "undefined" && window.mainApi) {
41782
- return Object.keys(window.mainApi);
41783
- }
41784
- return [];
41785
- }, []);
41786
- var search = React.useCallback(/*#__PURE__*/function () {
41787
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(query) {
41788
- var _window$mainApi;
41789
- var filters, result, pkgs, capSet, widgets, _iterator, _step, pkg, allApiProviders, _iterator2, _step2, p, _iterator3, _step3, w, _iterator5, _step5, _p, missingApis, _iterator4, _step4, widget, _t;
41790
- return _regeneratorRuntime.wrap(function (_context) {
41791
- while (1) switch (_context.prev = _context.next) {
41792
- case 0:
41793
- if ((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && _window$mainApi.registry) {
41794
- _context.next = 1;
41795
- break;
41796
- }
41797
- setPackages([]);
41798
- setFlatWidgets([]);
41799
- return _context.abrupt("return");
41800
- case 1:
41801
- setIsLoading(true);
41802
- setError(null);
41803
- _context.prev = 2;
41804
- filters = {};
41805
- if (filterByCapabilities && !showAllPackages && appCapabilities.length) {
41806
- filters.appCapabilities = appCapabilities;
41807
- }
41808
- _context.next = 3;
41809
- return window.mainApi.registry.search(query !== null && query !== void 0 ? query : searchQuery, filters);
41810
- case 3:
41811
- result = _context.sent;
41812
- // Only include packages that contain at least one widget
41813
- // (filters out theme-only packages, etc.)
41814
- pkgs = (result.packages || []).filter(function (pkg) {
41815
- return pkg.widgets && pkg.widgets.length > 0;
41816
- });
41817
- setPackages(pkgs);
41818
-
41819
- // Flatten packages into widget entries
41820
- capSet = new Set(appCapabilities.map(function (c) {
41821
- return c.toLowerCase();
41822
- }));
41823
- widgets = [];
41824
- _iterator = _createForOfIteratorHelper$3(pkgs);
41825
- try {
41826
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
41827
- pkg = _step.value;
41828
- // Compute missing APIs for the entire package
41829
- allApiProviders = [];
41830
- _iterator2 = _createForOfIteratorHelper$3(pkg.providers || []);
41831
- try {
41832
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
41833
- p = _step2.value;
41834
- if (p.providerClass === "api" && p.required !== false) {
41835
- allApiProviders.push(p.type);
41836
- }
41837
- }
41838
- } catch (err) {
41839
- _iterator2.e(err);
41840
- } finally {
41841
- _iterator2.f();
41842
- }
41843
- _iterator3 = _createForOfIteratorHelper$3(pkg.widgets || []);
41844
- try {
41845
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
41846
- w = _step3.value;
41847
- _iterator5 = _createForOfIteratorHelper$3(w.providers || []);
41848
- try {
41849
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
41850
- _p = _step5.value;
41851
- if (_p.providerClass === "api" && _p.required !== false) {
41852
- allApiProviders.push(_p.type);
41853
- }
41854
- }
41855
- } catch (err) {
41856
- _iterator5.e(err);
41857
- } finally {
41858
- _iterator5.f();
41859
- }
41860
- }
41861
- } catch (err) {
41862
- _iterator3.e(err);
41863
- } finally {
41864
- _iterator3.f();
41865
- }
41866
- missingApis = _toConsumableArray(new Set(allApiProviders)).filter(function (api) {
41867
- return !capSet.has(api.toLowerCase());
41868
- });
41869
- _iterator4 = _createForOfIteratorHelper$3(pkg.widgets || []);
41870
- try {
41871
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
41872
- widget = _step4.value;
41873
- widgets.push({
41874
- key: "".concat(pkg.name, "/").concat(widget.name),
41875
- name: widget.displayName || widget.name,
41876
- description: widget.description || "",
41877
- icon: widget.icon || null,
41878
- providers: widget.providers || [],
41879
- isRegistry: true,
41880
- packageName: pkg.name,
41881
- packageDisplayName: pkg.displayName || pkg.name,
41882
- packageVersion: pkg.version,
41883
- packageAuthor: pkg.author || "",
41884
- packageDescription: pkg.description || "",
41885
- packageTags: pkg.tags || [],
41886
- packageCategory: pkg.category || "",
41887
- downloadUrl: pkg.downloadUrl || "",
41888
- repository: pkg.repository || "",
41889
- publishedAt: pkg.publishedAt || "",
41890
- packageWidgets: pkg.widgets || [],
41891
- appOrigin: pkg.appOrigin || null,
41892
- packageProviders: pkg.providers || [],
41893
- missingApis: missingApis
41894
- });
41895
- }
41896
- } catch (err) {
41897
- _iterator4.e(err);
41898
- } finally {
41899
- _iterator4.f();
41900
- }
41901
- }
41902
- } catch (err) {
41903
- _iterator.e(err);
41904
- } finally {
41905
- _iterator.f();
41906
- }
41907
- setFlatWidgets(widgets);
41908
- _context.next = 5;
41909
- break;
41910
- case 4:
41911
- _context.prev = 4;
41912
- _t = _context["catch"](2);
41913
- setError(_t.message || "Failed to load registry");
41914
- setPackages([]);
41915
- setFlatWidgets([]);
41916
- case 5:
41917
- _context.prev = 5;
41918
- setIsLoading(false);
41919
- return _context.finish(5);
41920
- case 6:
41921
- case "end":
41922
- return _context.stop();
41923
- }
41924
- }, _callee, null, [[2, 4, 5, 6]]);
41925
- }));
41926
- return function (_x) {
41927
- return _ref2.apply(this, arguments);
41928
- };
41929
- }(), [searchQuery, filterByCapabilities, showAllPackages, appCapabilities]);
41930
-
41931
- // Debounce search on query changes (300ms)
41932
- React.useEffect(function () {
41933
- var timer = setTimeout(function () {
41934
- search(searchQuery);
41935
- }, 300);
41936
- return function () {
41937
- return clearTimeout(timer);
41938
- };
41939
- // eslint-disable-next-line react-hooks/exhaustive-deps
41940
- }, [searchQuery, showAllPackages]);
41941
- var installPackage = React.useCallback(/*#__PURE__*/function () {
41942
- var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(widget) {
41943
- var packageName, downloadUrl, packageVersion, resolvedUrl, _t2;
41944
- return _regeneratorRuntime.wrap(function (_context2) {
41945
- while (1) switch (_context2.prev = _context2.next) {
41946
- case 0:
41947
- if (!(!widget || !widget.isRegistry)) {
41948
- _context2.next = 1;
41949
- break;
41950
- }
41951
- return _context2.abrupt("return");
41952
- case 1:
41953
- setIsInstalling(true);
41954
- setInstallError(null);
41955
- _context2.prev = 2;
41956
- packageName = widget.packageName, downloadUrl = widget.downloadUrl, packageVersion = widget.packageVersion; // Resolve placeholders in the download URL
41957
- resolvedUrl = downloadUrl.replace(/\{version\}/g, packageVersion).replace(/\{name\}/g, packageName);
41958
- _context2.next = 3;
41959
- return window.mainApi.widgets.install(packageName, resolvedUrl);
41960
- case 3:
41961
- _context2.next = 5;
41962
- break;
41963
- case 4:
41964
- _context2.prev = 4;
41965
- _t2 = _context2["catch"](2);
41966
- setInstallError(_t2.message || "Failed to install package");
41967
- case 5:
41968
- _context2.prev = 5;
41969
- setIsInstalling(false);
41970
- return _context2.finish(5);
41971
- case 6:
41972
- case "end":
41973
- return _context2.stop();
41974
- }
41975
- }, _callee2, null, [[2, 4, 5, 6]]);
41976
- }));
41977
- return function (_x2) {
41978
- return _ref3.apply(this, arguments);
41979
- };
41980
- }(), []);
41981
- var retry = React.useCallback(function () {
41982
- search(searchQuery);
41983
- }, [search, searchQuery]);
41984
- return {
41985
- packages: packages,
41986
- flatWidgets: flatWidgets,
41987
- isLoading: isLoading,
41988
- error: error,
41989
- searchQuery: searchQuery,
41990
- setSearchQuery: setSearchQuery,
41991
- isInstalling: isInstalling,
41992
- installError: installError,
41993
- search: search,
41994
- installPackage: installPackage,
41995
- retry: retry,
41996
- showAllPackages: showAllPackages,
41997
- setShowAllPackages: setShowAllPackages,
41998
- appCapabilities: appCapabilities
41999
- };
42000
- };
42001
-
42002
42658
  function _createForOfIteratorHelper$2(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$2(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; } } }; }
42003
42659
  function _unsupportedIterableToArray$2(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$2(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$2(r, a) : void 0; } }
42004
42660
  function _arrayLikeToArray$2(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; }
@@ -48680,7 +49336,9 @@ exports.WidgetPopoutStage = WidgetPopoutStage;
48680
49336
  exports.WidgetProviderWrapper = WidgetProviderWrapper;
48681
49337
  exports.WidgetSidebar = WidgetSidebar;
48682
49338
  exports.WizardIntentStep = WizardIntentStep;
49339
+ exports.WizardLayoutPreviewStep = WizardLayoutPreviewStep;
48683
49340
  exports.WizardProvidersStep = WizardProvidersStep;
49341
+ exports.WizardResultsStep = WizardResultsStep;
48684
49342
  exports.Workspace = Workspace;
48685
49343
  exports.WorkspaceContext = WorkspaceContext;
48686
49344
  exports.WorkspaceFooter = WorkspaceFooter;