Files
AEmotionStudio-ComfyUI-Magn…/web/sidebar/SidebarAbout.js
T
Æmotion StudioandClaude Opus 5.5 4b06ee92bb Update the Inspector panel look, navigation and editing
Restyle the panel on ComfyUI palette tokens and drop the built-in themes.
Add a header with Back/Forward, Prev/Next, Focus, Lock and a searchable
Go to node picker, a subgraph/group breadcrumb, and simplified modes:
Follow glass or Float, plus Sticky, Follow selection and Lock to node
(replaces Hold).

Fix widget edits (step2 steps, INT/FLOAT, commit on Enter/blur, undo),
subgraph lookups, orphaned dropdown menus, global arrow-key capture,
the pop-out editor, and remove Google Fonts loading and dead code.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 06:47:21 -08:00

86 lines
3.6 KiB
JavaScript

const REPO = "https://github.com/AEmotionStudio/ComfyUI-MagnifyGlass";
const DISCORD = "https://discord.gg/UzC9353mfp";
const KOFI = "https://ko-fi.com/aemotionstudio";
const WEBSITE = "https://aemotionstudio.org/";
const LINKS = [
["pi-github", "GitHub", REPO],
["pi-exclamation-circle", "Report an issue", `${REPO}/issues`],
["pi-discord", "Discord", DISCORD],
["pi-youtube", "YouTube", "https://www.youtube.com/@aemotionstudio/videos"],
["pi-heart", "Ko-fi", KOFI],
["pi-globe", "Website", WEBSITE]
];
const PACKS = [
["Enhanced Links & Nodes", "Animated links and nodes that keep every native click.", "https://github.com/AEmotionStudio/ComfyUI-EnhancedLinksandNodes"],
["FFMPEGA", "Video editing in natural language with an FFMPEG agent.", "https://github.com/AEmotionStudio/ComfyUI-FFMPEGA"],
["ShaderNoiseKSampler", "A KSampler that blends shader noise into generation.", "https://github.com/AEmotionStudio/ComfyUI-ShaderNoiseKSampler"],
["DiscordSend", "Send images and videos straight to Discord.", "https://github.com/AEmotionStudio/ComfyUI-DiscordSend"],
["RefCap", "Reference capture for MiniMax H3.", "https://github.com/AEmotionStudio/ComfyUI-RefCap"],
["PROMPTA", "Natural language into model-specific prompts.", "https://github.com/AEmotionStudio/ComfyUI-PROMPTA"],
["Chat2Me", "Chat with a character that replies in video.", "https://github.com/aemotion-studio/ComfyUI-Chat2Me"]
];
const ABOUT_BADGES = [
{ label: `MagnifyGlass ${"1.15.0"}`, url: REPO, icon: "pi pi-github" }
];
const STUDIO = "Developed by Æmotion Studio, MagnifyGlass brings a customizable magnifying glass and node inspector to your ComfyUI workflow. Contributions are welcome!";
function link(href, text) {
const a = document.createElement("a");
a.href = href;
a.target = "_blank";
a.rel = "noopener noreferrer";
a.textContent = text;
return a;
}
function icon(name) {
const i = document.createElement("i");
i.className = `pi ${name}`;
i.setAttribute("aria-hidden", "true");
return i;
}
function renderAbout() {
const about = document.createElement("section");
about.className = "magnify-about";
const brand = document.createElement("div");
brand.className = "magnify-brand";
const heading = document.createElement("h3");
heading.className = "magnify-heading";
heading.textContent = `MagnifyGlass ${"1.15.0"}`;
const byline = document.createElement("p");
byline.className = "magnify-hint";
byline.textContent = "by Æmotion Studio · GPL-3.0";
const text = document.createElement("div");
text.append(heading, byline);
brand.append(icon("pi-search"), text);
const actions = document.createElement("div");
actions.className = "magnify-actions";
for (const [name, label, href] of LINKS) {
const a = link(href, label);
a.className = "magnify-link";
a.prepend(icon(name));
actions.appendChild(a);
}
const studio = document.createElement("details");
studio.className = "magnify-studio";
const summary = document.createElement("summary");
summary.textContent = "More from Æmotion Studio";
const blurb = document.createElement("p");
blurb.textContent = STUDIO;
const packs = document.createElement("ul");
packs.className = "magnify-packs";
for (const [name, what, href] of PACKS) {
const item = document.createElement("li");
const hint = document.createElement("span");
hint.className = "magnify-hint";
hint.textContent = what;
item.append(link(href, name), hint);
packs.appendChild(item);
}
studio.append(summary, blurb, packs);
about.append(brand, actions, studio);
return about;
}
export {
ABOUT_BADGES,
renderAbout
};