{# Panel/Tile Component Library #} {# Usage: {{ import '_panels.html' }} then call panel macros #} {# Panel Container Macro Parameters: - title (str): Panel title (optional) - variant (str): 'default', 'alt', 'dark', 'bordered' (default: 'default') - padding (str): 'none', 'sm', 'md', 'lg' (default: 'md') - classes (str): Additional CSS classes - attrs (str): Additional HTML attributes Content Block: - header: Optional custom header (overrides title) - body: Panel content (required) - footer: Optional footer content Examples: {% call panel(title='Deck Stats') %} {% block body %}
Cards: 100
{% endblock %} {% endcall %} {% call panel(variant='alt', padding='lg') %} {% block body %}Content here
{% endblock %} {% endcall %} #} {% macro panel(title='', variant='default', padding='md', classes='', attrs='') %} {%- set variant_class = 'panel-' + variant if variant != 'default' else '' -%} {%- set padding_class = 'panel-padding-' + padding -%} {%- set all_classes = ['panel', variant_class, padding_class, classes]|select|join(' ') -%}Hello, user!
') }} {{ simple_panel(content='No title panel
', variant='alt') }} #} {% macro simple_panel(title='', content='', variant='default', padding='md', classes='', attrs='') %} {%- set variant_class = 'panel-' + variant if variant != 'default' else '' -%} {%- set padding_class = 'panel-padding-' + padding -%} {%- set all_classes = ['panel', variant_class, padding_class, classes]|select|join(' ') -%}Advanced settings here
{% endblock %} {% endcall %} #} {% macro collapsible_panel(title, id='', expanded=False, variant='default', padding='md', classes='') %} {%- set panel_id = id if id else 'panel-' + title|lower|replace(' ', '-') -%} {%- set content_id = panel_id + '-content' -%} {%- set variant_class = 'panel-' + variant if variant != 'default' else '' -%} {%- set padding_class = 'panel-padding-' + padding -%} {%- set expanded_class = 'panel-expanded' if expanded else 'panel-collapsed' -%} {%- set all_classes = ['panel', 'panel-collapsible', variant_class, padding_class, expanded_class, classes]|select|join(' ') -%}