import { n as isDefinedIcon } from "./icons-DcM8cGs_.js"; import { n as createWindowElement, r as synchronizePlacementOnUpdate, t as closeOnOutsideClick } from "./window-DH1eA2cl.js"; //#region 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) { return randomFromArray(integration.categories.filter((category) => categoryIcons.has(category)).flatMap((category) => categoryIcons.get(category))); } var iconColors = [ "#BC52EE", "#6D6AF0", "#52EEBD", "#52B7EE", "#52EE55", "#B7EE52", "#EEBD52", "#EE5552", "#EE52B7", "#858B98" ]; function colorForIntegration() { return randomFromArray(iconColors); } //#endregion //#region 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); } } }; //#endregion export { astro_default as default };