Skip to content

Releases: klink-ing/colander

v3.1.0-alpha.2

v3.1.0-alpha.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 Jun 00:35
7c977a0

3.1.0-alpha.2 (2026-06-16)

Bug Fixes

  • surface controlled-value problems instead of silently degrading (M7) (#25) (7c977a0)

v3.1.0-alpha.1

v3.1.0-alpha.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 Jun 00:32
8db5e30

3.1.0-alpha.1 (2026-06-16)

Features

  • website: info-icon tooltips on demo controls, text from TSDocs (#26) (8db5e30)

v3.0.1-alpha.1

v3.0.1-alpha.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 Jun 00:31
ba80bb9

3.0.1-alpha.1 (2026-06-16)

Bug Fixes

  • demo: format month via PlainDate in onMonthChange (#27) (ba80bb9)

v3.0.0

Choose a tag to compare

@github-actions github-actions released this 15 Jun 23:41
58db452

3.0.0 (2026-06-15)

⚠ BREAKING CHANGES

  • overflowBehavior is renamed to outOfRangeBehavior, and
    the exported OverflowBehavior/MonthOverflowBehavior types become
    OutOfRangeBehavior/MonthOutOfRangeBehavior. Accepted values are unchanged.

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

  • Upgrade tanstack start netlify plugin

  • chore: trigger Netlify rebuild (verify preview deploys post-config-fix)

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

  • refactor: rename internal overflow.ts → out-of-range.ts to match outOfRangeBehavior

The public prop and types were renamed to outOfRangeBehavior /
OutOfRangeBehavior / MonthOutOfRangeBehavior, but the internal mechanism
still used "overflow" naming. Align it:

  • overflow.ts → out-of-range.ts (+ overflow.test.ts → out-of-range.test.ts)
  • applyOverflow → applyOutOfRange
  • ApplyOverflowInput → ApplyOutOfRangeInput
  • overflowResult → outOfRangeResult
  • update imports + behavior-referring comments; regenerate format subpaths

Temporal's { overflow: "constrain" } option (PlainDate.from etc.) is
unrelated and left as-is.

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

Features

  • MonthView out-of-range navigation + rename overflowBehavior → outOfRangeBehavior (#22) (58db452)

v2.0.3

Choose a tag to compare

@github-actions github-actions released this 15 Jun 17:40
1a3aa61

2.0.3 (2026-06-15)

Bug Fixes

  • serve correct CJS type declarations from package.json exports (#21) (1a3aa61)

v2.0.2

Choose a tag to compare

@github-actions github-actions released this 15 Jun 03:43
e3c861c

2.0.2 (2026-06-15)

Bug Fixes

  • detect PlainDate by calendarId in resolveFirstWeekSpec (#20) (e3c861c)

v2.0.1

Choose a tag to compare

@github-actions github-actions released this 15 Jun 03:36
a0df447

2.0.1 (2026-06-15)

Bug Fixes

  • compare pass-through props in day-cell memo comparators (#19) (a0df447)

v2.0.0

Choose a tag to compare

@github-actions github-actions released this 15 Jun 02:39
decc682

2.0.0 (2026-06-15)

⚠ BREAKING CHANGES

  • the render-prop RootState (state.root) now exposes
    all selection values as Temporal.PlainDate instead of the configured
    value format. The format-typed values still flow via
    value/defaultValue/onValueChange; RootState is for rendering
    (e.g. selected?.toLocaleString(locale)). focused/viewing were
    already Temporal. RootState is now non-generic.

Fixes two runtime lies the audit flagged:

  • MonthView built selectedDates/rangeStart/rangeEnd with as any
    (PlainDate behind a format type) and selected as the format value;
    now all are honest PlainDate.
  • WeeksView's MonthViewState shims used {} as RootState, so every
    state.root field read undefined inside WeeksView. Now both the
    WeeksView-root and inner-Grid shims expose a real, populated rootState.

The selection part of rootState is built once in CalendarProvider
(baseRootState, on the calendar state context) and spread by each view,
which adds its own focused/viewing — so MonthView and WeeksView are
identical. selected is the first committed date (the PlainDate behind
the old selected DateValueObject).

Because the date fields are no longer format-typed, RootState and the
~15 leaf component State/Props types that referenced RootState<F> lose
their now-unused <F> generic (the leaf display components become
non-generic). Genuinely format-generic types (Root/MonthView/WeeksView/
CalendarProvider, DateRange, RawValueForFormat) keep F. Removes ~12
as any and 2 {} as RootState casts; format subpaths regenerated.

Adds regression tests: MonthView rootState exposes PlainDate under
format="Date" (was a JS Date); WeeksView shim rootState is populated
(was all undefined).

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

  • fix: add repository field to package.json for npm provenance

The semantic-release publish failed npm provenance validation
("repository.url" is "", expected to match the GitHub repo). Add the
repository (with monorepo directory), homepage, and bugs fields so the
published package's provenance bundle validates.

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

Bug Fixes

  • expose honest Temporal values in RootState (remove type lies) (#18) (decc682)

v0.0.0

v0.0.0 Pre-release
Pre-release

Choose a tag to compare

@dogmar dogmar released this 09 Apr 05:19
9b5290e
Merge pull request #1 from dogmar/format-generator-v2

Rewrite format generator to include all exports