@trops/dash-core 0.1.371 → 0.1.373
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.js +291 -80
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +291 -80
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -4715,7 +4715,10 @@ var DiscoverDashboardsDetail = function DiscoverDashboardsDetail(_ref) {
|
|
|
4715
4715
|
_useState2 = _slicedToArray(_useState, 2),
|
|
4716
4716
|
packages = _useState2[0],
|
|
4717
4717
|
setPackages = _useState2[1];
|
|
4718
|
-
|
|
4718
|
+
// Start in the loading state so the empty UI doesn't flash while the
|
|
4719
|
+
// initial debounce is pending — otherwise the sign-in nudge appears
|
|
4720
|
+
// briefly then disappears as soon as the registry returns results.
|
|
4721
|
+
var _useState3 = useState(true),
|
|
4719
4722
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
4720
4723
|
isLoading = _useState4[0],
|
|
4721
4724
|
setIsLoading = _useState4[1];
|
|
@@ -4731,47 +4734,87 @@ var DiscoverDashboardsDetail = function DiscoverDashboardsDetail(_ref) {
|
|
|
4731
4734
|
_useState0 = _slicedToArray(_useState9, 2),
|
|
4732
4735
|
selectedPackageName = _useState0[0],
|
|
4733
4736
|
setSelectedPackageName = _useState0[1];
|
|
4734
|
-
|
|
4735
|
-
|
|
4736
|
-
|
|
4737
|
-
|
|
4737
|
+
|
|
4738
|
+
// Auth state — when the empty state shows up to a non-signed-in user,
|
|
4739
|
+
// they may not realize private packages they own are filtered out.
|
|
4740
|
+
var _useState1 = useState(null),
|
|
4741
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
4742
|
+
registryAuthed = _useState10[0],
|
|
4743
|
+
setRegistryAuthed = _useState10[1];
|
|
4744
|
+
var _useState11 = useState(false),
|
|
4745
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
4746
|
+
showAuthFromEmpty = _useState12[0],
|
|
4747
|
+
setShowAuthFromEmpty = _useState12[1];
|
|
4748
|
+
useEffect(function () {
|
|
4749
|
+
var cancelled = false;
|
|
4750
|
+
_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
4751
|
+
var _window$mainApi, status;
|
|
4738
4752
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
4739
4753
|
while (1) switch (_context.prev = _context.next) {
|
|
4740
4754
|
case 0:
|
|
4741
|
-
|
|
4742
|
-
|
|
4755
|
+
_context.prev = 0;
|
|
4756
|
+
_context.next = 1;
|
|
4757
|
+
return (_window$mainApi = window.mainApi) === null || _window$mainApi === void 0 || (_window$mainApi = _window$mainApi.registryAuth) === null || _window$mainApi === void 0 ? void 0 : _window$mainApi.getStatus();
|
|
4758
|
+
case 1:
|
|
4759
|
+
status = _context.sent;
|
|
4760
|
+
if (!cancelled) setRegistryAuthed(!!(status !== null && status !== void 0 && status.authenticated));
|
|
4761
|
+
_context.next = 3;
|
|
4762
|
+
break;
|
|
4763
|
+
case 2:
|
|
4764
|
+
_context.prev = 2;
|
|
4765
|
+
_context["catch"](0);
|
|
4766
|
+
if (!cancelled) setRegistryAuthed(false);
|
|
4767
|
+
case 3:
|
|
4768
|
+
case "end":
|
|
4769
|
+
return _context.stop();
|
|
4770
|
+
}
|
|
4771
|
+
}, _callee, null, [[0, 2]]);
|
|
4772
|
+
}))();
|
|
4773
|
+
return function () {
|
|
4774
|
+
cancelled = true;
|
|
4775
|
+
};
|
|
4776
|
+
}, [showAuthFromEmpty]);
|
|
4777
|
+
var search = useCallback(/*#__PURE__*/function () {
|
|
4778
|
+
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(query) {
|
|
4779
|
+
var _window$mainApi2;
|
|
4780
|
+
var result, _t2;
|
|
4781
|
+
return _regeneratorRuntime.wrap(function (_context2) {
|
|
4782
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
4783
|
+
case 0:
|
|
4784
|
+
if ((_window$mainApi2 = window.mainApi) !== null && _window$mainApi2 !== void 0 && (_window$mainApi2 = _window$mainApi2.registry) !== null && _window$mainApi2 !== void 0 && _window$mainApi2.searchDashboards) {
|
|
4785
|
+
_context2.next = 1;
|
|
4743
4786
|
break;
|
|
4744
4787
|
}
|
|
4745
4788
|
setPackages([]);
|
|
4746
|
-
return
|
|
4789
|
+
return _context2.abrupt("return");
|
|
4747
4790
|
case 1:
|
|
4748
4791
|
setIsLoading(true);
|
|
4749
4792
|
setError(null);
|
|
4750
|
-
|
|
4751
|
-
|
|
4793
|
+
_context2.prev = 2;
|
|
4794
|
+
_context2.next = 3;
|
|
4752
4795
|
return window.mainApi.registry.searchDashboards(query || "", {});
|
|
4753
4796
|
case 3:
|
|
4754
|
-
result =
|
|
4797
|
+
result = _context2.sent;
|
|
4755
4798
|
setPackages((result === null || result === void 0 ? void 0 : result.packages) || []);
|
|
4756
|
-
|
|
4799
|
+
_context2.next = 5;
|
|
4757
4800
|
break;
|
|
4758
4801
|
case 4:
|
|
4759
|
-
|
|
4760
|
-
|
|
4761
|
-
setError(
|
|
4802
|
+
_context2.prev = 4;
|
|
4803
|
+
_t2 = _context2["catch"](2);
|
|
4804
|
+
setError(_t2.message || "Failed to search dashboard registry");
|
|
4762
4805
|
setPackages([]);
|
|
4763
4806
|
case 5:
|
|
4764
|
-
|
|
4807
|
+
_context2.prev = 5;
|
|
4765
4808
|
setIsLoading(false);
|
|
4766
|
-
return
|
|
4809
|
+
return _context2.finish(5);
|
|
4767
4810
|
case 6:
|
|
4768
4811
|
case "end":
|
|
4769
|
-
return
|
|
4812
|
+
return _context2.stop();
|
|
4770
4813
|
}
|
|
4771
|
-
},
|
|
4814
|
+
}, _callee2, null, [[2, 4, 5, 6]]);
|
|
4772
4815
|
}));
|
|
4773
4816
|
return function (_x) {
|
|
4774
|
-
return
|
|
4817
|
+
return _ref3.apply(this, arguments);
|
|
4775
4818
|
};
|
|
4776
4819
|
}(), []);
|
|
4777
4820
|
|
|
@@ -4850,12 +4893,27 @@ var DiscoverDashboardsDetail = function DiscoverDashboardsDetail(_ref) {
|
|
|
4850
4893
|
})]
|
|
4851
4894
|
});
|
|
4852
4895
|
} else if (packages.length === 0) {
|
|
4853
|
-
listBody = /*#__PURE__*/
|
|
4854
|
-
className: "px-4 py-8 text-center",
|
|
4855
|
-
children: /*#__PURE__*/jsx(Paragraph, {
|
|
4896
|
+
listBody = /*#__PURE__*/jsxs("div", {
|
|
4897
|
+
className: "px-4 py-8 text-center space-y-3",
|
|
4898
|
+
children: [/*#__PURE__*/jsx(Paragraph, {
|
|
4856
4899
|
className: "text-sm opacity-50",
|
|
4857
4900
|
children: searchQuery ? "No dashboards match your search." : "No dashboard packages available."
|
|
4858
|
-
})
|
|
4901
|
+
}), registryAuthed === false && /*#__PURE__*/jsxs("div", {
|
|
4902
|
+
className: "inline-flex flex-col items-center gap-2 px-4 py-3 rounded-lg bg-amber-900/15 border border-amber-700/30",
|
|
4903
|
+
children: [/*#__PURE__*/jsx(Paragraph, {
|
|
4904
|
+
className: "text-xs text-amber-200",
|
|
4905
|
+
children: "Sign in to the registry to see your private dashboards."
|
|
4906
|
+
}), /*#__PURE__*/jsx(Button, {
|
|
4907
|
+
title: "Sign in to Registry",
|
|
4908
|
+
bgColor: "bg-indigo-600",
|
|
4909
|
+
hoverBackgroundColor: "hover:bg-indigo-500",
|
|
4910
|
+
textSize: "text-sm",
|
|
4911
|
+
padding: "py-1 px-3",
|
|
4912
|
+
onClick: function onClick() {
|
|
4913
|
+
return setShowAuthFromEmpty(true);
|
|
4914
|
+
}
|
|
4915
|
+
})]
|
|
4916
|
+
})]
|
|
4859
4917
|
});
|
|
4860
4918
|
} else {
|
|
4861
4919
|
listBody = /*#__PURE__*/jsx("div", {
|
|
@@ -4905,6 +4963,18 @@ var DiscoverDashboardsDetail = function DiscoverDashboardsDetail(_ref) {
|
|
|
4905
4963
|
}), !isLoading && !error && packages.length > 0 && /*#__PURE__*/jsxs("div", {
|
|
4906
4964
|
className: "flex-shrink-0 px-4 py-2 text-[10px] opacity-40 border-t border-white/10",
|
|
4907
4965
|
children: [packages.length, " dashboard", packages.length !== 1 ? "s" : ""]
|
|
4966
|
+
}), /*#__PURE__*/jsx(RegistryAuthModal, {
|
|
4967
|
+
isOpen: showAuthFromEmpty,
|
|
4968
|
+
setIsOpen: setShowAuthFromEmpty,
|
|
4969
|
+
onAuthenticated: function onAuthenticated() {
|
|
4970
|
+
setShowAuthFromEmpty(false);
|
|
4971
|
+
setRegistryAuthed(true);
|
|
4972
|
+
search(searchQuery);
|
|
4973
|
+
},
|
|
4974
|
+
onCancel: function onCancel() {
|
|
4975
|
+
return setShowAuthFromEmpty(false);
|
|
4976
|
+
},
|
|
4977
|
+
message: "Sign in to see your private dashboards and install ones you've published."
|
|
4908
4978
|
})]
|
|
4909
4979
|
});
|
|
4910
4980
|
};
|
|
@@ -6159,7 +6229,10 @@ var useRegistrySearch = function useRegistrySearch() {
|
|
|
6159
6229
|
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
6160
6230
|
_ref$filterByCapabili = _ref.filterByCapabilities,
|
|
6161
6231
|
filterByCapabilities = _ref$filterByCapabili === void 0 ? true : _ref$filterByCapabili;
|
|
6162
|
-
|
|
6232
|
+
// Start in the loading state so consumers don't briefly render an
|
|
6233
|
+
// empty-list state during the initial debounce window before the first
|
|
6234
|
+
// search fires.
|
|
6235
|
+
var _useState = useState(true),
|
|
6163
6236
|
_useState2 = _slicedToArray(_useState, 2),
|
|
6164
6237
|
isLoading = _useState2[0],
|
|
6165
6238
|
setIsLoading = _useState2[1];
|
|
@@ -38217,7 +38290,9 @@ var DiscoverThemesDetail = function DiscoverThemesDetail(_ref) {
|
|
|
38217
38290
|
_useState2 = _slicedToArray(_useState, 2),
|
|
38218
38291
|
packages = _useState2[0],
|
|
38219
38292
|
setPackages = _useState2[1];
|
|
38220
|
-
|
|
38293
|
+
// Start loading so the empty state with sign-in nudge doesn't flash
|
|
38294
|
+
// before the first fetch resolves.
|
|
38295
|
+
var _useState3 = useState(true),
|
|
38221
38296
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
38222
38297
|
isLoading = _useState4[0],
|
|
38223
38298
|
setIsLoading = _useState4[1];
|
|
@@ -38233,47 +38308,86 @@ var DiscoverThemesDetail = function DiscoverThemesDetail(_ref) {
|
|
|
38233
38308
|
_useState0 = _slicedToArray(_useState9, 2),
|
|
38234
38309
|
selectedPackageName = _useState0[0],
|
|
38235
38310
|
setSelectedPackageName = _useState0[1];
|
|
38236
|
-
|
|
38237
|
-
|
|
38238
|
-
|
|
38239
|
-
|
|
38311
|
+
|
|
38312
|
+
// Auth state for the empty-state hint.
|
|
38313
|
+
var _useState1 = useState(null),
|
|
38314
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
38315
|
+
registryAuthed = _useState10[0],
|
|
38316
|
+
setRegistryAuthed = _useState10[1];
|
|
38317
|
+
var _useState11 = useState(false),
|
|
38318
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
38319
|
+
showAuthFromEmpty = _useState12[0],
|
|
38320
|
+
setShowAuthFromEmpty = _useState12[1];
|
|
38321
|
+
useEffect(function () {
|
|
38322
|
+
var cancelled = false;
|
|
38323
|
+
_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
38324
|
+
var _window$mainApi, status;
|
|
38240
38325
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
38241
38326
|
while (1) switch (_context.prev = _context.next) {
|
|
38242
38327
|
case 0:
|
|
38243
|
-
|
|
38244
|
-
|
|
38328
|
+
_context.prev = 0;
|
|
38329
|
+
_context.next = 1;
|
|
38330
|
+
return (_window$mainApi = window.mainApi) === null || _window$mainApi === void 0 || (_window$mainApi = _window$mainApi.registryAuth) === null || _window$mainApi === void 0 ? void 0 : _window$mainApi.getStatus();
|
|
38331
|
+
case 1:
|
|
38332
|
+
status = _context.sent;
|
|
38333
|
+
if (!cancelled) setRegistryAuthed(!!(status !== null && status !== void 0 && status.authenticated));
|
|
38334
|
+
_context.next = 3;
|
|
38335
|
+
break;
|
|
38336
|
+
case 2:
|
|
38337
|
+
_context.prev = 2;
|
|
38338
|
+
_context["catch"](0);
|
|
38339
|
+
if (!cancelled) setRegistryAuthed(false);
|
|
38340
|
+
case 3:
|
|
38341
|
+
case "end":
|
|
38342
|
+
return _context.stop();
|
|
38343
|
+
}
|
|
38344
|
+
}, _callee, null, [[0, 2]]);
|
|
38345
|
+
}))();
|
|
38346
|
+
return function () {
|
|
38347
|
+
cancelled = true;
|
|
38348
|
+
};
|
|
38349
|
+
}, [showAuthFromEmpty]);
|
|
38350
|
+
var search = useCallback(/*#__PURE__*/function () {
|
|
38351
|
+
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(query) {
|
|
38352
|
+
var _window$mainApi2;
|
|
38353
|
+
var result, _t2;
|
|
38354
|
+
return _regeneratorRuntime.wrap(function (_context2) {
|
|
38355
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
38356
|
+
case 0:
|
|
38357
|
+
if ((_window$mainApi2 = window.mainApi) !== null && _window$mainApi2 !== void 0 && (_window$mainApi2 = _window$mainApi2.registry) !== null && _window$mainApi2 !== void 0 && _window$mainApi2.searchThemes) {
|
|
38358
|
+
_context2.next = 1;
|
|
38245
38359
|
break;
|
|
38246
38360
|
}
|
|
38247
38361
|
setPackages([]);
|
|
38248
|
-
return
|
|
38362
|
+
return _context2.abrupt("return");
|
|
38249
38363
|
case 1:
|
|
38250
38364
|
setIsLoading(true);
|
|
38251
38365
|
setError(null);
|
|
38252
|
-
|
|
38253
|
-
|
|
38366
|
+
_context2.prev = 2;
|
|
38367
|
+
_context2.next = 3;
|
|
38254
38368
|
return window.mainApi.registry.searchThemes(query || "", {});
|
|
38255
38369
|
case 3:
|
|
38256
|
-
result =
|
|
38370
|
+
result = _context2.sent;
|
|
38257
38371
|
setPackages((result === null || result === void 0 ? void 0 : result.packages) || []);
|
|
38258
|
-
|
|
38372
|
+
_context2.next = 5;
|
|
38259
38373
|
break;
|
|
38260
38374
|
case 4:
|
|
38261
|
-
|
|
38262
|
-
|
|
38263
|
-
setError(
|
|
38375
|
+
_context2.prev = 4;
|
|
38376
|
+
_t2 = _context2["catch"](2);
|
|
38377
|
+
setError(_t2.message || "Failed to search theme registry");
|
|
38264
38378
|
setPackages([]);
|
|
38265
38379
|
case 5:
|
|
38266
|
-
|
|
38380
|
+
_context2.prev = 5;
|
|
38267
38381
|
setIsLoading(false);
|
|
38268
|
-
return
|
|
38382
|
+
return _context2.finish(5);
|
|
38269
38383
|
case 6:
|
|
38270
38384
|
case "end":
|
|
38271
|
-
return
|
|
38385
|
+
return _context2.stop();
|
|
38272
38386
|
}
|
|
38273
|
-
},
|
|
38387
|
+
}, _callee2, null, [[2, 4, 5, 6]]);
|
|
38274
38388
|
}));
|
|
38275
38389
|
return function (_x) {
|
|
38276
|
-
return
|
|
38390
|
+
return _ref3.apply(this, arguments);
|
|
38277
38391
|
};
|
|
38278
38392
|
}(), []);
|
|
38279
38393
|
|
|
@@ -38352,12 +38466,27 @@ var DiscoverThemesDetail = function DiscoverThemesDetail(_ref) {
|
|
|
38352
38466
|
})]
|
|
38353
38467
|
});
|
|
38354
38468
|
} else if (packages.length === 0) {
|
|
38355
|
-
listBody = /*#__PURE__*/
|
|
38356
|
-
className: "px-4 py-8 text-center",
|
|
38357
|
-
children: /*#__PURE__*/jsx(Paragraph, {
|
|
38469
|
+
listBody = /*#__PURE__*/jsxs("div", {
|
|
38470
|
+
className: "px-4 py-8 text-center space-y-3",
|
|
38471
|
+
children: [/*#__PURE__*/jsx(Paragraph, {
|
|
38358
38472
|
className: "text-sm opacity-50",
|
|
38359
38473
|
children: searchQuery ? "No themes match your search." : "No theme packages available."
|
|
38360
|
-
})
|
|
38474
|
+
}), registryAuthed === false && /*#__PURE__*/jsxs("div", {
|
|
38475
|
+
className: "inline-flex flex-col items-center gap-2 px-4 py-3 rounded-lg bg-amber-900/15 border border-amber-700/30",
|
|
38476
|
+
children: [/*#__PURE__*/jsx(Paragraph, {
|
|
38477
|
+
className: "text-xs text-amber-200",
|
|
38478
|
+
children: "Sign in to the registry to see your private themes."
|
|
38479
|
+
}), /*#__PURE__*/jsx(Button, {
|
|
38480
|
+
title: "Sign in to Registry",
|
|
38481
|
+
bgColor: "bg-indigo-600",
|
|
38482
|
+
hoverBackgroundColor: "hover:bg-indigo-500",
|
|
38483
|
+
textSize: "text-sm",
|
|
38484
|
+
padding: "py-1 px-3",
|
|
38485
|
+
onClick: function onClick() {
|
|
38486
|
+
return setShowAuthFromEmpty(true);
|
|
38487
|
+
}
|
|
38488
|
+
})]
|
|
38489
|
+
})]
|
|
38361
38490
|
});
|
|
38362
38491
|
} else {
|
|
38363
38492
|
listBody = /*#__PURE__*/jsx("div", {
|
|
@@ -38409,6 +38538,18 @@ var DiscoverThemesDetail = function DiscoverThemesDetail(_ref) {
|
|
|
38409
38538
|
}), !isLoading && !error && packages.length > 0 && /*#__PURE__*/jsxs("div", {
|
|
38410
38539
|
className: "flex-shrink-0 px-4 py-2 text-[10px] opacity-40 border-t border-white/10",
|
|
38411
38540
|
children: [packages.length, " theme", packages.length !== 1 ? "s" : ""]
|
|
38541
|
+
}), /*#__PURE__*/jsx(RegistryAuthModal, {
|
|
38542
|
+
isOpen: showAuthFromEmpty,
|
|
38543
|
+
setIsOpen: setShowAuthFromEmpty,
|
|
38544
|
+
onAuthenticated: function onAuthenticated() {
|
|
38545
|
+
setShowAuthFromEmpty(false);
|
|
38546
|
+
setRegistryAuthed(true);
|
|
38547
|
+
search(searchQuery);
|
|
38548
|
+
},
|
|
38549
|
+
onCancel: function onCancel() {
|
|
38550
|
+
return setShowAuthFromEmpty(false);
|
|
38551
|
+
},
|
|
38552
|
+
message: "Sign in to see your private themes and install ones you've published."
|
|
38412
38553
|
})]
|
|
38413
38554
|
});
|
|
38414
38555
|
};
|
|
@@ -46918,37 +47059,78 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
46918
47059
|
toolConflictWarning = _useState4[0],
|
|
46919
47060
|
setToolConflictWarning = _useState4[1];
|
|
46920
47061
|
|
|
46921
|
-
//
|
|
46922
|
-
|
|
47062
|
+
// Auth state — used to nudge unauthenticated users toward signing in
|
|
47063
|
+
// when the empty state appears (so they realize private packages are
|
|
47064
|
+
// hidden behind auth).
|
|
47065
|
+
var _useState5 = useState(null),
|
|
46923
47066
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
46924
|
-
|
|
46925
|
-
|
|
46926
|
-
var _useState7 = useState(
|
|
47067
|
+
registryAuthed = _useState6[0],
|
|
47068
|
+
setRegistryAuthed = _useState6[1];
|
|
47069
|
+
var _useState7 = useState(false),
|
|
46927
47070
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
46928
|
-
|
|
46929
|
-
|
|
47071
|
+
showAuthFromEmpty = _useState8[0],
|
|
47072
|
+
setShowAuthFromEmpty = _useState8[1];
|
|
47073
|
+
useEffect(function () {
|
|
47074
|
+
var cancelled = false;
|
|
47075
|
+
_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
47076
|
+
var _window$mainApi, status;
|
|
47077
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
47078
|
+
while (1) switch (_context.prev = _context.next) {
|
|
47079
|
+
case 0:
|
|
47080
|
+
_context.prev = 0;
|
|
47081
|
+
_context.next = 1;
|
|
47082
|
+
return (_window$mainApi = window.mainApi) === null || _window$mainApi === void 0 || (_window$mainApi = _window$mainApi.registryAuth) === null || _window$mainApi === void 0 ? void 0 : _window$mainApi.getStatus();
|
|
47083
|
+
case 1:
|
|
47084
|
+
status = _context.sent;
|
|
47085
|
+
if (!cancelled) setRegistryAuthed(!!(status !== null && status !== void 0 && status.authenticated));
|
|
47086
|
+
_context.next = 3;
|
|
47087
|
+
break;
|
|
47088
|
+
case 2:
|
|
47089
|
+
_context.prev = 2;
|
|
47090
|
+
_context["catch"](0);
|
|
47091
|
+
if (!cancelled) setRegistryAuthed(false);
|
|
47092
|
+
case 3:
|
|
47093
|
+
case "end":
|
|
47094
|
+
return _context.stop();
|
|
47095
|
+
}
|
|
47096
|
+
}, _callee, null, [[0, 2]]);
|
|
47097
|
+
}))();
|
|
47098
|
+
return function () {
|
|
47099
|
+
cancelled = true;
|
|
47100
|
+
};
|
|
47101
|
+
}, [needsAuth, showAuthFromEmpty]);
|
|
47102
|
+
|
|
47103
|
+
// Install progress modal state
|
|
46930
47104
|
var _useState9 = useState(false),
|
|
46931
47105
|
_useState0 = _slicedToArray(_useState9, 2),
|
|
46932
|
-
|
|
46933
|
-
|
|
47106
|
+
showProgressModal = _useState0[0],
|
|
47107
|
+
setShowProgressModal = _useState0[1];
|
|
47108
|
+
var _useState1 = useState([]),
|
|
47109
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
47110
|
+
progressWidgets = _useState10[0],
|
|
47111
|
+
setProgressWidgets = _useState10[1];
|
|
47112
|
+
var _useState11 = useState(false),
|
|
47113
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
47114
|
+
progressComplete = _useState12[0],
|
|
47115
|
+
setProgressComplete = _useState12[1];
|
|
46934
47116
|
var installActiveRef = useRef(false);
|
|
46935
47117
|
var pendingInstallRef = useRef(null);
|
|
46936
47118
|
|
|
46937
47119
|
// Track installed package names (same pattern as WidgetSidebar)
|
|
46938
|
-
var
|
|
46939
|
-
|
|
46940
|
-
installedPackageNames =
|
|
46941
|
-
setInstalledPackageNames =
|
|
46942
|
-
var loadInstalledPackages = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function
|
|
47120
|
+
var _useState13 = useState(new Set()),
|
|
47121
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
47122
|
+
installedPackageNames = _useState14[0],
|
|
47123
|
+
setInstalledPackageNames = _useState14[1];
|
|
47124
|
+
var loadInstalledPackages = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
46943
47125
|
var widgets, names, _iterator, _step, w, folderName, _folderName;
|
|
46944
|
-
return _regeneratorRuntime.wrap(function (
|
|
46945
|
-
while (1) switch (
|
|
47126
|
+
return _regeneratorRuntime.wrap(function (_context2) {
|
|
47127
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
46946
47128
|
case 0:
|
|
46947
|
-
|
|
46948
|
-
|
|
47129
|
+
_context2.prev = 0;
|
|
47130
|
+
_context2.next = 1;
|
|
46949
47131
|
return window.mainApi.widgets.list();
|
|
46950
47132
|
case 1:
|
|
46951
|
-
widgets =
|
|
47133
|
+
widgets = _context2.sent;
|
|
46952
47134
|
names = new Set();
|
|
46953
47135
|
_iterator = _createForOfIteratorHelper$7(widgets);
|
|
46954
47136
|
try {
|
|
@@ -46973,16 +47155,16 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
46973
47155
|
_iterator.f();
|
|
46974
47156
|
}
|
|
46975
47157
|
setInstalledPackageNames(names);
|
|
46976
|
-
|
|
47158
|
+
_context2.next = 3;
|
|
46977
47159
|
break;
|
|
46978
47160
|
case 2:
|
|
46979
|
-
|
|
46980
|
-
|
|
47161
|
+
_context2.prev = 2;
|
|
47162
|
+
_context2["catch"](0);
|
|
46981
47163
|
case 3:
|
|
46982
47164
|
case "end":
|
|
46983
|
-
return
|
|
47165
|
+
return _context2.stop();
|
|
46984
47166
|
}
|
|
46985
|
-
},
|
|
47167
|
+
}, _callee2, null, [[0, 2]]);
|
|
46986
47168
|
})), []);
|
|
46987
47169
|
useEffect(function () {
|
|
46988
47170
|
loadInstalledPackages();
|
|
@@ -47069,9 +47251,9 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
47069
47251
|
var p = _step3.value;
|
|
47070
47252
|
if (!((_p$requiredTools = p.requiredTools) !== null && _p$requiredTools !== void 0 && _p$requiredTools.length) || p.providerClass !== "mcp") return 1; // continue
|
|
47071
47253
|
// Find matching user provider
|
|
47072
|
-
var matchingProviders = Object.entries(providers).filter(function (
|
|
47073
|
-
var
|
|
47074
|
-
prov =
|
|
47254
|
+
var matchingProviders = Object.entries(providers).filter(function (_ref4) {
|
|
47255
|
+
var _ref5 = _slicedToArray(_ref4, 2),
|
|
47256
|
+
prov = _ref5[1];
|
|
47075
47257
|
return prov.type === p.type && prov.providerClass === "mcp" && prov.allowedTools;
|
|
47076
47258
|
});
|
|
47077
47259
|
var _iterator4 = _createForOfIteratorHelper$7(matchingProviders),
|
|
@@ -47212,6 +47394,20 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
47212
47394
|
},
|
|
47213
47395
|
onCancel: clearNeedsAuth,
|
|
47214
47396
|
message: "Sign in to install this widget from the Dash Registry."
|
|
47397
|
+
}), /*#__PURE__*/jsx(RegistryAuthModal, {
|
|
47398
|
+
isOpen: showAuthFromEmpty,
|
|
47399
|
+
setIsOpen: setShowAuthFromEmpty,
|
|
47400
|
+
onAuthenticated: function onAuthenticated() {
|
|
47401
|
+
setShowAuthFromEmpty(false);
|
|
47402
|
+
setRegistryAuthed(true);
|
|
47403
|
+
// Trigger a refresh of the list now that the user can see
|
|
47404
|
+
// their private packages.
|
|
47405
|
+
retry();
|
|
47406
|
+
},
|
|
47407
|
+
onCancel: function onCancel() {
|
|
47408
|
+
return setShowAuthFromEmpty(false);
|
|
47409
|
+
},
|
|
47410
|
+
message: "Sign in to see your private packages and install widgets you've published."
|
|
47215
47411
|
})]
|
|
47216
47412
|
});
|
|
47217
47413
|
}
|
|
@@ -47247,12 +47443,27 @@ var DiscoverWidgetsDetail = function DiscoverWidgetsDetail(_ref) {
|
|
|
47247
47443
|
})]
|
|
47248
47444
|
});
|
|
47249
47445
|
} else if (packages.length === 0) {
|
|
47250
|
-
listBody = /*#__PURE__*/
|
|
47251
|
-
className: "px-4 py-8 text-center",
|
|
47252
|
-
children: /*#__PURE__*/jsx(Paragraph, {
|
|
47446
|
+
listBody = /*#__PURE__*/jsxs("div", {
|
|
47447
|
+
className: "px-4 py-8 text-center space-y-3",
|
|
47448
|
+
children: [/*#__PURE__*/jsx(Paragraph, {
|
|
47253
47449
|
className: "text-sm opacity-50",
|
|
47254
47450
|
children: searchQuery ? "No packages match your search." : "No packages available."
|
|
47255
|
-
})
|
|
47451
|
+
}), registryAuthed === false && /*#__PURE__*/jsxs("div", {
|
|
47452
|
+
className: "inline-flex flex-col items-center gap-2 px-4 py-3 rounded-lg bg-amber-900/15 border border-amber-700/30",
|
|
47453
|
+
children: [/*#__PURE__*/jsx(Paragraph, {
|
|
47454
|
+
className: "text-xs text-amber-200",
|
|
47455
|
+
children: "Sign in to the registry to see your private packages."
|
|
47456
|
+
}), /*#__PURE__*/jsx(Button, {
|
|
47457
|
+
title: "Sign in to Registry",
|
|
47458
|
+
bgColor: "bg-indigo-600",
|
|
47459
|
+
hoverBackgroundColor: "hover:bg-indigo-500",
|
|
47460
|
+
textSize: "text-sm",
|
|
47461
|
+
padding: "py-1 px-3",
|
|
47462
|
+
onClick: function onClick() {
|
|
47463
|
+
return setShowAuthFromEmpty(true);
|
|
47464
|
+
}
|
|
47465
|
+
})]
|
|
47466
|
+
})]
|
|
47256
47467
|
});
|
|
47257
47468
|
} else {
|
|
47258
47469
|
listBody = /*#__PURE__*/jsx("div", {
|