@trops/dash-core 0.1.187 → 0.1.189

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
@@ -14,6 +14,7 @@ var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
14
14
  var _regeneratorRuntime = require('@babel/runtime/regenerator');
15
15
  var react = require('@headlessui/react');
16
16
  var solid = require('@heroicons/react/20/solid');
17
+ var fontawesomeSvgCore = require('@fortawesome/fontawesome-svg-core');
17
18
  var clsx = require('clsx');
18
19
  var reactDnd = require('react-dnd');
19
20
  var reactDndHtml5Backend = require('react-dnd-html5-backend');
@@ -22,7 +23,6 @@ var _getPrototypeOf = require('@babel/runtime/helpers/getPrototypeOf');
22
23
  var _inherits = require('@babel/runtime/helpers/inherits');
23
24
  var colors = require('tailwindcss/colors');
24
25
  var ReactDOM = require('react-dom');
25
- var fontawesomeSvgCore = require('@fortawesome/fontawesome-svg-core');
26
26
  var algoliasearch = require('algoliasearch');
27
27
  var reactInstantsearchHooksWeb = require('react-instantsearch-hooks-web');
28
28
  var reactRouterDom = require('react-router-dom');
@@ -5222,6 +5222,837 @@ var LayoutQuickAddMenu = function LayoutQuickAddMenu(_ref) {
5222
5222
  });
5223
5223
  };
5224
5224
 
5225
+ var CATEGORIES = [{
5226
+ key: "reporting",
5227
+ label: "Reporting",
5228
+ icon: "chart-bar",
5229
+ description: "Dashboards for data visualization and reports"
5230
+ }, {
5231
+ key: "monitoring",
5232
+ label: "Monitoring",
5233
+ icon: "heart-pulse",
5234
+ description: "System health, uptime, and performance monitoring"
5235
+ }, {
5236
+ key: "productivity",
5237
+ label: "Productivity",
5238
+ icon: "list-check",
5239
+ description: "Task tracking, calendars, and workflow management"
5240
+ }, {
5241
+ key: "development",
5242
+ label: "Development",
5243
+ icon: "code",
5244
+ description: "Code repos, CI/CD, and developer tools"
5245
+ }, {
5246
+ key: "communication",
5247
+ label: "Communication",
5248
+ icon: "comments",
5249
+ description: "Messages, channels, and team communication"
5250
+ }, {
5251
+ key: "custom",
5252
+ label: "Custom",
5253
+ icon: "grid-2",
5254
+ description: "Build a fully custom dashboard"
5255
+ }];
5256
+
5257
+ /**
5258
+ * WizardIntentStep
5259
+ *
5260
+ * Step 0 of the Dashboard Wizard. Presents category cards so the user
5261
+ * can indicate what kind of dashboard they want to build.
5262
+ * Multi-select — user can pick multiple categories.
5263
+ *
5264
+ * @param {Object} props
5265
+ * @param {Object} props.state - Wizard state from useWizardState
5266
+ * @param {Function} props.dispatch - Wizard dispatch from useWizardState
5267
+ */
5268
+ var WizardIntentStep = function WizardIntentStep(_ref) {
5269
+ var state = _ref.state,
5270
+ dispatch = _ref.dispatch;
5271
+ var handleToggle = function handleToggle(key) {
5272
+ dispatch({
5273
+ type: "TOGGLE_INTENT",
5274
+ payload: key
5275
+ });
5276
+ };
5277
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
5278
+ className: "wizard-intent-step",
5279
+ children: [/*#__PURE__*/jsxRuntime.jsx("h3", {
5280
+ className: "wizard-step-header",
5281
+ children: "What is this dashboard for?"
5282
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
5283
+ className: "wizard-card-grid",
5284
+ children: CATEGORIES.map(function (cat) {
5285
+ return /*#__PURE__*/jsxRuntime.jsx(DashReact.SelectableCard, {
5286
+ icon: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5287
+ icon: cat.icon,
5288
+ fixedWidth: true
5289
+ }),
5290
+ label: cat.label,
5291
+ description: cat.description,
5292
+ selected: state.intent.includes(cat.key),
5293
+ onSelect: function onSelect() {
5294
+ return handleToggle(cat.key);
5295
+ }
5296
+ }, cat.key);
5297
+ })
5298
+ })]
5299
+ });
5300
+ };
5301
+
5302
+ var FALLBACK = "puzzle-piece";
5303
+
5304
+ /**
5305
+ * Resolve an icon name to a valid FontAwesome icon reference.
5306
+ * Tries solid (fas) first, then brand (fab). Returns "puzzle-piece" if
5307
+ * the icon is falsy or not found in either prefix.
5308
+ */
5309
+ var resolveIcon = function resolveIcon(iconName) {
5310
+ if (!iconName) return FALLBACK;
5311
+
5312
+ // Already an array tuple like ["fab", "github"] — pass through
5313
+ if (Array.isArray(iconName)) return iconName;
5314
+
5315
+ // Try solid
5316
+ if (fontawesomeSvgCore.findIconDefinition({
5317
+ prefix: "fas",
5318
+ iconName: iconName
5319
+ })) return iconName;
5320
+
5321
+ // Try brand
5322
+ if (fontawesomeSvgCore.findIconDefinition({
5323
+ prefix: "fab",
5324
+ iconName: iconName
5325
+ })) return ["fab", iconName];
5326
+ return FALLBACK;
5327
+ };
5328
+
5329
+ var WizardProvidersStep = function WizardProvidersStep(_ref) {
5330
+ var state = _ref.state,
5331
+ dispatch = _ref.dispatch;
5332
+ var _useContext = React.useContext(AppContext),
5333
+ providersMap = _useContext.providers;
5334
+ var providerList = React.useMemo(function () {
5335
+ if (!providersMap || _typeof(providersMap) !== "object") return [];
5336
+ return Object.values(providersMap).map(function (p) {
5337
+ return {
5338
+ key: p.type || p.name,
5339
+ name: p.name,
5340
+ type: p.type,
5341
+ icon: p.icon || p.type,
5342
+ configured: !!(p.credentials && Object.keys(p.credentials).length > 0)
5343
+ };
5344
+ });
5345
+ }, [providersMap]);
5346
+
5347
+ // Pre-check configured providers on first render
5348
+ React.useEffect(function () {
5349
+ if (state.providers.length === 0 && providerList.length > 0) {
5350
+ var configuredKeys = providerList.filter(function (p) {
5351
+ return p.configured;
5352
+ }).map(function (p) {
5353
+ return p.key;
5354
+ });
5355
+ if (configuredKeys.length > 0) {
5356
+ dispatch({
5357
+ type: "SET_PROVIDERS",
5358
+ payload: configuredKeys
5359
+ });
5360
+ }
5361
+ }
5362
+ }, [providerList, state.providers.length, dispatch]);
5363
+ var handleToggle = function handleToggle(key) {
5364
+ dispatch({
5365
+ type: "TOGGLE_PROVIDER",
5366
+ payload: key
5367
+ });
5368
+ };
5369
+ if (providerList.length === 0) {
5370
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
5371
+ className: "wizard-providers-step",
5372
+ children: [/*#__PURE__*/jsxRuntime.jsx("h3", {
5373
+ className: "wizard-step-header",
5374
+ children: "Which tools and services do you use?"
5375
+ }), /*#__PURE__*/jsxRuntime.jsx("p", {
5376
+ className: "wizard-empty-message",
5377
+ children: "No providers configured yet. Add providers in Settings first."
5378
+ })]
5379
+ });
5380
+ }
5381
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
5382
+ className: "wizard-providers-step",
5383
+ children: [/*#__PURE__*/jsxRuntime.jsx("h3", {
5384
+ className: "wizard-step-header",
5385
+ children: "Which tools and services do you use?"
5386
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
5387
+ className: "wizard-card-grid",
5388
+ children: providerList.map(function (provider) {
5389
+ var isSelected = state.providers.includes(provider.key);
5390
+ var needsSetup = isSelected && !provider.configured;
5391
+ return /*#__PURE__*/jsxRuntime.jsx(DashReact.SelectableCard, {
5392
+ icon: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5393
+ icon: resolveIcon(provider.icon),
5394
+ fixedWidth: true
5395
+ }),
5396
+ label: provider.name,
5397
+ description: needsSetup ? /*#__PURE__*/jsxRuntime.jsx("span", {
5398
+ className: "wizard-needs-setup-badge",
5399
+ children: "Needs setup"
5400
+ }) : null,
5401
+ selected: isSelected,
5402
+ onSelect: function onSelect() {
5403
+ return handleToggle(provider.key);
5404
+ }
5405
+ }, provider.key);
5406
+ })
5407
+ })]
5408
+ });
5409
+ };
5410
+
5411
+ 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; } } }; }
5412
+ 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; } }
5413
+ 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; }
5414
+
5415
+ /**
5416
+ * useRegistrySearch — shared hook for browsing and installing registry packages.
5417
+ *
5418
+ * Extracted from EnhancedWidgetDropdown so the same logic can power the
5419
+ * Discover tab inside AppSettingsModal (and anywhere else).
5420
+ *
5421
+ * Options:
5422
+ * filterByCapabilities – if true (default), only show packages compatible
5423
+ * with the app's API capabilities
5424
+ *
5425
+ * Returns:
5426
+ * packages – raw package objects from the registry
5427
+ * flatWidgets – flattened widget entries with `isRegistry: true`
5428
+ * isLoading – true while a search request is in flight
5429
+ * error – error message string (or null)
5430
+ * searchQuery / setSearchQuery – controlled search input
5431
+ * isInstalling – true during an install
5432
+ * installError – install error string (or null)
5433
+ * search() – manually trigger a search
5434
+ * installPackage(widget) – install a specific registry widget
5435
+ * showAllPackages / setShowAllPackages – toggle to show incompatible packages
5436
+ * appCapabilities – the app's API namespaces
5437
+ */
5438
+ var useRegistrySearch = function useRegistrySearch() {
5439
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
5440
+ _ref$filterByCapabili = _ref.filterByCapabilities,
5441
+ filterByCapabilities = _ref$filterByCapabili === void 0 ? true : _ref$filterByCapabili;
5442
+ var _useState = React.useState(false),
5443
+ _useState2 = _slicedToArray(_useState, 2),
5444
+ isLoading = _useState2[0],
5445
+ setIsLoading = _useState2[1];
5446
+ var _useState3 = React.useState(null),
5447
+ _useState4 = _slicedToArray(_useState3, 2),
5448
+ error = _useState4[0],
5449
+ setError = _useState4[1];
5450
+ var _useState5 = React.useState([]),
5451
+ _useState6 = _slicedToArray(_useState5, 2),
5452
+ packages = _useState6[0],
5453
+ setPackages = _useState6[1];
5454
+ var _useState7 = React.useState([]),
5455
+ _useState8 = _slicedToArray(_useState7, 2),
5456
+ flatWidgets = _useState8[0],
5457
+ setFlatWidgets = _useState8[1];
5458
+ var _useState9 = React.useState(""),
5459
+ _useState0 = _slicedToArray(_useState9, 2),
5460
+ searchQuery = _useState0[0],
5461
+ setSearchQuery = _useState0[1];
5462
+ var _useState1 = React.useState(false),
5463
+ _useState10 = _slicedToArray(_useState1, 2),
5464
+ isInstalling = _useState10[0],
5465
+ setIsInstalling = _useState10[1];
5466
+ var _useState11 = React.useState(null),
5467
+ _useState12 = _slicedToArray(_useState11, 2),
5468
+ installError = _useState12[0],
5469
+ setInstallError = _useState12[1];
5470
+ var _useState13 = React.useState(false),
5471
+ _useState14 = _slicedToArray(_useState13, 2),
5472
+ showAllPackages = _useState14[0],
5473
+ setShowAllPackages = _useState14[1];
5474
+
5475
+ // Discover app capabilities from window.mainApi
5476
+ var appCapabilities = React.useMemo(function () {
5477
+ if (typeof window !== "undefined" && window.mainApi) {
5478
+ return Object.keys(window.mainApi);
5479
+ }
5480
+ return [];
5481
+ }, []);
5482
+ var search = React.useCallback(/*#__PURE__*/function () {
5483
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(query) {
5484
+ var _window$mainApi;
5485
+ var filters, result, pkgs, capSet, widgets, _iterator, _step, pkg, allApiProviders, _iterator2, _step2, p, _iterator3, _step3, w, _iterator5, _step5, _p, missingApis, _iterator4, _step4, widget, _t;
5486
+ return _regeneratorRuntime.wrap(function (_context) {
5487
+ while (1) switch (_context.prev = _context.next) {
5488
+ case 0:
5489
+ if ((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && _window$mainApi.registry) {
5490
+ _context.next = 1;
5491
+ break;
5492
+ }
5493
+ setPackages([]);
5494
+ setFlatWidgets([]);
5495
+ return _context.abrupt("return");
5496
+ case 1:
5497
+ setIsLoading(true);
5498
+ setError(null);
5499
+ _context.prev = 2;
5500
+ filters = {};
5501
+ if (filterByCapabilities && !showAllPackages && appCapabilities.length) {
5502
+ filters.appCapabilities = appCapabilities;
5503
+ }
5504
+ _context.next = 3;
5505
+ return window.mainApi.registry.search(query !== null && query !== void 0 ? query : searchQuery, filters);
5506
+ case 3:
5507
+ result = _context.sent;
5508
+ // Only include packages that contain at least one widget
5509
+ // (filters out theme-only packages, etc.)
5510
+ pkgs = (result.packages || []).filter(function (pkg) {
5511
+ return pkg.widgets && pkg.widgets.length > 0;
5512
+ });
5513
+ setPackages(pkgs);
5514
+
5515
+ // Flatten packages into widget entries
5516
+ capSet = new Set(appCapabilities.map(function (c) {
5517
+ return c.toLowerCase();
5518
+ }));
5519
+ widgets = [];
5520
+ _iterator = _createForOfIteratorHelper$e(pkgs);
5521
+ try {
5522
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
5523
+ pkg = _step.value;
5524
+ // Compute missing APIs for the entire package
5525
+ allApiProviders = [];
5526
+ _iterator2 = _createForOfIteratorHelper$e(pkg.providers || []);
5527
+ try {
5528
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
5529
+ p = _step2.value;
5530
+ if (p.providerClass === "api" && p.required !== false) {
5531
+ allApiProviders.push(p.type);
5532
+ }
5533
+ }
5534
+ } catch (err) {
5535
+ _iterator2.e(err);
5536
+ } finally {
5537
+ _iterator2.f();
5538
+ }
5539
+ _iterator3 = _createForOfIteratorHelper$e(pkg.widgets || []);
5540
+ try {
5541
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
5542
+ w = _step3.value;
5543
+ _iterator5 = _createForOfIteratorHelper$e(w.providers || []);
5544
+ try {
5545
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
5546
+ _p = _step5.value;
5547
+ if (_p.providerClass === "api" && _p.required !== false) {
5548
+ allApiProviders.push(_p.type);
5549
+ }
5550
+ }
5551
+ } catch (err) {
5552
+ _iterator5.e(err);
5553
+ } finally {
5554
+ _iterator5.f();
5555
+ }
5556
+ }
5557
+ } catch (err) {
5558
+ _iterator3.e(err);
5559
+ } finally {
5560
+ _iterator3.f();
5561
+ }
5562
+ missingApis = _toConsumableArray(new Set(allApiProviders)).filter(function (api) {
5563
+ return !capSet.has(api.toLowerCase());
5564
+ });
5565
+ _iterator4 = _createForOfIteratorHelper$e(pkg.widgets || []);
5566
+ try {
5567
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
5568
+ widget = _step4.value;
5569
+ widgets.push({
5570
+ key: "".concat(pkg.name, "/").concat(widget.name),
5571
+ name: widget.displayName || widget.name,
5572
+ description: widget.description || "",
5573
+ icon: widget.icon || null,
5574
+ providers: widget.providers || [],
5575
+ isRegistry: true,
5576
+ packageName: pkg.name,
5577
+ packageDisplayName: pkg.displayName || pkg.name,
5578
+ packageVersion: pkg.version,
5579
+ packageAuthor: pkg.author || "",
5580
+ packageDescription: pkg.description || "",
5581
+ packageTags: pkg.tags || [],
5582
+ packageCategory: pkg.category || "",
5583
+ downloadUrl: pkg.downloadUrl || "",
5584
+ repository: pkg.repository || "",
5585
+ publishedAt: pkg.publishedAt || "",
5586
+ packageWidgets: pkg.widgets || [],
5587
+ appOrigin: pkg.appOrigin || null,
5588
+ packageProviders: pkg.providers || [],
5589
+ missingApis: missingApis
5590
+ });
5591
+ }
5592
+ } catch (err) {
5593
+ _iterator4.e(err);
5594
+ } finally {
5595
+ _iterator4.f();
5596
+ }
5597
+ }
5598
+ } catch (err) {
5599
+ _iterator.e(err);
5600
+ } finally {
5601
+ _iterator.f();
5602
+ }
5603
+ setFlatWidgets(widgets);
5604
+ _context.next = 5;
5605
+ break;
5606
+ case 4:
5607
+ _context.prev = 4;
5608
+ _t = _context["catch"](2);
5609
+ setError(_t.message || "Failed to load registry");
5610
+ setPackages([]);
5611
+ setFlatWidgets([]);
5612
+ case 5:
5613
+ _context.prev = 5;
5614
+ setIsLoading(false);
5615
+ return _context.finish(5);
5616
+ case 6:
5617
+ case "end":
5618
+ return _context.stop();
5619
+ }
5620
+ }, _callee, null, [[2, 4, 5, 6]]);
5621
+ }));
5622
+ return function (_x) {
5623
+ return _ref2.apply(this, arguments);
5624
+ };
5625
+ }(), [searchQuery, filterByCapabilities, showAllPackages, appCapabilities]);
5626
+
5627
+ // Debounce search on query changes (300ms)
5628
+ React.useEffect(function () {
5629
+ var timer = setTimeout(function () {
5630
+ search(searchQuery);
5631
+ }, 300);
5632
+ return function () {
5633
+ return clearTimeout(timer);
5634
+ };
5635
+ // eslint-disable-next-line react-hooks/exhaustive-deps
5636
+ }, [searchQuery, showAllPackages]);
5637
+ var installPackage = React.useCallback(/*#__PURE__*/function () {
5638
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(widget) {
5639
+ var packageName, downloadUrl, packageVersion, resolvedUrl, _t2;
5640
+ return _regeneratorRuntime.wrap(function (_context2) {
5641
+ while (1) switch (_context2.prev = _context2.next) {
5642
+ case 0:
5643
+ if (!(!widget || !widget.isRegistry)) {
5644
+ _context2.next = 1;
5645
+ break;
5646
+ }
5647
+ return _context2.abrupt("return");
5648
+ case 1:
5649
+ setIsInstalling(true);
5650
+ setInstallError(null);
5651
+ _context2.prev = 2;
5652
+ packageName = widget.packageName, downloadUrl = widget.downloadUrl, packageVersion = widget.packageVersion; // Resolve placeholders in the download URL
5653
+ resolvedUrl = downloadUrl.replace(/\{version\}/g, packageVersion).replace(/\{name\}/g, packageName);
5654
+ _context2.next = 3;
5655
+ return window.mainApi.widgets.install(packageName, resolvedUrl);
5656
+ case 3:
5657
+ _context2.next = 5;
5658
+ break;
5659
+ case 4:
5660
+ _context2.prev = 4;
5661
+ _t2 = _context2["catch"](2);
5662
+ setInstallError(_t2.message || "Failed to install package");
5663
+ case 5:
5664
+ _context2.prev = 5;
5665
+ setIsInstalling(false);
5666
+ return _context2.finish(5);
5667
+ case 6:
5668
+ case "end":
5669
+ return _context2.stop();
5670
+ }
5671
+ }, _callee2, null, [[2, 4, 5, 6]]);
5672
+ }));
5673
+ return function (_x2) {
5674
+ return _ref3.apply(this, arguments);
5675
+ };
5676
+ }(), []);
5677
+ var retry = React.useCallback(function () {
5678
+ search(searchQuery);
5679
+ }, [search, searchQuery]);
5680
+ return {
5681
+ packages: packages,
5682
+ flatWidgets: flatWidgets,
5683
+ isLoading: isLoading,
5684
+ error: error,
5685
+ searchQuery: searchQuery,
5686
+ setSearchQuery: setSearchQuery,
5687
+ isInstalling: isInstalling,
5688
+ installError: installError,
5689
+ search: search,
5690
+ installPackage: installPackage,
5691
+ retry: retry,
5692
+ showAllPackages: showAllPackages,
5693
+ setShowAllPackages: setShowAllPackages,
5694
+ appCapabilities: appCapabilities
5695
+ };
5696
+ };
5697
+
5698
+ var WizardResultsStep = function WizardResultsStep(_ref) {
5699
+ var state = _ref.state,
5700
+ dispatch = _ref.dispatch;
5701
+ var _useState = React.useState("prebuilt"),
5702
+ _useState2 = _slicedToArray(_useState, 2),
5703
+ activeTab = _useState2[0],
5704
+ setActiveTab = _useState2[1];
5705
+
5706
+ // --- Dashboard search (Tab A) ---
5707
+ var _useState3 = React.useState([]),
5708
+ _useState4 = _slicedToArray(_useState3, 2),
5709
+ dashboards = _useState4[0],
5710
+ setDashboards = _useState4[1];
5711
+ var _useState5 = React.useState(false),
5712
+ _useState6 = _slicedToArray(_useState5, 2),
5713
+ dashLoading = _useState6[0],
5714
+ setDashLoading = _useState6[1];
5715
+ var _useState7 = React.useState(null),
5716
+ _useState8 = _slicedToArray(_useState7, 2),
5717
+ dashError = _useState8[0],
5718
+ setDashError = _useState8[1];
5719
+ var dashFilters = React.useMemo(function () {
5720
+ return {
5721
+ category: state.intent.length ? state.intent.join(",") : undefined,
5722
+ providerTypes: state.providers.length ? state.providers : undefined
5723
+ };
5724
+ }, [state.intent, state.providers]);
5725
+ var searchDashboards = React.useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
5726
+ var _window$mainApi;
5727
+ var result, _t;
5728
+ return _regeneratorRuntime.wrap(function (_context) {
5729
+ while (1) switch (_context.prev = _context.next) {
5730
+ case 0:
5731
+ if ((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && (_window$mainApi = _window$mainApi.registry) !== null && _window$mainApi !== void 0 && _window$mainApi.searchDashboards) {
5732
+ _context.next = 1;
5733
+ break;
5734
+ }
5735
+ setDashboards([]);
5736
+ return _context.abrupt("return");
5737
+ case 1:
5738
+ setDashLoading(true);
5739
+ setDashError(null);
5740
+ _context.prev = 2;
5741
+ _context.next = 3;
5742
+ return window.mainApi.registry.searchDashboards("", dashFilters);
5743
+ case 3:
5744
+ result = _context.sent;
5745
+ setDashboards(result.packages || []);
5746
+ _context.next = 5;
5747
+ break;
5748
+ case 4:
5749
+ _context.prev = 4;
5750
+ _t = _context["catch"](2);
5751
+ setDashError(_t.message || "Failed to search dashboards");
5752
+ setDashboards([]);
5753
+ case 5:
5754
+ _context.prev = 5;
5755
+ setDashLoading(false);
5756
+ return _context.finish(5);
5757
+ case 6:
5758
+ case "end":
5759
+ return _context.stop();
5760
+ }
5761
+ }, _callee, null, [[2, 4, 5, 6]]);
5762
+ })), [dashFilters]);
5763
+ React.useEffect(function () {
5764
+ searchDashboards();
5765
+ }, [searchDashboards]);
5766
+
5767
+ // --- Widget search (Tab B) ---
5768
+ var _useRegistrySearch = useRegistrySearch({
5769
+ filterByCapabilities: true
5770
+ }),
5771
+ flatWidgets = _useRegistrySearch.flatWidgets,
5772
+ widgetsLoading = _useRegistrySearch.isLoading,
5773
+ widgetsError = _useRegistrySearch.error;
5774
+
5775
+ // Filter widgets by selected categories + providers
5776
+ var filteredWidgets = React.useMemo(function () {
5777
+ return flatWidgets.filter(function (w) {
5778
+ // Category filter: match if widget's category overlaps user intent
5779
+ var catMatch = state.intent.length === 0 || state.intent.some(function (cat) {
5780
+ return (w.packageCategory || "").toLowerCase() === cat.toLowerCase();
5781
+ });
5782
+
5783
+ // Provider filter: match if widget requires any of the selected providers
5784
+ var providerMatch = state.providers.length === 0 || (w.providers || []).some(function (p) {
5785
+ return state.providers.includes(p.type);
5786
+ }) || (w.packageProviders || []).some(function (p) {
5787
+ return state.providers.includes(p.type);
5788
+ });
5789
+ return catMatch && providerMatch;
5790
+ });
5791
+ }, [flatWidgets, state.intent, state.providers]);
5792
+
5793
+ // --- Tab change: set wizard path ---
5794
+ var handleTabChange = React.useCallback(function (tab) {
5795
+ setActiveTab(tab);
5796
+ dispatch({
5797
+ type: "SET_PATH",
5798
+ payload: tab === "prebuilt" ? "prebuilt" : "custom"
5799
+ });
5800
+ }, [dispatch]);
5801
+
5802
+ // Set initial path on mount
5803
+ React.useEffect(function () {
5804
+ if (!state.path) {
5805
+ dispatch({
5806
+ type: "SET_PATH",
5807
+ payload: "prebuilt"
5808
+ });
5809
+ }
5810
+ }, [state.path, dispatch]);
5811
+
5812
+ // --- Dashboard selection (single-select) ---
5813
+ var handleSelectDashboard = React.useCallback(function (dashboard) {
5814
+ dispatch({
5815
+ type: "SET_SELECTED_DASHBOARD",
5816
+ payload: dashboard
5817
+ });
5818
+ }, [dispatch]);
5819
+
5820
+ // --- Widget selection (multi-select) ---
5821
+ var handleToggleWidget = React.useCallback(function (widget) {
5822
+ dispatch({
5823
+ type: "TOGGLE_WIDGET",
5824
+ payload: widget
5825
+ });
5826
+ }, [dispatch]);
5827
+ var isWidgetSelected = React.useCallback(function (widget) {
5828
+ return state.selectedWidgets.some(function (w) {
5829
+ return w.name === widget.name;
5830
+ });
5831
+ }, [state.selectedWidgets]);
5832
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
5833
+ className: "wizard-results-step",
5834
+ children: [/*#__PURE__*/jsxRuntime.jsx("h3", {
5835
+ className: "wizard-step-header",
5836
+ children: "Choose your starting point"
5837
+ }), /*#__PURE__*/jsxRuntime.jsxs(DashReact.Tabs3, {
5838
+ value: activeTab,
5839
+ onValueChange: handleTabChange,
5840
+ className: "wizard-results-tabs",
5841
+ children: [/*#__PURE__*/jsxRuntime.jsxs(DashReact.Tabs3.List, {
5842
+ className: "wizard-results-tab-list",
5843
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Tabs3.Trigger, {
5844
+ value: "prebuilt",
5845
+ children: "Pre-built Dashboards"
5846
+ }), /*#__PURE__*/jsxRuntime.jsxs(DashReact.Tabs3.Trigger, {
5847
+ value: "custom",
5848
+ children: ["Build Your Own", state.selectedWidgets.length > 0 && /*#__PURE__*/jsxRuntime.jsx("span", {
5849
+ className: "wizard-count-badge",
5850
+ children: state.selectedWidgets.length
5851
+ })]
5852
+ })]
5853
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tabs3.Content, {
5854
+ value: "prebuilt",
5855
+ children: /*#__PURE__*/jsxRuntime.jsx(DashboardList, {
5856
+ dashboards: dashboards,
5857
+ isLoading: dashLoading,
5858
+ error: dashError,
5859
+ selectedDashboard: state.selectedDashboard,
5860
+ onSelect: handleSelectDashboard
5861
+ })
5862
+ }), /*#__PURE__*/jsxRuntime.jsx(DashReact.Tabs3.Content, {
5863
+ value: "custom",
5864
+ children: /*#__PURE__*/jsxRuntime.jsx(WidgetList, {
5865
+ widgets: filteredWidgets,
5866
+ isLoading: widgetsLoading,
5867
+ error: widgetsError,
5868
+ isSelected: isWidgetSelected,
5869
+ onToggle: handleToggleWidget,
5870
+ selectedCount: state.selectedWidgets.length
5871
+ })
5872
+ })]
5873
+ })]
5874
+ });
5875
+ };
5876
+
5877
+ // --- Sub-components ---
5878
+
5879
+ var DashboardList = function DashboardList(_ref3) {
5880
+ var dashboards = _ref3.dashboards,
5881
+ isLoading = _ref3.isLoading,
5882
+ error = _ref3.error,
5883
+ selectedDashboard = _ref3.selectedDashboard,
5884
+ onSelect = _ref3.onSelect;
5885
+ if (isLoading) {
5886
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
5887
+ className: "wizard-loading",
5888
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5889
+ icon: "spinner",
5890
+ spin: true,
5891
+ fixedWidth: true,
5892
+ className: "wizard-loading-icon"
5893
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
5894
+ children: "Searching dashboards..."
5895
+ })]
5896
+ });
5897
+ }
5898
+ if (error) {
5899
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
5900
+ className: "wizard-error",
5901
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5902
+ icon: "circle-exclamation",
5903
+ fixedWidth: true
5904
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
5905
+ children: error
5906
+ })]
5907
+ });
5908
+ }
5909
+ if (dashboards.length === 0) {
5910
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
5911
+ className: "wizard-empty",
5912
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5913
+ icon: "box-open",
5914
+ fixedWidth: true,
5915
+ className: "wizard-empty-icon"
5916
+ }), /*#__PURE__*/jsxRuntime.jsx("p", {
5917
+ children: "No pre-built dashboards match your selections."
5918
+ }), /*#__PURE__*/jsxRuntime.jsx("p", {
5919
+ className: "wizard-empty-hint",
5920
+ children: "Try the \"Build Your Own\" tab to pick individual widgets."
5921
+ })]
5922
+ });
5923
+ }
5924
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
5925
+ className: "wizard-dashboard-list",
5926
+ children: dashboards.map(function (dash) {
5927
+ var isSelected = selectedDashboard && selectedDashboard.name === dash.name;
5928
+ var widgetCount = (dash.widgets || []).length;
5929
+ var providerNames = (dash.providers || []).map(function (p) {
5930
+ return p.name || p.type;
5931
+ }).join(", ");
5932
+ return /*#__PURE__*/jsxRuntime.jsxs("button", {
5933
+ type: "button",
5934
+ className: "wizard-dashboard-card ".concat(isSelected ? "wizard-dashboard-card--selected" : ""),
5935
+ onClick: function onClick() {
5936
+ return onSelect(dash);
5937
+ },
5938
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
5939
+ className: "wizard-dashboard-card-header",
5940
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5941
+ icon: resolveIcon(dash.icon || "grid-2"),
5942
+ fixedWidth: true,
5943
+ className: "wizard-dashboard-card-icon"
5944
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
5945
+ className: "wizard-dashboard-card-name",
5946
+ children: dash.displayName || dash.name
5947
+ }), isSelected && /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5948
+ icon: "circle-check",
5949
+ className: "wizard-dashboard-card-check"
5950
+ })]
5951
+ }), dash.description && /*#__PURE__*/jsxRuntime.jsx("p", {
5952
+ className: "wizard-dashboard-card-desc",
5953
+ children: dash.description
5954
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
5955
+ className: "wizard-dashboard-card-meta",
5956
+ children: [/*#__PURE__*/jsxRuntime.jsxs("span", {
5957
+ children: [widgetCount, " widget", widgetCount !== 1 ? "s" : ""]
5958
+ }), providerNames && /*#__PURE__*/jsxRuntime.jsx("span", {
5959
+ children: providerNames
5960
+ })]
5961
+ })]
5962
+ }, dash.name);
5963
+ })
5964
+ });
5965
+ };
5966
+ var WidgetList = function WidgetList(_ref4) {
5967
+ var widgets = _ref4.widgets,
5968
+ isLoading = _ref4.isLoading,
5969
+ error = _ref4.error,
5970
+ isSelected = _ref4.isSelected,
5971
+ onToggle = _ref4.onToggle,
5972
+ selectedCount = _ref4.selectedCount;
5973
+ if (isLoading) {
5974
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
5975
+ className: "wizard-loading",
5976
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5977
+ icon: "spinner",
5978
+ spin: true,
5979
+ fixedWidth: true,
5980
+ className: "wizard-loading-icon"
5981
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
5982
+ children: "Searching widgets..."
5983
+ })]
5984
+ });
5985
+ }
5986
+ if (error) {
5987
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
5988
+ className: "wizard-error",
5989
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5990
+ icon: "circle-exclamation",
5991
+ fixedWidth: true
5992
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
5993
+ children: error
5994
+ })]
5995
+ });
5996
+ }
5997
+ if (widgets.length === 0) {
5998
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
5999
+ className: "wizard-empty",
6000
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6001
+ icon: "puzzle-piece",
6002
+ fixedWidth: true,
6003
+ className: "wizard-empty-icon"
6004
+ }), /*#__PURE__*/jsxRuntime.jsx("p", {
6005
+ children: "No widgets match your selections."
6006
+ }), /*#__PURE__*/jsxRuntime.jsx("p", {
6007
+ className: "wizard-empty-hint",
6008
+ children: "Try adjusting your categories or providers in the previous steps."
6009
+ })]
6010
+ });
6011
+ }
6012
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
6013
+ className: "wizard-widget-list",
6014
+ children: [selectedCount > 0 && /*#__PURE__*/jsxRuntime.jsxs("p", {
6015
+ className: "wizard-widget-count",
6016
+ children: [selectedCount, " widget", selectedCount !== 1 ? "s" : "", " selected"]
6017
+ }), widgets.map(function (widget) {
6018
+ var checked = isSelected(widget);
6019
+ return /*#__PURE__*/jsxRuntime.jsxs("button", {
6020
+ type: "button",
6021
+ className: "wizard-widget-card ".concat(checked ? "wizard-widget-card--selected" : ""),
6022
+ onClick: function onClick() {
6023
+ return onToggle(widget);
6024
+ },
6025
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
6026
+ className: "wizard-widget-card-checkbox",
6027
+ children: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6028
+ icon: checked ? "square-check" : "square",
6029
+ fixedWidth: true
6030
+ })
6031
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
6032
+ className: "wizard-widget-card-info",
6033
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
6034
+ className: "wizard-widget-card-header",
6035
+ children: [widget.icon && /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6036
+ icon: resolveIcon(widget.icon),
6037
+ fixedWidth: true,
6038
+ className: "wizard-widget-card-icon"
6039
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
6040
+ className: "wizard-widget-card-name",
6041
+ children: widget.name
6042
+ })]
6043
+ }), widget.description && /*#__PURE__*/jsxRuntime.jsx("p", {
6044
+ className: "wizard-widget-card-desc",
6045
+ children: widget.description
6046
+ }), widget.packageDisplayName && /*#__PURE__*/jsxRuntime.jsx("span", {
6047
+ className: "wizard-widget-card-package",
6048
+ children: widget.packageDisplayName
6049
+ })]
6050
+ })]
6051
+ }, widget.key);
6052
+ })]
6053
+ });
6054
+ };
6055
+
5225
6056
  var LayoutBuilderAddItemModal = function LayoutBuilderAddItemModal(_ref) {
5226
6057
  var workspace = _ref.workspace,
5227
6058
  open = _ref.open,
@@ -5825,7 +6656,7 @@ hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBu
5825
6656
  var hasPropertyDescriptors_1 = hasPropertyDescriptors;
5826
6657
 
5827
6658
  var keys = objectKeys$2;
5828
- var hasSymbols$5 = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';
6659
+ var hasSymbols$4 = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';
5829
6660
 
5830
6661
  var toStr$4 = Object.prototype.toString;
5831
6662
  var concat = Array.prototype.concat;
@@ -5858,7 +6689,7 @@ var defineProperty$1 = function (object, name, value, predicate) {
5858
6689
  var defineProperties$1 = function (object, map) {
5859
6690
  var predicates = arguments.length > 2 ? arguments[2] : {};
5860
6691
  var props = keys(map);
5861
- if (hasSymbols$5) {
6692
+ if (hasSymbols$4) {
5862
6693
  props = concat.call(props, Object.getOwnPropertySymbols(map));
5863
6694
  }
5864
6695
  for (var i = 0; i < props.length; i += 1) {
@@ -5924,11 +6755,11 @@ var sign$1 = function sign(number) {
5924
6755
  };
5925
6756
 
5926
6757
  var shams$1;
5927
- var hasRequiredShams;
6758
+ var hasRequiredShams$1;
5928
6759
 
5929
- function requireShams () {
5930
- if (hasRequiredShams) return shams$1;
5931
- hasRequiredShams = 1;
6760
+ function requireShams$1 () {
6761
+ if (hasRequiredShams$1) return shams$1;
6762
+ hasRequiredShams$1 = 1;
5932
6763
 
5933
6764
  /** @type {import('./shams')} */
5934
6765
  /* eslint complexity: [2, 18], max-statements: [2, 33] */
@@ -5977,10 +6808,10 @@ function requireShams () {
5977
6808
  }
5978
6809
 
5979
6810
  var origSymbol = typeof Symbol !== 'undefined' && Symbol;
5980
- var hasSymbolSham = requireShams();
6811
+ var hasSymbolSham = requireShams$1();
5981
6812
 
5982
6813
  /** @type {import('.')} */
5983
- var hasSymbols$4 = function hasNativeSymbols() {
6814
+ var hasSymbols$3 = function hasNativeSymbols() {
5984
6815
  if (typeof origSymbol !== 'function') { return false; }
5985
6816
  if (typeof Symbol !== 'function') { return false; }
5986
6817
  if (typeof origSymbol('foo') !== 'symbol') { return false; }
@@ -6284,7 +7115,7 @@ var ThrowTypeError = $gOPD$1
6284
7115
  }())
6285
7116
  : throwTypeError;
6286
7117
 
6287
- var hasSymbols$3 = hasSymbols$4();
7118
+ var hasSymbols$2 = hasSymbols$3();
6288
7119
 
6289
7120
  var getProto$2 = getProto$3;
6290
7121
  var $ObjectGPO = requireObject_getPrototypeOf();
@@ -6302,7 +7133,7 @@ var INTRINSICS = {
6302
7133
  '%AggregateError%': typeof AggregateError === 'undefined' ? undefined$1 : AggregateError,
6303
7134
  '%Array%': Array,
6304
7135
  '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined$1 : ArrayBuffer,
6305
- '%ArrayIteratorPrototype%': hasSymbols$3 && getProto$2 ? getProto$2([][Symbol.iterator]()) : undefined$1,
7136
+ '%ArrayIteratorPrototype%': hasSymbols$2 && getProto$2 ? getProto$2([][Symbol.iterator]()) : undefined$1,
6306
7137
  '%AsyncFromSyncIteratorPrototype%': undefined$1,
6307
7138
  '%AsyncFunction%': needsEval,
6308
7139
  '%AsyncGenerator%': needsEval,
@@ -6333,10 +7164,10 @@ var INTRINSICS = {
6333
7164
  '%Int32Array%': typeof Int32Array === 'undefined' ? undefined$1 : Int32Array,
6334
7165
  '%isFinite%': isFinite,
6335
7166
  '%isNaN%': isNaN,
6336
- '%IteratorPrototype%': hasSymbols$3 && getProto$2 ? getProto$2(getProto$2([][Symbol.iterator]())) : undefined$1,
7167
+ '%IteratorPrototype%': hasSymbols$2 && getProto$2 ? getProto$2(getProto$2([][Symbol.iterator]())) : undefined$1,
6337
7168
  '%JSON%': typeof JSON === 'object' ? JSON : undefined$1,
6338
7169
  '%Map%': typeof Map === 'undefined' ? undefined$1 : Map,
6339
- '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols$3 || !getProto$2 ? undefined$1 : getProto$2(new Map()[Symbol.iterator]()),
7170
+ '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols$2 || !getProto$2 ? undefined$1 : getProto$2(new Map()[Symbol.iterator]()),
6340
7171
  '%Math%': Math,
6341
7172
  '%Number%': Number,
6342
7173
  '%Object%': $Object$2,
@@ -6350,11 +7181,11 @@ var INTRINSICS = {
6350
7181
  '%Reflect%': typeof Reflect === 'undefined' ? undefined$1 : Reflect,
6351
7182
  '%RegExp%': RegExp,
6352
7183
  '%Set%': typeof Set === 'undefined' ? undefined$1 : Set,
6353
- '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols$3 || !getProto$2 ? undefined$1 : getProto$2(new Set()[Symbol.iterator]()),
7184
+ '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols$2 || !getProto$2 ? undefined$1 : getProto$2(new Set()[Symbol.iterator]()),
6354
7185
  '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined$1 : SharedArrayBuffer,
6355
7186
  '%String%': String,
6356
- '%StringIteratorPrototype%': hasSymbols$3 && getProto$2 ? getProto$2(''[Symbol.iterator]()) : undefined$1,
6357
- '%Symbol%': hasSymbols$3 ? Symbol : undefined$1,
7187
+ '%StringIteratorPrototype%': hasSymbols$2 && getProto$2 ? getProto$2(''[Symbol.iterator]()) : undefined$1,
7188
+ '%Symbol%': hasSymbols$2 ? Symbol : undefined$1,
6358
7189
  '%SyntaxError%': $SyntaxError$1,
6359
7190
  '%ThrowTypeError%': ThrowTypeError,
6360
7191
  '%TypedArray%': TypedArray,
@@ -6707,12 +7538,12 @@ var callBound$i = function callBoundIntrinsic(name, allowMissing) {
6707
7538
 
6708
7539
  // modified from https://github.com/es-shims/es6-shim
6709
7540
  var objectKeys$1 = objectKeys$2;
6710
- var hasSymbols$2 = requireShams()();
7541
+ var hasSymbols$1 = requireShams$1()();
6711
7542
  var callBound$h = callBound$i;
6712
7543
  var $Object$1 = esObjectAtoms;
6713
7544
  var $push = callBound$h('Array.prototype.push');
6714
7545
  var $propIsEnumerable = callBound$h('Object.prototype.propertyIsEnumerable');
6715
- var originalGetSymbols = hasSymbols$2 ? $Object$1.getOwnPropertySymbols : null;
7546
+ var originalGetSymbols = hasSymbols$1 ? $Object$1.getOwnPropertySymbols : null;
6716
7547
 
6717
7548
  // eslint-disable-next-line no-unused-vars
6718
7549
  var implementation$8 = function assign(target, source1) {
@@ -6726,7 +7557,7 @@ var implementation$8 = function assign(target, source1) {
6726
7557
 
6727
7558
  // step 3.a.ii:
6728
7559
  var keys = objectKeys$1(from);
6729
- var getSymbols = hasSymbols$2 && ($Object$1.getOwnPropertySymbols || originalGetSymbols);
7560
+ var getSymbols = hasSymbols$1 && ($Object$1.getOwnPropertySymbols || originalGetSymbols);
6730
7561
  if (getSymbols) {
6731
7562
  var syms = getSymbols(from);
6732
7563
  for (var j = 0; j < syms.length; ++j) {
@@ -7023,14 +7854,23 @@ var regexp_prototype_flags = flagsBound;
7023
7854
 
7024
7855
  var esGetIterator = {exports: {}};
7025
7856
 
7026
- var hasSymbols$1 = requireShams();
7857
+ var shams;
7858
+ var hasRequiredShams;
7027
7859
 
7028
- /** @type {import('.')} */
7029
- var shams = function hasToStringTagShams() {
7030
- return hasSymbols$1() && !!Symbol.toStringTag;
7031
- };
7860
+ function requireShams () {
7861
+ if (hasRequiredShams) return shams;
7862
+ hasRequiredShams = 1;
7032
7863
 
7033
- var hasToStringTag$7 = shams();
7864
+ var hasSymbols = requireShams$1();
7865
+
7866
+ /** @type {import('.')} */
7867
+ shams = function hasToStringTagShams() {
7868
+ return hasSymbols() && !!Symbol.toStringTag;
7869
+ };
7870
+ return shams;
7871
+ }
7872
+
7873
+ var hasToStringTag$7 = requireShams()();
7034
7874
  var callBound$f = callBound$i;
7035
7875
 
7036
7876
  var $toString$7 = callBound$f('Object.prototype.toString');
@@ -8067,7 +8907,7 @@ var tryStringObject = function tryStringObject(value) {
8067
8907
  /** @type {(receiver: ThisParameterType<typeof Object.prototype.toString>, ...args: Parameters<typeof Object.prototype.toString>) => ReturnType<typeof Object.prototype.toString>} */
8068
8908
  var $toString$6 = callBound$c('Object.prototype.toString');
8069
8909
  var strClass = '[object String]';
8070
- var hasToStringTag$6 = shams();
8910
+ var hasToStringTag$6 = requireShams()();
8071
8911
 
8072
8912
  /** @type {import('.')} */
8073
8913
  var isString$2 = function isString(value) {
@@ -8183,7 +9023,7 @@ var isSet$2 = exported$1 || function isSet(x) {
8183
9023
  var isArguments$1 = isArguments$2;
8184
9024
  var getStopIterationIterator = stopIterationIterator;
8185
9025
 
8186
- if (hasSymbols$4() || requireShams()()) {
9026
+ if (hasSymbols$3() || requireShams$1()()) {
8187
9027
  var $iterator = Symbol.iterator;
8188
9028
  // Symbol is available natively or shammed
8189
9029
  // natively:
@@ -8472,7 +9312,7 @@ var tryDateObject = function tryDateGetDayCall(value) {
8472
9312
  /** @type {(value: unknown) => string} */
8473
9313
  var toStr$2 = callBound$9('Object.prototype.toString');
8474
9314
  var dateClass = '[object Date]';
8475
- var hasToStringTag$5 = shams();
9315
+ var hasToStringTag$5 = requireShams()();
8476
9316
 
8477
9317
  /** @type {import('.')} */
8478
9318
  var isDateObject = function isDateObject(value) {
@@ -8483,7 +9323,7 @@ var isDateObject = function isDateObject(value) {
8483
9323
  };
8484
9324
 
8485
9325
  var callBound$8 = callBound$i;
8486
- var hasToStringTag$4 = shams();
9326
+ var hasToStringTag$4 = requireShams()();
8487
9327
  var hasOwn = hasown;
8488
9328
  var gOPD$1 = gopd$1;
8489
9329
 
@@ -8588,7 +9428,7 @@ var tryNumberObject = function tryNumberObject(value) {
8588
9428
  };
8589
9429
  var $toString$3 = callBound$6('Object.prototype.toString');
8590
9430
  var numClass = '[object Number]';
8591
- var hasToStringTag$3 = shams();
9431
+ var hasToStringTag$3 = requireShams()();
8592
9432
 
8593
9433
  /** @type {import('.')} */
8594
9434
  var isNumberObject = function isNumberObject(value) {
@@ -8615,7 +9455,7 @@ var tryBooleanObject = function booleanBrandCheck(value) {
8615
9455
  }
8616
9456
  };
8617
9457
  var boolClass = '[object Boolean]';
8618
- var hasToStringTag$2 = shams();
9458
+ var hasToStringTag$2 = requireShams()();
8619
9459
 
8620
9460
  /** @type {import('.')} */
8621
9461
  var isBooleanObject = function isBoolean(value) {
@@ -8657,7 +9497,7 @@ function requireSafeRegexTest () {
8657
9497
 
8658
9498
  var callBound$4 = callBound$i;
8659
9499
  var $toString$1 = callBound$4('Object.prototype.toString');
8660
- var hasSymbols = hasSymbols$4();
9500
+ var hasSymbols = hasSymbols$3();
8661
9501
  var safeRegexTest = requireSafeRegexTest();
8662
9502
 
8663
9503
  if (hasSymbols) {
@@ -9103,7 +9943,7 @@ var gOPD = gopd$1;
9103
9943
  var getProto = getProto$3;
9104
9944
 
9105
9945
  var $toString = callBound$2('Object.prototype.toString');
9106
- var hasToStringTag = shams();
9946
+ var hasToStringTag = requireShams()();
9107
9947
 
9108
9948
  var g = typeof globalThis === 'undefined' ? commonjsGlobal : globalThis;
9109
9949
  var typedArrays = availableTypedArrays();
@@ -9854,9 +10694,9 @@ var PanelEditItem = function PanelEditItem(_ref) {
9854
10694
  };
9855
10695
 
9856
10696
  var _excluded$5 = ["rows", "cols"];
9857
- 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; } } }; }
9858
- 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; } }
9859
- 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; }
10697
+ 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; } } }; }
10698
+ 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; } }
10699
+ 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; }
9860
10700
  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; }
9861
10701
  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; }
9862
10702
  var defaultGrid = {
@@ -10009,7 +10849,7 @@ function GridEditor(_ref) {
10009
10849
  function sortObjectByKeys(obj) {
10010
10850
  var sortedKeys = Object.keys(obj).sort();
10011
10851
  var sortedObj = {};
10012
- var _iterator = _createForOfIteratorHelper$e(sortedKeys),
10852
+ var _iterator = _createForOfIteratorHelper$d(sortedKeys),
10013
10853
  _step;
10014
10854
  try {
10015
10855
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -10482,9 +11322,9 @@ var PanelEditItemNotifications = function PanelEditItemNotifications(_ref) {
10482
11322
  });
10483
11323
  };
10484
11324
 
10485
- 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; } } }; }
10486
- 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; } }
10487
- 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; }
11325
+ 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; } } }; }
11326
+ 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; } }
11327
+ 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; }
10488
11328
  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; }
10489
11329
  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; }
10490
11330
  var DAYS = [{
@@ -10813,7 +11653,7 @@ var PanelEditItemSchedule = function PanelEditItemSchedule(_ref2) {
10813
11653
  setIsLoading(true);
10814
11654
  window.mainApi.scheduler.getTasks(widgetUuid).then(function (tasks) {
10815
11655
  var stateMap = {};
10816
- var _iterator = _createForOfIteratorHelper$d(tasks || []),
11656
+ var _iterator = _createForOfIteratorHelper$c(tasks || []),
10817
11657
  _step;
10818
11658
  try {
10819
11659
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -13663,9 +14503,9 @@ var getUserConfigurableProviders = function getUserConfigurableProviders(provide
13663
14503
  });
13664
14504
  };
13665
14505
 
13666
- 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; } } }; }
13667
- 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; } }
13668
- 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; }
14506
+ 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; } } }; }
14507
+ 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; } }
14508
+ 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; }
13669
14509
  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; }
13670
14510
  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; }
13671
14511
  var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
@@ -13932,11 +14772,11 @@ var EnhancedWidgetDropdown = function EnhancedWidgetDropdown(_ref) {
13932
14772
 
13933
14773
  // Flatten all widgets from all packages for the widget list
13934
14774
  flatWidgets = [];
13935
- _iterator = _createForOfIteratorHelper$c(result.packages || []);
14775
+ _iterator = _createForOfIteratorHelper$b(result.packages || []);
13936
14776
  try {
13937
14777
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
13938
14778
  pkg = _step.value;
13939
- _iterator2 = _createForOfIteratorHelper$c(pkg.widgets || []);
14779
+ _iterator2 = _createForOfIteratorHelper$b(pkg.widgets || []);
13940
14780
  try {
13941
14781
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
13942
14782
  widget = _step2.value;
@@ -15492,9 +16332,9 @@ var ProviderBadge = function ProviderBadge(_ref) {
15492
16332
  });
15493
16333
  };
15494
16334
 
15495
- 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; } } }; }
15496
- 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; } }
15497
- 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; }
16335
+ 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; } } }; }
16336
+ 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; } }
16337
+ 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; }
15498
16338
  var WidgetCardHeader = function WidgetCardHeader(_ref) {
15499
16339
  var item = _ref.item,
15500
16340
  widget = _ref.widget,
@@ -15538,7 +16378,7 @@ var WidgetCardHeader = function WidgetCardHeader(_ref) {
15538
16378
  var el = headerRef.current;
15539
16379
  if (!el) return;
15540
16380
  var observer = new ResizeObserver(function (entries) {
15541
- var _iterator = _createForOfIteratorHelper$b(entries),
16381
+ var _iterator = _createForOfIteratorHelper$a(entries),
15542
16382
  _step;
15543
16383
  try {
15544
16384
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -15895,9 +16735,9 @@ var useWidgetSchedulerStatus = function useWidgetSchedulerStatus(widgetId) {
15895
16735
  };
15896
16736
  };
15897
16737
 
15898
- 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; } } }; }
15899
- 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; } }
15900
- 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; }
16738
+ 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; } } }; }
16739
+ 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; } }
16740
+ 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; }
15901
16741
  function formatCountdown(ms) {
15902
16742
  if (ms == null || ms < 0) return "--";
15903
16743
  if (ms < 1000) return "< 1s";
@@ -16014,7 +16854,7 @@ var WidgetCardStatusBar = function WidgetCardStatusBar(_ref) {
16014
16854
 
16015
16855
  // Find soonest countdown among enabled tasks
16016
16856
  var soonestMs = null;
16017
- var _iterator = _createForOfIteratorHelper$a(enabledTasks),
16857
+ var _iterator = _createForOfIteratorHelper$9(enabledTasks),
16018
16858
  _step;
16019
16859
  try {
16020
16860
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -20627,9 +21467,9 @@ var ExternalWidget = function ExternalWidget(_ref) {
20627
21467
  var GRID_CELL_WIDGET_TYPE = "grid-cell-widget";
20628
21468
  var SIDEBAR_WIDGET_TYPE = "sidebar-widget";
20629
21469
 
20630
- 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; } } }; }
20631
- 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; } }
20632
- 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; }
21470
+ 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; } } }; }
21471
+ 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; } }
21472
+ 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; }
20633
21473
  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; }
20634
21474
  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; }
20635
21475
  var DraggableDroppableCellBody = function DraggableDroppableCellBody(_ref) {
@@ -21193,7 +22033,7 @@ var LayoutGridContainer = /*#__PURE__*/React.memo(function (_ref3) {
21193
22033
  return selectable["delete"](cn);
21194
22034
  });
21195
22035
  var resolved = new Set();
21196
- var _iterator = _createForOfIteratorHelper$9(selectable),
22036
+ var _iterator = _createForOfIteratorHelper$8(selectable),
21197
22037
  _step;
21198
22038
  try {
21199
22039
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -23333,9 +24173,9 @@ function isWidgetResolvable(componentKey) {
23333
24173
 
23334
24174
  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; }
23335
24175
  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; }
23336
- 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; } } }; }
23337
- 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; } }
23338
- 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; }
24176
+ 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; } } }; }
24177
+ 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; } }
24178
+ 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; }
23339
24179
  /**
23340
24180
  * The model for all layout components used primarily in the renderLayout method
23341
24181
  * @param {Object} layoutItem an object containing various attributes of the layout item
@@ -23347,7 +24187,7 @@ function _arrayLikeToArray$8(r, a) { (null == a || a > r.length) && (a = r.lengt
23347
24187
  function sortObjectByKeys(obj) {
23348
24188
  var sortedKeys = Object.keys(obj).sort();
23349
24189
  var sortedObj = {};
23350
- var _iterator = _createForOfIteratorHelper$8(sortedKeys),
24190
+ var _iterator = _createForOfIteratorHelper$7(sortedKeys),
23351
24191
  _step;
23352
24192
  try {
23353
24193
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -26613,9 +27453,9 @@ var useDashboard = function useDashboard() {
26613
27453
  });
26614
27454
  };
26615
27455
 
26616
- 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; } } }; }
26617
- 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; } }
26618
- 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; }
27456
+ 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; } } }; }
27457
+ 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; } }
27458
+ 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; }
26619
27459
 
26620
27460
  /**
26621
27461
  * useWidgetProviders Hook
@@ -26666,7 +27506,7 @@ var useWidgetProviders = function useWidgetProviders() {
26666
27506
  // 1. Widget-level: stored directly on the layout item by handleSelectProvider
26667
27507
  // 2. Workspace-level: stored as workspace.selectedProviders[widgetId][providerType]
26668
27508
  var providers = {};
26669
- var _iterator = _createForOfIteratorHelper$7(providerDeclarations),
27509
+ var _iterator = _createForOfIteratorHelper$6(providerDeclarations),
26670
27510
  _step;
26671
27511
  try {
26672
27512
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -27401,9 +28241,9 @@ var useNotifications = function useNotifications() {
27401
28241
  };
27402
28242
  };
27403
28243
 
27404
- 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; } } }; }
27405
- 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; } }
27406
- 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; }
28244
+ 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; } } }; }
28245
+ 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; } }
28246
+ 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; }
27407
28247
 
27408
28248
  /**
27409
28249
  * useScheduler Hook
@@ -27476,7 +28316,7 @@ var useScheduler = function useScheduler() {
27476
28316
  if (pending && pending.length > 0) {
27477
28317
  setPendingResults(pending);
27478
28318
  // Call handlers for each pending result
27479
- var _iterator = _createForOfIteratorHelper$6(pending),
28319
+ var _iterator = _createForOfIteratorHelper$5(pending),
27480
28320
  _step;
27481
28321
  try {
27482
28322
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -30653,36 +31493,9 @@ function loadWidgetBundle(source, widgetName) {
30653
31493
  };
30654
31494
  }
30655
31495
 
30656
- var FALLBACK = "puzzle-piece";
30657
-
30658
- /**
30659
- * Resolve an icon name to a valid FontAwesome icon reference.
30660
- * Tries solid (fas) first, then brand (fab). Returns "puzzle-piece" if
30661
- * the icon is falsy or not found in either prefix.
30662
- */
30663
- var resolveIcon = function resolveIcon(iconName) {
30664
- if (!iconName) return FALLBACK;
30665
-
30666
- // Already an array tuple like ["fab", "github"] — pass through
30667
- if (Array.isArray(iconName)) return iconName;
30668
-
30669
- // Try solid
30670
- if (fontawesomeSvgCore.findIconDefinition({
30671
- prefix: "fas",
30672
- iconName: iconName
30673
- })) return iconName;
30674
-
30675
- // Try brand
30676
- if (fontawesomeSvgCore.findIconDefinition({
30677
- prefix: "fab",
30678
- iconName: iconName
30679
- })) return ["fab", iconName];
30680
- return FALLBACK;
30681
- };
30682
-
30683
- 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; } } }; }
30684
- 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; } }
30685
- 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; }
31496
+ 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; } } }; }
31497
+ 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; } }
31498
+ 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; }
30686
31499
  /**
30687
31500
  * Validation utilities for grid-first dashboard architecture
30688
31501
  *
@@ -30921,7 +31734,7 @@ var validateCellMerge = function validateCellMerge(cellNumbers, grid) {
30921
31734
 
30922
31735
  // Validate each cell
30923
31736
  var cells = [];
30924
- var _iterator = _createForOfIteratorHelper$5(cellNumbers),
31737
+ var _iterator = _createForOfIteratorHelper$4(cellNumbers),
30925
31738
  _step;
30926
31739
  try {
30927
31740
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -38665,9 +39478,9 @@ var McpCatalogDetail = function McpCatalogDetail(_ref) {
38665
39478
 
38666
39479
  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; }
38667
39480
  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; }
38668
- 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; } } }; }
38669
- 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; } }
38670
- 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; }
39481
+ 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; } } }; }
39482
+ 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; } }
39483
+ 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; }
38671
39484
  function isValidWsUrl(url) {
38672
39485
  if (!url) return false;
38673
39486
  try {
@@ -38714,7 +39527,7 @@ function extractCredentialFields(url, headerRows) {
38714
39527
  fields.add(match[1]);
38715
39528
  }
38716
39529
  }
38717
- var _iterator = _createForOfIteratorHelper$4(headerRows),
39530
+ var _iterator = _createForOfIteratorHelper$3(headerRows),
38718
39531
  _step;
38719
39532
  try {
38720
39533
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -38817,7 +39630,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
38817
39630
  if (!url.trim()) errs.url = "WebSocket URL is required";else if (!isValidWsUrl(url)) errs.url = "URL must start with ws:// or wss://";
38818
39631
 
38819
39632
  // Check required credential fields are filled
38820
- var _iterator2 = _createForOfIteratorHelper$4(credentialFields),
39633
+ var _iterator2 = _createForOfIteratorHelper$3(credentialFields),
38821
39634
  _step2;
38822
39635
  try {
38823
39636
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -38840,7 +39653,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
38840
39653
 
38841
39654
  // Build headers object from rows
38842
39655
  var headers = {};
38843
- var _iterator3 = _createForOfIteratorHelper$4(headerRows),
39656
+ var _iterator3 = _createForOfIteratorHelper$3(headerRows),
38844
39657
  _step3;
38845
39658
  try {
38846
39659
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -38909,7 +39722,7 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
38909
39722
 
38910
39723
  // Build config from current form state (same as handleSave)
38911
39724
  headers = {};
38912
- _iterator4 = _createForOfIteratorHelper$4(headerRows);
39725
+ _iterator4 = _createForOfIteratorHelper$3(headerRows);
38913
39726
  try {
38914
39727
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
38915
39728
  row = _step4.value;
@@ -41553,293 +42366,6 @@ var RegistryPackageDetail = function RegistryPackageDetail(_ref) {
41553
42366
  });
41554
42367
  };
41555
42368
 
41556
- 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; } } }; }
41557
- 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; } }
41558
- 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; }
41559
-
41560
- /**
41561
- * useRegistrySearch — shared hook for browsing and installing registry packages.
41562
- *
41563
- * Extracted from EnhancedWidgetDropdown so the same logic can power the
41564
- * Discover tab inside AppSettingsModal (and anywhere else).
41565
- *
41566
- * Options:
41567
- * filterByCapabilities – if true (default), only show packages compatible
41568
- * with the app's API capabilities
41569
- *
41570
- * Returns:
41571
- * packages – raw package objects from the registry
41572
- * flatWidgets – flattened widget entries with `isRegistry: true`
41573
- * isLoading – true while a search request is in flight
41574
- * error – error message string (or null)
41575
- * searchQuery / setSearchQuery – controlled search input
41576
- * isInstalling – true during an install
41577
- * installError – install error string (or null)
41578
- * search() – manually trigger a search
41579
- * installPackage(widget) – install a specific registry widget
41580
- * showAllPackages / setShowAllPackages – toggle to show incompatible packages
41581
- * appCapabilities – the app's API namespaces
41582
- */
41583
- var useRegistrySearch = function useRegistrySearch() {
41584
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
41585
- _ref$filterByCapabili = _ref.filterByCapabilities,
41586
- filterByCapabilities = _ref$filterByCapabili === void 0 ? true : _ref$filterByCapabili;
41587
- var _useState = React.useState(false),
41588
- _useState2 = _slicedToArray(_useState, 2),
41589
- isLoading = _useState2[0],
41590
- setIsLoading = _useState2[1];
41591
- var _useState3 = React.useState(null),
41592
- _useState4 = _slicedToArray(_useState3, 2),
41593
- error = _useState4[0],
41594
- setError = _useState4[1];
41595
- var _useState5 = React.useState([]),
41596
- _useState6 = _slicedToArray(_useState5, 2),
41597
- packages = _useState6[0],
41598
- setPackages = _useState6[1];
41599
- var _useState7 = React.useState([]),
41600
- _useState8 = _slicedToArray(_useState7, 2),
41601
- flatWidgets = _useState8[0],
41602
- setFlatWidgets = _useState8[1];
41603
- var _useState9 = React.useState(""),
41604
- _useState0 = _slicedToArray(_useState9, 2),
41605
- searchQuery = _useState0[0],
41606
- setSearchQuery = _useState0[1];
41607
- var _useState1 = React.useState(false),
41608
- _useState10 = _slicedToArray(_useState1, 2),
41609
- isInstalling = _useState10[0],
41610
- setIsInstalling = _useState10[1];
41611
- var _useState11 = React.useState(null),
41612
- _useState12 = _slicedToArray(_useState11, 2),
41613
- installError = _useState12[0],
41614
- setInstallError = _useState12[1];
41615
- var _useState13 = React.useState(false),
41616
- _useState14 = _slicedToArray(_useState13, 2),
41617
- showAllPackages = _useState14[0],
41618
- setShowAllPackages = _useState14[1];
41619
-
41620
- // Discover app capabilities from window.mainApi
41621
- var appCapabilities = React.useMemo(function () {
41622
- if (typeof window !== "undefined" && window.mainApi) {
41623
- return Object.keys(window.mainApi);
41624
- }
41625
- return [];
41626
- }, []);
41627
- var search = React.useCallback(/*#__PURE__*/function () {
41628
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(query) {
41629
- var _window$mainApi;
41630
- var filters, result, pkgs, capSet, widgets, _iterator, _step, pkg, allApiProviders, _iterator2, _step2, p, _iterator3, _step3, w, _iterator5, _step5, _p, missingApis, _iterator4, _step4, widget, _t;
41631
- return _regeneratorRuntime.wrap(function (_context) {
41632
- while (1) switch (_context.prev = _context.next) {
41633
- case 0:
41634
- if ((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && _window$mainApi.registry) {
41635
- _context.next = 1;
41636
- break;
41637
- }
41638
- setPackages([]);
41639
- setFlatWidgets([]);
41640
- return _context.abrupt("return");
41641
- case 1:
41642
- setIsLoading(true);
41643
- setError(null);
41644
- _context.prev = 2;
41645
- filters = {};
41646
- if (filterByCapabilities && !showAllPackages && appCapabilities.length) {
41647
- filters.appCapabilities = appCapabilities;
41648
- }
41649
- _context.next = 3;
41650
- return window.mainApi.registry.search(query !== null && query !== void 0 ? query : searchQuery, filters);
41651
- case 3:
41652
- result = _context.sent;
41653
- // Only include packages that contain at least one widget
41654
- // (filters out theme-only packages, etc.)
41655
- pkgs = (result.packages || []).filter(function (pkg) {
41656
- return pkg.widgets && pkg.widgets.length > 0;
41657
- });
41658
- setPackages(pkgs);
41659
-
41660
- // Flatten packages into widget entries
41661
- capSet = new Set(appCapabilities.map(function (c) {
41662
- return c.toLowerCase();
41663
- }));
41664
- widgets = [];
41665
- _iterator = _createForOfIteratorHelper$3(pkgs);
41666
- try {
41667
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
41668
- pkg = _step.value;
41669
- // Compute missing APIs for the entire package
41670
- allApiProviders = [];
41671
- _iterator2 = _createForOfIteratorHelper$3(pkg.providers || []);
41672
- try {
41673
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
41674
- p = _step2.value;
41675
- if (p.providerClass === "api" && p.required !== false) {
41676
- allApiProviders.push(p.type);
41677
- }
41678
- }
41679
- } catch (err) {
41680
- _iterator2.e(err);
41681
- } finally {
41682
- _iterator2.f();
41683
- }
41684
- _iterator3 = _createForOfIteratorHelper$3(pkg.widgets || []);
41685
- try {
41686
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
41687
- w = _step3.value;
41688
- _iterator5 = _createForOfIteratorHelper$3(w.providers || []);
41689
- try {
41690
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
41691
- _p = _step5.value;
41692
- if (_p.providerClass === "api" && _p.required !== false) {
41693
- allApiProviders.push(_p.type);
41694
- }
41695
- }
41696
- } catch (err) {
41697
- _iterator5.e(err);
41698
- } finally {
41699
- _iterator5.f();
41700
- }
41701
- }
41702
- } catch (err) {
41703
- _iterator3.e(err);
41704
- } finally {
41705
- _iterator3.f();
41706
- }
41707
- missingApis = _toConsumableArray(new Set(allApiProviders)).filter(function (api) {
41708
- return !capSet.has(api.toLowerCase());
41709
- });
41710
- _iterator4 = _createForOfIteratorHelper$3(pkg.widgets || []);
41711
- try {
41712
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
41713
- widget = _step4.value;
41714
- widgets.push({
41715
- key: "".concat(pkg.name, "/").concat(widget.name),
41716
- name: widget.displayName || widget.name,
41717
- description: widget.description || "",
41718
- icon: widget.icon || null,
41719
- providers: widget.providers || [],
41720
- isRegistry: true,
41721
- packageName: pkg.name,
41722
- packageDisplayName: pkg.displayName || pkg.name,
41723
- packageVersion: pkg.version,
41724
- packageAuthor: pkg.author || "",
41725
- packageDescription: pkg.description || "",
41726
- packageTags: pkg.tags || [],
41727
- packageCategory: pkg.category || "",
41728
- downloadUrl: pkg.downloadUrl || "",
41729
- repository: pkg.repository || "",
41730
- publishedAt: pkg.publishedAt || "",
41731
- packageWidgets: pkg.widgets || [],
41732
- appOrigin: pkg.appOrigin || null,
41733
- packageProviders: pkg.providers || [],
41734
- missingApis: missingApis
41735
- });
41736
- }
41737
- } catch (err) {
41738
- _iterator4.e(err);
41739
- } finally {
41740
- _iterator4.f();
41741
- }
41742
- }
41743
- } catch (err) {
41744
- _iterator.e(err);
41745
- } finally {
41746
- _iterator.f();
41747
- }
41748
- setFlatWidgets(widgets);
41749
- _context.next = 5;
41750
- break;
41751
- case 4:
41752
- _context.prev = 4;
41753
- _t = _context["catch"](2);
41754
- setError(_t.message || "Failed to load registry");
41755
- setPackages([]);
41756
- setFlatWidgets([]);
41757
- case 5:
41758
- _context.prev = 5;
41759
- setIsLoading(false);
41760
- return _context.finish(5);
41761
- case 6:
41762
- case "end":
41763
- return _context.stop();
41764
- }
41765
- }, _callee, null, [[2, 4, 5, 6]]);
41766
- }));
41767
- return function (_x) {
41768
- return _ref2.apply(this, arguments);
41769
- };
41770
- }(), [searchQuery, filterByCapabilities, showAllPackages, appCapabilities]);
41771
-
41772
- // Debounce search on query changes (300ms)
41773
- React.useEffect(function () {
41774
- var timer = setTimeout(function () {
41775
- search(searchQuery);
41776
- }, 300);
41777
- return function () {
41778
- return clearTimeout(timer);
41779
- };
41780
- // eslint-disable-next-line react-hooks/exhaustive-deps
41781
- }, [searchQuery, showAllPackages]);
41782
- var installPackage = React.useCallback(/*#__PURE__*/function () {
41783
- var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(widget) {
41784
- var packageName, downloadUrl, packageVersion, resolvedUrl, _t2;
41785
- return _regeneratorRuntime.wrap(function (_context2) {
41786
- while (1) switch (_context2.prev = _context2.next) {
41787
- case 0:
41788
- if (!(!widget || !widget.isRegistry)) {
41789
- _context2.next = 1;
41790
- break;
41791
- }
41792
- return _context2.abrupt("return");
41793
- case 1:
41794
- setIsInstalling(true);
41795
- setInstallError(null);
41796
- _context2.prev = 2;
41797
- packageName = widget.packageName, downloadUrl = widget.downloadUrl, packageVersion = widget.packageVersion; // Resolve placeholders in the download URL
41798
- resolvedUrl = downloadUrl.replace(/\{version\}/g, packageVersion).replace(/\{name\}/g, packageName);
41799
- _context2.next = 3;
41800
- return window.mainApi.widgets.install(packageName, resolvedUrl);
41801
- case 3:
41802
- _context2.next = 5;
41803
- break;
41804
- case 4:
41805
- _context2.prev = 4;
41806
- _t2 = _context2["catch"](2);
41807
- setInstallError(_t2.message || "Failed to install package");
41808
- case 5:
41809
- _context2.prev = 5;
41810
- setIsInstalling(false);
41811
- return _context2.finish(5);
41812
- case 6:
41813
- case "end":
41814
- return _context2.stop();
41815
- }
41816
- }, _callee2, null, [[2, 4, 5, 6]]);
41817
- }));
41818
- return function (_x2) {
41819
- return _ref3.apply(this, arguments);
41820
- };
41821
- }(), []);
41822
- var retry = React.useCallback(function () {
41823
- search(searchQuery);
41824
- }, [search, searchQuery]);
41825
- return {
41826
- packages: packages,
41827
- flatWidgets: flatWidgets,
41828
- isLoading: isLoading,
41829
- error: error,
41830
- searchQuery: searchQuery,
41831
- setSearchQuery: setSearchQuery,
41832
- isInstalling: isInstalling,
41833
- installError: installError,
41834
- search: search,
41835
- installPackage: installPackage,
41836
- retry: retry,
41837
- showAllPackages: showAllPackages,
41838
- setShowAllPackages: setShowAllPackages,
41839
- appCapabilities: appCapabilities
41840
- };
41841
- };
41842
-
41843
42369
  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; } } }; }
41844
42370
  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; } }
41845
42371
  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; }
@@ -48520,6 +49046,9 @@ exports.WidgetFactory = WidgetFactory;
48520
49046
  exports.WidgetPopoutStage = WidgetPopoutStage;
48521
49047
  exports.WidgetProviderWrapper = WidgetProviderWrapper;
48522
49048
  exports.WidgetSidebar = WidgetSidebar;
49049
+ exports.WizardIntentStep = WizardIntentStep;
49050
+ exports.WizardProvidersStep = WizardProvidersStep;
49051
+ exports.WizardResultsStep = WizardResultsStep;
48523
49052
  exports.Workspace = Workspace;
48524
49053
  exports.WorkspaceContext = WorkspaceContext;
48525
49054
  exports.WorkspaceFooter = WorkspaceFooter;