Navigation
Inputs & Forms
Selection
Containers & Overlays
Inline
Calendar picks a day from a month grid. It can be shown inline, in a CalendarPopover that confirms with “Set Date”, or from the calendar button of a DateInput.
Mo
Di
Mi
Do
Fr
Sa
So
Selected:
2026-11-02T11:18:56.881Z"use client";import React, {useState} from "react";import {Calendar} from "@brynlabs/fusion-ui";import {calendarPresets} from "@/app/(docs)/components/calendar/calendar-presets";export const CalendarExample = () => {const [value, setValue] = useState<Date | undefined>(new Date());return (<div style={{display: "flex", flexDirection: "column", gap: "10px"}}><Calendar value={value} onChange={setValue} presets={calendarPresets} locale={"de-DE"} /><div>Selected: <code suppressHydrationWarning>{value?.toISOString() ?? "undefined"}</code></div></div>);};
Popover
Selected:
undefined"use client";import React, {useState} from "react";import {Button, CalendarPopover, IconCalendar} from "@brynlabs/fusion-ui";import {calendarPresets} from "@/app/(docs)/components/calendar/calendar-presets";export const CalendarPopoverExample = () => {const [value, setValue] = useState<Date | undefined>(undefined);return (<div style={{display: "flex", flexDirection: "column", gap: "10px", alignItems: "flex-start"}}><CalendarPopover value={value} onChange={setValue} presets={calendarPresets}><Button primaryIcon={<IconCalendar />} color={"neutral"}>{value ? value.toLocaleDateString() : "Pick a date"}</Button></CalendarPopover><div>Selected: <code suppressHydrationWarning>{value?.toISOString() ?? "undefined"}</code></div></div>);};
Date / time input
Appointment
Selected:
2026-11-02T11:18:56.910Z"use client";import React, {useState} from "react";import {DateInput} from "@brynlabs/fusion-ui";import {calendarPresets} from "@/app/(docs)/components/calendar/calendar-presets";export const CalendarDateInputExample = () => {const [value, setValue] = useState<Date | undefined>(new Date());return (<div style={{display: "flex", flexDirection: "column", gap: "10px"}}><DateInputlabel={"Appointment"}type={"datetime"}value={value}onChange={setValue}calendarProps={{presets: calendarPresets}}/><div>Selected: <code suppressHydrationWarning>{value?.toISOString() ?? "undefined"}</code></div></div>);};
Range
RangeCalendar shows two months side by side. The first click picks the start, the second the end; hovering previews the range.
Mo
Di
Mi
Do
Fr
Sa
So
Mo
Di
Mi
Do
Fr
Sa
So
Selected:
undefined → undefined"use client";import React, {useState} from "react";import {DateRange, RangeCalendar} from "@brynlabs/fusion-ui";import {rangeCalendarPresets} from "@/app/(docs)/components/calendar/calendar-presets";export const RangeCalendarExample = () => {const [value, setValue] = useState<DateRange>({});return (<div style={{display: "flex", flexDirection: "column", gap: "10px"}}><RangeCalendarvalue={value}onChange={setValue}presets={rangeCalendarPresets}locale={"de-DE"}/><div>Selected: <code>{value.start?.toISOString() ?? "undefined"}</code> →{" "}<code>{value.end?.toISOString() ?? "undefined"}</code></div></div>);};
Range popover
Selected:
undefined → undefined"use client";import React, {useState} from "react";import {Button, DateRange, IconCalendar, RangeCalendarPopover} from "@brynlabs/fusion-ui";export const RangeCalendarPopoverExample = () => {const [value, setValue] = useState<DateRange>({});return (<div style={{display: "flex", flexDirection: "column", gap: "10px", alignItems: "flex-start"}}><RangeCalendarPopover value={value} onChange={setValue}><Button primaryIcon={<IconCalendar />} color={"neutral"}>{value.start && value.end? `${value.start.toLocaleDateString()} – ${value.end.toLocaleDateString()}`: "Pick a range"}</Button></RangeCalendarPopover><div>Selected: <code>{value.start?.toISOString() ?? "undefined"}</code> →{" "}<code>{value.end?.toISOString() ?? "undefined"}</code></div></div>);};

