{"version":3,"file":"Heading.mjs","sources":["../../../../src/beta/components/Heading.tsx"],"sourcesContent":["import React from 'react';\n\nimport classNames from 'classnames';\nimport {\n  TypographyHeadingVariant,\n  TypographySize,\n  TypographySpacing,\n} from '../types';\nimport {\n  getHeadingVariantFromSemanticType,\n  getSpacingClasses,\n} from '../utils/utils';\nimport { PolymorphicComponentProps } from '@entur/utils';\n\nimport './heading.scss';\n\ntype HeadingBaseProps = {\n  /** Visuell variant som bestemmer styling (anbefalt over size) */\n  variant?: TypographyHeadingVariant;\n  /** Visuell tekststørrelse som overstyrer variant-styling */\n  size?: TypographySize;\n  /** Innholdet som skal vises */\n  children: React.ReactNode;\n  /** Ekstra klassenavn for tilpasset styling */\n  className?: string;\n  /** Inline CSS-stiler */\n  style?: React.CSSProperties;\n  /** Spacing around the component */\n  spacing?: TypographySpacing;\n};\n\nexport type HeadingProps<C extends React.ElementType> =\n  PolymorphicComponentProps<C, HeadingBaseProps>;\n\nexport const Heading = <C extends React.ElementType = 'h1'>({\n  children,\n  as,\n  size,\n  variant,\n  spacing,\n  className,\n  ...rest\n}: HeadingProps<C>) => {\n  const HeadingElement = as || 'h1';\n\n  // Function to determine the variant based on the semantic type\n  const usedVariant =\n    variant ?? getHeadingVariantFromSemanticType(HeadingElement);\n\n  // When size is explicitly provided, it should override variant styling\n  const shouldUseSize = size !== undefined;\n\n  return (\n    <HeadingElement\n      className={classNames(\n        'eds-heading',\n        // Only apply variant if size is not specified\n        { [`eds-heading--${usedVariant}`]: !shouldUseSize },\n        // Size takes precedence when specified\n        { [`eds-heading--${size}`]: shouldUseSize && size },\n        getSpacingClasses(spacing, 'eds-heading'),\n        className,\n      )}\n      {...rest}\n    >\n      {children}\n    </HeadingElement>\n  );\n};\n"],"names":[],"mappings":";;;;AAkCO,MAAM,UAAU,CAAqC;AAAA,EAC1D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAuB;AACrB,QAAM,iBAAiB,MAAM;AAG7B,QAAM,cACJ,WAAW,kCAAkC,cAAc;AAG7D,QAAM,gBAAgB,SAAS;AAE/B,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA;AAAA,QAEA,EAAE,CAAC,gBAAgB,WAAW,EAAE,GAAG,CAAC,cAAA;AAAA;AAAA,QAEpC,EAAE,CAAC,gBAAgB,IAAI,EAAE,GAAG,iBAAiB,KAAA;AAAA,QAC7C,kBAAkB,SAAS,aAAa;AAAA,QACxC;AAAA,MAAA;AAAA,MAED,GAAG;AAAA,MAEH;AAAA,IAAA;AAAA,EAAA;AAGP;"}