package styles

func H1(content string) templ.Component {
	return renderText(1, content)
}

func H2(content string) templ.Component {
	return renderText(2, content)
}

func H3(content string) templ.Component {
	return renderText(3, content)
}

func Text(content string) templ.Component {
	return renderText(0, content)
}

templ renderText(level int, text string) {
	switch level {
		case 1:
			<h1 class="text-2xl lg:text-3xl font-bold pb-3">
				{ text }
			</h1>
		case 2:
			<h2 class="text-xl lg:text-2xl font-bold pb-2">
				{ text }
			</h2>
		case 3:
			<h3 class="text-md lg:text-xl font-semibold pb-1">
				{ text }
			</h3>
		default:
			<p class="text-base font-normal">
				{ text }
			</p>
	}
}

templ renderLink(attrs templ.Attributes, text string) {
	<a { attrs... }>
		{ text }
	</a>
}

templ renderStrong(attrs templ.Attributes, text string) {
	<strong { attrs... }>
		{ text }
	</strong>
}

templ renderEmphasis(attrs templ.Attributes, text string) {
	<em { attrs... }>
		{ text }
	</em>
}

templ renderCode(attrs templ.Attributes, text string) {
	<code { attrs... }>
		{ text }
	</code>
}
