@trops/dash-core 0.1.517 → 0.1.519
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 +83 -25
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +83 -25
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -49347,6 +49347,12 @@ var PrivacySecurityList = function PrivacySecurityList(_ref) {
|
|
|
49347
49347
|
var keyFor = function keyFor(group) {
|
|
49348
49348
|
return group.packageId == null ? "__ungrouped__" : group.packageId;
|
|
49349
49349
|
};
|
|
49350
|
+
|
|
49351
|
+
// Special selection keys for the two non-package items at the top
|
|
49352
|
+
// of the list. Keep them in the same selection state as packages so
|
|
49353
|
+
// the right panel knows what to render via a single key.
|
|
49354
|
+
var SETTINGS_KEY = "__settings__";
|
|
49355
|
+
var HELP_KEY = "__help__";
|
|
49350
49356
|
function renderPackageItem(group) {
|
|
49351
49357
|
var key = keyFor(group);
|
|
49352
49358
|
var isSelected = selectedPackageKey === key;
|
|
@@ -49395,7 +49401,32 @@ var PrivacySecurityList = function PrivacySecurityList(_ref) {
|
|
|
49395
49401
|
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
49396
49402
|
className: "flex-1 overflow-y-auto min-h-0",
|
|
49397
49403
|
children: /*#__PURE__*/jsxRuntime.jsxs(DashReact.Sidebar.Content, {
|
|
49398
|
-
children: [
|
|
49404
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs(DashReact.Sidebar.Group, {
|
|
49405
|
+
label: "Configuration",
|
|
49406
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.Sidebar.Item, {
|
|
49407
|
+
icon: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
49408
|
+
icon: "gear",
|
|
49409
|
+
className: "h-3.5 w-3.5"
|
|
49410
|
+
}),
|
|
49411
|
+
active: selectedPackageKey === SETTINGS_KEY,
|
|
49412
|
+
onClick: function onClick() {
|
|
49413
|
+
return onSelectPackage(SETTINGS_KEY);
|
|
49414
|
+
},
|
|
49415
|
+
className: selectedPackageKey === SETTINGS_KEY ? "bg-white/10 opacity-100" : "",
|
|
49416
|
+
children: "Settings"
|
|
49417
|
+
}, SETTINGS_KEY), /*#__PURE__*/jsxRuntime.jsx(DashReact.Sidebar.Item, {
|
|
49418
|
+
icon: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
|
|
49419
|
+
icon: "circle-question",
|
|
49420
|
+
className: "h-3.5 w-3.5"
|
|
49421
|
+
}),
|
|
49422
|
+
active: selectedPackageKey === HELP_KEY,
|
|
49423
|
+
onClick: function onClick() {
|
|
49424
|
+
return onSelectPackage(HELP_KEY);
|
|
49425
|
+
},
|
|
49426
|
+
className: selectedPackageKey === HELP_KEY ? "bg-white/10 opacity-100" : "",
|
|
49427
|
+
children: "Help"
|
|
49428
|
+
}, HELP_KEY)]
|
|
49429
|
+
}), viewMode === "grouped" ? /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
49399
49430
|
children: [withGrants.length > 0 && /*#__PURE__*/jsxRuntime.jsx(DashReact.Sidebar.Group, {
|
|
49400
49431
|
label: "Has grants",
|
|
49401
49432
|
children: withGrants.map(renderPackageItem)
|
|
@@ -49403,7 +49434,10 @@ var PrivacySecurityList = function PrivacySecurityList(_ref) {
|
|
|
49403
49434
|
label: "No grants",
|
|
49404
49435
|
children: withoutGrants.map(renderPackageItem)
|
|
49405
49436
|
})]
|
|
49406
|
-
}) :
|
|
49437
|
+
}) : /*#__PURE__*/jsxRuntime.jsx(DashReact.Sidebar.Group, {
|
|
49438
|
+
label: "Packages",
|
|
49439
|
+
children: filtered.map(renderPackageItem)
|
|
49440
|
+
}), filtered.length === 0 && /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
49407
49441
|
className: "text-sm opacity-40 py-8 text-center block",
|
|
49408
49442
|
children: searchQuery ? "No packages match your search" : "No widgets installed"
|
|
49409
49443
|
})]
|
|
@@ -49737,7 +49771,12 @@ var PrivacySecuritySection = function PrivacySecuritySection() {
|
|
|
49737
49771
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
49738
49772
|
viewMode = _useState12[0],
|
|
49739
49773
|
setViewMode = _useState12[1];
|
|
49740
|
-
|
|
49774
|
+
// Default to the Settings sidebar item so first-time visitors land
|
|
49775
|
+
// on something useful rather than the empty-detail placeholder.
|
|
49776
|
+
// "__settings__"/"__help__" are special selection keys (see
|
|
49777
|
+
// PrivacySecurityList); a string starting without "__" is a
|
|
49778
|
+
// packageId.
|
|
49779
|
+
var _useState13 = React.useState("__settings__"),
|
|
49741
49780
|
_useState14 = _slicedToArray(_useState13, 2),
|
|
49742
49781
|
selectedPackageKey = _useState14[0],
|
|
49743
49782
|
setSelectedPackageKey = _useState14[1];
|
|
@@ -49938,7 +49977,9 @@ var PrivacySecuritySection = function PrivacySecuritySection() {
|
|
|
49938
49977
|
});
|
|
49939
49978
|
}
|
|
49940
49979
|
var packageGroups = groupRowsByPackage(rows);
|
|
49941
|
-
var
|
|
49980
|
+
var isSettingsSelected = selectedPackageKey === "__settings__";
|
|
49981
|
+
var isHelpSelected = selectedPackageKey === "__help__";
|
|
49982
|
+
var selectedGroup = selectedPackageKey == null || isSettingsSelected || isHelpSelected ? null : packageGroups.find(function (g) {
|
|
49942
49983
|
return g.packageId == null ? selectedPackageKey === "__ungrouped__" : g.packageId === selectedPackageKey;
|
|
49943
49984
|
}) || null;
|
|
49944
49985
|
var listContent = /*#__PURE__*/jsxRuntime.jsx(PrivacySecurityList, {
|
|
@@ -49950,36 +49991,53 @@ var PrivacySecuritySection = function PrivacySecuritySection() {
|
|
|
49950
49991
|
viewMode: viewMode,
|
|
49951
49992
|
onViewModeChange: setViewMode
|
|
49952
49993
|
});
|
|
49953
|
-
|
|
49954
|
-
|
|
49955
|
-
|
|
49956
|
-
|
|
49957
|
-
|
|
49958
|
-
|
|
49959
|
-
|
|
49960
|
-
|
|
49961
|
-
|
|
49994
|
+
|
|
49995
|
+
// Detail panel content varies by what the user picked in the
|
|
49996
|
+
// sidebar — Settings shows the toggles, Help shows the how-it-
|
|
49997
|
+
// works panel, a package shows its widgets. Wrapping each non-
|
|
49998
|
+
// package case in a scrollable container so long content (like
|
|
49999
|
+
// the help fixtures) stays inside the panel and doesn't push the
|
|
50000
|
+
// sidebar around.
|
|
50001
|
+
var detailContent = null;
|
|
50002
|
+
if (isSettingsSelected) {
|
|
50003
|
+
detailContent = /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
50004
|
+
className: "flex flex-col flex-1 min-h-0 overflow-y-auto p-6",
|
|
50005
|
+
children: /*#__PURE__*/jsxRuntime.jsx(EnforcementToggles, {})
|
|
50006
|
+
});
|
|
50007
|
+
} else if (isHelpSelected) {
|
|
50008
|
+
detailContent = /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
50009
|
+
className: "flex flex-col flex-1 min-h-0 overflow-y-auto p-6",
|
|
50010
|
+
children: /*#__PURE__*/jsxRuntime.jsx(HowThisWorksPanel, {})
|
|
50011
|
+
});
|
|
50012
|
+
} else if (selectedGroup) {
|
|
50013
|
+
detailContent = /*#__PURE__*/jsxRuntime.jsx(WidgetPackageDetail, {
|
|
50014
|
+
packageGroup: selectedGroup,
|
|
50015
|
+
onRevokeWidget: revokeWidget,
|
|
50016
|
+
onRevokeServer: revokeServer,
|
|
50017
|
+
onGrantManually: function onGrantManually(widgetId) {
|
|
50018
|
+
return setManualGrantWidgetId(widgetId);
|
|
50019
|
+
},
|
|
50020
|
+
onRevokePackage: revokePackage
|
|
50021
|
+
});
|
|
50022
|
+
}
|
|
49962
50023
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
49963
50024
|
className: "flex flex-col flex-1 min-h-0",
|
|
49964
50025
|
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
49965
|
-
className: "flex-shrink-0 flex flex-col space-y-
|
|
49966
|
-
children: [/*#__PURE__*/jsxRuntime.
|
|
49967
|
-
|
|
49968
|
-
|
|
49969
|
-
|
|
49970
|
-
|
|
49971
|
-
|
|
49972
|
-
|
|
49973
|
-
children: "Granting access here is a trust signal about the widget \u2014 not a per-dashboard switch."
|
|
49974
|
-
})]
|
|
49975
|
-
}), /*#__PURE__*/jsxRuntime.jsx(EnforcementToggles, {}), /*#__PURE__*/jsxRuntime.jsx(HowThisWorksPanel, {}), error && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
50026
|
+
className: "flex-shrink-0 flex flex-col space-y-2 px-6 pt-6 pb-3 border-b border-gray-800",
|
|
50027
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.SubHeading3, {
|
|
50028
|
+
title: "Widget MCP permissions",
|
|
50029
|
+
padding: false
|
|
50030
|
+
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
50031
|
+
className: "text-xs opacity-60",
|
|
50032
|
+
children: "Granting access here is a trust signal about the widget \u2014 not a per-dashboard switch."
|
|
50033
|
+
}), error && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
49976
50034
|
className: "text-xs text-red-400 bg-red-900 bg-opacity-20 border border-red-700 rounded p-3",
|
|
49977
50035
|
children: error
|
|
49978
50036
|
})]
|
|
49979
50037
|
}), /*#__PURE__*/jsxRuntime.jsx(SectionLayout, {
|
|
49980
50038
|
listContent: listContent,
|
|
49981
50039
|
detailContent: detailContent,
|
|
49982
|
-
emptyDetailMessage: "Select
|
|
50040
|
+
emptyDetailMessage: "Select an item from the sidebar"
|
|
49983
50041
|
}), /*#__PURE__*/jsxRuntime.jsx(GrantManuallyModal, {
|
|
49984
50042
|
isOpen: !!manualGrantWidgetId,
|
|
49985
50043
|
setIsOpen: function setIsOpen(open) {
|