// themeLoader.client.ts import majles from '~/assets/majles/theme.json' import monir from '~/assets/monir/theme.json' export const themes = { majles, monir } type ThemeKey = keyof typeof themes type ThemeConfig = typeof themes[ThemeKey] // تابع برای تبدیل HEX به RGB (بدون پرانتز و کاما) function hexToRgb(hex: string): string { // حذف # از ابتدا hex = hex.replace('#', ''); // اگر کوتاه باشد (مثل #fff) if (hex.length === 3) { hex = hex.split('').map(char => char + char).join(''); } // تبدیل به RGB const r = parseInt(hex.substring(0, 2), 16); const g = parseInt(hex.substring(2, 4), 16); const b = parseInt(hex.substring(4, 6), 16); return `${r} ${g} ${b}`; } export default defineNuxtPlugin(() => { const host = window.location.hostname.replace("www.", ""); let key: ThemeKey = "monir"; // default if (host.includes("monir")) key = "monir"; else if (host.includes("majles")) key = "majles"; const theme: ThemeConfig = themes[key]; // ست کردن CSS Variables اصلی Object.entries(theme).forEach(([key, value]) => { if (typeof value === "string") { document.documentElement.style.setProperty(`--theme-${key}`, value); // تبدیل رنگ‌ها به RGB برای Tailwind if (['primary', 'secondary', 'accent', 'background', 'text'].includes(key)) { const rgb = hexToRgb(value); document.documentElement.style.setProperty(`--color-${key}`, rgb); } } }); return { provide: { themeKey: key, theme, }, }; });