Releases: danielsaidi/SwiftUIKit
3.5.0
✨ New features
NavigationContext
is a new observable class.Image+Resized
is a newImage
extension.
🗑 Deprecations
AlertProvider
has been deprecated.FullScreenCoverProvider
has been deprecated.SheetProvider
has been deprecated.
3.4.0
✨ New features
Color+Hex
has new static functions.ColorPickerBar
is a new color picker component.EditableView
is a new view protocol.ListBadgeIcon
now supports custom icon colors and icon gradients.ListHeaderIcon
is a new view.ListSectionTitle
has a newwithInsets()
init parameter.ListShelfSection
has a new style.OptionalBinding
is a new func that makes it possible to pass in optional values as a non-optional binding.View
has newprefers
extensions.ViewShadowStyle
has a new.sticker
style.
🗑 Deprecations
ImageRenderer
was not available to 5.7 compilers and has been removed altogether.ImageRenderer
can still be found and copied from any earlier versions of SwiftUIKit.MultilineTextField
has been deprecated.SystemColor
has been deprecated.
3.3.0
This release adds new support for Codable
and AppStorage
.
This release also adds new list functionality and text editor styling.
From this version, the demo application has been removed. Instead of the demo application, you can use the internal previews directly.
✨ New features
Array
has new extensions that make it possible to use withCodable
andAppStorage
.Dictionary
has new extensions that make it possible to use withCodable
andAppStorage
.ImageRepresentable
has new resizing tools.ListBadgeIcon
is a new view that mimics the color badge icons in System Settings.ListCard
is a new view that can be used to create cards for a list or grid.ListDragHandle
is a new view to mimic the native iOS list drag handle.ListSectionTitle
is a new view that mimics a grouped iOS section title.ListShelfSection
is a new view that can be used to create horizontally scrolling shelves in vertically scrolling lists.ProcessInfo
has a new static preview property.TextEditorStyle
lets you style aTextEditor
like aTextField
.Image+Symbol
is a newImage
initializer that serves as a shorthand for.init(systemName:)
.Image+ListBadgeIcon
is a newImage
modifier that can be used to convert an image to a color badged icon.
✨ Behavior changes
Persisted
has been deprecated due toAppStorageCodable
.ViewShadowStyle
now allows not specifying a shadow color.ViewShadowStyle.badge
has been redesigned to look more like a sticker.
🐛 Bug fixes
- The undimmed presentation detents move some code to after layout to improve behavior.
🗑 Deprecations
UndimmedPresentationDetent
is renamed toPresentationDetentReference
.- The
.presentationDetents(undimmed:largestUndimmed:selection:)
modifier is deprecated and replaced by.presentationDetents(:largestUndimmed:selection:)
.
3.2.0
✨ New features
GestureButton
is a new view that can be used to handle multiple gestures with a single button.GestureButtonDefaults
is a new class that can be used to configure the default values for the new gesture buttons.LinkText
is a new view that lets you combine text and tappable links without Markdown.RepeatGestureTimer
is a new class that can be used to trigger a repeating action.ScrollViewGestureButton
is a variant ofGestureButton
that works within a scroll view.SwipeGestureViewModifier
is a new view modifier that exposes theView+onSwipeGesture
extension to DocC.UndimmedPresentationDetentsViewModifier
is a new view modifier that exposes theView+presentationDetents
extension to DocC.
💡 Behavior changes
ImageRenderer
now renders with correct scale - thanks alfredcc for this!
🗑 Deprecations
- The
ScrollViewHeader
has been moved to ScrollKit - https://github.com/danielsaidi/ScrollKit
3.1.0
✨ New features
FormTextField
is now available in iOS 13 as well.LinearProgressBar
is a new, style-based progress view.ListSelectItem
now supports providing a custom select indicator view.ScrollViewHeader
is a new header view with stretch and parallax support.SwiftPreviewInspector
andStandardSwiftPreviewInspector
are new types for detecting SwiftUI preview mode.UndimmedPresentationDetent
is a new enum that is used to define undimmed detents withView+PresentationDetents
.View+PresentationDetents
now supports specifying alargestUndimmed
presentation detent.
💡 Behavior changes
FormActionButton
now usestrue
as default value for thedimmed
modifier.FormActionButtonStyle
now lets you style more parts of the form action button.FormText
no longers forces lowercase to its title.SearchBar
no longer adds a divider below the text field.TextFieldClearButton
now animates in the clear button.
🐛 Bug fixes
CircularProgressBar
is no longer greedy and only allocates the space it needs.
🗑 Deprecations
- The entire
CollectionView
namespace has been deprecated, since it's no longer needed on tvOS.
💥 Breaking Changes
CircularProgressBarStyle
has been renamed toCircularProgressBar.Style
.ErrorAlertConvertible
has a newerrorButtonText
property to avoid the hard-coded "OK".ScanCodeGenerator
has a cleaner function name for generating a scan code.
3.0.0
This major version removes all previously deprecated logic to make the library tighter and cleaner.
If you need any parts of the library that have now been removed, just grab them from the previous 2.9
versions.
✨ New features
- The
disableDynamicType
view extension now accepts a size category. - The
ListSelectItem
now accepts a customizable checkmark icon.
💥 Breaking Changes
- The
Documents
namespace has been removed without being previously deprecated. - The
.safeAreaInsets
environment value has been removed without being previously deprecated. - The
Views/DetailPanel
namespace has been removed without being previously deprecated. - The
UIViewWrapper
view has been removed without being previously deprecated.
2.9.3
This version removes the MockingKit
dependency.
2.9.2
This version makes ocmpiling for macOS work in Xcode 14.
The version also deprecates more things, such as the list items. The list views are deprecated since later SwiftUI versions makes great use of the Label
view to render things natively. The list views just adds extra complexity with little gains.
One thing that the list views did well, though, was to make the entire list items tappable, where native labels only take up as much space as they need, even in lists. To address this, there is a new button style called ListButtonStyle
, which you can apply to an entire list to make all buttons behave the same way.
✨ New features
ListButtonStyle
makes the button span across the entire width and applies a rectangular content shape.
💡 Behavior changes
- List items will render differently, without the padding.
🐛 Bug fixes
- This version fixes compile errors on macOS by temporarily only making some types available for iOS.
🗑 Deprecations
ListButton
has been deprecated.ListDisclosureIndicator
has been deprecated.ListHeader
has been deprecated.ListItem
has been deprecated.ListNavigationButton
has been renamed toNavigationButton
.ListNavigationLink
has been deprecated.ListText
has been deprecated.ListTextContent
has been deprecated.ListToggle
has been deprecated.
2.9.1
This version adjusts the undimmed presentation detents view extension, that has stopped working in later Xcode 14 betas.
The fix makes sure to always inject a .large
detents into the provided set. This is hopefully temporary.
2.8.0
This version adds a the possibility to present custom sized, undimmed sheets in SwiftUI.
This version also adds a backported version of the native SwiftUI 4 ImageRenderer
. The backported version is only available in iOS 15 and before. In iOS 16 and later, you'll get the native one.
✨ New features
Font+FontRepresentable
adds new ways to create SwiftUI fonts with platform-agnostic ones.ImageRepresentable+Size
adds resizing to macOS, tvOS and watchOS as well.ImageRenderer
is a new type that replaces the oldView+Snapshot
extension and serves as a bridge between iOs 16 and earlier versions.ImageRenderer+Image
extends the SwiftUI 4 renderer with a platform-agnostic image property.ImageRenderer+Scale
extends the SwiftUI 4 renderer with new scale initializers.View+PresentationDetents
adds newpresentationDetents(undimmed:)
view modifiers.
🗑 Deprecations
Image+Snapshot
has been replaced by the newImageRenderer
.