@@ -5,6 +5,120 @@ All notable changes to this project will be documented in this file.
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.0.0/ ) ,
66and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
8+ ## [ 2.3.0] - 2026-01-14
9+
10+ ### ✨ New Features
11+
12+ #### Fuzzy Search
13+ - Advanced search algorithm supporting acronym-style matching (e.g., "fb" matches "Facebook")
14+ - Scores and ranks results by relevance with consecutive match bonuses
15+ - Word boundary detection for better acronym matching
16+ - Configurable threshold and case sensitivity
17+ - Props: ` enableFuzzySearch ` , ` fuzzySearchThreshold ` , ` fuzzySearchCaseSensitive `
18+ - New utility: ` fuzzyMatch() ` and ` sortByFuzzyScore() ` exported for external use
19+
20+ #### Dark Mode
21+ - Automatic system dark mode detection via CSS media queries
22+ - Uses Angular signals for reactive theme switching
23+ - Manual override with ` colorScheme ` prop ('auto', 'light', 'dark')
24+ - Dedicated dark theme with proper contrast and readability
25+ - New provider: ` DarkModeProvider ` service for theme management
26+ - Props: ` enableAutoThemeDetection ` , ` colorScheme ` , ` darkModeTheme ` , ` lightModeTheme `
27+
28+ #### Loading Skeleton
29+ - Modern shimmer skeleton UI during async loading operations
30+ - Customizable item count, height, and animation delay
31+ - Smooth gradient animation with configurable timing
32+ - Props: ` enableLoadingSkeleton ` , ` skeletonItemCount ` , ` skeletonItemHeight ` , ` skeletonAnimationDelay `
33+
34+ #### Compact Mode
35+ - Ultra-dense layout variant for dashboards and data-heavy UIs
36+ - Reduced padding, font sizes, and gaps throughout component
37+ - Works with all existing features (multi-select, validation, etc.)
38+ - Single prop activation: ` compactMode `
39+
40+ #### Custom Tag Templates
41+ - Full control over multi-select tag rendering via ng-template
42+ - Support custom layouts, avatars, badges, and styling
43+ - Template context includes option data and selection state
44+ - Usage: ` <ng-template #tagTemplate let-option>...</ng-template> `
45+
46+ #### Option Checkbox Mode
47+ - Visual checkboxes next to options for better selection feedback
48+ - Three style variants: default, filled, outlined
49+ - Configurable left/right position
50+ - Enhanced accessibility with proper ARIA attributes
51+ - Props: ` showOptionCheckboxes ` , ` checkboxPosition ` , ` checkboxStyle `
52+
53+ #### Bulk Actions
54+ - Action buttons for performing operations on selected options
55+ - Three position options: above, below, or floating
56+ - Configurable label and disabled states
57+ - Event emission for custom handling
58+ - Props: ` bulkActions ` , ` enableBulkActions ` , ` bulkActionsPosition ` , ` bulkActionsLabel `
59+ - New event: ` bulkActionSelected `
60+ - New interface: ` BulkAction `
61+
62+ #### Option Sorting
63+ - Multiple built-in sort modes: alphabetical (asc/desc), recently-used
64+ - Custom comparator function support for advanced sorting
65+ - Recently used tracking with configurable limit
66+ - Integrates seamlessly with existing filtering and pinning
67+ - Props: ` sortMode ` , ` customSortComparator ` , ` recentlyUsedLimit `
68+ - New utility: ` sortOptions() ` exported for external use
69+
70+ ### 📦 New Exports
71+
72+ - ` DarkModeProvider ` - Injectable service for dark mode management
73+ - ` ColorScheme ` - Type for color scheme preference
74+ - ` BulkAction ` - Interface for bulk action configuration
75+ - ` SelectBulkActionEvent ` - Event interface for bulk actions
76+ - ` fuzzyMatch() ` - Utility function for fuzzy string matching
77+ - ` FuzzyMatchResult ` - Interface for fuzzy match results
78+ - ` sortByFuzzyScore() ` - Utility to sort items by fuzzy score
79+ - ` sortOptions() ` - Utility function for option sorting
80+ - ` SortMode ` - Type for sorting modes
81+ - ` SortConfig ` - Interface for sort configuration
82+
83+ ### 🔧 Improvements
84+
85+ - Added ` resolvedTheme ` computed signal for automatic theme resolution
86+ - Added ` hasBulkActions ` computed signal for conditional rendering
87+ - Added ` recentlyUsedIds ` signal for tracking usage history
88+ - Enhanced ` filteredOptions ` to support fuzzy search and sorting
89+ - Better separation of concerns with new utility modules
90+
91+ ### 🎨 Styles
92+
93+ - Added ~ 350 lines of new SCSS for all v2.3.0 features
94+ - Complete dark mode styling with CSS custom properties
95+ - Skeleton loader animations with shimmer effect
96+ - Compact mode adjustments for all component parts
97+ - Checkbox styles for all three variants
98+ - Bulk actions bar with multiple position options
99+ - Responsive design for all new features
100+
101+ ### 📊 Statistics
102+
103+ - ** 27 new @Input properties**
104+ - ** 1 new @Output event**
105+ - ** 1 new @ContentChild template**
106+ - ** 4 new utility files**
107+ - ** 1 new provider**
108+ - ** 1 new interface file**
109+ - ** ~ 500 lines of new TypeScript**
110+ - ** ~ 350 lines of new SCSS**
111+ - ** ~ 50 lines of template updates**
112+
113+ ### 🔄 Demo App Updates
114+
115+ - Added 14 new examples showcasing v2.3.0 features
116+ - Updated metadata with 23 new prop definitions
117+ - Added ` v2.3-features ` category
118+ - Combined feature examples demonstrating integration
119+
120+ ---
121+
8122## [ 2.2.0] - 2026-01-09
9123
10124### ✨ New Features
0 commit comments