@opentabs-dev/browser-extension 0.0.40 → 0.0.42

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 (62) hide show
  1. package/dist/background.js +188 -64
  2. package/dist/browser-commands/extension-commands.d.ts.map +1 -1
  3. package/dist/browser-commands/extension-commands.js +25 -9
  4. package/dist/browser-commands/extension-commands.js.map +1 -1
  5. package/dist/dispatch-helpers.d.ts +21 -1
  6. package/dist/dispatch-helpers.d.ts.map +1 -1
  7. package/dist/dispatch-helpers.js +68 -2
  8. package/dist/dispatch-helpers.js.map +1 -1
  9. package/dist/extension-messages.d.ts +2 -3
  10. package/dist/extension-messages.d.ts.map +1 -1
  11. package/dist/json-rpc-errors.d.ts +1 -0
  12. package/dist/json-rpc-errors.d.ts.map +1 -1
  13. package/dist/json-rpc-errors.js +1 -0
  14. package/dist/json-rpc-errors.js.map +1 -1
  15. package/dist/message-router.js +1 -1
  16. package/dist/message-router.js.map +1 -1
  17. package/dist/messaging.d.ts.map +1 -1
  18. package/dist/messaging.js +1 -2
  19. package/dist/messaging.js.map +1 -1
  20. package/dist/resource-prompt-dispatch.d.ts.map +1 -1
  21. package/dist/resource-prompt-dispatch.js +43 -15
  22. package/dist/resource-prompt-dispatch.js.map +1 -1
  23. package/dist/side-panel/App.d.ts.map +1 -1
  24. package/dist/side-panel/App.js +23 -13
  25. package/dist/side-panel/App.js.map +1 -1
  26. package/dist/side-panel/bridge.d.ts +13 -7
  27. package/dist/side-panel/bridge.d.ts.map +1 -1
  28. package/dist/side-panel/bridge.js +4 -2
  29. package/dist/side-panel/bridge.js.map +1 -1
  30. package/dist/side-panel/components/BrowserToolsCard.d.ts +12 -0
  31. package/dist/side-panel/components/BrowserToolsCard.d.ts.map +1 -0
  32. package/dist/side-panel/components/BrowserToolsCard.js +66 -0
  33. package/dist/side-panel/components/BrowserToolsCard.js.map +1 -0
  34. package/dist/side-panel/components/PluginCard.d.ts.map +1 -1
  35. package/dist/side-panel/components/PluginCard.js +7 -6
  36. package/dist/side-panel/components/PluginCard.js.map +1 -1
  37. package/dist/side-panel/components/PluginList.d.ts.map +1 -1
  38. package/dist/side-panel/components/PluginList.js +3 -1
  39. package/dist/side-panel/components/PluginList.js.map +1 -1
  40. package/dist/side-panel/components/PluginMenu.d.ts.map +1 -1
  41. package/dist/side-panel/components/PluginMenu.js +9 -17
  42. package/dist/side-panel/components/PluginMenu.js.map +1 -1
  43. package/dist/side-panel/components/SearchResults.d.ts +4 -2
  44. package/dist/side-panel/components/SearchResults.d.ts.map +1 -1
  45. package/dist/side-panel/components/SearchResults.js +14 -3
  46. package/dist/side-panel/components/SearchResults.js.map +1 -1
  47. package/dist/side-panel/components/retro/Button.d.ts +1 -1
  48. package/dist/side-panel/components/retro/Dialog.d.ts +13 -0
  49. package/dist/side-panel/components/retro/Dialog.d.ts.map +1 -0
  50. package/dist/side-panel/components/retro/Dialog.js +31 -0
  51. package/dist/side-panel/components/retro/Dialog.js.map +1 -0
  52. package/dist/side-panel/components/retro/Loader.d.ts +1 -1
  53. package/dist/side-panel/side-panel.js +16431 -26805
  54. package/dist/side-panel/styles.css +1 -1
  55. package/dist/tab-state.d.ts +12 -5
  56. package/dist/tab-state.d.ts.map +1 -1
  57. package/dist/tab-state.js +67 -38
  58. package/dist/tab-state.js.map +1 -1
  59. package/dist/tool-dispatch.d.ts.map +1 -1
  60. package/dist/tool-dispatch.js +31 -17
  61. package/dist/tool-dispatch.js.map +1 -1
  62. package/package.json +1 -1
@@ -0,0 +1,66 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Accordion } from './retro/Accordion.js';
3
+ import { Alert } from './retro/Alert.js';
4
+ import { Badge } from './retro/Badge.js';
5
+ import { Switch } from './retro/Switch.js';
6
+ import { ToolRow } from './ToolRow.js';
7
+ import { setBrowserToolEnabled } from '../bridge.js';
8
+ import { ERROR_DISPLAY_DURATION_MS } from '../constants.js';
9
+ import * as AccordionPrimitive from '@radix-ui/react-accordion';
10
+ import { ChevronDown, Globe } from 'lucide-react';
11
+ import { useState, useEffect, useRef } from 'react';
12
+ /** Convert a snake_case browser tool name to a human-readable display name.
13
+ * Removes the 'browser_' prefix and title-cases each word. */
14
+ const toDisplayName = (name) => name
15
+ .replace(/^browser_/, '')
16
+ .split('_')
17
+ .map(w => w.charAt(0).toUpperCase() + w.slice(1))
18
+ .join(' ');
19
+ const BrowserToolsCard = ({ tools, activeTools, onToolsChange, toolFilter, }) => {
20
+ const [toggleError, setToggleError] = useState(null);
21
+ const errorTimerRef = useRef(undefined);
22
+ const toggleCounter = useRef(0);
23
+ useEffect(() => () => clearTimeout(errorTimerRef.current), []);
24
+ const showToggleError = (message) => {
25
+ clearTimeout(errorTimerRef.current);
26
+ setToggleError(message);
27
+ errorTimerRef.current = setTimeout(() => setToggleError(null), ERROR_DISPLAY_DURATION_MS);
28
+ };
29
+ const allEnabled = tools.length > 0 && tools.every(t => t.enabled);
30
+ const handleToggleAll = (checked) => {
31
+ const originalTools = tools;
32
+ const myVersion = ++toggleCounter.current;
33
+ onToolsChange(() => tools.map(t => ({ ...t, enabled: checked })));
34
+ const promises = tools.filter(t => t.enabled !== checked).map(t => setBrowserToolEnabled(t.name, checked));
35
+ void Promise.all(promises).catch(() => {
36
+ if (toggleCounter.current === myVersion) {
37
+ onToolsChange(() => originalTools);
38
+ }
39
+ showToggleError('Failed to toggle all browser tools');
40
+ });
41
+ };
42
+ const handleToggleTool = (toolName, currentEnabled) => {
43
+ const originalTools = tools;
44
+ const myVersion = ++toggleCounter.current;
45
+ const newEnabled = !currentEnabled;
46
+ onToolsChange(prev => prev.map(t => (t.name === toolName ? { ...t, enabled: newEnabled } : t)));
47
+ void setBrowserToolEnabled(toolName, newEnabled).catch(() => {
48
+ if (toggleCounter.current === myVersion) {
49
+ onToolsChange(() => originalTools);
50
+ }
51
+ showToggleError(`Failed to toggle ${toolName}`);
52
+ });
53
+ };
54
+ const filterLower = toolFilter?.toLowerCase() ?? '';
55
+ const visibleTools = filterLower
56
+ ? tools.filter(t => toDisplayName(t.name).toLowerCase().includes(filterLower) ||
57
+ t.name.toLowerCase().includes(filterLower) ||
58
+ t.description.toLowerCase().includes(filterLower))
59
+ : tools;
60
+ return (_jsxs(Accordion.Item, { value: "browser-tools", children: [_jsxs(AccordionPrimitive.Header, { className: "flex", children: [_jsxs(AccordionPrimitive.Trigger, { className: "font-head flex flex-1 cursor-pointer items-center gap-2 px-3 py-2 focus:outline-hidden [&[data-state=open]>svg.chevron]:rotate-180", children: [_jsx("div", { className: "border-border bg-muted/50 flex h-8 w-8 shrink-0 items-center justify-center rounded border-2", children: _jsx(Globe, { className: "text-muted-foreground h-4 w-4" }) }), _jsxs("div", { className: "font-head text-foreground flex min-w-0 flex-1 items-center gap-1.5 truncate text-sm", children: ["Browser Tools", _jsx(Badge, { variant: "default", size: "sm", className: "align-middle", children: "BUILT-IN" })] }), _jsx(ChevronDown, { className: "chevron h-4 w-4 shrink-0 transition-transform duration-200" })] }), _jsx("div", { className: "flex shrink-0 items-center px-3", onClick: (e) => e.stopPropagation(), onKeyDown: (e) => {
61
+ if (e.key === 'Enter' || e.key === ' ')
62
+ e.stopPropagation();
63
+ }, role: "presentation", children: _jsx(Switch, { checked: allEnabled, onCheckedChange: handleToggleAll, "aria-label": "Toggle all browser tools" }) })] }), toggleError && (_jsx(Alert, { status: "error", className: "mx-3 mb-1 px-2 py-1 text-[11px]", children: toggleError })), _jsxs(Accordion.Content, { className: "border-border border-t", children: [toolFilter && (_jsxs("div", { className: "text-muted-foreground mb-1 px-3 pt-2 text-xs", children: [visibleTools.length, " of ", tools.length, " tools"] })), visibleTools.map(tool => (_jsx(ToolRow, { name: tool.name, displayName: toDisplayName(tool.name), description: tool.description, icon: "globe", enabled: tool.enabled, active: activeTools.has(`browser:${tool.name}`), onToggle: () => handleToggleTool(tool.name, tool.enabled) }, tool.name)))] })] }));
64
+ };
65
+ export { BrowserToolsCard, toDisplayName };
66
+ //# sourceMappingURL=BrowserToolsCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrowserToolsCard.js","sourceRoot":"","sources":["../../../src/side-panel/components/BrowserToolsCard.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PluginCard.d.ts","sourceRoot":"","sources":["../../../src/side-panel/components/PluginCard.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEtD,QAAA,MAAM,UAAU,GAAI,sGASjB;IACD,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,4CAgJA,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"PluginCard.d.ts","sourceRoot":"","sources":["../../../src/side-panel/components/PluginCard.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEtD,QAAA,MAAM,UAAU,GAAI,sGASjB;IACD,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,4CAkJA,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -23,10 +23,11 @@ const PluginCard = ({ plugin, activeTools, setPlugins, toolFilter, onUpdate, onR
23
23
  setToggleError(message);
24
24
  errorTimerRef.current = setTimeout(() => setToggleError(null), ERROR_DISPLAY_DURATION_MS);
25
25
  };
26
- const updatePluginTools = (updater) => setPlugins(prev => prev.map(p => (p.name === plugin.name ? { ...p, tools: updater(p.tools) } : p)));
27
- const allEnabled = plugin.tools.length > 0 && plugin.tools.every(t => t.enabled);
26
+ const pluginTools = plugin.tools ?? [];
27
+ const updatePluginTools = (updater) => setPlugins(prev => prev.map(p => (p.name === plugin.name ? { ...p, tools: updater(p.tools ?? []) } : p)));
28
+ const allEnabled = pluginTools.length > 0 && pluginTools.every(t => t.enabled);
28
29
  const handleToggleAll = (checked) => {
29
- const originalTools = plugin.tools;
30
+ const originalTools = pluginTools;
30
31
  const myVersion = ++toggleCounter.current;
31
32
  updatePluginTools(tools => tools.map(t => ({ ...t, enabled: checked })));
32
33
  void setAllToolsEnabled(plugin.name, checked).catch(() => {
@@ -37,7 +38,7 @@ const PluginCard = ({ plugin, activeTools, setPlugins, toolFilter, onUpdate, onR
37
38
  });
38
39
  };
39
40
  const handleToggleTool = (toolName, currentEnabled) => {
40
- const originalTools = plugin.tools;
41
+ const originalTools = pluginTools;
41
42
  const myVersion = ++toggleCounter.current;
42
43
  const newEnabled = !currentEnabled;
43
44
  updatePluginTools(tools => tools.map(t => (t.name === toolName ? { ...t, enabled: newEnabled } : t)));
@@ -49,11 +50,11 @@ const PluginCard = ({ plugin, activeTools, setPlugins, toolFilter, onUpdate, onR
49
50
  });
50
51
  };
51
52
  const filterLower = toolFilter?.toLowerCase() ?? '';
52
- const visibleTools = filterLower ? plugin.tools.filter(t => matchesTool(t, filterLower)) : plugin.tools;
53
+ const visibleTools = filterLower ? pluginTools.filter(t => matchesTool(t, filterLower)) : pluginTools;
53
54
  return (_jsxs(Accordion.Item, { value: plugin.name, className: removingPlugin ? 'pointer-events-none opacity-60 transition-opacity' : undefined, children: [_jsxs(AccordionPrimitive.Header, { className: "flex", children: [_jsxs(AccordionPrimitive.Trigger, { className: "font-head flex flex-1 cursor-pointer items-center gap-2 px-3 py-2 focus:outline-hidden [&[data-state=open]>svg]:rotate-180", children: [_jsxs(Tooltip, { children: [_jsx(Tooltip.Trigger, { asChild: true, children: _jsx("div", { children: _jsx(PluginIcon, { pluginName: plugin.name, displayName: plugin.displayName, tabState: plugin.tabState, hasUpdate: !!plugin.update, size: 32, iconSvg: plugin.iconSvg, iconInactiveSvg: plugin.iconInactiveSvg }) }) }), _jsxs(Tooltip.Content, { children: ["v", plugin.version, " \u00B7 ", plugin.trustTier, plugin.update && _jsxs(_Fragment, { children: [" \u00B7 Update: ", plugin.update.latestVersion] })] })] }), _jsxs("div", { className: "font-head text-foreground flex min-w-0 flex-1 items-center gap-1.5 truncate text-sm", children: [plugin.displayName, plugin.source === 'local' && (_jsx(Badge, { variant: "default", size: "sm", className: "align-middle", children: "DEV" })), !plugin.sdkVersion && (_jsxs(Tooltip, { children: [_jsx(Tooltip.Trigger, { asChild: true, children: _jsx(Badge, { variant: "outline", size: "sm", className: "border-accent bg-accent/10 text-accent-foreground align-middle", children: "SDK" }) }), _jsx(Tooltip.Content, { children: "SDK version mismatch \u2014 rebuild plugin" })] }))] }), _jsx(ChevronDown, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })] }), _jsx(PluginMenu, { plugin: plugin, onUpdate: onUpdate ?? (() => undefined), onRemove: onRemove ?? (() => undefined), updating: updatingPlugin ?? false, removing: removingPlugin ?? false, className: "flex shrink-0 items-center px-1" }), _jsx("div", { className: "flex shrink-0 items-center px-3", onClick: (e) => e.stopPropagation(), onKeyDown: (e) => {
54
55
  if (e.key === 'Enter' || e.key === ' ')
55
56
  e.stopPropagation();
56
- }, role: "presentation", children: _jsx(Switch, { checked: allEnabled, onCheckedChange: handleToggleAll, "aria-label": `Toggle all tools for ${plugin.name}` }) })] }), toggleError && (_jsx(Alert, { status: "error", className: "mx-3 mb-1 px-2 py-1 text-[11px]", children: toggleError })), _jsxs(Accordion.Content, { className: "border-border border-t", children: [toolFilter && (_jsxs("div", { className: "text-muted-foreground mb-1 px-3 pt-2 text-xs", children: [visibleTools.length, " of ", plugin.tools.length, " tools"] })), visibleTools.map(tool => (_jsx(ToolRow, { name: tool.name, displayName: tool.displayName, description: tool.description, icon: tool.icon, enabled: tool.enabled, active: activeTools.has(`${plugin.name}:${tool.name}`), onToggle: () => handleToggleTool(tool.name, tool.enabled) }, tool.name)))] })] }));
57
+ }, role: "presentation", children: _jsx(Switch, { checked: allEnabled, onCheckedChange: handleToggleAll, "aria-label": `Toggle all tools for ${plugin.name}` }) })] }), toggleError && (_jsx(Alert, { status: "error", className: "mx-3 mb-1 px-2 py-1 text-[11px]", children: toggleError })), _jsxs(Accordion.Content, { className: "border-border border-t", children: [toolFilter && (_jsxs("div", { className: "text-muted-foreground mb-1 px-3 pt-2 text-xs", children: [visibleTools.length, " of ", pluginTools.length, " tools"] })), visibleTools.map(tool => (_jsx(ToolRow, { name: tool.name, displayName: tool.displayName, description: tool.description, icon: tool.icon, enabled: tool.enabled, active: activeTools.has(`${plugin.name}:${tool.name}`), onToggle: () => handleToggleTool(tool.name, tool.enabled) }, tool.name)))] })] }));
57
58
  };
58
59
  export { PluginCard };
59
60
  //# sourceMappingURL=PluginCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PluginCard.js","sourceRoot":"","sources":["../../../src/side-panel/components/PluginCard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PluginCard.js","sourceRoot":"","sources":["../../../src/side-panel/components/PluginCard.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PluginList.d.ts","sourceRoot":"","sources":["../../../src/side-panel/components/PluginList.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEtD,QAAA,MAAM,UAAU,GAAI,uGASjB;IACD,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,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,4CAuCA,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"PluginList.d.ts","sourceRoot":"","sources":["../../../src/side-panel/components/PluginList.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEtD,QAAA,MAAM,UAAU,GAAI,uGASjB;IACD,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,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,4CAyCA,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -5,7 +5,9 @@ import { Accordion } from './retro/Accordion.js';
5
5
  import { matchesTool } from '../bridge.js';
6
6
  const PluginList = ({ plugins, failedPlugins, activeTools, setPlugins, toolFilter, onUpdate, onRemove, removingPlugins, }) => {
7
7
  const filterLower = toolFilter.toLowerCase();
8
- const visiblePlugins = filterLower ? plugins.filter(p => p.tools.some(t => matchesTool(t, filterLower))) : plugins;
8
+ const visiblePlugins = filterLower
9
+ ? plugins.filter(p => (p.tools ?? []).some(t => matchesTool(t, filterLower)))
10
+ : plugins;
9
11
  // Hide failed plugins when filtering tools
10
12
  const visibleFailed = filterLower ? [] : failedPlugins;
11
13
  if (filterLower && visiblePlugins.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"PluginList.js","sourceRoot":"","sources":["../../../src/side-panel/components/PluginList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAI3C,MAAM,UAAU,GAAG,CAAC,EAClB,OAAO,EACP,aAAa,EACb,WAAW,EACX,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,eAAe,GAUhB,EAAE,EAAE;IACH,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAE7C,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAEnH,2CAA2C;IAC3C,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;IAEvD,IAAI,WAAW,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAO,CACL,eAAK,SAAS,EAAC,gDAAgD,yCAA2B,UAAU,cAAc,CACnH,CAAC;IACJ,CAAC;IAED,OAAO,CACL,8BACG,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAC3B,cAAK,SAAS,EAAC,gBAAgB,YAC5B,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CACvB,KAAC,gBAAgB,IAAoB,MAAM,EAAE,EAAE,IAAxB,EAAE,CAAC,SAAS,CAAgB,CACpD,CAAC,GACE,CACP,EACD,KAAC,SAAS,IAAC,IAAI,EAAC,UAAU,EAAC,SAAS,EAAC,WAAW,YAC7C,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAC5B,KAAC,UAAU,IAET,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAC5D,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAC5D,cAAc,EAAE,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAP5C,MAAM,CAAC,IAAI,CAQhB,CACH,CAAC,GACQ,IACX,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"PluginList.js","sourceRoot":"","sources":["../../../src/side-panel/components/PluginList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAI3C,MAAM,UAAU,GAAG,CAAC,EAClB,OAAO,EACP,aAAa,EACb,WAAW,EACX,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,eAAe,GAUhB,EAAE,EAAE;IACH,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAE7C,MAAM,cAAc,GAAG,WAAW;QAChC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QAC7E,CAAC,CAAC,OAAO,CAAC;IAEZ,2CAA2C;IAC3C,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;IAEvD,IAAI,WAAW,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAO,CACL,eAAK,SAAS,EAAC,gDAAgD,yCAA2B,UAAU,cAAc,CACnH,CAAC;IACJ,CAAC;IAED,OAAO,CACL,8BACG,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAC3B,cAAK,SAAS,EAAC,gBAAgB,YAC5B,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CACvB,KAAC,gBAAgB,IAAoB,MAAM,EAAE,EAAE,IAAxB,EAAE,CAAC,SAAS,CAAgB,CACpD,CAAC,GACE,CACP,EACD,KAAC,SAAS,IAAC,IAAI,EAAC,UAAU,EAAC,SAAS,EAAC,WAAW,YAC7C,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAC5B,KAAC,UAAU,IAET,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAC5D,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAC5D,cAAc,EAAE,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAP5C,MAAM,CAAC,IAAI,CAQhB,CACH,CAAC,GACQ,IACX,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PluginMenu.d.ts","sourceRoot":"","sources":["../../../src/side-panel/components/PluginMenu.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAI7C,UAAU,eAAe;IACvB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,UAAU;oEAAmE,eAAe;;CAsDjG,CAAC;AAIF,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"PluginMenu.d.ts","sourceRoot":"","sources":["../../../src/side-panel/components/PluginMenu.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,UAAU,eAAe;IACvB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,UAAU;oEAAmE,eAAe;;CAgFjG,CAAC;AAIF,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,CAAC"}
@@ -1,30 +1,22 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button } from './retro/Button';
3
+ import { Dialog } from './retro/Dialog';
2
4
  import { Loader } from './retro/Loader';
3
5
  import { Menu } from './retro/Menu';
4
6
  import { ArrowUpCircle, MoreHorizontal, Trash2 } from 'lucide-react';
5
- import { useEffect, useRef, useState } from 'react';
6
- const CONFIRM_DURATION_MS = 3000;
7
+ import { useState } from 'react';
7
8
  const PluginMenu = ({ plugin, onUpdate, onRemove, updating, removing, className }) => {
8
- const [confirmPending, setConfirmPending] = useState(false);
9
- const confirmTimerRef = useRef(undefined);
10
- useEffect(() => () => clearTimeout(confirmTimerRef.current), []);
9
+ const [confirmOpen, setConfirmOpen] = useState(false);
11
10
  const isLocal = plugin.source === 'local';
12
11
  const removeLabel = isLocal ? 'Remove' : 'Uninstall';
13
- const handleRemoveClick = () => {
14
- if (confirmPending) {
15
- clearTimeout(confirmTimerRef.current);
16
- setConfirmPending(false);
17
- onRemove();
18
- }
19
- else {
20
- setConfirmPending(true);
21
- confirmTimerRef.current = setTimeout(() => setConfirmPending(false), CONFIRM_DURATION_MS);
22
- }
12
+ const handleConfirmRemove = () => {
13
+ setConfirmOpen(false);
14
+ onRemove();
23
15
  };
24
- return (_jsx("div", { className: className, onClick: e => e.stopPropagation(), onKeyDown: e => {
16
+ return (_jsxs("div", { className: className, onClick: e => e.stopPropagation(), onKeyDown: e => {
25
17
  if (e.key === 'Enter' || e.key === ' ')
26
18
  e.stopPropagation();
27
- }, role: "presentation", children: _jsxs(Menu, { children: [_jsx(Menu.Trigger, { asChild: true, children: _jsx("button", { className: "hover:bg-muted/50 flex h-6 w-6 items-center justify-center rounded", "aria-label": "Plugin options", children: _jsx(MoreHorizontal, { className: "h-4 w-4" }) }) }), _jsxs(Menu.Content, { align: "end", children: [plugin.update && (_jsxs(Menu.Item, { onClick: onUpdate, children: [updating ? _jsx(Loader, { size: "sm" }) : _jsx(ArrowUpCircle, { className: "h-3.5 w-3.5" }), "Update to v", plugin.update.latestVersion] })), plugin.update && _jsx(Menu.Separator, {}), _jsxs(Menu.Item, { onClick: handleRemoveClick, className: "text-destructive focus:bg-destructive/10 focus:text-destructive data-[highlighted]:bg-destructive/10 data-[highlighted]:text-destructive", children: [removing ? _jsx(Loader, { size: "sm" }) : _jsx(Trash2, { className: "h-3.5 w-3.5" }), confirmPending ? 'Confirm?' : removeLabel] })] })] }) }));
19
+ }, role: "presentation", children: [_jsxs(Menu, { children: [_jsx(Menu.Trigger, { asChild: true, children: _jsx("button", { className: "hover:bg-muted/50 flex h-6 w-6 items-center justify-center rounded", "aria-label": "Plugin options", children: _jsx(MoreHorizontal, { className: "h-4 w-4" }) }) }), _jsxs(Menu.Content, { align: "end", children: [plugin.update && (_jsxs(Menu.Item, { onClick: onUpdate, children: [updating ? _jsx(Loader, { size: "sm" }) : _jsx(ArrowUpCircle, { className: "h-3.5 w-3.5" }), "Update to v", plugin.update.latestVersion] })), plugin.update && _jsx(Menu.Separator, {}), _jsxs(Menu.Item, { onSelect: () => setConfirmOpen(true), className: "text-destructive focus:bg-destructive/10 focus:text-destructive data-[highlighted]:bg-destructive/10 data-[highlighted]:text-destructive", children: [removing ? _jsx(Loader, { size: "sm" }) : _jsx(Trash2, { className: "h-3.5 w-3.5" }), removeLabel] })] })] }), _jsx(Dialog, { open: confirmOpen, onOpenChange: setConfirmOpen, children: _jsxs(Dialog.Content, { children: [_jsxs(Dialog.Header, { className: "bg-destructive text-destructive-foreground border-destructive", children: [removeLabel, " Plugin"] }), _jsxs(Dialog.Body, { children: [_jsxs("p", { className: "text-foreground text-sm", children: ["Are you sure you want to ", removeLabel.toLowerCase(), ' ', _jsx("strong", { className: "font-head", children: plugin.displayName }), "?"] }), isLocal ? (_jsx("p", { className: "text-muted-foreground mt-1 text-xs", children: "This will remove the plugin path from your config." })) : (_jsx("p", { className: "text-muted-foreground mt-1 text-xs", children: "This will run npm uninstall and remove the plugin globally." }))] }), _jsxs(Dialog.Footer, { children: [_jsx(Dialog.Close, { asChild: true, children: _jsx(Button, { size: "sm", variant: "outline", children: "Cancel" }) }), _jsx(Button, { size: "sm", variant: "outline", className: "text-destructive border-destructive", onClick: handleConfirmRemove, children: removeLabel })] })] }) })] }));
28
20
  };
29
21
  PluginMenu.displayName = 'PluginMenu';
30
22
  export { PluginMenu };
@@ -1 +1 @@
1
- {"version":3,"file":"PluginMenu.js","sourceRoot":"","sources":["../../../src/side-panel/components/PluginMenu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PluginMenu.js","sourceRoot":"","sources":["../../../src/side-panel/components/PluginMenu.tsx"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
- import type { FailedPluginState, PluginSearchResult, PluginState } from '../bridge';
1
+ import type { BrowserToolState, FailedPluginState, PluginSearchResult, PluginState } from '../bridge';
2
2
  import type { Dispatch, SetStateAction } from 'react';
3
3
  interface SearchResultsProps {
4
4
  plugins: PluginState[];
5
5
  failedPlugins: FailedPluginState[];
6
+ browserTools: BrowserToolState[];
6
7
  activeTools: Set<string>;
7
8
  setPlugins: Dispatch<SetStateAction<PluginState[]>>;
9
+ setBrowserTools: Dispatch<SetStateAction<BrowserToolState[]>>;
8
10
  toolFilter: string;
9
11
  npmResults: PluginSearchResult[];
10
12
  npmSearching: boolean;
@@ -16,7 +18,7 @@ interface SearchResultsProps {
16
18
  removingPlugins?: Set<string>;
17
19
  }
18
20
  declare const SearchResults: {
19
- ({ plugins, activeTools, setPlugins, toolFilter, npmResults, npmSearching, installingPlugins, onInstall, installErrors, onUpdate, onRemove, removingPlugins, }: SearchResultsProps): import("react/jsx-runtime").JSX.Element;
21
+ ({ plugins, browserTools, activeTools, setPlugins, setBrowserTools, toolFilter, npmResults, npmSearching, installingPlugins, onInstall, installErrors, onUpdate, onRemove, removingPlugins, }: SearchResultsProps): import("react/jsx-runtime").JSX.Element;
20
22
  displayName: string;
21
23
  };
22
24
  export { SearchResults };
@@ -1 +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;AAMD,QAAA,MAAM,aAAa;oKAahB,kBAAkB;;CA6DpB,CAAC;AAIF,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"SearchResults.d.ts","sourceRoot":"","sources":["../../../src/side-panel/components/SearchResults.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACtG,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,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACpD,eAAe,EAAE,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAC9D,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;AAYD,QAAA,MAAM,aAAa;mMAehB,kBAAkB;;CA8EpB,CAAC;AAIF,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
@@ -1,19 +1,30 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { BrowserToolsCard, toDisplayName } from './BrowserToolsCard';
2
3
  import { NpmPluginCard } from './NpmPluginCard';
3
4
  import { PluginList } from './PluginList';
5
+ import { Accordion } from './retro/Accordion';
4
6
  import { Loader } from './retro/Loader';
5
7
  import { extractShortName, matchesPlugin } from '../bridge';
6
8
  const SectionHeader = ({ children }) => (_jsx("div", { className: "font-head text-muted-foreground mb-1.5 text-[10px] tracking-widest uppercase", children: children }));
7
- const SearchResults = ({ plugins, activeTools, setPlugins, toolFilter, npmResults, npmSearching, installingPlugins, onInstall, installErrors, onUpdate, onRemove, removingPlugins, }) => {
9
+ /** Returns true if a browser tool matches the search filter */
10
+ const matchesBrowserTool = (tool, filterLower) => toDisplayName(tool.name).toLowerCase().includes(filterLower) ||
11
+ tool.name.toLowerCase().includes(filterLower) ||
12
+ tool.description.toLowerCase().includes(filterLower);
13
+ const SearchResults = ({ plugins, browserTools, activeTools, setPlugins, setBrowserTools, toolFilter, npmResults, npmSearching, installingPlugins, onInstall, installErrors, onUpdate, onRemove, removingPlugins, }) => {
8
14
  const filterLower = toolFilter.toLowerCase();
9
15
  // Filter installed plugins using matchesPlugin (name + displayName + tools)
10
16
  const installedMatches = filterLower ? plugins.filter(p => matchesPlugin(p, filterLower)) : plugins;
17
+ // Filter browser tools that match the search
18
+ const hasBrowserToolMatches = browserTools.length > 0 &&
19
+ (!filterLower ||
20
+ 'browser tools'.includes(filterLower) ||
21
+ browserTools.some(t => matchesBrowserTool(t, filterLower)));
11
22
  // Filter out npm results whose short name matches an already-installed plugin's short name
12
23
  const installedShortNames = new Set(plugins.map(p => extractShortName(p.name)));
13
24
  const availableResults = npmResults.filter(r => !installedShortNames.has(extractShortName(r.name)));
14
- const hasInstalledResults = installedMatches.length > 0;
25
+ const hasInstalledResults = installedMatches.length > 0 || hasBrowserToolMatches;
15
26
  const showNoResults = toolFilter && !hasInstalledResults && !npmSearching && availableResults.length === 0;
16
- 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 &&
27
+ return (_jsxs("div", { className: "space-y-4", children: [hasInstalledResults && (_jsxs("div", { children: [_jsx(SectionHeader, { children: "Installed" }), hasBrowserToolMatches && (_jsx(Accordion, { type: "multiple", className: "mb-2 space-y-2", children: _jsx(BrowserToolsCard, { tools: browserTools, activeTools: activeTools, onToolsChange: setBrowserTools, toolFilter: toolFilter }) })), _jsx(PluginList, { plugins: installedMatches, failedPlugins: [], activeTools: activeTools, setPlugins: setPlugins, toolFilter: "", onUpdate: onUpdate, onRemove: onRemove, removingPlugins: removingPlugins })] })), toolFilter &&
17
28
  (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" })] }));
18
29
  };
19
30
  SearchResults.displayName = 'SearchResults';
@@ -1 +1 @@
1
- {"version":3,"file":"SearchResults.js","sourceRoot":"","sources":["../../../src/side-panel/components/SearchResults.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SearchResults.js","sourceRoot":"","sources":["../../../src/side-panel/components/SearchResults.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { VariantProps } from 'class-variance-authority';
2
2
  import type { ButtonHTMLAttributes } from 'react';
3
3
  declare const buttonVariants: (props?: ({
4
- variant?: "link" | "default" | "secondary" | "outline" | "ghost" | null | undefined;
4
+ variant?: "link" | "default" | "outline" | "secondary" | "ghost" | null | undefined;
5
5
  size?: "icon" | "sm" | "md" | "lg" | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
7
  interface IButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
@@ -0,0 +1,13 @@
1
+ import * as DialogPrimitive from '@radix-ui/react-dialog';
2
+ import * as React from 'react';
3
+ declare const DialogObject: React.FC<DialogPrimitive.DialogProps> & {
4
+ Trigger: React.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
5
+ Close: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
6
+ Content: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
7
+ Header: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
8
+ Body: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
9
+ Footer: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
10
+ Description: React.ForwardRefExoticComponent<DialogPrimitive.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>>;
11
+ };
12
+ export { DialogObject as Dialog };
13
+ //# sourceMappingURL=Dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../../../src/side-panel/components/retro/Dialog.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAG1D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA+E/B,QAAA,MAAM,YAAY;;;;;;;;CAQhB,CAAC;AAEH,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from '../../lib/cn';
3
+ import * as DialogPrimitive from '@radix-ui/react-dialog';
4
+ import { VisuallyHidden } from '@radix-ui/react-visually-hidden';
5
+ import { X } from 'lucide-react';
6
+ import * as React from 'react';
7
+ const Dialog = DialogPrimitive.Root;
8
+ const DialogTrigger = DialogPrimitive.Trigger;
9
+ const DialogClose = DialogPrimitive.Close;
10
+ const DialogOverlay = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Overlay, { ref: ref, className: cn('font-head data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 fixed inset-0 z-50 bg-black/80', className), ...props })));
11
+ DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
12
+ const DialogContent = React.forwardRef(({ className, children, ...props }, ref) => (_jsxs(DialogPrimitive.Portal, { children: [_jsx(DialogOverlay, {}), _jsxs(DialogPrimitive.Content, { ref: ref, className: cn('bg-background border-border data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 fixed top-1/2 left-1/2 z-50 grid w-full max-w-sm -translate-x-1/2 -translate-y-1/2 overflow-hidden rounded border-2 shadow-md duration-200', className), ...props, children: [_jsx(VisuallyHidden, { children: _jsx(DialogPrimitive.Title, {}) }), _jsx("div", { className: "relative flex flex-col", children: children })] })] })));
13
+ DialogContent.displayName = DialogPrimitive.Content.displayName;
14
+ const DialogHeader = React.forwardRef(({ className, children, ...props }, ref) => (_jsxs("div", { ref: ref, className: cn('bg-primary text-primary-foreground border-border flex min-h-10 items-center justify-between border-b-2 px-4', className), ...props, children: [children, _jsx(DialogPrimitive.Close, { className: "cursor-pointer outline-none", "aria-label": "Close", children: _jsx(X, { className: "h-4 w-4" }) })] })));
15
+ DialogHeader.displayName = 'DialogHeader';
16
+ const DialogBody = React.forwardRef(({ className, ...props }, ref) => _jsx("div", { ref: ref, className: cn('px-4 py-3', className), ...props }));
17
+ DialogBody.displayName = 'DialogBody';
18
+ const DialogFooter = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn('border-border flex items-center justify-end gap-2 border-t-2 px-4 py-2', className), ...props })));
19
+ DialogFooter.displayName = 'DialogFooter';
20
+ const DialogDescription = DialogPrimitive.Description;
21
+ const DialogObject = Object.assign(Dialog, {
22
+ Trigger: DialogTrigger,
23
+ Close: DialogClose,
24
+ Content: DialogContent,
25
+ Header: DialogHeader,
26
+ Body: DialogBody,
27
+ Footer: DialogFooter,
28
+ Description: DialogDescription,
29
+ });
30
+ export { DialogObject as Dialog };
31
+ //# sourceMappingURL=Dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dialog.js","sourceRoot":"","sources":["../../../../src/side-panel/components/retro/Dialog.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import type { VariantProps } from 'class-variance-authority';
3
3
  declare const loaderVariants: (props?: ({
4
- variant?: "default" | "secondary" | "outline" | null | undefined;
4
+ variant?: "default" | "outline" | "secondary" | null | undefined;
5
5
  size?: "sm" | "md" | "lg" | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
7
  interface LoaderProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'>, VariantProps<typeof loaderVariants> {