Saltar al contenido principal
NeuralUIv1.14.3Nuevo
GitHub
Componente

Sidebar

Panel lateral cuyo estado abierto/cerrado vive en la URL (?menu=open). Modo overlay en mobile, persistent en desktop ≥400px. Estado compartible y sincronizado vía NeuUrlStateService.

TypeScript
import { NeuSidebarComponent } from '@neural-ui/core/sidebar';

Este showcase usa NeuSidebar como navegación principal.
En escritorio (≥400px) es persistente; en mobile es overlay.

URL param: ?menu=open

Patrón URL StateNeuUrlStateService.setParam('menu','open')
La URL cambia a ?menu=open y el sidebar se abre reactivamente en cualquier componente que esté escuchando ese parámetro.
TypeScript
import { NeuSidebarComponent } from '@neural-ui/core/sidebar';
import { NeuUrlStateService } from '@neural-ui/core/url-state';

@Component({
  imports: [NeuSidebarComponent, NeuButtonComponent],
  template: `
    <!-- El sidebar gestiona su propio estado desde ?menu=open / Sidebar manages its own state from ?menu=open -->
    <neu-sidebar
      urlParam="menu"
      [persistent]="isDesktop()"
      [closeOnEscape]="true"
      [restoreFocus]="true"
    >
      <span neu-sidebar-header>Mi App</span>
      <nav><!-- links de navegación / navigation links --></nav>
      <div neu-sidebar-footer>v1.0</div>
    </neu-sidebar>

    <!-- Abrir desde cualquier botón / Open from any button -->
    <button neu-button (click)="open()">Abrir menú</button>
  `
})
export class AppComponent {
  private readonly urlState = inject(NeuUrlStateService);
  isDesktop = computed(() => window.innerWidth >= 400);

  open() {
    this.urlState.setParam('menu', 'open', false);
  }
}`