@opentabs-dev/browser-extension 0.0.38 → 0.0.39

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.
Files changed (36) hide show
  1. package/dist/side-panel/App.d.ts.map +1 -1
  2. package/dist/side-panel/App.js +84 -8
  3. package/dist/side-panel/App.js.map +1 -1
  4. package/dist/side-panel/bridge.d.ts +34 -2
  5. package/dist/side-panel/bridge.d.ts.map +1 -1
  6. package/dist/side-panel/bridge.js +13 -1
  7. package/dist/side-panel/bridge.js.map +1 -1
  8. package/dist/side-panel/components/EmptyStates.js +1 -1
  9. package/dist/side-panel/components/EmptyStates.js.map +1 -1
  10. package/dist/side-panel/components/NpmPluginCard.d.ts +14 -0
  11. package/dist/side-panel/components/NpmPluginCard.d.ts.map +1 -0
  12. package/dist/side-panel/components/NpmPluginCard.js +19 -0
  13. package/dist/side-panel/components/NpmPluginCard.js.map +1 -0
  14. package/dist/side-panel/components/PluginCard.d.ts +5 -1
  15. package/dist/side-panel/components/PluginCard.d.ts.map +1 -1
  16. package/dist/side-panel/components/PluginCard.js +3 -2
  17. package/dist/side-panel/components/PluginCard.js.map +1 -1
  18. package/dist/side-panel/components/PluginList.d.ts +4 -1
  19. package/dist/side-panel/components/PluginList.d.ts.map +1 -1
  20. package/dist/side-panel/components/PluginList.js +2 -2
  21. package/dist/side-panel/components/PluginList.js.map +1 -1
  22. package/dist/side-panel/components/PluginMenu.d.ts +16 -0
  23. package/dist/side-panel/components/PluginMenu.d.ts.map +1 -0
  24. package/dist/side-panel/components/PluginMenu.js +31 -0
  25. package/dist/side-panel/components/PluginMenu.js.map +1 -0
  26. package/dist/side-panel/components/SearchResults.d.ts +24 -0
  27. package/dist/side-panel/components/SearchResults.d.ts.map +1 -0
  28. package/dist/side-panel/components/SearchResults.js +28 -0
  29. package/dist/side-panel/components/SearchResults.js.map +1 -0
  30. package/dist/side-panel/components/retro/Menu.d.ts +1 -0
  31. package/dist/side-panel/components/retro/Menu.d.ts.map +1 -1
  32. package/dist/side-panel/components/retro/Menu.js +3 -0
  33. package/dist/side-panel/components/retro/Menu.js.map +1 -1
  34. package/dist/side-panel/side-panel.js +522 -249
  35. package/dist/side-panel/styles.css +1 -1
  36. package/package.json +1 -1
@@ -0,0 +1,24 @@
1
+ import type { FailedPluginState, PluginSearchResult, PluginState } from '../bridge';
2
+ import type { Dispatch, SetStateAction } from 'react';
3
+ interface SearchResultsProps {
4
+ plugins: PluginState[];
5
+ failedPlugins: FailedPluginState[];
6
+ activeTools: Set<string>;
7
+ setPlugins: Dispatch<SetStateAction<PluginState[]>>;
8
+ toolFilter: string;
9
+ npmResults: PluginSearchResult[];
10
+ npmSearching: boolean;
11
+ installingPlugins: Set<string>;
12
+ onInstall: (name: string) => void;
13
+ installErrors: Map<string, string>;
14
+ onUpdate?: (pluginName: string) => void;
15
+ onRemove?: (pluginName: string) => void;
16
+ removingPlugins?: Set<string>;
17
+ }
18
+ declare const SearchResults: {
19
+ ({ plugins, activeTools, setPlugins, toolFilter, npmResults, npmSearching, installingPlugins, onInstall, installErrors, onUpdate, onRemove, removingPlugins, }: SearchResultsProps): import("react/jsx-runtime").JSX.Element;
20
+ displayName: string;
21
+ };
22
+ export { SearchResults };
23
+ export type { SearchResultsProps };
24
+ //# sourceMappingURL=SearchResults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchResults.d.ts","sourceRoot":"","sources":["../../../src/side-panel/components/SearchResults.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACpF,OAAO,KAAK,EAAE,QAAQ,EAAa,cAAc,EAAE,MAAM,OAAO,CAAC;AAEjE,UAAU,kBAAkB;IAC1B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC/B;AAcD,QAAA,MAAM,aAAa;oKAahB,kBAAkB;;CA6DpB,CAAC;AAIF,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { NpmPluginCard } from './NpmPluginCard';
3
+ import { PluginList } from './PluginList';
4
+ import { Loader } from './retro/Loader';
5
+ import { matchesPlugin } from '../bridge';
6
+ /**
7
+ * Extracts a normalized short name from an npm package name for deduplication.
8
+ * "@opentabs-dev/opentabs-plugin-slack" → "slack"
9
+ * "opentabs-plugin-datadog" → "datadog"
10
+ * "slack" → "slack"
11
+ */
12
+ const extractShortName = (name) => (name.split('/').pop() ?? name).replace(/^opentabs-plugin-/, '');
13
+ const SectionHeader = ({ children }) => (_jsx("div", { className: "font-head text-muted-foreground mb-1.5 text-[10px] tracking-widest uppercase", children: children }));
14
+ const SearchResults = ({ plugins, activeTools, setPlugins, toolFilter, npmResults, npmSearching, installingPlugins, onInstall, installErrors, onUpdate, onRemove, removingPlugins, }) => {
15
+ const filterLower = toolFilter.toLowerCase();
16
+ // Filter installed plugins using matchesPlugin (name + displayName + tools)
17
+ const installedMatches = filterLower ? plugins.filter(p => matchesPlugin(p, filterLower)) : plugins;
18
+ // Filter out npm results whose short name matches an already-installed plugin's short name
19
+ const installedShortNames = new Set(plugins.map(p => extractShortName(p.name)));
20
+ const availableResults = npmResults.filter(r => !installedShortNames.has(extractShortName(r.name)));
21
+ const hasInstalledResults = installedMatches.length > 0;
22
+ const showNoResults = toolFilter && !hasInstalledResults && !npmSearching && availableResults.length === 0;
23
+ return (_jsxs("div", { className: "space-y-4", children: [hasInstalledResults && (_jsxs("div", { children: [_jsx(SectionHeader, { children: "Installed" }), _jsx(PluginList, { plugins: installedMatches, failedPlugins: [], activeTools: activeTools, setPlugins: setPlugins, toolFilter: "", onUpdate: onUpdate, onRemove: onRemove, removingPlugins: removingPlugins })] })), toolFilter &&
24
+ (npmSearching ? (_jsx("div", { className: "flex justify-center py-4", children: _jsx(Loader, { size: "sm" }) })) : (availableResults.length > 0 && (_jsxs("div", { children: [_jsx(SectionHeader, { children: "Available" }), _jsx("div", { className: "space-y-2", children: availableResults.map(result => (_jsx(NpmPluginCard, { plugin: result, installing: installingPlugins.has(result.name), error: installErrors.get(result.name) ?? null, onInstall: () => onInstall(result.name) }, result.name))) })] })))), showNoResults && _jsx("div", { className: "text-muted-foreground py-8 text-center text-sm", children: "No results" })] }));
25
+ };
26
+ SearchResults.displayName = 'SearchResults';
27
+ export { SearchResults };
28
+ //# sourceMappingURL=SearchResults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchResults.js","sourceRoot":"","sources":["../../../src/side-panel/components/SearchResults.tsx"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ declare const MenuObject: React.FC<DropdownMenuPrimitive.DropdownMenuProps> & {
4
4
  Trigger: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
5
5
  Content: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
6
6
  Item: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
7
+ Separator: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
7
8
  };
8
9
  export { MenuObject as Menu };
9
10
  //# sourceMappingURL=Menu.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../../src/side-panel/components/retro/Menu.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,qBAAqB,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoC/B,QAAA,MAAM,UAAU;;;;CAId,CAAC;AAEH,OAAO,EAAE,UAAU,IAAI,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../../src/side-panel/components/retro/Menu.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,qBAAqB,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA4C/B,QAAA,MAAM,UAAU;;;;;CAKd,CAAC;AAEH,OAAO,EAAE,UAAU,IAAI,IAAI,EAAE,CAAC"}
@@ -8,10 +8,13 @@ const MenuContent = React.forwardRef(({ className, sideOffset = 4, ...props }, r
8
8
  MenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
9
9
  const MenuItem = React.forwardRef(({ className, ...props }, ref) => (_jsx(DropdownMenuPrimitive.Item, { ref: ref, className: cn('hover:bg-accent data-[highlighted]:bg-accent cursor-pointer px-3 py-2 font-sans text-xs outline-none', className), ...props })));
10
10
  MenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
11
+ const MenuSeparator = React.forwardRef(({ className, ...props }, ref) => (_jsx(DropdownMenuPrimitive.Separator, { ref: ref, className: cn('bg-border -mx-1 my-1 h-px', className), ...props })));
12
+ MenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
11
13
  const MenuObject = Object.assign(Menu, {
12
14
  Trigger: MenuTrigger,
13
15
  Content: MenuContent,
14
16
  Item: MenuItem,
17
+ Separator: MenuSeparator,
15
18
  });
16
19
  export { MenuObject as Menu };
17
20
  //# sourceMappingURL=Menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../../src/side-panel/components/retro/Menu.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,qBAAqB,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC;AAExC,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC;AAElD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAE,SAAS,EAAE,UAAU,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClD,KAAC,qBAAqB,CAAC,MAAM,cAC3B,KAAC,qBAAqB,CAAC,OAAO,IAC5B,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,EAAE,CAAC,4DAA4D,EAAE,SAAS,CAAC,KAClF,KAAK,GACT,GAC2B,CAChC,CAAC,CAAC;AACH,WAAW,CAAC,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,WAAW,CAAC;AAEpE,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAG/B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,KAAC,qBAAqB,CAAC,IAAI,IACzB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,sGAAsG,EACtG,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC,CAAC;AACH,QAAQ,CAAC,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC;AAE9D,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;IACrC,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,QAAQ;CACf,CAAC,CAAC;AAEH,OAAO,EAAE,UAAU,IAAI,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../../src/side-panel/components/retro/Menu.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,qBAAqB,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC;AAExC,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC;AAElD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,EAAE,SAAS,EAAE,UAAU,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClD,KAAC,qBAAqB,CAAC,MAAM,cAC3B,KAAC,qBAAqB,CAAC,OAAO,IAC5B,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,EAAE,CAAC,4DAA4D,EAAE,SAAS,CAAC,KAClF,KAAK,GACT,GAC2B,CAChC,CAAC,CAAC;AACH,WAAW,CAAC,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,WAAW,CAAC;AAEpE,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAG/B,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,KAAC,qBAAqB,CAAC,IAAI,IACzB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,sGAAsG,EACtG,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC,CAAC;AACH,QAAQ,CAAC,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC;AAE9D,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAGpC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClC,KAAC,qBAAqB,CAAC,SAAS,IAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,2BAA2B,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAChH,CAAC,CAAC;AACH,aAAa,CAAC,WAAW,GAAG,qBAAqB,CAAC,SAAS,CAAC,WAAW,CAAC;AAExE,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;IACrC,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,aAAa;CACzB,CAAC,CAAC;AAEH,OAAO,EAAE,UAAU,IAAI,IAAI,EAAE,CAAC"}