Files
fn_registry/frontend/functions/ui/nav_link.md
T
egutierrez cfdf515228 chore: auto-commit (799 archivos)
- .claude/CLAUDE.md
- .claude/commands/subagentes.md
- .claude/rules/INDEX.md
- .mcp.json
- bash/functions/cybersecurity/analyze_dns.md
- bash/functions/cybersecurity/audit_http_headers.md
- bash/functions/cybersecurity/audit_ssh_config.md
- bash/functions/cybersecurity/check_firewall.md
- bash/functions/cybersecurity/detect_suspicious_users.md
- bash/functions/cybersecurity/encrypt_file.md
- ...

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 00:28:20 +02:00

81 lines
2.2 KiB
Markdown

---
name: nav_link
kind: component
lang: ts
domain: ui
version: "1.0.0"
purity: impure
signature: "FnNavLink(props: FnNavLinkProps): JSX.Element"
description: "Link de navegacion con icono, descripcion y anidamiento. Wrapper sobre Mantine NavLink."
tags: [mantine, navigation, link, sidebar, menu, component, ui, pendiente-usar]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: ""
imports: ["@mantine/core"]
framework: react
props:
- name: label
type: "string"
required: true
description: "Texto principal del link"
- name: description
type: "string"
required: false
description: "Texto secundario debajo del label"
- name: icon
type: "ReactNode"
required: false
description: "Icono a la izquierda del label"
- name: active
type: "boolean"
required: false
description: "Estado activo/seleccionado"
- name: onClick
type: "MouseEventHandler"
required: false
description: "Callback al hacer click"
- name: href
type: "string"
required: false
description: "URL para navegacion como anchor"
- name: children
type: "ReactNode"
required: false
description: "NavLinks hijos para crear arbol anidado"
- name: opened
type: "boolean"
required: false
description: "Controla si los hijos estan expandidos"
- name: defaultOpened
type: "boolean"
required: false
description: "Estado inicial de expansion de hijos"
output: "Link de navegacion con highlight activo, icono y soporte para sub-items colapsables"
tested: false
tests: []
test_file_path: ""
file_path: "frontend/functions/ui/nav_link.tsx"
emits: []
has_state: false
variant: []
---
## Ejemplo
```tsx
import { FnNavLink } from '@fn_library'
import { IconHome, IconSettings } from '@tabler/icons-react'
<FnNavLink label="Home" icon={<IconHome size={16} />} active />
<FnNavLink label="Settings" icon={<IconSettings size={16} />} defaultOpened>
<FnNavLink label="General" />
<FnNavLink label="Seguridad" />
</FnNavLink>
```
## Notas
Wrapper sobre Mantine `NavLink`. Soporta anidamiento -- pasar `FnNavLink` como children crea un arbol colapsable. El `icon` se mapea a `leftSection` internamente. Ideal para uso dentro de `FnAppShell` navbar.