Skip to content

Releases: Dean151/ButtonKit

0.8.0

Choose a tag to compare

@Dean151 Dean151 released this 19 Jul 13:38

What's Changed

  • Styles now support SwiftUI dynamic propertiesAsyncButtonStyle and ThrowableButtonStyle refine DynamicProperty, so custom styles can use @Environment, @State, and other property wrappers directly inside the style.
  • Namespaced triggersTriggerButton registrations are now scoped by Namespace.ID, so identically-named button triggers no longer collide across different parts of your view hierarchy.
  • Better cancellation support — async tasks propagate cancellation more reliably, and the NSProgress bridge now forwards cancellation back to the underlying progress.
  • Reduce Motion support — shake and pulse effects now respect the accessibility Reduce Motion setting.
  • Accessibility — buttons are marked as updatesFrequently while a task is in progress.
  • Environment key handling simplified using @Entry properties (#20).
  • Removed MainActor.assumeIsolated for cleaner concurrency.

Breaking changes

  • Dropped support for Swift 5.10 — ButtonKit now requires Swift 6.0.
  • Style configuration label / button are now opaque views — the public typealias Label = AnyView and typealias Button = AnyView on the style configurations have been replaced with nested wrapper views (mirroring SwiftUI's ButtonStyleConfiguration.Label). Code that relied on these being AnyView must now treat them as opaque views.

New Contributors

Full Changelog: 0.7.1...0.8.0

0.7.1

Choose a tag to compare

@Dean151 Dean151 released this 04 Apr 17:33
  • Fixed build with Xcode 26.4
  • Fixed demo build on macOS

Full Changelog: 0.7.0...0.7.1

0.7.0

Choose a tag to compare

@Dean151 Dean151 released this 28 Jan 21:40

What's Changed

  • New Symbol effect asyncStyle and throwableStyle, based on SFSymbol effects
  • New onButtonStateChange and onButtonStateError modifiers, to access button state changes more explicitly than before
  • added AsyncButtonCompletion to get details on why the task ended (completed, errored, cancelled)
  • added AsyncButtonReader to access children button latest state change
  • new onStateChange parameter in AsyncButton constructor
  • small typo by @mattmassicotte in #15

Deprecations

  • asyncButtonTaskStarted, asyncButtonTaskChanged, asyncButtonTaskEnded and onButtonError modifier were deprecated
  • Renamed errorCount to numberOfFailures on ThrowableButtonStyleLabelConfiguration

Breaking changes

  • Dropped support of Swift 5.9

New Contributors

Full Changelog: 0.6.1...0.7.0

0.6.1

Choose a tag to compare

@Dean151 Dean151 released this 23 Jan 08:26

Bugfixes:

  • Fixed triggerButton behavior that would not always work

Full Changelog: 0.6.0...0.6.1

0.6.0

Choose a tag to compare

@Dean151 Dean151 released this 21 Jan 21:16
4a9f853

What's Changed

  • feat: added onButtonError modifier by @Dean151 in #12

Full Changelog: 0.5.3...0.6.0

Special thanks to @milanvarady for the modifier idea

0.5.3

Choose a tag to compare

@Dean151 Dean151 released this 12 Jan 12:55

Bugfixes:

  • Fixed building with Swift 5.9

Full Changelog: 0.5.2...0.5.3

0.5.2

Choose a tag to compare

@Dean151 Dean151 released this 25 Dec 08:42

Bugfixes:

  • Fixed building with Swift 5.10

Full Changelog: 0.5.1...0.5.2

0.5.1

Choose a tag to compare

@Dean151 Dean151 released this 01 Nov 15:24

Bugfixes

  • Prevent asyncButtonTaskEnded and asyncButtonTaskChanged from being called at initialization time
  • Assuming isolation to fix build with Xcode 16.2 beta (#10)

Full Changelog: 0.5.0...0.5.1

0.5.0

Choose a tag to compare

@Dean151 Dean151 released this 23 Oct 21:20

New Features

  • Added new AppIntent based initializers
  • Added image (String or ImageResource) based initializers

Deprecations

  • Deprecated ThrowableButton. Use AsyncButton instead

Full Changelog: 0.4.1...0.5.0

0.4.1

Choose a tag to compare

@Dean151 Dean151 released this 18 Aug 14:51
  • Fixes a few build issues
  • Replaced deprecated signature for Swift 6 Package.swift

Full Changelog: 0.4.0...0.4.1