29 lines
535 B
TypeScript
29 lines
535 B
TypeScript
/**
|
|
* Copyright (c) 2025 xwra
|
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
*/
|
|
|
|
import { ComponentChildren, h } from "preact";
|
|
|
|
interface TitleProps {
|
|
level?: 1 | 2 | 3 | 4 | 5 | 6;
|
|
children: ComponentChildren;
|
|
[key: string]: any;
|
|
}
|
|
|
|
export default function Title({
|
|
level = 1,
|
|
children,
|
|
class: className,
|
|
...props
|
|
}: TitleProps) {
|
|
const Heading = `h${Math.min(Math.max(level, 1), 6)}`;
|
|
return h(
|
|
Heading,
|
|
{
|
|
class: `title title-${level} ${className || ""}`,
|
|
...props,
|
|
},
|
|
children,
|
|
);
|
|
}
|