Releases: danielsaidi/SwiftUIKit
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
.
2.7.0
✨ New features
Color
has new hex string- and int-based initializers.ColorRepresentable
is a new typealias that bridges NSColor and UIColor.ColorRepresentable
has new hex string- and int-based initializers.ErrorAlerter
is a new protocol that can be implemented by any type that can alert errors using anAlertContext
.ErrorAlertConvertible
is a new protocol that can be implemented by any error that can describe itself as an errorAlert
.FontRepresentable
is a new typealias that bridges NSFont and UIFont.Persisted
can now be used with SwiftUI and will properly update observing views.
💡 Behavior changes
PresentationContext
is nowopen
instead ofpublic
.DocumentCamera
now passes on its actions instead of itself.- Unit tests no longer use Quick and Nimble.
🗑 Deprecations
DocumentGroupOnboardingScreen
has been renamed toDocumentGroupSheet
.DocumentGroupOnboardingScreenError
has been renamed toDocumentGroupSheetError
.DocumentGroupOnboardingScreen
presentAsOnboarding
has been renamed topresentFromDocumentGroup
.ImageResource
has been renamed toImageRepresentable
.ShadowStyle
has been renamed toViewShadowStyle
to not conflict with the new SwiftUI 4 ShadowStyle that comes in Xcode 14.
2.6.0
This version adds focus and printing utils, makes the system font picker work better on multiple platforms and deprecates web views.
Web views can be found in the new WebViewKit from now on.
✨ New features
AlertContextFocusedValueKey
is a new type that can be used to bind and access an focused alert.FullScreenModalContextFocusedValueKey
is a new type that can be used to bind and access a focused full.ItemPrinter
is a new protocol that can be implemented by types that can print printable items.ItemPrintingView
is a view protocol that adds item printing functionality to any view.PrintableItem
defines a list of printable items, currently only pdf documents.SheetContextFocusedValueKey
is a new type that can be used to bind and access a focused sheet.StandardItemPrinter
is an multi-platformItemPrinter
implementation that prints usingUIPrintInteractionController
.
💡 Behavior changes
SystemFontPicker
has been adjusted to work better on various platforms.SystemFontPickerFont
has been adjusted to work better on various platforms.
🐛 Bug fixes
SystemFontPicker
now uses the provided fonts instead of all.
🗑 Deprecations
SafariWebView
has been deprecated - use WebViewKit instead.WebView
has been deprecated - use WebViewKit instead.
2.5.0
✨ New features
PageIndicator
is a new view that mimics the page dots in a page view.PageIndicatorDisplayMode
is a new enum that can be used to control indicator views.PageIndicatorStyle
is a new enum that can be used to style indicator views.PageView
is now available for macOS as well.
💡 Behavior changes
PageView
is now generic and no longer generatesAnyView
views.
💥 Breaking Changes
PageView
for iOS is now generic with new initializer signatures.PageView
indexDisplayMode
is now calledpageIndicatorDisplayMode
.
2.4.0
This release adds a bunch of new views and features as well as new macOS utils.
This release also deprecates a bunch of stuff to make the library more focused.
Note that WebView
now wraps a WKWebView
instead of a SFSafariViewController
. If you want the old behavior, use the new SafariWebView
.
✨ New features
DetailPanel
is a new macOS view that mimics a trailing detail panel.DetailPanelButtonGroup
is a new macOS view that can be used to mimic a native, segmented button group.DetailPanelContainer
is a new macOS view with a main content view and a trailing detail panel.DetailPanelContext
is a new macOS class that can be used with the newDetailPanelPresenter
.DetailPanelForm
is a new macOS view that can be used to wrap form content within aSideBar
.DetailPanelHeader
is a new macOS view that can adjust the provided text to look like a native detail panel header.DetailPanelPresenter
is a new macOS protocol that can be implemented to add detail panel functionality to the implementing type.ForEachPicker
is a new view that works like theListPicker
, but doesn't wrap the content in aList
.ForEachMultiPicker
is a new view that works like theMultiListPicker
, but doesn't wrap the content in aList
.Form
has a newdetailPanelForm
modifier.FormActionButtonStyle
now has mutable properties.ListItemSubtitle
is a new view that copies its behavior from the deprecatedMenuListSubtitle
.ListText
has a new icon and subtitle parameter.ListTextContent
is a new view that just renders the content of aListText
.SafariWebView
is a new name for the previous version ofWebView
.ScanCodeGenerator
generateCodeView
is now a protocol implementation.ScanCodeType
now supportsaztek
andpdf417
as well.ScanCodeType
now implements more protocols to make it more versatile.ScanCodeType
has a newcode128
case that replacesbarcode
.ScanCodeType.name
is now the capitalized version of the raw string value.SidebarPresenter
is a new macOS protocol that can be implemented to add sidebar functionality to the implementing type.SystemFontPicker
is a new view that uses aPicker
.SystemFontForEachPicker
is a new view that uses aForEach
picker instead of aList
.SystemFontListPicker
now has afonts
init parameter.SystemFontListPicker
now has anitemFontSize
init parameter.SystemFontListPicker
now has adismissAfterPick
init parameter.SystemFontPickerFont
s initializer and properties are now public.SystemFontPickerFont
is a new public struct that is used by the various font pickers.SystemFontPickerItem
is a new view that can be used to display a picked system font.Text
has a newdetailPanelHeader
modifier.UrlOpener
now supports macOS as well.
💡 Behavior changes
ListItem
now only applies a min height on iOS.ListPicker
now uses aForEachPicker
for each section.ListMultiPicker
now uses aForEachMultiPicker
for each section.ScanCodeType.barcode
is now an alias forScanCodeType.code128
.WebView
now wraps aWKWebView
instead of aSFSafariViewController
.
🗑 Deprecations
AsyncImage
has been deprecated. Use SwiftUI AsyncImage instead.AsyncImageLoader
has been deprecated. Use SwiftUI AsyncImage instead.BlurView
andView+Blur
is deprecated. Use the native material approach instead.ColorBadge
has been deprecated.FontListPicker
has been renamed toSystemFontListPicker
.FullHeightView
has been deprecated.FullSizeView
has been deprecated.FullWidthView
has been deprecated.ListPicker
no longer has atitle
.ListMultiPicker
no longer has atitle
.SystemFontListPicker
no longer has atitle
.Presentation/Toast
has been deprecated. Use the new SystemNotification library instead.View+Alert
alert(context:)
has been renamed toalert(_ :)
.View+FullScreenCover
fullScreenCover(context:)
has been renamed tofullScreenCover(_ :)
.View+Sheet
sheet(context:)
has been renamed tosheet(_ :)
.
💥 Breaking Changes
Color.clearInteractable
has been deprecated and should not be used anymore.Picker
has been removed, since it caused conflicts with SwiftUI.UrlOpener
default functions are no longer part of the protocol definition.View.clearInteractable
has been deprecated and should not be used anymore.
2.3.2
💡 Behavior changes
ListNavigationButton
is now available on all platforms.ListDisclosureIndicator
is now available on all platforms.
🗑 Deprecations
ListButtonLink
has been renamed toListNavigationButton
.