Heading.svelte 647 B

123456789101112131415161718192021
  1. <script lang="ts">
  2. import type { BaseComponentProps } from "@json-render/svelte";
  3. import type { ShadcnProps } from "./catalog.js";
  4. interface Props extends BaseComponentProps<ShadcnProps<"Heading">> {}
  5. let { props }: Props = $props();
  6. const level = $derived(props.level ?? "h2");
  7. const className = $derived(
  8. level === "h1"
  9. ? "text-3xl font-bold tracking-tight"
  10. : level === "h2"
  11. ? "text-2xl font-semibold tracking-tight"
  12. : level === "h3"
  13. ? "text-xl font-semibold"
  14. : "text-lg font-medium",
  15. );
  16. </script>
  17. <svelte:element this={level} class={className}>{props.text}</svelte:element>