Chips toolbar improvements:
- Filter input now uses all available space (flex: 1)
- Added sort dropdown: Order added, Name A-Z, Name Z-A
- Changed "Show X more" button to select dropdown pattern
- Load 20, 50, 100, or All
- Shows remaining count
- Collapse button to return to default view
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Wrap filter input in pill-shaped container (.chips-filter-group)
- Remove hard border separation between toolbar and chips
- Make toolbar feel like part of the chips area with shared background
- Smaller, subtler count badge and clear button
- Clear button styled as danger pill that fills on hover
- Responsive: hide clear text on small screens
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1. Fix Select All not persisting in list view:
- Updated Select All handler to populate pendingSelections array
- Updated Clear selection handler to clear pendingSelections for list view
- Updated dropdown item click to add/remove from pendingSelections
- Updated chip remove handler to filter pendingSelections
2. Fix chips toolbar (search/delete all) not showing:
- PHP renderer was pre-creating chips-wrapper without toolbar
- JS ensureChipsWrapper was skipping because wrapper existed
- Removed wrapper from PHP so JS creates complete wrapper with toolbar
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix validation mixin not being merged in _core.js which broke tree item selection
- Add data-entities attribute to sort options for entity-specific filtering
- Improve event handlers and filter panel updates
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add validation system to prevent contradicting conditions:
- Same entity in include/exclude detection
- Parent-child conflict detection for tree entities
- Redundant selection prevention
- Toast notifications for validation errors
- Fix entity icons (employees: briefcase, taxes: calculator)
- Improve tooltip component:
- Use Material Icons instead of broken FA4 icons
- Fix positioning using getBoundingClientRect for viewport coords
- Add click-to-pin functionality with close button
- Pinned tooltips show X icon and close button in corner
- Add lightweight test suite (31 tests) for validation logic
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Features:
- Tree view mode for categories with expand/collapse
- Product count badges with clickable preview popover
- Select parent with all children button
- Client-side tree filtering (refine search)
- Keyboard shortcuts: Ctrl+A (select all), Ctrl+D (clear)
- View mode switching between tree/list/columns
- Tree view as default for categories, respects user preference
Backend:
- Add previewCategoryProducts and previewCategoryPages AJAX handlers
- Support pagination and filtering in category previews
Styling:
- Consistent count-badge styling across tree and other views
- Loading and popover-open states for count badges
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 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>