{"version":3,"sources":["../src/text-link/TextLink.tsx"],"sourcesContent":["import { cva, VariantProps } from 'class-variance-authority'\nimport { type ComponentPropsWithRef } from 'react'\n\nimport { Slot } from '../slot'\n\nconst textLinkStyles = cva(['inline-flex items-center focus-visible:u-outline'], {\n  variants: {\n    intent: {\n      current: 'text-current hover:opacity-dim-1',\n      main: 'text-main hover:text-main-hovered',\n      support: 'text-support hover:text-support-hovered',\n      accent: 'text-accent hover:text-accent-hovered',\n      basic: 'text-basic hover:text-basic-hovered',\n      success: 'text-success hover:text-success-hovered',\n      alert: 'text-alert hover:text-alert-hovered',\n      danger: 'text-error hover:text-error-hovered',\n      info: 'text-info hover:text-info-hovered',\n      neutral: 'text-neutral hover:text-neutral-hovered',\n    },\n    /** By default, TextLink inherits the current font weight. Use `bold` to highlight it. */\n    bold: {\n      true: 'font-bold',\n    },\n    /**\n     * Underline is enabled by default.\n     * You can remove it, but be careful about a11y, as you should make obvious to users what is a link or not.\n     */\n    underline: {\n      true: 'underline',\n      false: 'hover:underline focus:underline',\n    },\n  },\n  defaultVariants: {\n    intent: 'current',\n    bold: false,\n    underline: true,\n  },\n})\n\nexport type StylesProps = VariantProps<typeof textLinkStyles>\n\nexport type TextLinkProps = ComponentPropsWithRef<'a'> &\n  StylesProps & {\n    /**\n     * Change the component to the HTML tag or custom component of the only child.\n     */\n    asChild?: boolean\n  }\n\nexport const TextLink = ({\n  asChild = false,\n  bold = false,\n  children,\n  className,\n  intent = 'current',\n  underline = true,\n  ref,\n  ...props\n}: TextLinkProps) => {\n  const Component = asChild ? Slot : 'a'\n\n  return (\n    <Component\n      data-spark-component=\"text-link\"\n      ref={ref}\n      className={textLinkStyles({ className, bold, intent, underline })}\n      {...props}\n    >\n      {children}\n    </Component>\n  )\n}\n"],"mappings":";;;;;AAAA,SAAS,WAAyB;AA8D9B;AAzDJ,IAAM,iBAAiB,IAAI,CAAC,kDAAkD,GAAG;AAAA,EAC/E,UAAU;AAAA,IACR,QAAQ;AAAA,MACN,SAAS;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,SAAS;AAAA,MACT,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA;AAAA,IAEA,MAAM;AAAA,MACJ,MAAM;AAAA,IACR;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,WAAW;AAAA,EACb;AACF,CAAC;AAYM,IAAM,WAAW,CAAC;AAAA,EACvB,UAAU;AAAA,EACV,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT,YAAY;AAAA,EACZ;AAAA,EACA,GAAG;AACL,MAAqB;AACnB,QAAM,YAAY,UAAU,OAAO;AAEnC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,wBAAqB;AAAA,MACrB;AAAA,MACA,WAAW,eAAe,EAAE,WAAW,MAAM,QAAQ,UAAU,CAAC;AAAA,MAC/D,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;","names":[]}