- Convert preview filter from client-side JS to server-side AJAX
- Add debounce utility function for 300ms delayed AJAX calls
- Add filter handlers for all 4 preview types (tab, condition, group, filter-group)
- Add filterProductIdsByQuery() method to EntityPreviewHandler
- Update all AJAX handlers to support filter parameter
- Lock popover width when filtering to prevent resize
- Add loading overlay CSS for filter state
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Refactor preview popover into reusable component with filter input and load more
- Fix sort controls: connect sort-field-select to btn-sort-dir (shared border)
- Fix refine controls: connect btn-refine-negate to refine-input
- Add flex-shrink: 0 and min-width to prevent button shrinking
- Fix grid view items: border on all 4 sides, no padding
- Add EXCEPT separator styling for selection groups
- Various button width and height fixes for consistency
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Move toggle-count click handler next to filter-group-toggle handler
- Use this.$dropdown.on() for proper event delegation within dropdown context
- Ensures self reference is correctly captured for showFilterGroupPreviewPopover
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Added check to ignore clicks on .toggle-count.clickable in filter-group-toggle handler
- Prevents parent button from expanding values when clicking preview badge
- Added .gitignore to exclude node_modules
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add showFilterGroupPreviewPopover method in _preview.js
- Make toggle-count badges clickable with data attributes
- Add event binding for .toggle-count.clickable in _events.js
- Add hover/active/loading styles for clickable toggle-count
- Requires previewFilterGroupProducts AJAX handler in PHP backend
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>