{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "heading",
  "description": "A semantic heading whose visual size can be set independently of its level.",
  "dependencies": [
    "@base-ui/react",
    "class-variance-authority"
  ],
  "registryDependencies": [
    "@ondo-ui/utils"
  ],
  "files": [
    {
      "path": "components/ui/heading.tsx",
      "content": "import { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst headingVariants = cva(\"font-heading text-foreground\", {\n  variants: {\n    size: {\n      1: \"text-[2.25rem]/[1.25] font-bold tracking-[-0.02em]\",\n      2: \"text-[1.75rem]/[1.3] font-bold tracking-[-0.017em]\",\n      3: \"text-[1.5rem]/[1.35] font-bold tracking-[-0.014em]\",\n      4: \"text-[1.375rem]/[1.4] font-bold tracking-[-0.011em]\",\n      5: \"text-[1.25rem]/[1.4] font-bold tracking-[-0.008em]\",\n      6: \"text-[1.125rem]/[1.45] font-bold tracking-[-0.005em]\",\n    },\n    wrap: {\n      normal: \"text-wrap\",\n      nowrap: \"text-nowrap\",\n      balance: \"text-balance\",\n      pretty: \"text-pretty\",\n    },\n  },\n  defaultVariants: {\n    size: 1,\n    wrap: \"normal\",\n  },\n})\n\ntype HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6\n\nfunction Heading({\n  className,\n  level = 1,\n  size,\n  wrap,\n  render,\n  ...props\n}: useRender.ComponentProps<\"h1\"> &\n  VariantProps<typeof headingVariants> & {\n    /** Heading rank. Sets the rendered tag and, unless `size` says otherwise, the visual size. */\n    level?: HeadingLevel\n  }) {\n  const resolvedSize = size ?? level\n\n  return useRender({\n    defaultTagName: `h${level}`,\n    props: mergeProps<\"h1\">(\n      {\n        className: cn(headingVariants({ size: resolvedSize, wrap }), className),\n      },\n      props\n    ),\n    render,\n    state: {\n      slot: \"heading\",\n      level,\n      size: resolvedSize,\n    },\n  })\n}\n\nexport { Heading, headingVariants }\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}