Repository navigation
Close the remaining open issues: range selection, per-day styles, default month - #149
Merged
Merged
Conversation
Every open issue was checked against the branch; the ones the earlier phases did not cover are addressed here. - Range selection (#32): selectionMode with .single, .multiple and .range, selectRange(_:), and didSelectRange on the delegate. In range mode the first tap picks one end and the second fills every selectable day between them, in either order and across months; a third tap starts over and tapping a selected day clears the range. Days that canSelectDate refuses or that lie outside the data source are skipped. multipleSelectionEnable maps to the first two modes. The SwiftUI wrapper gains selectionMode(_:). - Per-day styles (#136, #122): calendar(_:styleForDate:) on the delegate returns a Style for one day or nil for the calendar's own. Together with canSelectDate it greys out days the user must not pick. The SwiftUI wrapper gains styleForDate(_:). - No data source (#135): the view shows the current month instead of nothing, which is what the README always promised. - Tests pinning #117 (a style's cellFont reaches the cells) and #128 (a frame shorter than the header neither asserts nor produces a zero item size). - Demo: the default tab greys out Sundays and colours the 15th; the SwiftUI tab has a single/multiple/range picker and a "Select this week" button. README and CHANGELOG updated; Assets/demo.png refreshed. - 65 tests in three suites, lint and docbuild clean. Not fixable in code: #139 is a network timeout cloning from GitHub, #116 is a force-unwrapped outlet in the reporter's own view controller. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ubk2MsmduPdDLM7FZXFU8C
This was referenced Sep 8, 2026
Closed
Closed
Closed
Closed
Closed
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Follows up #148 by checking every open issue against the modernized code and fixing the ones it did not cover. One commit.
Fixed here
selectionModewith.single,.multipleand.range,selectRange(_:)and adidSelectRangedelegate method. The first tap picks one end, the second selects every selectable day between them, in either order and across months; a third tap starts over and tapping a selected day clears the range. Days thatcanSelectDaterefuses or that lie outside the data source are skipped.multipleSelectionEnablemaps to the first two modes. The two cases the maintainer flagged on the 2018 attempt, ranges across months and re-selecting from the same day after a deselection, have tests. The SwiftUI wrapper gainsselectionMode(_:).calendar(_:styleForDate:)on the delegate returns aStylefor one day ornilfor the calendar's own, so a holiday gets its own colour and dayscanSelectDaterefuses can be greyed out. The SwiftUI wrapper gainsstyleForDate(_:).cellFontreaches the cells; a frame shorter than the header neither asserts nor yields a zero item size.Already fixed by #148, confirmed against the code
#100, #106, #108, #109, #110, #112, #114, #115, #120, #126, #127, #129, #130, #131, #132, #134, #138, #140, #142, #147.
Not library problems
#139 is a network timeout cloning from GitHub. #116 is a force-unwrapped outlet in the reporter's own view controller.
With this merged, every open issue is either fixed or outside the library's control.
Demo
The default tab greys out Sundays and colours the 15th through
styleForDate; the SwiftUI tab has a single/multiple/range picker.Test plan
xcodebuild -scheme KDCalendar-Package -destination 'platform=iOS Simulator,name=iPhone 17 Pro,OS=26.5' test— 65 tests in 3 suites passxcodebuild docbuildcleanxcrun swift-format lint --strict --recursive Sources Tests Example/KDCalendarDemoclean🤖 Generated with Claude Code
https://claude.ai/code/session_01Ubk2MsmduPdDLM7FZXFU8C