import { isDefinedIcon } from "./chunk-ZUETELRC.js"; import { closeOnOutsideClick, createWindowElement, synchronizePlacementOnUpdate } from "./chunk-WM2KMMIK.js"; import "./chunk-LEX3GG7N.js"; import "./chunk-5WRI5ZAA.js"; // node_modules/astro/dist/runtime/client/dev-toolbar/apps/utils/icons.js function randomFromArray(list) { return list[Math.floor(Math.random() * list.length)]; } var categoryIcons = new Map( Object.entries({ frameworks: ["puzzle", "grid"], adapters: ["puzzle", "grid", "compress"], "css+ui": ["compress", "grid", "image", "resizeImage", "puzzle"], "performance+seo": ["approveUser", "checkCircle", "compress", "robot", "searchFile", "sitemap"], analytics: ["checkCircle", "compress", "searchFile"], accessibility: ["approveUser", "checkCircle"], other: ["checkCircle", "grid", "puzzle", "sitemap"] }) ); function iconForIntegration(integration) { const icons = integration.categories.filter((category) => categoryIcons.has(category)).flatMap((category) => categoryIcons.get(category)); return randomFromArray(icons); } var iconColors = [ "#BC52EE", "#6D6AF0", "#52EEBD", "#52B7EE", "#52EE55", "#B7EE52", "#EEBD52", "#EE5552", "#EE52B7", "#858B98" ]; function colorForIntegration() { return randomFromArray(iconColors); } // node_modules/astro/dist/runtime/client/dev-toolbar/apps/astro.js var astroLogo = ''; var integrationData; var astro_default = { id: "astro:home", name: "Menu", icon: "astro:logo", async init(canvas, eventTarget) { createCanvas(); document.addEventListener("astro:after-swap", createCanvas); eventTarget.addEventListener("app-toggled", async (event) => { resetDebugButton(); if (!(event instanceof CustomEvent)) return; if (event.detail.state === true) { if (!integrationData) fetchIntegrationData(); } }); closeOnOutsideClick(eventTarget); synchronizePlacementOnUpdate(eventTarget, canvas); function fetchIntegrationData() { fetch("https://astro.build/api/v1/dev-overlay/", { cache: "no-cache" }).then((res) => res.json()).then((data) => { integrationData = data; integrationData.data = integrationData.data.map((integration) => { return integration; }); refreshIntegrationList(); }); } function createCanvas() { const links = [ { icon: "bug", name: "Report a Bug", link: "https://github.com/withastro/astro/issues/new/choose" }, { icon: "lightbulb", name: "Feedback", link: "https://github.com/withastro/roadmap/discussions/new/choose" }, { icon: "file-search", name: "Documentation", link: "https://docs.astro.build" }, { icon: '', name: "Community", link: "https://astro.build/chat" } ]; const { latestAstroVersion, version, debugInfo } = window.__astro_dev_toolbar__ ?? {}; const windowComponent = createWindowElement( `
${astroLogo} ${version} ${latestAstroVersion ? `${latestAstroVersion} available! ` : ""}
Copy debug info

Featured integrations

View all
` ); const copyDebugButton = windowComponent.querySelector("#copy-debug-button"); copyDebugButton?.addEventListener("click", () => { navigator.clipboard.writeText("```\n" + debugInfo + "\n```"); copyDebugButton.textContent = "Copied to clipboard!"; setTimeout(() => { resetDebugButton(); }, 3500); }); canvas.append(windowComponent); if (integrationData) refreshIntegrationList(); } function resetDebugButton() { const copyDebugButton = canvas.querySelector("#copy-debug-button"); if (!copyDebugButton) return; copyDebugButton.innerHTML = 'Copy debug info '; } function refreshIntegrationList() { const integrationList = canvas.querySelector("#integration-list"); if (!integrationList) return; integrationList.innerHTML = ""; const fragment = document.createDocumentFragment(); for (const integration of integrationData.data) { const integrationComponent = document.createElement("astro-dev-toolbar-card"); integrationComponent.link = integration.homepageUrl; const integrationContainer = document.createElement("div"); integrationContainer.className = "integration-container"; const integrationImage = document.createElement("div"); integrationImage.className = "integration-image"; if (integration.image) { const img = document.createElement("img"); img.src = integration.image; img.alt = integration.title; integrationImage.append(img); } else { const icon = document.createElement("astro-dev-toolbar-icon"); icon.icon = iconForIntegration(integration); integrationImage.append(icon); integrationImage.style.setProperty( "--integration-image-background", colorForIntegration() ); } integrationContainer.append(integrationImage); let integrationTitle = document.createElement("h3"); integrationTitle.textContent = integration.title; if (integration.official || integration.categories.includes("official")) { integrationTitle.innerHTML += ' '; } integrationContainer.append(integrationTitle); const integrationDescription = document.createElement("p"); integrationDescription.textContent = integration.description.length > 90 ? integration.description.slice(0, 90) + "…" : integration.description; integrationContainer.append(integrationDescription); integrationComponent.append(integrationContainer); fragment.append(integrationComponent); } integrationList.append(fragment); } } }; export { astro_default as default }; //# sourceMappingURL=astro-IQQQXCO3.js.map