128 lines
No EOL
5.9 KiB
HTML
128 lines
No EOL
5.9 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="pt-BR">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Arbitra System</title>
|
|
<script src="https://cdn.tailwindcss.com"></script>
|
|
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap"
|
|
rel="stylesheet">
|
|
<script>
|
|
tailwind.config = {
|
|
theme: {
|
|
extend: {
|
|
fontFamily: {
|
|
sans: ['"Plus Jakarta Sans"', 'sans-serif'],
|
|
},
|
|
colors: {
|
|
// Overriding defaults for a Premium Neutral palette
|
|
border: "hsl(var(--border))",
|
|
input: "hsl(var(--input))",
|
|
ring: "hsl(var(--ring))",
|
|
background: "hsl(var(--background))",
|
|
foreground: "hsl(var(--foreground))",
|
|
primary: {
|
|
DEFAULT: "hsl(var(--primary))",
|
|
foreground: "hsl(var(--primary-foreground))",
|
|
},
|
|
secondary: {
|
|
DEFAULT: "hsl(var(--secondary))",
|
|
foreground: "hsl(var(--secondary-foreground))",
|
|
},
|
|
destructive: {
|
|
DEFAULT: "hsl(var(--destructive))",
|
|
foreground: "hsl(var(--destructive-foreground))",
|
|
},
|
|
muted: {
|
|
DEFAULT: "hsl(var(--muted))",
|
|
foreground: "hsl(var(--muted-foreground))",
|
|
},
|
|
accent: {
|
|
DEFAULT: "hsl(var(--accent))",
|
|
foreground: "hsl(var(--accent-foreground))",
|
|
},
|
|
popover: {
|
|
DEFAULT: "hsl(var(--popover))",
|
|
foreground: "hsl(var(--popover-foreground))",
|
|
},
|
|
card: {
|
|
DEFAULT: "hsl(var(--card))",
|
|
foreground: "hsl(var(--card-foreground))",
|
|
},
|
|
},
|
|
borderRadius: {
|
|
lg: "var(--radius)",
|
|
md: "calc(var(--radius) - 2px)",
|
|
sm: "calc(var(--radius) - 4px)",
|
|
},
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<script type="importmap">
|
|
{
|
|
"imports": {
|
|
"lucide-react": "https://esm.sh/lucide-react@^0.562.0",
|
|
"@google/genai": "https://esm.sh/@google/genai@^1.35.0",
|
|
"react-dom/": "https://esm.sh/react-dom@^19.2.3/",
|
|
"recharts": "https://esm.sh/recharts@^3.6.0",
|
|
"react": "https://esm.sh/react@^19.2.3",
|
|
"react/": "https://esm.sh/react@^19.2.3/"
|
|
}
|
|
}
|
|
</script>
|
|
<link rel="stylesheet" href="/index.css">
|
|
</head>
|
|
|
|
<body class="bg-slate-950 text-slate-100 antialiased selection:bg-indigo-500 selection:text-white">
|
|
<div id="root"></div>
|
|
<script type="module" src="/index.tsx"></script>
|
|
<script>
|
|
window.addEventListener('message', (event) => {
|
|
if (event.data && event.data.type === 'UPDATE_APPEARANCE') {
|
|
const settings = event.data.settings;
|
|
if (!settings) return;
|
|
let css = '';
|
|
if (settings.primaryColor) {
|
|
css += "\n:root { " +
|
|
"--color-brand-primary: " + settings.primaryColor + " !important; " +
|
|
"--color-brand-blue: " + settings.primaryColor + " !important; " +
|
|
"--color-brand-gold: " + settings.primaryColor + " !important; " +
|
|
"--color-blue-500: " + settings.primaryColor + " !important; " +
|
|
"--color-blue-600: " + settings.primaryColor + " !important; " +
|
|
"--color-emerald-500: " + settings.primaryColor + " !important; " +
|
|
"--color-emerald-600: " + settings.primaryColor + " !important; " +
|
|
"} " +
|
|
".text-brand-blue, .text-blue-600, .group-hover\\:text-blue-600:hover, .text-brand-gold, .text-emerald-600, .text-blue-500, .text-emerald-500 { color: " + settings.primaryColor + " !important; } " +
|
|
".bg-brand-blue, .bg-blue-600, .hover\\:bg-blue-500:hover, .bg-brand-gold, .bg-emerald-600, .bg-blue-500, .bg-emerald-500 { background-color: " + settings.primaryColor + " !important; } " +
|
|
".border-brand-blue, .border-blue-600, .focus\\:border-blue-600:focus, .border-brand-gold, .border-emerald-600, .border-blue-500, .border-emerald-500 { border-color: " + settings.primaryColor + " !important; } " +
|
|
".fill-blue-600, .fill-emerald-600 { fill: " + settings.primaryColor + " !important; }";
|
|
}
|
|
if (settings.backgroundColor) {
|
|
css += "\n:root { --color-brand-bg: " + settings.backgroundColor + " !important; } body { background-color: " + settings.backgroundColor + " !important; }";
|
|
}
|
|
if (settings.fontFamily) {
|
|
const fontLink = document.getElementById('dynamic-font');
|
|
const fontName = settings.fontFamily.replace(/ /g, '+');
|
|
const fontUrl = 'https://fonts.googleapis.com/css2?family=' + fontName + ':wght@300;400;500;600;700&display=swap';
|
|
if (fontLink) { (fontLink as HTMLLinkElement).href = fontUrl; } else {
|
|
const link = document.createElement('link'); link.id = 'dynamic-font'; link.rel = 'stylesheet'; link.href = fontUrl; document.head.appendChild(link);
|
|
}
|
|
css += "\n:root { " +
|
|
"--font-sans: \"" + settings.fontFamily + "\", sans-serif !important; " +
|
|
"--font-serif: \"" + settings.fontFamily + "\", serif !important; " +
|
|
"--font-mono: \"" + settings.fontFamily + "\", monospace !important; " +
|
|
"} * { font-family: \"" + settings.fontFamily + "\", sans-serif !important; }";
|
|
}
|
|
let styleNode = document.getElementById('dynamic-theme-style');
|
|
if (!styleNode) { styleNode = document.createElement('style'); styleNode.id = 'dynamic-theme-style'; document.head.appendChild(styleNode); }
|
|
styleNode.innerHTML = css;
|
|
}
|
|
});
|
|
// Ping parent window that we are ready
|
|
window.parent.postMessage({ type: 'IFRAME_READY' }, '*');
|
|
</script>
|
|
</body>
|
|
|
|
</html> |