{"version":3,"file":"Link.mjs","sources":["../../../../src/beta/components/Link.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport { PolymorphicComponentProps } from '@entur/utils';\nimport { ExternalIcon } from '@entur/icons';\nimport { TypographySpacing } from '../types';\nimport { getSpacingClasses } from '../utils/utils';\n\nimport './text.scss';\n\n/**\n * @beta Experimental component - may have breaking changes in future releases\n */\ntype LinkBaseProps = {\n  external?: boolean;\n\n  /** Ekstra klassenavn */\n  className?: string;\n  /** Innholdet */\n  children: React.ReactNode;\n  /** Spacing around the component (same as Text and Heading components) */\n  spacing?: TypographySpacing;\n  ariaLabelExternalIcon?: string;\n};\n\nexport type LinkProps<C extends React.ElementType> = PolymorphicComponentProps<\n  C,\n  LinkBaseProps\n>;\n\n/**\n * @beta Experimental component - may have breaking changes in future releases\n */\nexport const Link = <C extends React.ElementType = 'a'>({\n  external = false,\n  ariaLabelExternalIcon = '(ekstern lenke)',\n  className,\n  spacing,\n  children,\n  as,\n  ...rest\n}: LinkProps<C>): JSX.Element => {\n  const LinkElement: React.ElementType = as || 'a';\n  return (\n    <LinkElement\n      className={classNames(\n        'eds-text--link',\n        getSpacingClasses(spacing, 'eds-text--link'),\n        className,\n      )}\n      {...rest}\n    >\n      {children}\n      {external ? (\n        <ExternalIcon\n          className=\"eds-text--link--ext-icon\"\n          aria-label={ariaLabelExternalIcon}\n        />\n      ) : null}\n    </LinkElement>\n  );\n};\n"],"names":[],"mappings":";;;;;AAgCO,MAAM,OAAO,CAAoC;AAAA,EACtD,WAAW;AAAA,EACX,wBAAwB;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAiC;AAC/B,QAAM,cAAiC,MAAM;AAC7C,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,kBAAkB,SAAS,gBAAgB;AAAA,QAC3C;AAAA,MAAA;AAAA,MAED,GAAG;AAAA,MAEH,UAAA;AAAA,QAAA;AAAA,QACA,WACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,cAAY;AAAA,UAAA;AAAA,QAAA,IAEZ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGV;"}