Panel lateral y popover
Ambos son diálogos que no cubren toda la pantalla: un panel lateral se ancla al borde izquierdo o derecho y deja la
pantalla a la vista, un popover se abre junto al control al que pertenece. Se abren y se cierran como un diálogo (un botón con una
acción dialog, y las acciones close y close-cancel) y se cierran con su cruz, con Esc o con un clic fuera. Pulsa los botones de abajo: los
playgrounds ejecutan esas acciones.
Ambos se dibujan sobre toda la página, fuera de la vista previa, así que siguen el modo de color del sitio y no el del interruptor Claro / Oscuro de la vista previa.
Panel lateral
Úsalo para contenido que el usuario consulta o edita junto a la pantalla: filtros, el detalle de una fila, ajustes. La cabecera y el pie siguen a la vista y el cuerpo se desplaza entre ellos.
<side-panel id="demo" label="Edit customer">
<tag type="div" style="panel-body">
<criteria id="Name" component="text" label="Name" />
<criteria id="Notes" component="textarea" label="Notes" />
</tag>
<tag type="div" style="modal-footer">
<button id="Cancel" label="Cancel">
<button-action type="close-cancel" target="demo" />
</button>
<button id="Save" label="Save" style="btn-primary">
<button-action type="close" target="demo" />
</button>
</tag>
</side-panel>
<button id="OpenPanel" label="Open the side panel">
<button-action type="dialog" target="demo" />
</button>
- Atributos
- Eventos y acciones
- Referencia completa
Los controles de arriba escriben estos atributos. La referencia lista todos los atributos, con su tipo y valor por defecto. Atributos en la referencia XSD
| Atributo | Control | Valores |
|---|---|---|
label | Título | text |
icon | Icono | lucide:userlucide:settingslucide:filterlucide:bell |
position | Borde | rightleft |
max-width | Ancho máximo | 20rem30rem50vw |
on-close | Al descartarlo | acceptreject |
tag | Pie con botones | true / false |
| Evento | Descripción |
|---|---|
open | Se guarda en el panel lateral cuando se abre. |
close | Se guarda en el panel lateral cuando se cierra. |
| Acción (type) | Qué hace |
|---|---|
dialog | Abre el panel lateral indicado en target. |
close | Cierra el panel lateral y continúa con las acciones que esperaban. |
close-cancel | Cierra el panel lateral y cancela las acciones que esperaban. |
Con header-grid la cabecera de un panel lateral muestra la fila seleccionada de una tabla (un avatar, un título, un subtítulo y etiquetas
header-tag). Esa cabecera de identidad necesita una tabla con una fila seleccionada y no forma parte de este playground: consulta
la cabecera de identidad.
Popover
Úsalo para contenido breve ligado a un control: una edición rápida, unas pocas opciones, una nota. Su anchor es el id de ese control (un
botón, un criterio, una tabla...) y position el lado por el que se abre. Sigue al ancla mientras la página se desplaza.
<popover id="demo" label="Quick note" anchor="OpenNote">
<criteria id="Note" component="textarea" label="Note" />
</popover>
<button id="OpenNote" label="Add a note" icon="lucide:message-square">
<button-action type="dialog" target="demo" />
</button>
- Atributos
- Eventos y acciones
- Referencia completa
Los controles de arriba escriben estos atributos. La referencia lista todos los atributos, con su tipo y valor por defecto. Atributos en la referencia XSD
| Atributo | Control | Valores |
|---|---|---|
label | Título | text |
position | Lado del ancla | bottomtopleftright |
max-width | Ancho máximo | 14rem30rem |
tag | Pie con un botón | true / false |
| Evento | Descripción |
|---|---|
open | Se guarda en el popover cuando se abre. |
close | Se guarda en el popover cuando se cierra. |
| Acción (type) | Qué hace |
|---|---|
dialog | Abre el popover indicado en target, junto a su ancla. |
close | Cierra el popover y continúa con las acciones que esperaban. |
close-cancel | Cierra el popover y cancela las acciones que esperaban. |
Recetas
Filtros a la izquierda
Un panel lateral en el borde izquierdo, estrecho, cuyo on-close="reject" hace que la cruz, Esc y un clic fuera se comporten como Cancelar:
las acciones que esperaban al panel se cancelan.
<button id="OpenFilters" label="Filtros" icon="lucide:filter">
<button-action type="dialog" target="FiltersPanel" />
</button>
<side-panel id="FiltersPanel" label="Filtros" position="left" max-width="20rem" on-close="reject">
<tag type="div" style="panel-body">
<criteria id="Search" component="text" label="Buscar" placeholder="Nombre o correo" />
<criteria id="OnlyActive" component="checkbox" label="Solo clientes activos" style="switch" />
</tag>
<tag type="div" style="modal-footer">
<button id="Reset" label="Restablecer">
<button-action type="close-cancel" target="FiltersPanel" />
</button>
<button id="Apply" label="Aplicar" style="btn-primary">
<button-action type="close" target="FiltersPanel" />
</button>
</tag>
</side-panel>
Confirmar sobre un control
Un popover encima de su ancla. Abrirlo desde el botón que necesita la decisión mantiene la pregunta junto a la acción.
<button id="Archive" label="Archivar cliente" icon="lucide:archive">
<button-action type="dialog" target="ArchivePopover" />
</button>
<popover id="ArchivePopover" label="¿Archivar este cliente?" anchor="Archive" position="top" max-width="16rem">
<tag type="p" label="Sus pedidos se conservan en el historial." />
<tag type="div" style="modal-footer">
<button id="Keep" label="Mantener">
<button-action type="close-cancel" target="ArchivePopover" />
</button>
<button id="Confirm" label="Archivar" style="btn-danger">
<button-action type="close" target="ArchivePopover" />
</button>
</tag>
</popover>
Eventos y acciones
Ambos guardan los eventos open y close cuando se abren y se cierran, así que una dependencia puede reaccionar
a ellos. Se abren y se cierran con acciones de los botones, las mismas que un diálogo.
| Acción | Descripción |
|---|---|
dialog | Abre el panel lateral o el popover indicado en target |
close | Lo cierra y continúa con las acciones que esperaban |
close-cancel | Lo cierra y cancela las acciones que esperaban |
Con on-close="reject" la cruz, Esc y un clic fuera actúan como close-cancel; por defecto (accept) actúan como close. Con
deferred="true" los datos de los componentes de dentro se cargan la primera vez que se abre. Mientras está abierto, el foco del teclado
se queda dentro, y vuelve al control que lo abrió cuando se cierra.
Más
- Documentación completa del panel lateral y del popover.
- Referencia XSD del elemento
side-panely del elementopopover.