2025-11-07 11:26:19 +01:00
import type { Metadata } from 'next' ;
import './globals.css' ;
2026-02-22 21:35:53 +01:00
import { Providers } from '@/components/providers/Providers' ;
2025-11-07 11:26:19 +01:00
2026-02-23 17:21:46 +01:00
const siteUrl = process . env . NEXT_PUBLIC_SITE_URL || 'http://localhost:3000' ;
2025-11-07 11:26:19 +01:00
export const metadata : Metadata = {
title : 'Kit - Your Creative Toolkit' ,
2025-11-07 12:30:08 +01:00
description : 'A curated collection of creative and utility tools for developers and creators. Features file conversion, image editing, and color manipulation.' ,
2026-02-26 12:19:22 +01:00
keywords : [ 'tools' , 'utilities' , 'file converter' , 'image editor' , 'color palette' , 'creative toolkit' , 'convert' , 'paint' , 'color' , 'open source' ] ,
2026-02-23 17:21:46 +01:00
metadataBase : new URL ( siteUrl ) ,
2026-02-24 15:27:16 +01:00
icons : {
icon : '/icon.png' ,
shortcut : '/icon.png' ,
apple : '/icon.png' ,
2025-11-07 12:30:08 +01:00
} ,
robots : {
index : true ,
follow : true ,
googleBot : {
index : true ,
follow : true ,
'max-video-preview' : - 1 ,
'max-image-preview' : 'large' ,
'max-snippet' : - 1 ,
} ,
} ,
2025-11-07 11:26:19 +01:00
} ;
export default function RootLayout ( {
children ,
} : Readonly < {
children : React.ReactNode ;
} > ) {
2026-02-23 17:09:44 +01:00
const umamiScript = process . env . UMAMI_SCRIPT ;
const umamiId = process . env . UMAMI_ID ;
const isProd = process . env . NODE_ENV === 'production' ;
2025-11-07 11:26:19 +01:00
return (
2026-02-23 00:40:45 +01:00
< html lang = "en" className = "dark" suppressHydrationWarning >
2025-11-07 12:30:08 +01:00
< head >
< meta name = "viewport" content = "width=device-width, initial-scale=1" / >
2026-02-23 17:09:44 +01:00
{ isProd && umamiScript && umamiId && (
< script defer src = { umamiScript } data-website-id = { umamiId } > < / script >
) }
2026-02-23 00:40:45 +01:00
< script
dangerouslySetInnerHTML = { {
__html : `
(function() {
try {
var theme = localStorage.getItem('theme');
var isLanding = window.location.pathname === '/';
if (isLanding) {
document.documentElement.classList.add('dark');
document.documentElement.classList.remove('light');
} else if (theme === 'light' || (!theme && window.matchMedia('(prefers-color-scheme: light)').matches)) {
document.documentElement.classList.add('light');
document.documentElement.classList.remove('dark');
} else {
document.documentElement.classList.add('dark');
document.documentElement.classList.remove('light');
}
} catch (e) {}
})();
` ,
} }
/ >
2025-11-07 12:30:08 +01:00
< / head >
2025-11-07 11:26:19 +01:00
< body className = "antialiased" >
{ children }
< / body >
< / html >
) ;
}