Календарь
Закрытое прошлое
Месяц с закрытым прошлым: недоступный день не молчит на нажатие, а показывает подписанную причину отказа под сеткой.
Что можно поменять
- опорную дату через today и предвыбранную через defaultValue
- текст объяснения через reason
- подписи под сеткой через selectedText и deniedText, подпись закрытого дня через unavailableText
Ссылка для ИИ-агента: в ней превью, код и инструкция.
Превью
Использовать с ИИ
- 1. Скопируйте ссылку.
- 2. Напишите агенту своими словами и вставьте её в предложение.
- 3. Агент откроет ссылку и поставит компонент из реестра.
добавь это на главную первым экраном:
https://vibeui.ru/c/calendar-013?theme=dark
Не знаете, куда вставить? Пошаговый гайд
Показать полную инструкцию
То, что лежит по ссылке в развёрнутом виде. Нужна, если агент не может открыть ссылку — тогда вставьте этот текст целиком.
Загружается…
Для разработчика
Команда установки — в блоке «Исходник компонента» ниже: подписанная ссылка действует сутки.
Технические заметки
Клиентский компонент: useState держит выбранную дату и текст последнего отказа. Прошедшие дни помечены aria-disabled, а не атрибутом disabled — такая кнопка остаётся в порядке обхода табом и принимает нажатие, поэтому вместо пустого клика показывается причина. Сравнение «прошло или нет» делается строками ISO, а не объектами Date: строковое сравнение YYYY-MM-DD корректно и не зависит от часового пояса. Опорный день приходит пропсом today строкой, а не из new Date() — иначе серверный и клиентский рендер разойдутся. Закрытый день перечёркнут, а не только приглушён: одной бледностью его не отличить от дня соседнего месяца. Полоса статуса живёт с role=status и aria-live, поэтому причина зачитывается сразу после нажатия.
Теги
- calendar
- disabled
- booking
- a11y
Исходник компонента
Тот же файл, который поставит агент. Нужен, если вы предпочитаете скопировать код руками.
Загружается…