{# Filter Sidebar Components ========================= Product filtering panel for category and search pages. Usage: {% from 'shared/macros/storefront/filter-sidebar.html' import filter_sidebar, filter_group, price_filter, rating_filter %} #} {# Filter Sidebar ============== Complete filter sidebar with multiple filter types. Parameters: - filters_var: Alpine.js expression for filter configuration (default: 'filters') - active_filters_var: Alpine.js expression for active filters (default: 'activeFilters') - on_change: JavaScript callback when filters change (default: 'filterProducts()') - show_clear: Show clear all button (default: true) - collapsible: Make filter groups collapsible (default: true) Expected filters structure: { categories: [{ id, name, count }], brands: [{ id, name, count }], priceRange: { min: 0, max: 1000 }, attributes: { color: [{ value, label, count, hex }], size: [{ value, label, count }] }, ratings: [{ value: 5, count: 10 }, ...] } Usage: {{ filter_sidebar(filters_var='filters', on_change='applyFilters()') }} #} {% macro filter_sidebar( filters_var='filters', active_filters_var='activeFilters', on_change='filterProducts()', show_clear=true, collapsible=true ) %} {% endmacro %} {# Internal: Filter Group for Categories/Brands #} {% macro _filter_group(title, type, collapsible) %}