Phoundry UI

DatePickerAdvanced

Inline calendar with optional date summary rows, time pickers, and toggles. Month and year grids keep a stable height; use Back in the header to return to the day grid.

import { DatePickerAdvanced } from 'phoundry-ui';

Notion-style toggles

End date, include time, and clear — controlled via bindable value. Week starts on Monday.

Select date
Mo
Tu
We
Th
Fr
Sa
Su
End date
Include time

Date: none

Show code
let dateValue = $state<DatePickerAdvancedValue>({
	startDate: null,
	endDate: null,
	includeTime: false,
	includeEndDate: false
});

<DatePickerAdvanced
  bind:value={dateValue}
  weekStartsOn={1}
/>

Compact calendar (no toggles)

Matches the internal panel used by DatePicker — only the grid + navigation chrome.

Su
Mo
Tu
We
Th
Fr
Sa
Show code
<DatePickerAdvanced
  bind:value={compactValue}
  showToggles={false}
  minDate={advMin}
  maxDate={advMax}
/>

Disabled

2026/05/15
Su
Mo
Tu
We
Th
Fr
Sa
End date
Include time
Show code
<DatePickerAdvanced bind:value={locked} disabled />

DatePickerAdvanced props

PropTypeDefaultDescription
value DatePickerAdvancedValueBindable structured value (start/end, include toggles).
onchange (type: DatePickerChangeType, value: DatePickerAdvancedValue) => voidOptional lifecycle hook — useful for analytics; state still updates via `bind:value`.
minDate DateEarliest selectable date.
maxDate DateLatest selectable date.
disabled booleanfalseDisable the picker.
weekStartsOn 0 | 10First day of week: 0 = Sunday, 1 = Monday.
showToggles booleantrueShow date rows + Notion-style toggles (End date, Include time, Clear).
class stringAdditional CSS classes.

Usage tips

  • Use minDate and maxDate to constrain selectable dates.
  • In range mode (when includeEndDate is true), the first click sets the start and the second click sets the end.
  • Use DatePickerAdvanced with showToggles={false} for a compact calendar (same layout DatePicker uses internally).
  • Set weekStartsOn={1} for Monday-first calendars (ISO standard).