{"version":3,"file":"nav-link.jsx","sources":["../../../src/react/components/nav-link.tsx"],"sourcesContent":["import type { CSSProperties, ReactNode } from 'react';\nimport { useEmberService } from '../hooks/use-ember-service.ts';\nimport { Link, type LinkProps } from './link';\n\nexport type NavLinkRenderProps = {\n  isActive: boolean;\n};\n\nexport interface NavLinkProps\n  extends Omit<LinkProps, 'className' | 'children' | 'style'> {\n  children?: ReactNode | ((props: NavLinkRenderProps) => ReactNode);\n  className?: string | ((props: NavLinkRenderProps) => string | undefined);\n  style?:\n    | CSSProperties\n    | ((props: NavLinkRenderProps) => CSSProperties | undefined);\n}\n\nexport function NavLink({\n  'aria-current': ariaCurrentProp = 'page',\n  children,\n  className: classNameProp,\n  to,\n  style: styleProp,\n  ...props\n}: NavLinkProps): ReactNode {\n  let className: string | undefined;\n  const router = useEmberService('router');\n  const locationPathname = router.currentURL;\n\n  const isActive = locationPathname === to;\n  const ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n  const renderProps = {\n    isActive,\n  };\n\n  if (typeof classNameProp === 'function') {\n    className = classNameProp(renderProps);\n  } else {\n    className = [classNameProp, isActive ? 'active' : null]\n      .filter(Boolean)\n      .join(' ');\n  }\n\n  const style =\n    typeof styleProp === 'function' ? styleProp(renderProps) : styleProp;\n\n  return (\n    <Link\n      aria-current={ariaCurrent}\n      className={className}\n      style={style}\n      to={to}\n      {...props}\n    >\n      {typeof children === 'function' ? children(renderProps) : children}\n    </Link>\n  );\n}\n"],"names":["NavLink","ariaCurrentProp","children","className","classNameProp","to","style","styleProp","props","router","useEmberService","locationPathname","currentURL","isActive","ariaCurrent","undefined","renderProps","filter","Boolean","join","_jsx","Link"],"mappings":";;;;AAiBO,SAASA,OAAOA,CAAC;EACtB,cAAc,EAAEC,eAAe,GAAG,MAAM;EACxCC,QAAQ;AACRC,EAAAA,SAAS,EAAEC,aAAa;EACxBC,EAAE;AACFC,EAAAA,KAAK,EAAEC,SAAS;EAChB,GAAGC,KAAAA;AACS,CAAC,EAAa;AAC1B,EAAA,IAAIL,SAA6B,CAAA;AACjC,EAAA,MAAMM,MAAM,GAAGC,eAAe,CAAC,QAAQ,CAAC,CAAA;AACxC,EAAA,MAAMC,gBAAgB,GAAGF,MAAM,CAACG,UAAU,CAAA;AAE1C,EAAA,MAAMC,QAAQ,GAAGF,gBAAgB,KAAKN,EAAE,CAAA;AACxC,EAAA,MAAMS,WAAW,GAAGD,QAAQ,GAAGZ,eAAe,GAAGc,SAAS,CAAA;AAE1D,EAAA,MAAMC,WAAW,GAAG;AAClBH,IAAAA,QAAAA;GACD,CAAA;AAED,EAAA,IAAI,OAAOT,aAAa,KAAK,UAAU,EAAE;AACvCD,IAAAA,SAAS,GAAGC,aAAa,CAACY,WAAW,CAAC,CAAA;AACxC,GAAC,MAAM;AACLb,IAAAA,SAAS,GAAG,CAACC,aAAa,EAAES,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,CACpDI,MAAM,CAACC,OAAO,CAAC,CACfC,IAAI,CAAC,GAAG,CAAC,CAAA;AACd,GAAA;AAEA,EAAA,MAAMb,KAAK,GACT,OAAOC,SAAS,KAAK,UAAU,GAAGA,SAAS,CAACS,WAAW,CAAC,GAAGT,SAAS,CAAA;EAEtE,oBACEa,GAAA,CAACC,IAAI,EAAA;AACH,IAAA,cAAA,EAAcP,WAAY;AAC1BX,IAAAA,SAAS,EAAEA,SAAU;AACrBG,IAAAA,KAAK,EAAEA,KAAM;AACbD,IAAAA,EAAE,EAAEA,EAAG;AAAA,IAAA,GACHG,KAAK;IAAAN,QAAA,EAER,OAAOA,QAAQ,KAAK,UAAU,GAAGA,QAAQ,CAACc,WAAW,CAAC,GAAGd,QAAAA;AAAQ,GAC9D,CAAC,CAAA;AAEX;;;;"}