Не жирно ли на каждый рендер проверять вхождение каждой отдельной даты в диапазон? В сложности алгоритмов не эксперт, но такой, мне кажется, не слишком оптимальный. Наверное, человек интересовался как это сделать на css
Мемоизация?
на ксс, все равно придеться указывать классы для первого и последнего выделенного элемента, либо перепридумывать всю структуру html, мб гриды помогут впихнуть список выбранных элементов, что бы переходили на след строчки.