{# Navigation macros for the dashboard #} {# Render tier badge based on tier name #} {% macro tier_badge(tier) %} {% if tier %} {{ tier }} {% endif %} {% endmacro %} {# Check if a feature is available for the current tier #} {% macro is_feature_available(feature, current_tier) %} {# Define feature availability by tier #} {% set feature_tiers = { 'basic_sync': ['free', 'starter', 'professional', 'enterprise'], 'schedules': ['starter', 'professional', 'enterprise'], 'favorites': ['starter', 'professional', 'enterprise'], 'api_keys': ['professional', 'enterprise'], 'webhooks': ['professional', 'enterprise'], 'multi_user': ['professional', 'enterprise'], 'sla_monitoring': ['enterprise'], 'audit_logs': ['enterprise'], } %} {% set available_tiers = feature_tiers.get(feature, []) %} {{ current_tier|lower in available_tiers }} {% endmacro %} {# Main navigation component with dropdown menus #} {% macro main_nav(current_path, current_user=None) %} {% set tier = current_user.tier|default('free') if current_user else 'free' %} {% endmacro %} {# Simplified navigation for error/minimal pages #} {% macro minimal_nav() %} {% endmacro %} {# Breadcrumb navigation - enhanced version with home icon and accessibility #} {% macro breadcrumb(items) %} {# Renders breadcrumb navigation. Args: items: List of dicts with 'label' and optional 'url' keys Example: [{'label': 'Configs', 'url': '/configs'}, {'label': 'Edit Sales'}] #} {% endmacro %} {# Legacy alias for backward compatibility #} {% macro breadcrumbs(items) %} {{ breadcrumb(items) }} {% endmacro %} {# Feature upgrade notice #} {% macro upgrade_notice(feature, required_tier) %}