@opentabs-dev/browser-extension 0.0.62 → 0.0.63
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/background-message-handlers.d.ts.map +1 -1
- package/dist/background-message-handlers.js +8 -2
- package/dist/background-message-handlers.js.map +1 -1
- package/dist/background.js +10 -69
- package/dist/extension-messages.d.ts +2 -0
- package/dist/extension-messages.d.ts.map +1 -1
- package/dist/message-router.d.ts.map +1 -1
- package/dist/message-router.js +2 -0
- package/dist/message-router.js.map +1 -1
- package/dist/offscreen/index.js +1 -1
- package/dist/offscreen/index.js.map +1 -1
- package/dist/side-panel/App.d.ts.map +1 -1
- package/dist/side-panel/App.js +3 -4
- package/dist/side-panel/App.js.map +1 -1
- package/dist/side-panel/bridge.d.ts +2 -2
- package/dist/side-panel/bridge.d.ts.map +1 -1
- package/dist/side-panel/bridge.js +7 -2
- package/dist/side-panel/bridge.js.map +1 -1
- package/dist/side-panel/components/BrowserToolsCard.d.ts +1 -2
- package/dist/side-panel/components/BrowserToolsCard.d.ts.map +1 -1
- package/dist/side-panel/components/BrowserToolsCard.js +4 -4
- package/dist/side-panel/components/BrowserToolsCard.js.map +1 -1
- package/dist/side-panel/components/PluginCard.d.ts +2 -2
- package/dist/side-panel/components/PluginCard.d.ts.map +1 -1
- package/dist/side-panel/components/PluginCard.js +31 -8
- package/dist/side-panel/components/PluginCard.js.map +1 -1
- package/dist/side-panel/components/PluginList.d.ts +2 -3
- package/dist/side-panel/components/PluginList.d.ts.map +1 -1
- package/dist/side-panel/components/PluginList.js +100 -2
- package/dist/side-panel/components/PluginList.js.map +1 -1
- package/dist/side-panel/components/SearchResults.d.ts +1 -2
- package/dist/side-panel/components/SearchResults.d.ts.map +1 -1
- package/dist/side-panel/components/SearchResults.js +2 -2
- package/dist/side-panel/components/SearchResults.js.map +1 -1
- package/dist/side-panel/group-transitions.d.ts +55 -0
- package/dist/side-panel/group-transitions.d.ts.map +1 -0
- package/dist/side-panel/group-transitions.js +84 -0
- package/dist/side-panel/group-transitions.js.map +1 -0
- package/dist/side-panel/side-panel.js +805 -486
- package/dist/side-panel/styles.css +1 -1
- package/manifest.json +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/side-panel/bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,sHAAsH;AACtH,KAAK,WAAW,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC;AAEhF,yDAAyD;AACzD,KAAK,iBAAiB,GAAG,uBAAuB,CAAC;AAEjD,2FAA2F;AAC3F,KAAK,gBAAgB,GAAG,sBAAsB,CAAC;AAE/C,sDAAsD;AACtD,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,kEAAkE;AAClE,UAAU,mBAAmB;IAC3B,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,4FAA4F;AAC5F,UAAU,qBAAqB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,6CAA6C;AAC7C,UAAU,eAAe;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,iBAAiB,CAAC,EAAE,cAAc,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oBAAoB,CAAC,EAAE,qBAAqB,EAAE,CAAC;CAChD;AAED,2FAA2F;AAC3F,QAAA,MAAM,WAAW,GAAI,MAAM,WAAW,EAAE,aAAa,MAAM,KAAG,OAGR,CAAC;AAEvD;;wDAEwD;AACxD,QAAA,MAAM,aAAa,GAAI,QAAQ,WAAW,EAAE,aAAa,MAAM,KAAG,OAK/D,CAAC;AAEJ;;;;;GAKG;AACH,QAAA,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,MAA0E,CAAC;AAsBpH,wEAAwE;AACxE,QAAA,MAAM,YAAY,QAAO,OAAO,CAAC,eAAe,CAAgE,CAAC;AAEjH,qCAAqC;AACrC,QAAA,MAAM,iBAAiB,GAAI,QAAQ,MAAM,EAAE,MAAM,MAAM,EAAE,YAAY,cAAc,KAAG,OAAO,CAAC,OAAO,CAC1B,CAAC;AAE5E,6CAA6C;AAC7C,QAAA,MAAM,qBAAqB,GAAI,QAAQ,MAAM,EAAE,YAAY,cAAc,KAAG,OAAO,CAAC,OAAO,CAClB,CAAC;AAE1E,
|
|
1
|
+
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/side-panel/bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,8 +47,13 @@ const getFullState = () => sendBgMessage({ type: 'bg:getFullState' });
|
|
|
47
47
|
const setToolPermission = (plugin, tool, permission) => sendBgMessage({ type: 'bg:setToolPermission', plugin, tool, permission });
|
|
48
48
|
/** Set all tools' permission for a plugin */
|
|
49
49
|
const setAllToolsPermission = (plugin, permission) => sendBgMessage({ type: 'bg:setAllToolsPermission', plugin, permission });
|
|
50
|
-
/** Set a plugin's default permission */
|
|
51
|
-
const setPluginPermission = (plugin, permission) => sendBgMessage({
|
|
50
|
+
/** Set a plugin's default permission. Pass reviewedVersion to also mark the plugin as reviewed. */
|
|
51
|
+
const setPluginPermission = (plugin, permission, reviewedVersion) => sendBgMessage({
|
|
52
|
+
type: 'bg:setPluginPermission',
|
|
53
|
+
plugin,
|
|
54
|
+
permission,
|
|
55
|
+
...(reviewedVersion ? { reviewedVersion } : {}),
|
|
56
|
+
});
|
|
52
57
|
/** Search npm registry for plugins matching the given query */
|
|
53
58
|
const searchPlugins = (query) => sendBgMessage({ type: 'bg:searchPlugins', query });
|
|
54
59
|
/** Install a plugin by package name */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/side-panel/bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA6DH,2FAA2F;AAC3F,MAAM,WAAW,GAAG,CAAC,IAAiB,EAAE,WAAmB,EAAW,EAAE,CACtE,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;IACpD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC7C,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAEvD;;wDAEwD;AACxD,MAAM,aAAa,GAAG,CAAC,MAAmB,EAAE,WAAmB,EAAW,EAAE,CAC1E,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;IACtD,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC/C,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CACvB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC9G,CAAC;AAEJ;;;;;GAKG;AACH,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;AAEpH;;;;GAIG;AACH,MAAM,aAAa,GAAG,CAAI,OAAgC,EAAc,EAAE,CACxE,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC9B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,QAAiB,EAAE,EAAE;QACxD,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,IAAI,eAAe,CAAC,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QACD,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;YACpE,MAAM,CAAC,IAAI,KAAK,CAAE,QAA8B,CAAC,KAAK,CAAC,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QACD,OAAO,CAAC,QAAa,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,wEAAwE;AACxE,MAAM,YAAY,GAAG,GAA6B,EAAE,CAAC,aAAa,CAAkB,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;AAEjH,qCAAqC;AACrC,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAE,IAAY,EAAE,UAA0B,EAAoB,EAAE,CACvG,aAAa,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;AAE5E,6CAA6C;AAC7C,MAAM,qBAAqB,GAAG,CAAC,MAAc,EAAE,UAA0B,EAAoB,EAAE,CAC7F,aAAa,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;AAE1E,
|
|
1
|
+
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/side-panel/bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import type { BrowserToolState } from '../bridge.js';
|
|
|
3
3
|
/** Convert a snake_case browser tool name to a human-readable display name.
|
|
4
4
|
* Removes the 'browser_' prefix and title-cases each word. */
|
|
5
5
|
declare const toDisplayName: (name: string) => string;
|
|
6
|
-
declare const BrowserToolsCard: ({ tools, activeTools, onToolsChange, toolFilter, serverVersion, browserPermission, onBrowserPermissionChange,
|
|
6
|
+
declare const BrowserToolsCard: ({ tools, activeTools, onToolsChange, toolFilter, serverVersion, browserPermission, onBrowserPermissionChange, }: {
|
|
7
7
|
tools: BrowserToolState[];
|
|
8
8
|
activeTools: Set<string>;
|
|
9
9
|
onToolsChange: (updater: (tools: BrowserToolState[]) => BrowserToolState[]) => void;
|
|
@@ -11,7 +11,6 @@ declare const BrowserToolsCard: ({ tools, activeTools, onToolsChange, toolFilter
|
|
|
11
11
|
serverVersion?: string;
|
|
12
12
|
browserPermission?: ToolPermission;
|
|
13
13
|
onBrowserPermissionChange?: (permission: ToolPermission) => void;
|
|
14
|
-
skipPermissions?: boolean;
|
|
15
14
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
16
15
|
export { BrowserToolsCard, toDisplayName };
|
|
17
16
|
//# sourceMappingURL=BrowserToolsCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserToolsCard.d.ts","sourceRoot":"","sources":["../../../src/side-panel/components/BrowserToolsCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAiCrD;8DAC8D;AAC9D,QAAA,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,MAKxB,CAAC;AAEf,QAAA,MAAM,gBAAgB,GAAI,
|
|
1
|
+
{"version":3,"file":"BrowserToolsCard.d.ts","sourceRoot":"","sources":["../../../src/side-panel/components/BrowserToolsCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAiCrD;8DAC8D;AAC9D,QAAA,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,MAKxB,CAAC;AAEf,QAAA,MAAM,gBAAgB,GAAI,iHAQvB;IACD,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,aAAa,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,KAAK,IAAI,CAAC;IACpF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,cAAc,CAAC;IACnC,yBAAyB,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAC;CAClE,4CA8JA,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -39,7 +39,7 @@ const toDisplayName = (name) => name
|
|
|
39
39
|
.split('_')
|
|
40
40
|
.map(w => w.charAt(0).toUpperCase() + w.slice(1))
|
|
41
41
|
.join(' ');
|
|
42
|
-
const BrowserToolsCard = ({ tools, activeTools, onToolsChange, toolFilter, serverVersion, browserPermission = 'off', onBrowserPermissionChange,
|
|
42
|
+
const BrowserToolsCard = ({ tools, activeTools, onToolsChange, toolFilter, serverVersion, browserPermission = 'off', onBrowserPermissionChange, }) => {
|
|
43
43
|
const [toggleError, setToggleError] = useState(null);
|
|
44
44
|
const errorTimerRef = useRef(undefined);
|
|
45
45
|
const toggleCounter = useRef(0);
|
|
@@ -105,9 +105,9 @@ const BrowserToolsCard = ({ tools, activeTools, onToolsChange, toolFilter, serve
|
|
|
105
105
|
toolGroups.push({ name: 'Other', tools: otherBucket });
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
|
-
return (_jsxs(Accordion.Item, { value: "browser-tools", children: [_jsxs(AccordionPrimitive.Header, { className: "flex", children: [_jsxs(AccordionPrimitive.Trigger, { className: "flex min-w-0 flex-1 cursor-pointer items-center gap-2 px-3 py-2 focus:outline-hidden [&[data-state=open]>svg.chevron]:rotate-180", children: [_jsx(PluginIcon, { pluginName: "browser", displayName: "Browser", tabState: "ready", size: 32, iconSvg: CHROME_ICON_SVG, iconInactiveSvg: CHROME_ICON_SVG, active: hasActiveTool }), _jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-1.5 truncate font-head text-foreground text-sm", children: ["Browser", _jsx(Badge, { variant: "default", size: "sm", className: "align-middle", children: "CORE" })] }), _jsx(ChevronDown, { className: "chevron h-4 w-4 shrink-0 transition-transform duration-200" })] }), _jsx(BrowserToolsMenu, { serverVersion: serverVersion, className: "flex shrink-0 items-center px-1" }), _jsx("div", { className: "flex shrink-0 items-center px-3", children: _jsx(PermissionSelect, { value: browserPermission, onValueChange: handleBrowserPermissionChange, disabled:
|
|
109
|
-
? toolGroups.map(group => (_jsxs("div", { children: [_jsx("div", { className: "border-border border-b bg-muted/20 px-3 py-1", children: _jsx("span", { className: "font-head text-muted-foreground text-xs uppercase tracking-wider", children: group.name }) }), group.tools.map(tool => (_jsx(ToolRow, { name: tool.name, displayName: toDisplayName(tool.name), description: tool.description, summary: tool.summary, icon: tool.icon ?? 'globe', permission: tool.permission, active: activeTools.has(`browser:${tool.name}`),
|
|
110
|
-
: visibleTools.map(tool => (_jsx(ToolRow, { name: tool.name, displayName: toDisplayName(tool.name), description: tool.description, summary: tool.summary, icon: tool.icon ?? 'globe', permission: tool.permission, active: activeTools.has(`browser:${tool.name}`),
|
|
108
|
+
return (_jsxs(Accordion.Item, { value: "browser-tools", children: [_jsxs(AccordionPrimitive.Header, { className: "flex", children: [_jsxs(AccordionPrimitive.Trigger, { className: "flex min-w-0 flex-1 cursor-pointer items-center gap-2 px-3 py-2 focus:outline-hidden [&[data-state=open]>svg.chevron]:rotate-180", children: [_jsx(PluginIcon, { pluginName: "browser", displayName: "Browser", tabState: "ready", size: 32, iconSvg: CHROME_ICON_SVG, iconInactiveSvg: CHROME_ICON_SVG, active: hasActiveTool }), _jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-1.5 truncate font-head text-foreground text-sm", children: ["Browser", _jsx(Badge, { variant: "default", size: "sm", className: "align-middle", children: "CORE" })] }), _jsx(ChevronDown, { className: "chevron h-4 w-4 shrink-0 transition-transform duration-200" })] }), _jsx(BrowserToolsMenu, { serverVersion: serverVersion, className: "flex shrink-0 items-center px-1" }), _jsx("div", { className: "flex shrink-0 items-center px-3", children: _jsx(PermissionSelect, { value: browserPermission, onValueChange: handleBrowserPermissionChange, disabled: false, ariaLabel: "Permission for browser tools" }) })] }), toggleError && (_jsx(Alert, { status: "error", className: "mx-3 mb-1 px-2 py-1 text-xs", children: toggleError })), _jsxs(Accordion.Content, { className: "border-border border-t", children: [toolFilter && (_jsxs("div", { className: "mb-1 px-3 pt-2 text-muted-foreground text-xs", children: [visibleTools.length, " of ", tools.length, " tools"] })), hasAnyGroup
|
|
109
|
+
? toolGroups.map(group => (_jsxs("div", { children: [_jsx("div", { className: "border-border border-b bg-muted/20 px-3 py-1", children: _jsx("span", { className: "font-head text-muted-foreground text-xs uppercase tracking-wider", children: group.name }) }), group.tools.map(tool => (_jsx(ToolRow, { name: tool.name, displayName: toDisplayName(tool.name), description: tool.description, summary: tool.summary, icon: tool.icon ?? 'globe', permission: tool.permission, active: activeTools.has(`browser:${tool.name}`), onPermissionChange: handleToolPermissionChange }, tool.name)))] }, group.name)))
|
|
110
|
+
: visibleTools.map(tool => (_jsx(ToolRow, { name: tool.name, displayName: toDisplayName(tool.name), description: tool.description, summary: tool.summary, icon: tool.icon ?? 'globe', permission: tool.permission, active: activeTools.has(`browser:${tool.name}`), onPermissionChange: handleToolPermissionChange }, tool.name)))] })] }));
|
|
111
111
|
};
|
|
112
112
|
export { BrowserToolsCard, toDisplayName };
|
|
113
113
|
//# sourceMappingURL=BrowserToolsCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserToolsCard.js","sourceRoot":"","sources":["../../../src/side-panel/components/BrowserToolsCard.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,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,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEzD,wFAAwF;AACxF,MAAM,eAAe,GAAG;IACtB,8DAA8D;IAC9D,QAAQ;IACR,wGAAwG;IACxG,gFAAgF;IAChF,mBAAmB;IACnB,mHAAmH;IACnH,gFAAgF;IAChF,mBAAmB;IACnB,iHAAiH;IACjH,gFAAgF;IAChF,mBAAmB;IACnB,SAAS;IACT,mDAAmD;IACnD,2IAA2I;IAC3I,yIAAyI;IACzI,kDAAkD;IAClD,0JAA0J;IAC1J,gKAAgK;IAChK,QAAQ;CACT,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEX;8DAC8D;AAC9D,MAAM,aAAa,GAAG,CAAC,IAAY,EAAU,EAAE,CAC7C,IAAI;KACD,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;KACxB,KAAK,CAAC,GAAG,CAAC;KACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAChD,IAAI,CAAC,GAAG,CAAC,CAAC;AAEf,MAAM,gBAAgB,GAAG,CAAC,EACxB,KAAK,EACL,WAAW,EACX,aAAa,EACb,UAAU,EACV,aAAa,EACb,iBAAiB,GAAG,KAAK,EACzB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"BrowserToolsCard.js","sourceRoot":"","sources":["../../../src/side-panel/components/BrowserToolsCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Dispatch, SetStateAction } from 'react';
|
|
2
2
|
import type { PluginState } from '../bridge.js';
|
|
3
|
-
declare const PluginCard: ({ plugin, activeTools, setPlugins, toolFilter, onUpdate, onRemove, updatingPlugin, removingPlugin, actionError,
|
|
3
|
+
declare const PluginCard: ({ plugin, activeTools, setPlugins, toolFilter, onUpdate, onRemove, updatingPlugin, removingPlugin, actionError, transitionClass, }: {
|
|
4
4
|
plugin: PluginState;
|
|
5
5
|
activeTools: Set<string>;
|
|
6
6
|
setPlugins: Dispatch<SetStateAction<PluginState[]>>;
|
|
@@ -10,7 +10,7 @@ declare const PluginCard: ({ plugin, activeTools, setPlugins, toolFilter, onUpda
|
|
|
10
10
|
updatingPlugin?: boolean;
|
|
11
11
|
removingPlugin?: boolean;
|
|
12
12
|
actionError?: string | null;
|
|
13
|
-
|
|
13
|
+
transitionClass?: string;
|
|
14
14
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
15
15
|
export { PluginCard };
|
|
16
16
|
//# sourceMappingURL=PluginCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginCard.d.ts","sourceRoot":"","sources":["../../../src/side-panel/components/PluginCard.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"PluginCard.d.ts","sourceRoot":"","sources":["../../../src/side-panel/components/PluginCard.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,cAAc,CAAC;AAa7D,QAAA,MAAM,UAAU,GAAI,oIAWjB;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;IACzB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,4CAoQA,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
3
|
-
import { ChevronDown } from 'lucide-react';
|
|
3
|
+
import { ChevronDown, ShieldQuestionMark } from 'lucide-react';
|
|
4
4
|
import { useEffect, useRef, useState } from 'react';
|
|
5
5
|
import { matchesTool, setPluginPermission, setToolPermission } from '../bridge.js';
|
|
6
6
|
import { ERROR_DISPLAY_DURATION_MS } from '../constants.js';
|
|
@@ -9,10 +9,13 @@ import { PluginMenu } from './PluginMenu.js';
|
|
|
9
9
|
import { Accordion } from './retro/Accordion.js';
|
|
10
10
|
import { Alert } from './retro/Alert.js';
|
|
11
11
|
import { Badge } from './retro/Badge.js';
|
|
12
|
+
import { Button } from './retro/Button.js';
|
|
13
|
+
import { Dialog } from './retro/Dialog.js';
|
|
12
14
|
import { Tooltip } from './retro/Tooltip.js';
|
|
13
15
|
import { PermissionSelect, ToolRow } from './ToolRow.js';
|
|
14
|
-
const PluginCard = ({ plugin, activeTools, setPlugins, toolFilter, onUpdate, onRemove, updatingPlugin, removingPlugin, actionError,
|
|
16
|
+
const PluginCard = ({ plugin, activeTools, setPlugins, toolFilter, onUpdate, onRemove, updatingPlugin, removingPlugin, actionError, transitionClass, }) => {
|
|
15
17
|
const [toggleError, setToggleError] = useState(null);
|
|
18
|
+
const [pendingPermission, setPendingPermission] = useState(null);
|
|
16
19
|
const errorTimerRef = useRef(undefined);
|
|
17
20
|
const toggleCounter = useRef(0);
|
|
18
21
|
const preToggleRef = useRef([]);
|
|
@@ -25,17 +28,32 @@ const PluginCard = ({ plugin, activeTools, setPlugins, toolFilter, onUpdate, onR
|
|
|
25
28
|
const pluginTools = plugin.tools ?? [];
|
|
26
29
|
const updatePluginTools = (updater) => setPlugins(prev => prev.map(p => (p.name === plugin.name ? { ...p, tools: updater(p.tools ?? []) } : p)));
|
|
27
30
|
const prePluginPermRef = useRef('off');
|
|
28
|
-
const
|
|
31
|
+
const applyPluginPermission = (newPermission, reviewedVersion) => {
|
|
29
32
|
const myVersion = ++toggleCounter.current;
|
|
30
33
|
prePluginPermRef.current = plugin.permission;
|
|
31
|
-
setPlugins(prev => prev.map(p =>
|
|
32
|
-
|
|
34
|
+
setPlugins(prev => prev.map(p => p.name === plugin.name
|
|
35
|
+
? { ...p, permission: newPermission, ...(reviewedVersion ? { reviewed: true } : {}) }
|
|
36
|
+
: p));
|
|
37
|
+
void setPluginPermission(plugin.name, newPermission, reviewedVersion).catch(() => {
|
|
33
38
|
if (toggleCounter.current === myVersion) {
|
|
34
39
|
setPlugins(prev => prev.map(p => (p.name === plugin.name ? { ...p, permission: prePluginPermRef.current } : p)));
|
|
35
40
|
}
|
|
36
41
|
showToggleError('Failed to update plugin permission');
|
|
37
42
|
});
|
|
38
43
|
};
|
|
44
|
+
const handlePluginPermissionChange = (newPermission) => {
|
|
45
|
+
if (!plugin.reviewed && plugin.permission === 'off' && newPermission !== 'off') {
|
|
46
|
+
setPendingPermission(newPermission);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
applyPluginPermission(newPermission);
|
|
50
|
+
};
|
|
51
|
+
const handleEnableAnyway = () => {
|
|
52
|
+
if (pendingPermission) {
|
|
53
|
+
applyPluginPermission(pendingPermission, plugin.version);
|
|
54
|
+
}
|
|
55
|
+
setPendingPermission(null);
|
|
56
|
+
};
|
|
39
57
|
const handleToolPermissionChange = (toolName, newPermission) => {
|
|
40
58
|
const myVersion = ++toggleCounter.current;
|
|
41
59
|
updatePluginTools(prev => {
|
|
@@ -76,9 +94,14 @@ const PluginCard = ({ plugin, activeTools, setPlugins, toolFilter, onUpdate, onR
|
|
|
76
94
|
toolGroups.push({ name: 'Other', tools: otherBucket });
|
|
77
95
|
}
|
|
78
96
|
}
|
|
79
|
-
return (_jsxs(Accordion.Item, { value: plugin.name, className:
|
|
80
|
-
|
|
81
|
-
|
|
97
|
+
return (_jsxs(Accordion.Item, { value: plugin.name, className: transitionClass ??
|
|
98
|
+
(removingPlugin
|
|
99
|
+
? 'pointer-events-none opacity-60 transition-opacity'
|
|
100
|
+
: plugin.tabState !== 'ready'
|
|
101
|
+
? 'opacity-70 transition-opacity'
|
|
102
|
+
: undefined), children: [_jsxs(AccordionPrimitive.Header, { className: "flex", children: [_jsxs(AccordionPrimitive.Trigger, { className: "flex min-w-0 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, size: 32, iconSvg: plugin.iconSvg, iconInactiveSvg: plugin.iconInactiveSvg, iconDarkSvg: plugin.iconDarkSvg, iconDarkInactiveSvg: plugin.iconDarkInactiveSvg, active: hasActiveTool }) }) }), _jsxs(Tooltip.Content, { children: ["v", plugin.version] })] }), _jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-1.5 truncate font-head text-foreground 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 align-middle text-accent-foreground", children: "SDK" }) }), _jsx(Tooltip.Content, { children: "SDK version mismatch \u2014 rebuild plugin" })] })), !plugin.reviewed && (_jsxs(Tooltip, { children: [_jsx(Tooltip.Trigger, { asChild: true, children: _jsx(ShieldQuestionMark, { className: "inline-block h-3.5 w-3.5 align-middle text-muted-foreground" }) }), _jsx(Tooltip.Content, { children: "This plugin version has not been reviewed" })] }))] }), _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", children: _jsx(PermissionSelect, { value: plugin.permission, onValueChange: handlePluginPermissionChange, disabled: false, ariaLabel: `Permission for ${plugin.name} plugin` }) })] }), toggleError && (_jsx(Alert, { status: "error", className: "mx-3 mb-1 px-2 py-1 text-xs", children: toggleError })), actionError && (_jsx(Alert, { status: "error", className: "mx-3 mb-1 px-2 py-1 text-xs", children: actionError })), _jsxs(Accordion.Content, { className: "border-border border-t", children: [toolFilter && (_jsxs("div", { className: "mb-1 px-3 pt-2 text-muted-foreground text-xs", children: [visibleTools.length, " of ", pluginTools.length, " tools"] })), hasAnyGroup
|
|
103
|
+
? toolGroups.map(group => (_jsxs("div", { children: [_jsx("div", { className: "border-border border-b bg-muted/20 px-3 py-1", children: _jsx("span", { className: "font-head text-muted-foreground text-xs uppercase tracking-wider", children: group.name }) }), group.tools.map(tool => (_jsx(ToolRow, { name: tool.name, displayName: tool.displayName, description: tool.description, summary: tool.summary, icon: tool.icon, permission: tool.permission, active: activeTools.has(`${plugin.name}:${tool.name}`), onPermissionChange: handleToolPermissionChange }, tool.name)))] }, group.name)))
|
|
104
|
+
: visibleTools.map(tool => (_jsx(ToolRow, { name: tool.name, displayName: tool.displayName, description: tool.description, summary: tool.summary, icon: tool.icon, permission: tool.permission, active: activeTools.has(`${plugin.name}:${tool.name}`), onPermissionChange: handleToolPermissionChange }, tool.name)))] }), _jsx(Dialog, { open: pendingPermission !== null, onOpenChange: open => !open && setPendingPermission(null), children: _jsxs(Dialog.Content, { onInteractOutside: (e) => e.preventDefault(), children: [_jsx(Dialog.Header, { children: "Unreviewed Plugin" }), _jsxs(Dialog.Body, { children: [_jsxs("p", { className: "font-mono text-foreground text-sm", children: [plugin.displayName, " v", plugin.version] }), _jsxs("p", { className: "mt-2 text-foreground text-sm", children: ["This plugin version has not been reviewed. You can ask your AI agent to review the adapter code by saying \u201Creview the ", plugin.name, " plugin\u201D in your chat."] }), _jsx("p", { className: "mt-2 text-muted-foreground text-xs", children: "You can also enable it now without review." })] }), _jsxs(Dialog.Footer, { children: [_jsx(Dialog.Close, { asChild: true, children: _jsx(Button, { size: "sm", variant: "outline", children: "Cancel" }) }), _jsx(Button, { size: "sm", onClick: handleEnableAnyway, children: "Enable Anyway" })] })] }) })] }));
|
|
82
105
|
};
|
|
83
106
|
export { PluginCard };
|
|
84
107
|
//# sourceMappingURL=PluginCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginCard.js","sourceRoot":"","sources":["../../../src/side-panel/components/PluginCard.tsx"],"names":[],"mappings":";AAGA,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"PluginCard.js","sourceRoot":"","sources":["../../../src/side-panel/components/PluginCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Dispatch, type SetStateAction } from 'react';
|
|
2
2
|
import type { FailedPluginState, PluginState } from '../bridge.js';
|
|
3
|
-
declare const PluginList: ({ plugins, failedPlugins, activeTools, setPlugins, toolFilter, onUpdate, onRemove, removingPlugins, pluginErrors,
|
|
3
|
+
declare const PluginList: ({ plugins, failedPlugins, activeTools, setPlugins, toolFilter, onUpdate, onRemove, removingPlugins, pluginErrors, }: {
|
|
4
4
|
plugins: PluginState[];
|
|
5
5
|
failedPlugins: FailedPluginState[];
|
|
6
6
|
activeTools: Set<string>;
|
|
@@ -10,7 +10,6 @@ declare const PluginList: ({ plugins, failedPlugins, activeTools, setPlugins, to
|
|
|
10
10
|
onRemove?: (pluginName: string) => void;
|
|
11
11
|
removingPlugins?: Set<string>;
|
|
12
12
|
pluginErrors?: Map<string, string>;
|
|
13
|
-
skipPermissions?: boolean;
|
|
14
13
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
15
14
|
export { PluginList };
|
|
16
15
|
//# sourceMappingURL=PluginList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginList.d.ts","sourceRoot":"","sources":["../../../src/side-panel/components/PluginList.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PluginList.d.ts","sourceRoot":"","sources":["../../../src/side-panel/components/PluginList.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAA4C,MAAM,OAAO,CAAC;AACrG,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AA4EnE,QAAA,MAAM,UAAU,GAAI,qHAUjB;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;IAC9B,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,4CAsHA,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -1,19 +1,117 @@
|
|
|
1
1
|
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
3
|
import { matchesTool } from '../bridge.js';
|
|
4
|
+
import { buildStateSnapshot, collapseTransitioningItems, detectGroupChanges, FADE_IN_MS, getTransitionClass, groupPlugins, } from '../group-transitions.js';
|
|
3
5
|
import { FailedPluginCard } from './FailedPluginCard.js';
|
|
4
6
|
import { PluginCard } from './PluginCard.js';
|
|
5
7
|
import { Accordion } from './retro/Accordion.js';
|
|
6
|
-
|
|
8
|
+
/**
|
|
9
|
+
* React hook that tracks which plugins are currently animating after a group change.
|
|
10
|
+
* Uses per-plugin timers to clear the animation class after FADE_IN_MS.
|
|
11
|
+
*/
|
|
12
|
+
function useGroupTransitions(plugins, isFiltering) {
|
|
13
|
+
const prevStates = useRef(new Map());
|
|
14
|
+
const [animating, setAnimating] = useState(new Set());
|
|
15
|
+
const clearTimers = useRef(new Map());
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
if (isFiltering) {
|
|
18
|
+
prevStates.current = buildStateSnapshot(plugins);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const changed = detectGroupChanges(prevStates.current, plugins);
|
|
22
|
+
prevStates.current = buildStateSnapshot(plugins);
|
|
23
|
+
if (changed.size === 0)
|
|
24
|
+
return;
|
|
25
|
+
setAnimating(prev => {
|
|
26
|
+
const next = new Set(prev);
|
|
27
|
+
for (const name of changed)
|
|
28
|
+
next.add(name);
|
|
29
|
+
return next;
|
|
30
|
+
});
|
|
31
|
+
// Per-plugin timer so rapid successive transitions don't cancel each other
|
|
32
|
+
for (const name of changed) {
|
|
33
|
+
const existing = clearTimers.current.get(name);
|
|
34
|
+
if (existing)
|
|
35
|
+
clearTimeout(existing);
|
|
36
|
+
clearTimers.current.set(name, setTimeout(() => {
|
|
37
|
+
clearTimers.current.delete(name);
|
|
38
|
+
setAnimating(prev => {
|
|
39
|
+
if (!prev.has(name))
|
|
40
|
+
return prev;
|
|
41
|
+
const next = new Set(prev);
|
|
42
|
+
next.delete(name);
|
|
43
|
+
return next;
|
|
44
|
+
});
|
|
45
|
+
}, FADE_IN_MS));
|
|
46
|
+
}
|
|
47
|
+
}, [plugins, isFiltering]);
|
|
48
|
+
// Cleanup all timers on unmount
|
|
49
|
+
useEffect(() => () => {
|
|
50
|
+
for (const timer of clearTimers.current.values())
|
|
51
|
+
clearTimeout(timer);
|
|
52
|
+
}, []);
|
|
53
|
+
const resolveTransitionClass = useCallback((pluginName, isReadyGroup) => getTransitionClass(pluginName, isReadyGroup, animating), [animating]);
|
|
54
|
+
return { animating, resolveTransitionClass };
|
|
55
|
+
}
|
|
56
|
+
const PluginList = ({ plugins, failedPlugins, activeTools, setPlugins, toolFilter, onUpdate, onRemove, removingPlugins, pluginErrors, }) => {
|
|
7
57
|
const filterLower = toolFilter.toLowerCase();
|
|
8
58
|
const visiblePlugins = filterLower
|
|
9
59
|
? plugins.filter(p => (p.tools ?? []).some(t => matchesTool(t, filterLower)))
|
|
10
60
|
: plugins;
|
|
11
61
|
// Hide failed plugins when filtering tools
|
|
12
62
|
const visibleFailed = filterLower ? [] : failedPlugins;
|
|
63
|
+
const { animating, resolveTransitionClass } = useGroupTransitions(plugins, !!filterLower);
|
|
64
|
+
// Controlled accordion state — collapse cards when they change groups
|
|
65
|
+
const [openReady, setOpenReady] = useState([]);
|
|
66
|
+
const [openNotReady, setOpenNotReady] = useState([]);
|
|
67
|
+
useEffect(() => {
|
|
68
|
+
if (animating.size === 0)
|
|
69
|
+
return;
|
|
70
|
+
setOpenReady(prev => collapseTransitioningItems(prev, animating));
|
|
71
|
+
setOpenNotReady(prev => collapseTransitioningItems(prev, animating));
|
|
72
|
+
}, [animating]);
|
|
73
|
+
// Group plugins by readiness (only when not filtering)
|
|
74
|
+
const { ready: readyPlugins, notReady: notReadyPlugins } = filterLower
|
|
75
|
+
? { ready: [], notReady: [] }
|
|
76
|
+
: groupPlugins(visiblePlugins);
|
|
77
|
+
const hasNotReady = notReadyPlugins.length > 0;
|
|
78
|
+
// Track whether the not-ready section was previously visible for label animation
|
|
79
|
+
const prevHadNotReady = useRef(false);
|
|
80
|
+
const [labelVisible, setLabelVisible] = useState(false);
|
|
81
|
+
const [labelMounted, setLabelMounted] = useState(false);
|
|
82
|
+
useEffect(() => {
|
|
83
|
+
let unmountTimer;
|
|
84
|
+
if (filterLower) {
|
|
85
|
+
setLabelMounted(false);
|
|
86
|
+
setLabelVisible(false);
|
|
87
|
+
prevHadNotReady.current = false;
|
|
88
|
+
}
|
|
89
|
+
else if (hasNotReady && !prevHadNotReady.current) {
|
|
90
|
+
setLabelMounted(true);
|
|
91
|
+
requestAnimationFrame(() => {
|
|
92
|
+
requestAnimationFrame(() => {
|
|
93
|
+
setLabelVisible(true);
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
prevHadNotReady.current = hasNotReady;
|
|
97
|
+
}
|
|
98
|
+
else if (!hasNotReady && prevHadNotReady.current) {
|
|
99
|
+
setLabelVisible(false);
|
|
100
|
+
unmountTimer = setTimeout(() => setLabelMounted(false), FADE_IN_MS);
|
|
101
|
+
prevHadNotReady.current = hasNotReady;
|
|
102
|
+
}
|
|
103
|
+
else if (hasNotReady) {
|
|
104
|
+
setLabelMounted(true);
|
|
105
|
+
setLabelVisible(true);
|
|
106
|
+
prevHadNotReady.current = hasNotReady;
|
|
107
|
+
}
|
|
108
|
+
return () => clearTimeout(unmountTimer);
|
|
109
|
+
}, [hasNotReady, filterLower]);
|
|
13
110
|
if (filterLower && visiblePlugins.length === 0) {
|
|
14
111
|
return (_jsxs("div", { className: "py-8 text-center text-muted-foreground text-sm", children: ["No tools matching \u201C", toolFilter, "\u201D"] }));
|
|
15
112
|
}
|
|
16
|
-
|
|
113
|
+
const renderCard = (plugin, isReadyGroup) => (_jsx(PluginCard, { plugin: plugin, activeTools: activeTools, setPlugins: setPlugins, toolFilter: toolFilter, onUpdate: onUpdate ? () => onUpdate(plugin.name) : undefined, onRemove: onRemove ? () => onRemove(plugin.name) : undefined, removingPlugin: removingPlugins?.has(plugin.name), actionError: pluginErrors?.get(plugin.name) ?? null, transitionClass: resolveTransitionClass(plugin.name, isReadyGroup) }, plugin.name));
|
|
114
|
+
return (_jsxs(_Fragment, { children: [visibleFailed.length > 0 && (_jsx("div", { className: "mb-3 space-y-2", children: visibleFailed.map(fp => (_jsx(FailedPluginCard, { plugin: fp }, fp.specifier))) })), filterLower ? (_jsx(Accordion, { type: "multiple", className: "space-y-2", children: visiblePlugins.map(p => renderCard(p, true)) })) : (_jsxs(_Fragment, { children: [readyPlugins.length > 0 && (_jsx(Accordion, { type: "multiple", value: openReady, onValueChange: setOpenReady, className: "space-y-2", children: readyPlugins.map(p => renderCard(p, true)) })), labelMounted && (_jsx("div", { className: `px-3 pt-3 pb-1 font-mono text-[10px] text-muted-foreground uppercase tracking-widest transition-opacity duration-200 ${labelVisible ? 'opacity-100' : 'opacity-0'}`, children: "NOT CONNECTED" })), notReadyPlugins.length > 0 && (_jsx(Accordion, { type: "multiple", value: openNotReady, onValueChange: setOpenNotReady, className: "space-y-2", children: notReadyPlugins.map(p => renderCard(p, false)) }))] }))] }));
|
|
17
115
|
};
|
|
18
116
|
export { PluginList };
|
|
19
117
|
//# sourceMappingURL=PluginList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginList.js","sourceRoot":"","sources":["../../../src/side-panel/components/PluginList.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"PluginList.js","sourceRoot":"","sources":["../../../src/side-panel/components/PluginList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -18,10 +18,9 @@ interface SearchResultsProps {
|
|
|
18
18
|
removingPlugins?: Set<string>;
|
|
19
19
|
pluginErrors?: Map<string, string>;
|
|
20
20
|
serverVersion?: string;
|
|
21
|
-
skipPermissions?: boolean;
|
|
22
21
|
}
|
|
23
22
|
declare const SearchResults: {
|
|
24
|
-
({ plugins, failedPlugins, browserTools, activeTools, setPlugins, setBrowserTools, toolFilter, npmResults, npmSearching, installingPlugins, onInstall, installErrors, onUpdate, onRemove, removingPlugins, pluginErrors, serverVersion,
|
|
23
|
+
({ plugins, failedPlugins, browserTools, activeTools, setPlugins, setBrowserTools, toolFilter, npmResults, npmSearching, installingPlugins, onInstall, installErrors, onUpdate, onRemove, removingPlugins, pluginErrors, serverVersion, }: SearchResultsProps): import("react/jsx-runtime").JSX.Element;
|
|
25
24
|
displayName: string;
|
|
26
25
|
};
|
|
27
26
|
export { SearchResults };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchResults.d.ts","sourceRoot":"","sources":["../../../src/side-panel/components/SearchResults.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAa,cAAc,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAQtG,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;IAC9B,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"SearchResults.d.ts","sourceRoot":"","sources":["../../../src/side-panel/components/SearchResults.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAa,cAAc,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAQtG,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;IAC9B,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAYD,QAAA,MAAM,aAAa;+OAkBhB,kBAAkB;;CAqFpB,CAAC;AAIF,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -10,7 +10,7 @@ const SectionHeader = ({ children }) => (_jsx("div", { className: "mb-1.5 font-h
|
|
|
10
10
|
const matchesBrowserTool = (tool, filterLower) => toDisplayName(tool.name).toLowerCase().includes(filterLower) ||
|
|
11
11
|
tool.name.toLowerCase().includes(filterLower) ||
|
|
12
12
|
tool.description.toLowerCase().includes(filterLower);
|
|
13
|
-
const SearchResults = ({ plugins, failedPlugins, browserTools, activeTools, setPlugins, setBrowserTools, toolFilter, npmResults, npmSearching, installingPlugins, onInstall, installErrors, onUpdate, onRemove, removingPlugins, pluginErrors, serverVersion,
|
|
13
|
+
const SearchResults = ({ plugins, failedPlugins, browserTools, activeTools, setPlugins, setBrowserTools, toolFilter, npmResults, npmSearching, installingPlugins, onInstall, installErrors, onUpdate, onRemove, removingPlugins, pluginErrors, serverVersion, }) => {
|
|
14
14
|
const filterLower = toolFilter.toLowerCase();
|
|
15
15
|
// Filter installed plugins using matchesPlugin (name + displayName + tools)
|
|
16
16
|
const installedMatches = filterLower ? plugins.filter(p => matchesPlugin(p, filterLower)) : plugins;
|
|
@@ -26,7 +26,7 @@ const SearchResults = ({ plugins, failedPlugins, browserTools, activeTools, setP
|
|
|
26
26
|
const availableResults = npmResults.filter(r => !installedShortNames.has(extractShortName(r.name)));
|
|
27
27
|
const hasInstalledResults = installedMatches.length > 0 || failedMatches.length > 0 || hasBrowserToolMatches;
|
|
28
28
|
const showNoResults = toolFilter && !hasInstalledResults && !npmSearching && availableResults.length === 0;
|
|
29
|
-
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, serverVersion: serverVersion
|
|
29
|
+
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, serverVersion: serverVersion }) })), _jsx(PluginList, { plugins: installedMatches, failedPlugins: failedMatches, activeTools: activeTools, setPlugins: setPlugins, toolFilter: "", onUpdate: onUpdate, onRemove: onRemove, removingPlugins: removingPlugins, pluginErrors: pluginErrors })] })), toolFilter &&
|
|
30
30
|
(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: "py-8 text-center text-muted-foreground text-sm", children: "No results" })] }));
|
|
31
31
|
};
|
|
32
32
|
SearchResults.displayName = 'SearchResults';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchResults.js","sourceRoot":"","sources":["../../../src/side-panel/components/SearchResults.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"SearchResults.js","sourceRoot":"","sources":["../../../src/side-panel/components/SearchResults.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure logic for plugin readiness grouping and transition animations.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from PluginList so it can be tested without React rendering.
|
|
5
|
+
* The React hook in PluginList drives this state machine with timers.
|
|
6
|
+
*/
|
|
7
|
+
import type { TabState } from '@opentabs-dev/shared';
|
|
8
|
+
/** Duration for fade-in animation at the new position (ms) */
|
|
9
|
+
declare const FADE_IN_MS = 200;
|
|
10
|
+
interface GroupablePlugin {
|
|
11
|
+
readonly name: string;
|
|
12
|
+
readonly tabState: TabState;
|
|
13
|
+
}
|
|
14
|
+
interface GroupResult<T extends GroupablePlugin> {
|
|
15
|
+
readonly ready: T[];
|
|
16
|
+
readonly notReady: T[];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Split plugins into ready and not-ready groups.
|
|
20
|
+
* A plugin is "ready" only when tabState === 'ready'.
|
|
21
|
+
* Both 'unavailable' and 'closed' are not-ready.
|
|
22
|
+
*/
|
|
23
|
+
declare function groupPlugins<T extends GroupablePlugin>(plugins: readonly T[]): GroupResult<T>;
|
|
24
|
+
/**
|
|
25
|
+
* Detect which plugins changed readiness group between two snapshots.
|
|
26
|
+
* Returns the set of plugin names that crossed the ready/not-ready boundary.
|
|
27
|
+
*
|
|
28
|
+
* A plugin that was not present in the previous snapshot is treated as new
|
|
29
|
+
* (no transition). A plugin that disappeared is ignored.
|
|
30
|
+
*/
|
|
31
|
+
declare function detectGroupChanges(prev: ReadonlyMap<string, TabState>, current: readonly GroupablePlugin[]): Set<string>;
|
|
32
|
+
/**
|
|
33
|
+
* Build a snapshot map of plugin name → tabState for change detection.
|
|
34
|
+
*/
|
|
35
|
+
declare function buildStateSnapshot(plugins: readonly GroupablePlugin[]): Map<string, TabState>;
|
|
36
|
+
/**
|
|
37
|
+
* Resolve the CSS class for a plugin that is currently animating.
|
|
38
|
+
* Returns undefined if the plugin is not animating.
|
|
39
|
+
*
|
|
40
|
+
* - Ready group target: full opacity fade-in
|
|
41
|
+
* - Not-ready group target: reduced opacity (0.7) fade-in
|
|
42
|
+
*/
|
|
43
|
+
declare function getTransitionClass(pluginName: string, isReadyGroup: boolean, animating: ReadonlySet<string>): string | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Remove transitioning plugins from an accordion's open list.
|
|
46
|
+
* When a plugin changes groups, its expanded state must be reset
|
|
47
|
+
* so it arrives collapsed at its new position.
|
|
48
|
+
*
|
|
49
|
+
* Returns the original array (same reference) if nothing was removed,
|
|
50
|
+
* or a new filtered array if any items were removed.
|
|
51
|
+
*/
|
|
52
|
+
declare function collapseTransitioningItems(openItems: readonly string[], animating: ReadonlySet<string>): string[];
|
|
53
|
+
export { FADE_IN_MS, buildStateSnapshot, collapseTransitioningItems, detectGroupChanges, getTransitionClass, groupPlugins, };
|
|
54
|
+
export type { GroupResult, GroupablePlugin };
|
|
55
|
+
//# sourceMappingURL=group-transitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-transitions.d.ts","sourceRoot":"","sources":["../../src/side-panel/group-transitions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,8DAA8D;AAC9D,QAAA,MAAM,UAAU,MAAM,CAAC;AAIvB,UAAU,eAAe;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAED,UAAU,WAAW,CAAC,CAAC,SAAS,eAAe;IAC7C,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;CACxB;AAED;;;;GAIG;AACH,iBAAS,YAAY,CAAC,CAAC,SAAS,eAAe,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAWtF;AAID;;;;;;GAMG;AACH,iBAAS,kBAAkB,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,SAAS,eAAe,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAYjH;AAED;;GAEG;AACH,iBAAS,kBAAkB,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAEtF;AAID;;;;;;GAMG;AACH,iBAAS,kBAAkB,CACzB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,OAAO,EACrB,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,GAC7B,MAAM,GAAG,SAAS,CAGpB;AAID;;;;;;;GAOG;AACH,iBAAS,0BAA0B,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAI1G;AAED,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,GACb,CAAC;AACF,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC"}
|