Hoja inferior con lista de acciones — patrón iOS / Ionic. Slide-up en móvil, modal centrado con max-width en desktop. Backdrop con blur, handle de arrastre, acción destructiva en rojo, botón "Cancelar" separado del grupo.
Nota: los ejemplos siguientes son markup estático con state="open" para mostrar la pieza. Para abrir/cerrar reactivo, mira el ejemplo final con Datastar ($open).
{% from "<component>.jinja" import <component> %}
{{ <component>(...) }}
Or with JinjaX:
<Component ... />
Con acción destructiva
¿Eliminar este pedido?
Esta acción no se puede deshacer
<div style="position:relative; min-height:480px;">
<div class="action-sheet-root" data-state="open">
<div class="backdrop"></div>
<div class="action-sheet" role="dialog" aria-modal="true" aria-labelledby="action-sheet-title">
<div class="action-sheet-handle" aria-hidden="true"></div>
<header class="action-sheet-head">
<h3 class="action-sheet-title" id="action-sheet-title">¿Eliminar este pedido?</h3>
<p class="action-sheet-sub">Esta acción no se puede deshacer</p>
</header>
<div class="action-sheet-actions">
<button class="action-sheet-action destructive">Eliminar pedido</button>
<button class="action-sheet-action">Archivar en su lugar</button>
</div>
<div class="action-sheet-cancel-wrap">
<button type="button" class="action-sheet-cancel" data-on:click="$open = false">Cancelar</button>
</div>
</div>
</div>
</div>
<div style="position:relative; min-height:480px;">
{% call action_sheet(title="¿Eliminar este pedido?", subtitle="Esta acción no se puede deshacer", state="open") %}
<button class="action-sheet-action destructive">Eliminar pedido</button>
<button class="action-sheet-action">Archivar en su lugar</button>
{% endcall %}
</div>
<div style="position:relative; min-height:480px;">
{% call action_sheet(title="¿Eliminar este pedido?", subtitle="Esta acción no se puede deshacer", state="open") %}
<button class="action-sheet-action destructive">Eliminar pedido</button>
<button class="action-sheet-action">Archivar en su lugar</button>
{% endcall %}
</div>
Install the Jinja addon and import the component:
pip install outfitkit
Then in your template:
{% from "<component>.jinja" import <component> %}
{{ <component>(...) }}
Or with JinjaX:
<Component ... />
Sin head, sin cancel, con acción primary + disabled