{"version":3,"file":"RouterLink.cjs","names":["useRouterLink"],"sources":["../../../src/router/RouterLink/RouterLink.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { useRouterLink } from '../useRouterLink';\nimport type { ReactNode, MouseEvent } from 'react';\n\nexport interface RouterLinkProps {\n  path: string;\n  params?: Record<string, string | number | boolean | null | undefined>;\n  searchParams?: URLSearchParams;\n  hash?: string;\n  className?: string;\n  preventNavigate?: boolean;\n  children: ReactNode;\n}\n\n/**\n * Renders a router-aware anchor.\n *\n * The `href` comes from `router.getRouterLink`, so route params, query params,\n * hash, and active-route matching all use the same tools router logic as\n * `useRouterLink`.\n *\n * @param props - Router link options plus anchor presentation props.\n * @param ref - Forwarded anchor ref.\n * @returns An anchor element.\n *\n * @example\n * ```tsx\n * <RouterLink path=\"/users/:id\" params={{ id: 123 }}>\n *   User profile\n * </RouterLink>\n * ```\n */\nexport const RouterLink = forwardRef<HTMLAnchorElement, RouterLinkProps>((props, ref) => {\n  const { className, preventNavigate, children } = props;\n  const { pathname, navigate } = useRouterLink(props);\n\n  function onClick(e: MouseEvent) {\n    e.preventDefault();\n\n    if (!preventNavigate) navigate();\n  }\n\n  return (\n    <a ref={ref} href={pathname} className={className} onClick={onClick}>\n      { children }\n    </a>\n  );\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAgCA,MAAa,cAAA,GAAA,MAAA,WAAA,EAA6D,OAAO,QAAQ;CACvF,MAAM,EAAE,WAAW,iBAAiB,aAAa;CACjD,MAAM,EAAE,UAAU,aAAaA,2CAAAA,cAAc,KAAK;CAElD,SAAS,QAAQ,GAAe;EAC9B,EAAE,eAAe;EAEjB,IAAI,CAAC,iBAAiB,SAAS;CACjC;CAEA,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;EAAQ;EAAK,MAAM;EAAqB;EAAoB;EACxD;CACD,CAAA;AAEP,CAAC"}