@trops/dash-core 0.1.471 → 0.1.473

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 CHANGED
@@ -40584,8 +40584,6 @@ var RegistryThemeDetail = function RegistryThemeDetail(_ref2) {
40584
40584
  case 1:
40585
40585
  setIsInstalling(true);
40586
40586
  setInstallResult(null);
40587
- setAuthFlow(null);
40588
- setAuthError(null);
40589
40587
  _context.prev = 2;
40590
40588
  // Send scoped name (scope/name) for unambiguous package lookup;
40591
40589
  // fall back to bare name if scope is missing
@@ -52904,6 +52902,14 @@ var NotificationsSection = function NotificationsSection(_ref) {
52904
52902
  _useState10 = _slicedToArray(_useState1, 2),
52905
52903
  selectedKey = _useState10[0],
52906
52904
  setSelectedKey = _useState10[1];
52905
+ var _useState11 = useState("all"),
52906
+ _useState12 = _slicedToArray(_useState11, 2),
52907
+ filterDashboard = _useState12[0],
52908
+ setFilterDashboard = _useState12[1];
52909
+ var _useState13 = useState("all"),
52910
+ _useState14 = _slicedToArray(_useState13, 2),
52911
+ filterPackage = _useState14[0],
52912
+ setFilterPackage = _useState14[1];
52907
52913
 
52908
52914
  // Load preferences on mount
52909
52915
  useEffect(function () {
@@ -52951,15 +52957,48 @@ var NotificationsSection = function NotificationsSection(_ref) {
52951
52957
  });
52952
52958
  }, [workspaces]);
52953
52959
 
52954
- // Filter by search.
52960
+ // Derive dropdown option lists. Both sorted alphabetically so the
52961
+ // dropdowns don't shuffle as the underlying list changes order.
52962
+ var dashboardOptions = useMemo(function () {
52963
+ var set = new Set();
52964
+ widgetInstances.forEach(function (wi) {
52965
+ if (wi.workspaceName) set.add(wi.workspaceName);
52966
+ });
52967
+ return _toConsumableArray(set).sort(function (a, b) {
52968
+ return String(a).localeCompare(String(b), undefined, {
52969
+ sensitivity: "base"
52970
+ });
52971
+ });
52972
+ }, [widgetInstances]);
52973
+ var packageOptions = useMemo(function () {
52974
+ var set = new Set();
52975
+ widgetInstances.forEach(function (wi) {
52976
+ if (wi["package"]) set.add(wi["package"]);
52977
+ });
52978
+ return _toConsumableArray(set).sort(function (a, b) {
52979
+ return String(a).localeCompare(String(b), undefined, {
52980
+ sensitivity: "base"
52981
+ });
52982
+ });
52983
+ }, [widgetInstances]);
52984
+ var hasActiveFilters = searchQuery.trim() !== "" || filterDashboard !== "all" || filterPackage !== "all";
52985
+ var clearFilters = function clearFilters() {
52986
+ setSearchQuery("");
52987
+ setFilterDashboard("all");
52988
+ setFilterPackage("all");
52989
+ };
52990
+
52991
+ // Filter by search + dashboard + package (composed AND).
52955
52992
  var filteredInstances = useMemo(function () {
52956
52993
  var q = searchQuery.trim().toLowerCase();
52957
- if (!q) return widgetInstances;
52958
52994
  return widgetInstances.filter(function (wi) {
52995
+ if (filterDashboard !== "all" && wi.workspaceName !== filterDashboard) return false;
52996
+ if (filterPackage !== "all" && wi["package"] !== filterPackage) return false;
52997
+ if (!q) return true;
52959
52998
  var hay = [wi.title, wi["package"], wi.workspaceName, wi.componentName].filter(Boolean).join(" ").toLowerCase();
52960
52999
  return hay.includes(q);
52961
53000
  });
52962
- }, [widgetInstances, searchQuery]);
53001
+ }, [widgetInstances, searchQuery, filterDashboard, filterPackage]);
52963
53002
  function handleGlobalToggle(value) {
52964
53003
  var _window$mainApi2;
52965
53004
  setGlobalEnabled(value);
@@ -53005,8 +53044,49 @@ var NotificationsSection = function NotificationsSection(_ref) {
53005
53044
  placeholder: "Search widgets...",
53006
53045
  inputClassName: "py-1.5 text-xs"
53007
53046
  }), /*#__PURE__*/jsxs("div", {
53008
- className: "text-[10px] opacity-50 px-0.5",
53009
- children: [filteredInstances.length, " of ", widgetInstances.length, " widget", widgetInstances.length === 1 ? "" : "s"]
53047
+ className: "grid grid-cols-2 gap-1.5",
53048
+ children: [/*#__PURE__*/jsxs("select", {
53049
+ value: filterDashboard,
53050
+ onChange: function onChange(e) {
53051
+ return setFilterDashboard(e.target.value);
53052
+ },
53053
+ className: "w-full px-2 py-1 text-xs bg-gray-800/50 border border-white/10 rounded text-gray-200 focus:outline-none",
53054
+ children: [/*#__PURE__*/jsx("option", {
53055
+ value: "all",
53056
+ children: "All Dashboards"
53057
+ }), dashboardOptions.map(function (d) {
53058
+ return /*#__PURE__*/jsx("option", {
53059
+ value: d,
53060
+ children: d
53061
+ }, d);
53062
+ })]
53063
+ }), /*#__PURE__*/jsxs("select", {
53064
+ value: filterPackage,
53065
+ onChange: function onChange(e) {
53066
+ return setFilterPackage(e.target.value);
53067
+ },
53068
+ className: "w-full px-2 py-1 text-xs bg-gray-800/50 border border-white/10 rounded text-gray-200 focus:outline-none",
53069
+ children: [/*#__PURE__*/jsx("option", {
53070
+ value: "all",
53071
+ children: "All Packages"
53072
+ }), packageOptions.map(function (p) {
53073
+ return /*#__PURE__*/jsx("option", {
53074
+ value: p,
53075
+ children: p
53076
+ }, p);
53077
+ })]
53078
+ })]
53079
+ }), /*#__PURE__*/jsxs("div", {
53080
+ className: "flex items-center justify-between text-[10px] px-0.5",
53081
+ children: [/*#__PURE__*/jsx("span", {
53082
+ className: "opacity-50",
53083
+ children: hasActiveFilters ? "".concat(filteredInstances.length, " of ").concat(widgetInstances.length, " widgets") : "".concat(widgetInstances.length, " widget").concat(widgetInstances.length === 1 ? "" : "s")
53084
+ }), hasActiveFilters && /*#__PURE__*/jsx("button", {
53085
+ type: "button",
53086
+ onClick: clearFilters,
53087
+ className: "opacity-60 hover:opacity-100 transition-opacity text-gray-300 hover:bg-white/10 px-1.5 py-0.5 rounded",
53088
+ children: "Clear"
53089
+ })]
53010
53090
  })]
53011
53091
  }), /*#__PURE__*/jsxs(Sidebar.Content, {
53012
53092
  children: [/*#__PURE__*/jsx(Sidebar.Item, {