{# Unified empty-state component (Phase 10.2). One consistent "no content" design across CampusCart. Presentation only — it renders whatever icon / copy / CTAs the page passes; it holds no logic. Params: icon - Bootstrap icon class (e.g. 'bi-bookmark-heart'). Optional when an illustration slot is provided via {% call %}. title - short heading (required). description - one or two lines of body copy (optional). cta_label/url - primary call to action (optional). cta_icon optional. secondary_label/url - optional secondary action (outline button). reset_label/url - optional "reset filters" action (compact outline button). compact - true for in-card / table-cell empties (no card chrome, smaller icon, non-heading title so it's valid inside a
{{ title }}
{% else %}{{ description }}
{% endif %} {% if (cta_label and cta_url) or (secondary_label and secondary_url) or (reset_label and reset_url) %}