{"version":3,"sources":["../src/link/link.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { forwardRef } from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\nexport interface LinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n  /**\n   * The visual style of the link\n   */\n  variant?: \"underline\" | \"solid\" | \"no-underline\";\n\n  /**\n   * Font size of the link\n   * @default \"default\"\n   */\n  size?: \"default\" | \"small\" | \"large\" | \"technical\";\n\n  /**\n   * Specify that there is an icon in the link.\n   * `icon=\"leading\"`: There is an icon before the text.\n   * `icon=\"trailing\"`: There is an icon after the text.\n   *\n   */\n  icon?: \"leading\" | \"trailing\";\n\n  children: React.ReactNode;\n\n  /**\n   * Change the default rendered element for the one passed as a child, merging their props and behavior.\n   *\n   * @default false\n   */\n  asChild?: boolean;\n}\n\nexport const Link = forwardRef<HTMLAnchorElement, LinkProps>(\n  (\n    { asChild, children, variant = \"underline\", size = \"default\", icon, className, ...rest },\n    ref,\n  ) => {\n    const Component = asChild ? Slot : \"a\";\n\n    return (\n      <Component\n        className={clsx(\n          \"hds-link\",\n          variant !== \"underline\" && `hds-link--${variant}`,\n          size !== \"default\" && `hds-link--${size}`,\n          { \"hds-link--trailing-icon\": icon === \"trailing\" },\n          { \"hds-link--leading-icon\": icon === \"leading\" },\n          className as undefined,\n        )}\n        ref={ref}\n        {...rest}\n      >\n        {children}\n      </Component>\n    );\n  },\n);\nLink.displayName = \"Link\";\n"],"mappings":";;;;;;;AAAA,OAAuB;AACvB,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAC3B,SAAS,YAAY;AAwCf;AARC,IAAM,OAAO;AAAA,EAClB,CACE,IACA,QACG;AAFH,iBAAE,WAAS,UAAU,UAAU,aAAa,OAAO,WAAW,MAAM,UArCxE,IAqCI,IAAkF,iBAAlF,IAAkF,CAAhF,WAAS,YAAU,WAAuB,QAAkB,QAAM;AAGpE,UAAM,YAAY,UAAU,OAAO;AAEnC,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,YAAY,eAAe,aAAa,OAAO;AAAA,UAC/C,SAAS,aAAa,aAAa,IAAI;AAAA,UACvC,EAAE,2BAA2B,SAAS,WAAW;AAAA,UACjD,EAAE,0BAA0B,SAAS,UAAU;AAAA,UAC/C;AAAA,QACF;AAAA,QACA;AAAA,SACI,OAVL;AAAA,QAYE;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,KAAK,cAAc;","names":[]}