- Add SMSCategoryNavbar component for filtering SMS patterns
- Integrate category filtering in all SMS selection components
- Add useGetSMSCategories API integration
- Implement scroll reset on category change
- Update types and queryKeys for category support
- Remove personnel store navigation from Home page
- Fix customer club SMS count (non-editable)
- Add backup component copies for safety
workflow, customer management, and banner layouts
- Add booking link service for client retention/touch-ups (repair)
- Implement phone number editing in Loyalty Club customer edit section
- Add "Coming Soon" status for staff on shop and homepage
- Categorize touch-up (repair) service under management categories
- Move time remaining display to the top of touch-up cards
- Remove manual discount SMS from touch-up flow (only booking schedule table is sent)
- Increase banner transition speed to 3.5s
- Reposition academy and rose banners to the bottom and remove them from the top section
- Add explanatory description to unconfirmed bookings banner regarding accounting and cashback integration
- Remove copy option from Cashback section
- Adjust top margin of "How are you doing" section on the homepage
and loyalty club UI
- add schedule sharing and discount SMS actions to repair cards
- apply cashback codes immediately without requiring copy-paste
- remove one-week and two-week appointment table views
- update appointment alert status when marked as completed
- add scroll support and plus icon to the loyalty club section
contact picker API
- Show warning alert if browser does not support `navigator.contacts` (mostly on desktop).
- Prevent silent failures when trying to import contacts on unsupported devices.
in timetable
- add AppointmentTimeModal for blocking/unblocking timeslots
- update appointment time components to support blocked state
- update timetable and quick appointment flows
- add API service and query keys for blocking timeslots