{"version":3,"sources":["../src/components/Heading/Heading.tsx"],"names":["forwardRef","jsx","cn"],"mappings":";;;;;;AAIA,IAAM,WAAA,GAAiE;AAAA,EACrE,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,WAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,UAAA;AAAA,EACJ,KAAA,EAAO,UAAA;AAAA;AAAA,EAEP,KAAA,EAAO,UAAA;AAAA,EACP,KAAA,EAAO,UAAA;AAAA,EACP,KAAA,EAAO,UAAA;AAAA,EACP,KAAA,EAAO,UAAA;AAAA,EACP,KAAA,EAAO;AACT,CAAA;AASA,IAAM,eAAA,GAA8E;AAAA,EAClF,KAAA,EAAO,gBAAA;AAAA,EACP,KAAA,EAAO,gBAAA;AAAA,EACP,KAAA,EAAO,kBAAA;AAAA,EACP,KAAA,EAAO,kBAAA;AAAA,EACP,KAAA,EAAO;AACT,CAAA;AAEA,IAAM,aAAA,GAAqE;AAAA,EACzE,MAAA,EAAQ,aAAA;AAAA,EACR,MAAA,EAAQ,aAAA;AAAA,EACR,QAAA,EAAU,eAAA;AAAA,EACV,IAAA,EAAM;AACR,CAAA;AAEO,IAAM,OAAA,GAAUA,gBAAA;AAAA,EACrB,CACE;AAAA,IACE,IAAI,GAAA,GAAM,IAAA;AAAA,IACV,IAAA,GAAO,IAAA;AAAA,IACP,MAAA,GAAS,MAAA;AAAA,IACT,SAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,uBACEC,cAAA;AAAA,MAAC,GAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,0BAAA,EAAyB,EAAA;AAAA,QACzB,SAAA,EAAWC,oBAAA;AAAA,UACT,kCAAA;AAAA,UACA,YAAY,IAAI,CAAA;AAAA,UAChB,gBAAgB,IAAI,CAAA;AAAA,UACpB,cAAc,MAAM,CAAA;AAAA,UACpB;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA","file":"chunk-Y3T7WMT6.cjs","sourcesContent":["import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport type { HeadingProps } from \"./Heading.types\";\n\nconst sizeClasses: Record<NonNullable<HeadingProps[\"size\"]>, string> = {\n  xs: \"text-xs\",\n  sm: \"text-sm\",\n  md: \"text-base\",\n  lg: \"text-lg\",\n  xl: \"text-2xl\",\n  \"2xl\": \"text-4xl\",\n  // Display steps. Each is the next Tailwind size up, continuing the ramp.\n  \"3xl\": \"text-5xl\",\n  \"4xl\": \"text-6xl\",\n  \"5xl\": \"text-7xl\",\n  \"6xl\": \"text-8xl\",\n  \"7xl\": \"text-9xl\",\n};\n\n/**\n * Tracking for the display steps only.\n *\n * Default letter-spacing is tuned for headings that sit near body text. At\n * display scale the same spacing reads loose — which is exactly why the big-type\n * gallery style hand-rolled its own `<h1>` rather than use this component.\n */\nconst trackingClasses: Partial<Record<NonNullable<HeadingProps[\"size\"]>, string>> = {\n  \"3xl\": \"tracking-tight\",\n  \"4xl\": \"tracking-tight\",\n  \"5xl\": \"tracking-tighter\",\n  \"6xl\": \"tracking-tighter\",\n  \"7xl\": \"tracking-tighter\",\n};\n\nconst weightClasses: Record<NonNullable<HeadingProps[\"weight\"]>, string> = {\n  normal: \"font-normal\",\n  medium: \"font-medium\",\n  semibold: \"font-semibold\",\n  bold: \"font-bold\",\n};\n\nexport const Heading = forwardRef<HTMLHeadingElement, HeadingProps>(\n  (\n    {\n      as: Tag = \"h2\",\n      size = \"lg\",\n      weight = \"bold\",\n      className,\n      children,\n      ...props\n    },\n    ref,\n  ) => {\n    return (\n      <Tag\n        ref={ref}\n        data-react-fancy-heading=\"\"\n        className={cn(\n          \"text-zinc-900 dark:text-zinc-100\",\n          sizeClasses[size],\n          trackingClasses[size],\n          weightClasses[weight],\n          className,\n        )}\n        {...props}\n      >\n        {children}\n      </Tag>\n    );\n  },\n);\n\nHeading.displayName = \"Heading\";\n"]}