layout.tsx 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import '@/styles/website.scss';
  2. import { creator, description, name, uiUrl } from '@/config/site';
  3. import PageProgress from '@/components/PageProgress';
  4. import { NextAuthProvider } from '@/components/NextAuthProvider';
  5. export const metadata = {
  6. metadataBase: uiUrl,
  7. title: {
  8. default: name,
  9. template: `%s - ${name}`,
  10. },
  11. description: description,
  12. keywords: [
  13. 'css',
  14. 'html',
  15. 'jekyll',
  16. 'sass',
  17. 'bootstrap',
  18. 'modular',
  19. 'html5',
  20. 'dashboard',
  21. 'sponsors',
  22. 'uikit',
  23. 'boilerplate-template',
  24. 'scss',
  25. 'admin-dashboard',
  26. 'themes',
  27. 'dashboards',
  28. 'ui-kit',
  29. 'adminpanel',
  30. 'dashboard-templates',
  31. 'bootstrap4-theme',
  32. 'bootstrap5',
  33. 'bootstrap',
  34. ],
  35. authors: [
  36. {
  37. name: creator,
  38. url: uiUrl,
  39. },
  40. ],
  41. creator: creator,
  42. themeColor: [
  43. { media: '(prefers-color-scheme: light)', color: 'white' },
  44. { media: '(prefers-color-scheme: dark)', color: 'black' },
  45. ],
  46. openGraph: {
  47. type: 'website',
  48. locale: 'en_US',
  49. url: uiUrl,
  50. siteName: name,
  51. },
  52. twitter: {
  53. card: 'summary_large_image',
  54. images: ['og.jpg'],
  55. creator: `@${creator}`,
  56. },
  57. icons: {
  58. icon: '/favicon.ico',
  59. shortcut: '/favicon-16x16.png',
  60. apple: '/apple-touch-icon.png',
  61. },
  62. };
  63. export default function RootLayout({ children }: { children: React.ReactNode }) {
  64. return (
  65. <html lang="en">
  66. <head>
  67. {process.env.NODE_ENV !== 'development' && (
  68. <>
  69. <script defer data-api="/stats/api/event" data-domain="tabler.io,tabler" src="/stats/js/script.js" />
  70. <script>{'window.plausible=window.plausible||function(){(window.plausible.q=window.plausible.q||[]).push(arguments)}'}</script>
  71. </>
  72. )}
  73. </head>
  74. <body className="body-gradient">
  75. <PageProgress />
  76. <NextAuthProvider>{children}</NextAuthProvider>
  77. <link rel="stylesheet" href="https://rsms.me/inter/inter.css" />
  78. <script src="https://assets.lemonsqueezy.com/lemon.js" defer />
  79. </body>
  80. </html>
  81. );
  82. }