Skip to content

Releases: danielsaidi/SwiftUIKit

2.7.0

19 Jun 10:32
Compare
Choose a tag to compare

✨ 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 an AlertContext.
  • ErrorAlertConvertible is a new protocol that can be implemented by any error that can describe itself as an error Alert.
  • 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 now open instead of public.
  • DocumentCamera now passes on its actions instead of itself.
  • Unit tests no longer use Quick and Nimble.

🗑 Deprecations

  • DocumentGroupOnboardingScreen has been renamed to DocumentGroupSheet.
  • DocumentGroupOnboardingScreenError has been renamed to DocumentGroupSheetError.
  • DocumentGroupOnboardingScreen presentAsOnboarding has been renamed to presentFromDocumentGroup.
  • ImageResource has been renamed to ImageRepresentable.
  • ShadowStyle has been renamed to ViewShadowStyle to not conflict with the new SwiftUI 4 ShadowStyle that comes in Xcode 14.

2.6.0

26 Apr 07:10
Compare
Choose a tag to compare

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-platform ItemPrinter implementation that prints using UIPrintInteractionController.

💡 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

30 Mar 13:32
Compare
Choose a tag to compare

✨ 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 generates AnyView views.

💥 Breaking Changes

  • PageView for iOS is now generic with new initializer signatures.
  • PageView indexDisplayMode is now called pageIndicatorDisplayMode.

2.4.0

25 Mar 08:50
Compare
Choose a tag to compare

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 new DetailPanelPresenter.
  • DetailPanelForm is a new macOS view that can be used to wrap form content within a SideBar.
  • 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 the ListPicker, but doesn't wrap the content in a List.
  • ForEachMultiPicker is a new view that works like the MultiListPicker, but doesn't wrap the content in a List.
  • Form has a new detailPanelForm modifier.
  • FormActionButtonStyle now has mutable properties.
  • ListItemSubtitle is a new view that copies its behavior from the deprecated MenuListSubtitle.
  • ListText has a new icon and subtitle parameter.
  • ListTextContent is a new view that just renders the content of a ListText.
  • SafariWebView is a new name for the previous version of WebView.
  • ScanCodeGenerator generateCodeView is now a protocol implementation.
  • ScanCodeType now supports aztek and pdf417 as well.
  • ScanCodeType now implements more protocols to make it more versatile.
  • ScanCodeType has a new code128 case that replaces barcode.
  • 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 a Picker.
  • SystemFontForEachPicker is a new view that uses a ForEach picker instead of a List.
  • SystemFontListPicker now has a fonts init parameter.
  • SystemFontListPicker now has an itemFontSize init parameter.
  • SystemFontListPicker now has a dismissAfterPick init parameter.
  • SystemFontPickerFonts 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 new detailPanelHeader modifier.
  • UrlOpener now supports macOS as well.

💡 Behavior changes

  • ListItem now only applies a min height on iOS.
  • ListPicker now uses a ForEachPicker for each section.
  • ListMultiPicker now uses a ForEachMultiPicker for each section.
  • ScanCodeType.barcode is now an alias for ScanCodeType.code128.
  • WebView now wraps a WKWebView instead of a SFSafariViewController.

🗑 Deprecations

  • AsyncImage has been deprecated. Use SwiftUI AsyncImage instead.
  • AsyncImageLoader has been deprecated. Use SwiftUI AsyncImage instead.
  • BlurView and View+Blur is deprecated. Use the native material approach instead.
  • ColorBadge has been deprecated.
  • FontListPicker has been renamed to SystemFontListPicker.
  • FullHeightView has been deprecated.
  • FullSizeView has been deprecated.
  • FullWidthView has been deprecated.
  • ListPicker no longer has a title.
  • ListMultiPicker no longer has a title.
  • SystemFontListPicker no longer has a title.
  • Presentation/Toast has been deprecated. Use the new SystemNotification library instead.
  • View+Alert alert(context:) has been renamed to alert(_ :).
  • View+FullScreenCover fullScreenCover(context:) has been renamed to fullScreenCover(_ :).
  • View+Sheet sheet(context:) has been renamed to sheet(_ :).

💥 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

07 Jan 10:34
Compare
Choose a tag to compare

💡 Behavior changes

  • ListNavigationButton is now available on all platforms.
  • ListDisclosureIndicator is now available on all platforms.

🗑 Deprecations

  • ListButtonLink has been renamed to ListNavigationButton.

2.3.1

07 Jan 10:33
Compare
Choose a tag to compare

This release adjust the ListToggle.

💡 Behavior changes

  • ListToggle now applies .labelsHidden() to the toggle, to make it take up less space.

2.1.0

12 Nov 17:25
Compare
Choose a tag to compare

This release adds a brand new "list item" concept that replaces the previous "menu list" one.

NOTE This release was revised, with some list view names shortened and a few more list view items added. This is the official 2.1, but it is also released as a 2.1.1 to avoid dependency cache problems.

✨ New features

  • EdgeInsets has a new init(all:) initializer.

  • EdgeInsets has a new init(horizontal:,vertical:) initializer.

  • Label has a new init(String, Image) initializer.

  • View+Frame has a new frame(square:) view extension.

  • View+DynamicType has a new disableDynamicType() view extension.

  • ListItem is a new view that can be used to make items in a list get the same style and behavior.

  • ListButton is a new view that wraps its content in a ListItem that is embedded in a Button.

  • ListButtonLink is a new view that wraps its content in a ListButton and appends a trailing ListDisclosureIndicator.

  • ListDisclosureIndicator is a new view that imitates and iOS navigation link arrow.

  • ListNavigationLink is a new view that wraps its content in a ListItem that is embedded in a NavigationLink.

  • ListSelectItem is a new view that wraps its content in a ListItem and applies a checkmark if the item is selected.

  • ListText is a new view that wraps a Text view in a ListItem.

  • ListToggle is a new view that wraps its content in a ListItem and appends a trailing Toggle.

🗑 Deprecations

  • The MenuList namespace is deprecated and replaced with the new List namespace.

2.0.0

23 Sep 06:42
Compare
Choose a tag to compare

This version requires Xcode 13 and later, since it refers to the latest api:s.

Parts of the library that have native corresponding parts in newer versions of SwiftUI, like SearchBar. They will be around until the library targets the versions of SwiftUI where they were introduced.

✨ New features

  • Color+Codable is a new extension that makes Color codable.
  • Color+Random now lets you randomize the color opacity as well.
  • EnvironmentValues+SafeAreaInsets lets you read the safe are insets of the key window.
  • FormActionButton can now be provided with a custom style.
  • FormActionButtonStyle can now be configured with a custom style.
  • MenuListIcon has a new emoji-based initializer.
  • MenuListItem now lets you use any custom content builder.
  • MenuListItemStack is a new view that lets you reuse the spacing and tap behavior.
  • MenuListSection is a new view for menu list sections.
  • MenuListSlider is a new view for menu list sliders.
  • MenuListSubtitle is a new view for menu list subtitles.
  • MenuListToggle is a new view for menu list toggles.
  • MultilineText is a new text view that can be used when a multiline text is cut off with ...
  • MultiPicker is a new, generic multi item picker. It will probably replace SimpleMultiPicker in due time.
  • Persisted now lets you inject a custom store.
  • Picker is a new, generic single item picker. It will probably replace SimplePicker in due time.
  • PickerListItem is a new protocol that can be used in Picker lists.
  • PickerSection is a new, generic struct that can be used to divide a Picker and MultiPicker into sections.
  • ShadowStyle has a new formActionButton type.
  • ShadowStyle has zero defaults for x and y.
  • SystemColor has a bunch of new colors.
  • SystemColor is now Codable and Equatable.
  • Text+Markdown is a new view extension that provides a new Text(markdown:) initializer.
  • UrlSharing is a new protocol that any view can implement to easily be able to share urls.
  • View+Autosave is a new view extension that provides a customizable autosave view modifier.

💡 Behavior changes

  • FormActionButtonStyle no longer applies a primary text color.
  • FormActionButtonStyle no longer applies a shadow by default. You can define one with the static shadowStyle property.

💥 Breaking Changes

  • All deprecated parts of the library have been removed.
  • MenuListItemIcon has been renamed to MenuListIcon.
  • SystemColor no longer auto-implements SimplePickerValue.
  • UserDefaultsPersisted has been renamed to Persisted.

1.7.2

17 Aug 07:19
Compare
Choose a tag to compare

✨ New features

  • FlipView has a new isFlipped binding, so that it can be read from outside as well.
  • FormText now supports iOS 13.
  • FormText has a new trailingView property.
  • There is a new UIImage+Rotated extension.

💥 Breaking Changes

  • ScanCodeGenerator functions of parameter name is not omitted.

1.7.1

17 Aug 07:19
Compare
Choose a tag to compare

💡 Behavior changes

This release renames ActionButton and ActionButtonStyle to FormActionButton and FormActionButtonStyle, since the name "action button" is too general.

🐛 Bug fixes

  • This release fixes build errors on tvOS and macOS.

🗑 Deprecations

  • ActionButton and ActionButtonStyle has been deprecated.