import React from "react";
import { useId } from "react";
export function Features() {
return (
{grid.map((feature) => (
{feature.title}
{feature.description}
))}
);
}
const grid = [
{
title: "Framework Agnostic",
description:
"Supports your favorite frontend, backend and meta frameworks, including React, Vue, Svelte, Solid, Next.js, Nuxt.js, Hono, and more.",
},
{
title: "Automatic Database Management",
description:
"better auth will automatically manage required tables for authentication, just configure the database and better auth will do the rest.",
},
{
title: "Email & Password Authentication",
description:
"Builtin support for email and password authentication, with secure password hashing and account management features.",
},
{
title: "Social Sign-on",
description:
"Allow users to sign in with their accounts, including Github, Google, Discord, Twitter, and more.",
},
{
title: "Organization & Access Control",
description:
"Manage users and their access to resources within your application.",
},
{
title: "Plugin Ecosystem",
description:
"Enhance your application with our official plugins and those created by the community.",
},
];
export const Grid = ({
pattern,
size,
}: {
pattern?: number[][];
size?: number;
}) => {
const p = pattern ?? [
[Math.floor(Math.random() * 4) + 7, Math.floor(Math.random() * 6) + 1],
[Math.floor(Math.random() * 4) + 7, Math.floor(Math.random() * 6) + 1],
[Math.floor(Math.random() * 4) + 7, Math.floor(Math.random() * 6) + 1],
[Math.floor(Math.random() * 4) + 7, Math.floor(Math.random() * 6) + 1],
[Math.floor(Math.random() * 4) + 7, Math.floor(Math.random() * 6) + 1],
];
return (
);
};
export function GridPattern({ width, height, x, y, squares, ...props }: any) {
const patternId = useId();
return (
);
}