{"version":3,"file":"Link.cjs","sources":["../src/Link/Link.tsx"],"sourcesContent":["import clsx from 'clsx';\nimport { type ComponentPropsWithRef } from 'react';\n\nimport type {\n  ComponentProps,\n  SlotComponentPropsWithoutOverride,\n} from '../components.ts';\nimport { assocDefaultStyle } from '../utils/assign-default-style.ts';\nimport { mergeRootSlotPropsToComponentProps } from '../utils/merge-root-slot-props-to-component-prop.ts';\n\ninterface SlotProps {\n  root?: SlotComponentPropsWithoutOverride<'a', object>;\n}\n\nexport type LinkProps = ComponentProps<SlotProps, ComponentPropsWithRef<'a'>>;\n\nexport function Link({\n  'data-testid': testId,\n  disableDefaultClasses,\n  slotProps: givenSlotProps,\n  ...rest\n}: LinkProps) {\n  let slotProps = givenSlotProps;\n\n  if (!disableDefaultClasses) {\n    slotProps = assocDefaultStyle<SlotProps>({\n      slotWithDefaultClasses: {\n        root: clsx(\n          'tw-bg-primary',\n          'tw-text-primary-contrast',\n          'hover:tw-bg-primary-user-action',\n          'hover:tw-text-primary-user-action',\n          'focus:tw-outline-primary',\n          'tw-block',\n        ),\n      },\n    })(givenSlotProps);\n  }\n  const rootProps = mergeRootSlotPropsToComponentProps()(slotProps, rest);\n  return (\n    <a\n      data-testid={testId ?? 'busybox-link'}\n      {...slotProps?.root}\n      {...rootProps}\n    />\n  );\n}\n"],"names":["Link","testId","disableDefaultClasses","givenSlotProps","rest","slotProps","assocDefaultStyle","clsx","rootProps","mergeRootSlotPropsToComponentProps","jsx"],"mappings":"+YAgBO,SAASA,EAAK,CACnB,cAAeC,EACf,sBAAAC,EACA,UAAWC,EACX,GAAGC,CACL,EAAc,CACZ,IAAIC,EAAYF,EAEXD,IACHG,EAAYC,EAAAA,kBAA6B,CACvC,uBAAwB,CACtB,KAAMC,EAAA,KACJ,gBACA,2BACA,kCACA,oCACA,2BACA,UACF,CACF,CAAA,CACD,EAAEJ,CAAc,GAEnB,MAAMK,EAAYC,EAAA,mCAAA,EAAqCJ,EAAWD,CAAI,EAEpE,OAAAM,EAAA,kBAAA,IAAC,IAAA,CACC,cAAaT,GAAU,eACtB,GAAGI,GAAA,YAAAA,EAAW,KACd,GAAGG,CAAA,CAAA,CAGV"}