How mijick/calendarview works
CalendarView is a SwiftUI library for rendering customizable month calendars with optional selected-date and date-range bindings. An app supplies those bindings and a configuration; the public initializer creates the calendar view, which generates month data, displays weekday and month headers, and renders each month. Day cells provide selection and range visuals, while public view protocols let callers replace calendar elements. Date, weekday, formatting, and range models support rendering. The tree and sampled source establish the main entry and rendering calls; some internal implementations, including month-cell rendering and selection-state storage, were not sampled, so their wiring is left conservative.
Main entry points: MCalendarView.swift Calendar View · Public+DayView.swift Day View Protocol · Public+MCalendarView.swift Calendar Initializer · Data.MonthView.swift Month Grid Data
Components 17
Public API
- Calendar Initializer
Sources/Public/Extensions/Public+MCalendarView.swift
Calendar Rendering
- Calendar View
Sources/Internal/Views/MCalendarView.swift - Month Renderer
Sources/Internal/Views/MonthView.swift - Default Day View
Sources/Internal/Views/Default/DefaultDayView.swift - Weekday Header
Sources/Internal/Views/Default/DefaultWeekdaysView.swift
Calendar Data
- Month Grid Data
Sources/Internal/Data/Data.MonthView.swift - Calendar Settings
Sources/Internal/Models/MCalendar.swift - Selection State
Sources/Internal/Data/Data.MCalendarView.swift - Date Range
Sources/Internal/Models/MDateRange.swift - Date Helpers
Sources/Internal/Extensions/Date++.swift - Date Formatter
Sources/Internal/Helpers/MDateFormatter.swift - Weekday Symbols
Sources/Public/Enums/Public+MWeekday.swift
Customization
- Day View Protocol
Sources/Public/View Protocols/Public+DayView.swift - Weekday Label
Sources/Public/View Protocols/Public+WeekdayLabel.swift - Month Label
Sources/Public/View Protocols/Public+MonthLabel.swift - Calendar Config
Sources/Public/Configurables/Public+CalendarConfig.swift
Other components
- App
Connections 18
- App → Calendar Initializer: creates
- Calendar Initializer → Calendar View: initializes
- Calendar Initializer → Calendar Config: configures
- Calendar View → Month Grid Data: generates
- Month Grid Data → Calendar Settings: reads settings
- Calendar View → Selection State: initializes
- Calendar View → Month Renderer: renders months
- Calendar View → Weekday Header: renders header
- Calendar View → Month Label: creates labels
- Calendar Config → Weekday Header: selects view
- Month Renderer → Day View Protocol: renders cells
- Day View Protocol → Default Day View: provides defaults
- Day View Protocol → Date Range: checks range
- Day View Protocol → Date Formatter: formats dates
- Month Grid Data → Date Helpers: calculates dates
- Date Helpers → Calendar Settings: uses settings
- Weekday Header → Weekday Label: renders labels
- Weekday Label → Weekday Symbols: uses symbols