Releases: isamercan/Almanac
Releases · isamercan/Almanac
Almanac 0.2.0
Additive, opt-in calendar surfaces and theming — the stock look stays pixel-stable, so this is a non-breaking minor release over 0.1.0.
Added
- CalendarWeekView — first-class paged week strip sharing the month grid's selection engine, holidays, prices, blocked/min-max rules, theming and accessibility.
- CalendarBrowseView — year ↔ month browse surface (tap a month to zoom into the grid).
- Multi-year
CalendarYearView—init(years:calendar:locale:); single-year init gainscalendar:. - Theme presets —
CalendarThemePreset(.standard,.ocean,.sunset,.forest,.midnight) + matchingCalendarThemestatics. - "Jump to today" button — opt-in
CalendarChrome.showsTodayButton. .calendarSelectedDateAccessory— detail view above the footer for the selected day.TimePickerConfig.hapticsEnabled— opt out of the time-wheel tick.
Fixed
- Year/blank-cell math honours the injected
Calendar+firstWeekday(Hijri etc.). - Browse/week views share the grid's exact month window (no wrong-month navigation, no out-of-range week selection); week view honours
chrome.showsWeekdayHeaderand clampscontroller.scroll(to:). CalendarYearViewtypography flows throughCalendarStyletokens (themeable + Dynamic Type).
Full notes in CHANGELOG.md.
Install: `.package(url: "https://github.com/isamercan/Almanac.git", from: "0.2.0")`
Almanac 0.1.0
A fully-configurable SwiftUI date-range calendar for iOS, built on Airbnb HorizonCalendar.
Highlights
- Range & single selection, holidays, per-day price badges, blocked dates, min/max nights.
- Full design system — one
CalendarStyle(theme colors + typography + metrics + day shape), injected via.calendarStyle(_:). Live in-appCalendarStyleConfiguratorthat emits copyable Swift. - Composition API —
.calendarDay/.calendarMonthHeader/.calendarWeekdayHeader/.calendarLegend. - Configurable chrome —
CalendarChrometoggles every surrounding part;CalendarGridViewfor a bare grid. - Layout & navigation — vertical or horizontal paging, configurable first weekday,
CalendarController.scroll(to:), 12-monthCalendarYearView. - Any
Calendar— Gregorian, Hijri (Umm al-Qura), … plus RTL and tr / en / ar localization. - Accessibility — VoiceOver labels, Dynamic Type, Reduce Motion.
- Standalone drum time pickers —
TimeWheel24/TimeWheelAmPm.
Demo
The demo app ships a Calendar Library example gallery (13 screens) re-creating the kizitonwose Calendar samples on top of Almanac's public API.
Requirements
iOS 17+, Xcode 16+. Install via Swift Package Manager:
```swift
.package(url: "https://github.com/isamercan/Almanac.git\", from: "0.1.0")
```