() => {
const [selectedDate, setSelectedDate] = useState(new Date());
const highlightedDates = useMemo(() => {
const d = new Date();
d.setDate(d.getDate() - 1);
return [d];
}, []);
const disabledDates = useMemo(() => {
const d = new Date();
d.setDate(d.getDate() - 2);
return [d];
}, []);
return (
<>
<style>{`
.calendar-slot-demo-nav-arrow [data-icon-name] {
color: var(--color-bgNegative);
}
.calendar-slot-day-header span {
color: var(--color-bgNegative);
}
.calendar-slot-day-cell[aria-pressed="true"] {
background-color: var(--color-bgWarning);
border-color: var(--color-bgWarning);
}
.calendar-slot-day-cell[aria-current="date"] {
border-color: var(--color-accentBoldYellow);
}
.calendar-slot-day-cell[aria-disabled="true"] {
background-color: var(--color-bgDisabled);
border-color: var(--color-bgDisabled);
}
.calendar-slot-day-cell[aria-disabled="true"] span {
color: var(--color-bgPositive);
}
.calendar-slot-day-cell[data-highlight="true"] {
background-color: var(--color-bgPositiveWash);
border-color: var(--color-bgPositive);
}
.calendar-slot-day-cell[data-highlight="true"] span {
color: var(--color-fg);
}
`}</style>
<Calendar
selectedDate={selectedDate}
onPressDate={setSelectedDate}
disabledDates={disabledDates}
highlightedDates={highlightedDates}
classNames={{
navArrow: 'calendar-slot-demo-nav-arrow',
dayHeader: 'calendar-slot-day-header',
dayCell: 'calendar-slot-day-cell',
}}
styles={{
root: {
backgroundColor: 'var(--color-bgAlternate)',
borderRadius: 16,
borderColor: 'var(--color-bgLinePrimary)',
borderWidth: 'medium',
},
header: {
paddingBottom: 0,
backgroundColor: 'var(--color-bgPositiveWash)',
borderRadius: 16,
},
monthLabel: { color: 'var(--color-fgPrimary)' },
navArrows: { border: 'medium dashed var(--color-bgLine)', borderRadius: 8 },
navArrow: { backgroundColor: 'transparent', borderColor: 'transparent' },
calendarGrid: { paddingBottom: 8, paddingTop: 8 },
dayCell: { borderRadius: 8 },
}}
/>
</>
);
};