@buildappolis/env-manager
Version:
Enterprise-grade environment variable management system with encryption, snapshots, and validation
72 lines (68 loc) • 3.72 kB
JavaScript
import { c as createComponent, a as createAstro, e as renderHead, f as renderSlot, r as renderTemplate } from './astro/server_DE_7F_eO.mjs';
import 'clsx';
/* empty css */
import { jsx, jsxs } from 'react/jsx-runtime';
import { useState, useEffect } from 'react';
const $$Astro = createAstro();
const $$Layout8Bit = createComponent(($$result, $$props, $$slots) => {
const Astro2 = $$result.createAstro($$Astro, $$props, $$slots);
Astro2.self = $$Layout8Bit;
const { projectName, gitBranch } = Astro2.props;
let title = "Env Manager | BuildAppolis";
if (projectName) {
const branchPart = gitBranch ? `[${gitBranch}]` : "";
title = `${projectName}${branchPart} | Env Manager | BuildAppolis`;
}
return renderTemplate`<html lang="en"> <head><meta charset="UTF-8"><meta name="description" content="Env Manager - 8-bit themed environment management"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><title>${title}</title>${renderHead()}</head> <body class="min-h-screen bg-gradient-to-br from-purple-900 via-blue-900 to-cyan-900"> <div class="relative min-h-screen"> <!-- Animated retro grid background --> <div class="fixed inset-0 overflow-hidden pointer-events-none"> <div class="absolute inset-0 bg-[linear-gradient(transparent_63%,rgba(255,0,255,0.1)_64%,rgba(255,0,255,0.1)_65%,transparent_66%),linear-gradient(90deg,transparent_63%,rgba(0,255,255,0.1)_64%,rgba(0,255,255,0.1)_65%,transparent_66%)] bg-[length:50px_50px] animate-pulse"></div> </div> <!-- Main content --> <div class="relative z-10"> ${renderSlot($$result, $$slots["default"])} </div> </div> </body></html>`;
}, "/home/cory-ubuntu/coding/projects/env-manager/src/layouts/Layout8Bit.astro", void 0);
function VersionFooter() {
const [versionInfo, setVersionInfo] = useState(null);
useEffect(() => {
fetch("/api/version").then((res) => res.json()).then((data) => setVersionInfo(data)).catch((err) => console.error("Failed to fetch version:", err));
}, []);
if (!versionInfo) return null;
const getEnvironmentColor = () => {
switch (versionInfo.environment) {
case "development":
return "text-yellow-400";
case "production":
return "text-green-400";
case "local":
return "text-blue-400";
default:
return "text-gray-400";
}
};
const getEnvironmentIcon = () => {
switch (versionInfo.environment) {
case "development":
return "🔧";
case "production":
return "✅";
case "local":
return "🏠";
default:
return "📦";
}
};
return /* @__PURE__ */ jsx("footer", { className: "fixed bottom-0 left-0 right-0 bg-gray-900 border-t-2 border-gray-800 px-4 py-2", children: /* @__PURE__ */ jsxs("div", { className: "container mx-auto flex justify-between items-center text-xs", children: [
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
/* @__PURE__ */ jsxs("span", { className: "text-gray-500", children: [
"ENV MANAGER v",
versionInfo.version
] }),
/* @__PURE__ */ jsxs("span", { className: `flex items-center gap-1 ${getEnvironmentColor()}`, children: [
getEnvironmentIcon(),
" ",
versionInfo.environment.toUpperCase()
] }),
versionInfo.isPublished && /* @__PURE__ */ jsx("span", { className: "text-cyan-400", children: "📦 PUBLISHED" })
] }),
/* @__PURE__ */ jsxs("div", { className: "text-gray-600", children: [
"© ",
(/* @__PURE__ */ new Date()).getFullYear(),
" BuildAppolis"
] })
] }) });
}
export { $$Layout8Bit as $, VersionFooter as V };