7.1.0(70) — 2024 10 24
General
- Most
public
andopen
types now conform toSendable
protocol
VStretchedIndicatorStaticPagerTabView
isTabViewScrollingEnabled
property is added in UI Model
VWrappedIndicatorStaticPagerTabView
isTabViewScrollingEnabled
property is added in UI Model
VDynamicPagerTabView
isTabBarScrollingEnabled
andisTabViewScrollingEnabled
properties are added in UI Model
VAlert
VAlertParameters
is no longer bound byMainActor
7.0.0(69) — 2024 09 20
General
- Minimum SDK version is increased to
iOS
16.0
,macOS
13.0
,tvOS
16.0
, andwatchOS
9.0
- Minimum
Swift
language version is increased to6.0
- Previously deprecated symbols are removed
- All border properties are now represented with
PointPixelMeasurement
instead ofCGFloat
- All
Font
properties now haveDynamicTypeSizeType
properties in UI models
VGroupBox
- GroupBox now has border configuration
roundedCorners
andcornerRadius
are replaced withcornerRadii
VDisclosureGroup
- DisclosureGroup now has border configuration
cornerRadius
is replaced withcornerRadii
andreversesHorizontalCornersForRTLLanguages
VCarousel
- A new component is added, that paginates between child views horizontally
VModal
- Presentation API is overhauled
- Size API is extended
- Modal now supports
macOS
,tvOS
, andvisionOS
- Modal now has border configuration
- Modal no longer requires
ColorScheme
as parameter when it's overridden in the root roundedCorners
andcornerRadius
are replaced withcornerRadii
VBottomSheet
- Presentation API is overhauled
- BottomSheet now supports
macOS
- BottomSheet no longer requires
ColorScheme
as parameter when it's overridden in the root
VSideBar
- Presentation API is overhauled
- Size API is extended
- SideBar now supports
macOS
- SideBar no longer requires
ColorScheme
as parameter when it's overridden in the root roundedCorners
andcornerRadius
are replaced withcornerRadii
VAlert
- Presentation API is overhauled
- Width API is extended
- Alert now supports
macOS
buttonTitleTextFont
is added in UI model- Alert now has border configuration
- Alert no longer requires
ColorScheme
as parameter when it's overridden in the root roundedCorners
andcornerRadius
are replaced withcornerRadii
VNotification
- A new component is added, that presents notification modally
VToast
- Presentation API is overhauled
- Width API is extended
- Toast now supports separate width configurations for portrait and landscape modes
- Toast now has border configuration
- Toast can now be dismissed with swipe
- Toast now has
info
highlight - Toast no longer requires
ColorScheme
as parameter when it's overridden in the root
VDashedSpinner
- Spinner is removed
6.0.8(68) — 2024 08 02
Other
- Build issue caused by unsafe flags in
Swift
settings is fixed
6.0.7(67) — 2024 07 09
Other
- Compilation time bottlenecks are fixed
6.0.6(66) — 2024 06 06
Other
- Bug fixes and improvements
6.0.5(65) — 2024 06 02
VSlider
- Crash that sometimes occurs when width is
0
is fixed
VRangeSlider
- Crash that sometimes occurs when width is
0
is fixed
VStretchedIndicatorStaticPagerTabView
- Crash that occurs when data is empty is fixed
VWrappedIndicatorStaticPagerTabView
- Crash that occurs when data is empty is fixed
6.0.4(64) — 2024 05 23
Other
- Bug fixes and improvements
6.0.3(63) — 2024 04 22
VTappableText
- TappableText is deprecated in favor of combination of
AttributedString.init(stringAndDefault:attributeContainers:)
andView.addOpenURLAction(_:)
6.0.2(62) — 2024 03 09
VWrappingMarquee
- Runtime warning caused by invalid gradient when content size is
0
is fixed
VBouncingMarquee
- Runtime warning caused by invalid gradient when content size is
0
is fixed
6.0.1(61) — 2024 03 07
General
- Minimum
Swift
language version is increased to5.10
VTextField
- Clear button will no longer occupy space when TextField is configured with
secure
content type - Clear and visibility buttons have better hit detection, preventing touches from accidentally focusing the TextField
6.0.0(60) — 2024 02 18
General
- Package now partially supports
visionOS
1.0
- Colors are overhauled to better support other platforms
- Previously deprecated symbols are removed
VStretchedButton
- Button now supports icon
Font
customization wheninit
with icon or title and icon is used.isIconResizable
,iconContentMode
, andiconFont
properties are added. Also,iconColors
,iconOpacities
, andiconSize
are madeOptional
.
VLoadingStretchedButton
- Button now supports icon
Font
customization wheninit
with icon or title and icon is used.isIconResizable
,iconContentMode
, andiconFont
properties are added. Also,iconColors
,iconOpacities
, andiconSize
are madeOptional
.
VWrappedButton
- Button now supports icon
Font
customization wheninit
with icon or title and icon is used.isIconResizable
,iconContentMode
, andiconFont
properties are added. Also,iconColors
,iconOpacities
, andiconSize
are madeOptional
.
VRectangularButton
- Button now supports icon
Font
customization wheninit
with icon is used.isIconResizable
,iconContentMode
, andiconFont
properties are added. Also,iconColors
,iconOpacities
, andiconSize
are madeOptional
.
VRectangularCaptionButton
- Button now supports icon
Font
customization when.isIconResizable
,iconContentMode
, andiconFont
properties are added. Also,iconColors
,iconOpacities
, andiconSize
are madeOptional
. - Button now supports caption icon
Font
customization wheninit
with icon or title and icon is used.isIconCaptionResizable
,iconCaptionContentMode
, andiconCaptionFont
properties are added. Also,iconCaptionColors
,iconCaptionOpacities
, andiconCaptionSize
are madeOptional
.
VPlainButton
hitBox
is set tozero
- Button now supports icon
Font
customization wheninit
with icon or title and icon is used.isIconResizable
,iconContentMode
, andiconFont
properties are added. Also,iconColors
,iconOpacities
, andiconSize
are madeOptional
.
VToggle
- Toggle now supports
watchOS
thumbDimension
is replaced withthumbSize
thumbCornerRadius
is added to UI modelborderWidth
andborderColors
properties are added to UI model
VCheckBox
- CheckBox is redesigned for
iOS
with larger, more circular design hitBox
is set tozero
, andcheckBoxAndLabelSpacing
is set to5
, as CheckBox now has native extended hit areasdimension
is replaced withsize
bulletDimension
is replaced withbulletSize
checkmarkIconDimension
is replaced withcheckmarkIconSize
checkmarkIconOpacities
is added to UI model- CheckBox now supports button icon
Font
customization.isCheckmarkIconResizable
,checkmarkIconContentMode
, andcheckmarkIconFont
properties are added. Also,checkmarkIconColors
andcheckmarkIconSize
are madeOptional
.
VRadioButton
- Radio Button is redesigned for
iOS
with larger design hitBox
is set tozero
, andcheckBoxAndLabelSpacing
is set to5
, as CheckBox now has native extended hit areasdimension
is replaced withsize
cornerRadius
andbulletCornerRadius
are added to UI model
VStretchedToggleButton
- Button now supports icon
Font
customization wheninit
with icon or title and icon is used.isIconResizable
,iconContentMode
, andiconFont
properties are added. Also,iconColors
,iconOpacities
, andiconSize
are madeOptional
.
VWrappedToggleButton
- Toggle button now supports
watchOS
- Button now supports icon
Font
customization wheninit
with icon or title and icon is used.isIconResizable
,iconContentMode
, andiconFont
properties are added. Also,iconColors
,iconOpacities
, andiconSize
are madeOptional
.
VRectangularToggleButton
- Toggle button now supports
watchOS
- Button now supports icon
Font
customization wheninit
with icon is used.isIconResizable
,iconContentMode
, andiconFont
properties are added. Also,iconColors
,iconOpacities
, andiconSize
are madeOptional
.
VStepper
- Stepper is removed
VSlider
- Track will no longer be padded horizontally
thumbDimension
is replaced withthumbSize
VRangeSlider
- Track will no longer be padded horizontally
thumbDimension
is replaced withthumbSize
VTextField
searchIconDimension
is replaced withsearchIconSize
searchIconOpacities
is added to UI model- TextField now supports button icon
Font
customization.isSearchIconResizable
,searchIconContentMode
, andsearchIconFont
properties are added. Also,searchIconColors
andsearchIconSize
are madeOptional
.
VGroupBox
backgroundColor
is changed toUIColor.secondarySystemBackground
oniOS
.VGroupBoxUIModel.systemBackgroundColor
can be used to support previous configuration.
VDisclosureGroup
backgroundColor
is changed toUIColor.secondarySystemBackground
oniOS
.VDisclosureGroupUIModel.systemBackgroundColor
can be used to support previous configuration.
VModal
- Modal will no longer dismiss from back-tap before it finished presentation animation
VBottomSheet
- BottomSheet will no longer dismiss from back-tap before it finished presentation animation
VSideBar
- SideBar will no longer dismiss from back-tap before it finished presentation animation
VWrappingMarquee
gradientColorContainerEdge
andgradientColorContentEdge
are replaced withgradientMaskOpacityContainerEdge
andgradientMaskOpacityContentEdge
to avoid requiring explicit background colors
VBouncingMarquee
gradientColorContainerEdge
andgradientColorContentEdge
are replaced withgradientMaskOpacityContainerEdge
andgradientMaskOpacityContentEdge
to avoid requiring explicit background colors
Other
VComponentsColorBook
is no longer exposed to public
5.3.1(59) — 2024 01 23
VTextView
- Issue with minimum height is fixed, and
minHeight
is replaced withminimumHeight
5.3.0(58) — 2024 01 12
VBouncingMarquee
- Rendering issue in
iOS
17.0
is fixed
VCodeEntryView
spacing
is replaced withspacingType
to support stretched layout
5.2.0(57) — 2023 12 07
VStretchedButton
titleTextAndIconPlacement
is added for configuring the placement between title text and icon
VLoadingStretchedButton
titleTextAndIconPlacement
is added for configuring the placement between title text and icon
VWrappedButton
titleTextAndIconPlacement
is added for configuring the placement between title text and icon
VRectangularCaptionButton
titleCaptionTextAndIconCaptionPlacement
is added for configuring the placement between title caption text and icon caption
VPlainButton
titleTextAndIconPlacement
is added for configuring the placement between title text and icon
VStretchedToggleButton
titleTextAndIconPlacement
is added for configuring the placement between title text and icon
VWrappedToggleButton
titleTextAndIconPlacement
is added for configuring the placement between title text and icon
VListRow
- ListRow is deprecated in favor of more modern
List
API
VFetchingAsyncImage
- A new component is moved from VCore, that asynchronously loads and displays an
Image
with a fetch handler
VTappableText
- A new component is added, that inserts tappable components in
Text
5.1.0(56) — 2023 11 11
VRectangularCaptionButton
captionFrameAlignment
is added
VCheckBox
hitBox
type is changed fromCGFloat
toHitBox
VSideBar
defaultContentSafeAreaEdges(interfaceOrientation:)
method is added in UI model that atomically calculatescontentSafeAreaEdges
- Issue with SideBar dismissing without animation on drag-back is fixed
VTextField
headerTitleTextFrameAlignment
andfooterTitleTextFrameAlignment
are added
VTextView
headerTitleTextFrameAlignment
andfooterTitleTextFrameAlignment
are added
VCodeEntryView
- Issue with invisible toolbar items is fixed
VAlert
titleTextFrameAlignment
andmessageTextFrameAlignment
are addedattributes
are added toVAlertParameters
for additional customizationvAlert(...)
method now supports content
VMenu
- Menu is deprecated, until native counterpart is added
VContextMenu
- ContextMenu is deprecated, until native counterpart is added
Helpers - Architectural Pattern Helpers
attributes
is added toVAlertParameters
for additional customizationattributes
is added toVAlertParameters
for additional customization
Other
- Issue with XCode previews in modal components is fixed
- Redundant
Identifiable
conformances are removed
5.0.0(55) — 2023 10 08
General
- Minimum SDK version is increased to
iOS
15.0
,macOS
12.0
,tvOS
15.0
, andwatchOS
8.0
- Minimum
Swift
language version is increased to5.9
- Previously deprecated symbols are removed
- Button components will now register gestures even if the background is clear
- UIModels are re-structured and no longer depend on sub UI models
VStretchedButton
init
with icon is added
VLoadingStretchedButton
init
with icon is added
VWrappedButton
- Component is renamed to
VWrappedButton
cornerRadius
can now be changed to be anything other than half of heighthiBox
is now backed up byEdgeInsets_LeadingTrailingTopBottom
init
with icon is added
VRectangularButton
- Component is renamed to
VRectangularButton
hiBox
is now backed up byEdgeInsets_LeadingTrailingTopBottom
VRectangularCaptionButton
- Component is renamed to
VRectangularCaptionButton
iconMargins
that had no effect previously, now apply to iconroundedRectangleSize
is renamed torectangleSize
cornerRadius
is renamed torectangleCornerRadius
background
is renamed torectangleColors
backgroundPressedScale
is renamed torectanglePressedScale
borderWidth
is renamed torectangleBorderWidth
borderColors
is renamed torectangleBorderColors
labelPressedScale
is renamed toiconPressedScale
init
with icon is added
VPlainButton
hiBox
is now backed up byEdgeInsets_LeadingTrailingTopBottom
VCheckBox
hiBox
is renamed tocheckBoxHitBox
checkBoxHitBox
is now backed up byEdgeInsets_LeadingTrailingTopBottom
VRadioButton
hiBox
is renamed toradioButtonHitBox
radioButtonHitBox
is now backed up byEdgeInsets_LeadingTrailingTopBottom
VStretchedToggleButton
- A new state-picker component is added that resembles
VStretchedButton
VWrappedToggleButton
- A new state-picker component is added that resembles
VCapsuleButton
VRectangularToggleButton
- A new state-picker component is added that resembles
VRectangularButton
VSegmentedPicker
VSegmentedPicker
is removed
VWheelPicker
VWheelPicker
is removed
VStepper
iconDimension
is renamed tobuttonIconDimension
divider
is renamed todividerSize
VSlider
isBodyDraggable
is added, and default value is set tofalse
foriOS
, changing the default behavior of the slider
VTextField
headerTitleTextLineType
is changed tomultiline
withleading
alignment and1...2
linesheaderAndFooterMarginHorizontal
is split toheaderMarginHorizontal
andfooterMarginHorizontal
VTextView
headerTitleTextLineType
is changed tomultiline
withleading
alignment and1...2
linesheaderAndFooterMarginHorizontal
is split toheaderMarginHorizontal
andfooterMarginHorizontal
contentMargin
is renamed tocontentMargins
VCodeEntryView
- A new input component is added that allows for the entry of a code, such as PIN
VDisclosureGroup
- Disclosure button angles can now be customized for different states
VStretchedIndicatorStaticPagerTabView
- A new container component is added that presents children in
TabView
with custom header
VWrappedIndicatorStaticPagerTabView
- A new container component is added that presents children in
TabView
with custom header
VDynamicPagerTabView
- A new container component is added that presents children in
TabView
with custom header
VModal
- Keyboard handling is improved
- Size configuration is improved to support fractions and points separately for width and height
- Headers are removed
labelAndCloseButtonSpacing
is renamed toheaderLabelAndCloseButtonSpacing
blur
is removed- Dimming view now detects gestures even when clear
VBottomSheet
- Keyboard handling is improved
- Size configuration is improved to support fractions and points separately for width and heights
- Headers are removed
labelAndCloseButtonSpacing
is renamed toheaderLabelAndCloseButtonSpacing
- Dimming view now detects gestures even when clear
VSideBar
- Keyboard handling is improved
- Size configuration is improved to support fractions and points separately for width and height
- Dimming view now detects gestures even when clear
VAlert
- Size configuration is improved
titleTextLineType
is changed tomultiline
withcenter
alignment and1...2
linesblur
is removed- Dimming view now detects gestures even when clear
VMenu
hiBox
is now backed up byEdgeInsets_LeadingTrailingTopBottom
VPageIndicator
- API is overhauled to support different widths and heights for deselected and selected dots
- Page indicator now support custom corner radii
VCompactPageIndicator
- Page indicator now support custom corner radii
VAutomaticPageIndicator
- Page indicator is removed due to it being obsoleted by
ViewThatFits
VRollingCounter
- A new component is added that highlights change in a floating-number
Other
ColorBook
is renamed toVComponentsColorBook
to avoid issues with name-shadowingColorBook.canvas
is renamed toColorBook.secondaryBackground
ColorBook.layer
is renamed toColorBook.background
ImageBook
is no longer exposed topublic
, but UI models take icons instead
4.3.8(54) — 2023 09 03
VPageIndicator
- Backing
Circle
is changed toCapsule
to support different width and height
VCompactPageIndicator
- Backing
Circle
is changed toCapsule
to support different width and height
Helpers - Architectural Pattern Helpers
VAlertPresentable
is removedVSpinnerPresentable
is removed
4.3.7(53) — 2023 09 01
VSegmentedPicker
- Issue with indicator position on last row is fixed
4.3.6(52) — 2023 08 06
VAlert
- Issue of title and message not wrapping to multiple lines is fixed
4.3.5(51) — 2023 08 06
VToast
- Issue with lifecycle duration not respecting appear animation duration is fixed
- Issue with hidden offset is fixed
4.3.4(50) — 2023 07 17
Other
- Bug fixes and improvements
4.3.3(49) — 2023 06 10
VListRow
- Issue with
VListRow.rowEnclosingSeparators(isFirst:)
not inserting first and last separators is fixed
4.3.2(48) — 2023 06 10
VSegmentedPicker
- Issue with all rows scaling down on press is fixed
4.3.1(47) — 2023 06 07
VRoundedButton
iconSize
is changed to24x24
oniOS
and to26x26
onwatchOS
4.3.0(46) — 2023 05 06
VStretchedButton
- Component now supports shadows
VLoadingStretchedButton
- Component now supports shadows
VCapsuleButton
- Component now supports shadows
VRoundedButton
- Component now supports shadows
VRoundedCaptionButton
- Component now supports shadows
VPlainButton
iconSize
is changed to24
VSheet
- Component is renamed to
VGroupBox
VAlert
- API is overhauled
VConfirmationDialog
- Component is deprecated, and is replaced with
ConfirmationDialog
from VCore
VMenu
- API is overhauled
VContextMenu
- API is overhauled
4.2.3(45) — 2023 05 01
Other
- Issue with large icons going out of bounds in several components is fixed
4.2.2(44) — 2023 05 01
Other
- Platform-specific compilation errors are fixed
4.2.1(43) — 2023 05 01
VBottomSheet
- BottomSheet now supports
iOS
14.0
- Issue with header title not being visible under some conditions is fixed
Other
- Compilation errors are fixed
4.2.0(42) — 2023 04 29
General
colorScheme
is added to modal components
VSegmentedPicker
- Picker API is overhauled
VWheelPicker
- Picker API is overhauled
VMenu
- Rows can now be disabled
- Picker API is overhauled
VContextMenu
- Rows can now be disabled
4.1.0(41) — 2023 04 21
VModal
- Modal now supports
iOS
14.0
- Issue with screen-sized modal in landscape is fixed
VBottomSheet
- Issue with screen-sized modal in landscape is fixed
VSideBar
- SideBar now supports
iOS
14.0
- Issue with screen-sized modal in landscape is fixed
4.0.7(40) — 2023 04 20
Other
- Issue with button's content overflowing over rounded corners when margins are zero is fixed
4.0.6(39) — 2023 04 15
VSheet
- Default value of
roundedCorner
is fixed to beallCorners
again inVSheetUIModel
4.0.5(38) — 2023 04 15
Other
- Issue with
PresentationHost
breaking modal frames when presented fromUIHostingController
is fixed
4.0.4(37) — 2023 04 14
VBottomSheet
- Issue with positioning of smaller sheets when using fully fixed height is fixed
4.0.3(36) — 2023 04 13
Other
- Issue of DEBUG imports preventing archiving is fixed
4.0.2(35) — 2023 04 13
VBottomSheet
- Issue with positioning when using fully fixed height is fixed
4.0.1(34) — 2023 04 12
General
- Default haptic value is set to
nil
for most button components -VCapsuleButton
,VRoundedButton
,VRoundedCaptionButton
, andVPlainButton
4.0.0(33) — 2023 04 09
General
- Minimum SDK version is decreased to
iOS
13.0
- Package now partially supports
macOS
10.15
,tvOS
13.0
, andwatchOS
6.0
- Minimum
Swift
language version is increased to5.8
- Previously deprecated symbols are removed
- Package now supports RTL languages
- Fonts now support dynamic sizing
- Haptic effects are added to most interactive components
- Buttons that contained
customLabelContent
in UI models now support label APIs that pass internal states to the custom label callback - Some colors are changed throughout the package
- "TitleLineType" used in names is changed to "TextLineType"
- Shadow offsets are changed from
CGSize
toCGPoint
VStretchedButton
- A new button type is added as a non-loading alternative to
VLoadingStretchedButton
VPrimaryButton
VPrimaryButton
is renamed toVLoadingStretchedButton
animatesStateChange
is added inVLoadingStretchedButtonUIModel
backgroundPressedScale
andlabelPressedScale
are added inVLoadingStretchedButtonUIModel
VSecondaryButton
VSecondaryButton
is renamed toVCapsuleButton
animatesStateChange
is added inVCapsuleButtonUIModel
backgroundPressedScale
is added inVCapsuleButtonUIModel
labelPressedScale
is added inVCapsuleButtonUIModel
backgroundPressedScale
andlabelPressedScale
are added inVCapsuleButtonUIModel
VRoundedButton
VRoundedButton
not supports size instead of dimensionanimatesStateChange
is added inVRoundedButtonUIModel
backgroundPressedScale
andlabelPressedScale
are added inVRoundedButtonUIModel
VRoundedLabeledButton
VRoundedLabeledButton
is renamed toVRoundedCaptionButton
VRoundedCaptionButton
not supports size instead of dimensionanimatesStateChange
is added inVRoundedLabeledButtonUIModel
backgroundPressedScale
,labelPressedScale
, andcaptionPressedScale
are added inVRoundedLabeledButtonUIModel
VPlainButton
animatesStateChange
is added inVPlainButtonUIModel
labelPressedScale
is added inVPlainButtonUIModel
VSegmentedPicker
indicatorShadowOffsetX
andindicatorShadowOffsetY
are replaced withindicatorShadowOffset
inVSegmentedPickerUIModel
indicatorShadow.width
is changed from0
to1
VWheelPicker
headerMarginHorizontal
is renamed toHeaderTitleTextAndFooterTitleTextMarginHorizontal
inVWheelPickerUIModel
VStepper
iconDimension
is changed from15
to14
VSlider
direction
is added toVSliderUIModel
that support omni-directional layoutthumbShadowOffset
is added toVSliderUIModel
borderWidth
, andborder
colors are added inVSliderUIModel
, that allows for border customization- Issue with thumb not accounting for slider height is fixed
VRangeSlider
direction
is added toVRangeSliderUIModel
that support omni-directional layoutthumbShadowOffset
is added toVRangeSliderUIModel
borderWidth
, andborder
colors are added inVRangeSliderUIModel
, that allows for border customization- Issue with thumb not accounting for slider height is fixed
VBottomSheet
VBottomSheetUIModel.noHeaderLabel
is renamed toVBottomSheetUIModel.onlyGrabber
VAlert
titleLineLimit
is replaced withtitleLineType
inVAlertUIModel
messageLineLimit
is replaced withmessageLineType
inVAlertUIModel
VToast
WidthType
is added inVToastUIModel
that allows for additional customization, such as wrapping, stretching, or applying fixed width- Highlighted factory instances are added to
VToastUIModel
text
font no longer depends on backingUIFont
- Shadow configuration is added to
VToast
, but currently set to clear
VContinuousSpinner
borderWidth
is renamed tothickness
inVContinuousSpinnerUIModel
VProgressBar
direction
is added toVProgressBarUIModel
that support omni-directional layoutborderWidth
, andborder
colors are added inVProgressBarUIModel
, that allows for border customization
VPageIndicator
dotBorderWidth
, anddotBorder
/selectedDotBorder
colors are added inVPageIndicatorUIModel
, that allows for border customizationselectedIndex
is renamed tocurrent
VCompactPageIndicator
dotBorderWidth
, anddotBorder
/selectedDotBorder
colors are added inVCompactPageIndicatorUIModel
, that allows for border customizationselectedIndex
is renamed tocurrent
VAutomaticPageIndicator
dotBorderWidth
, anddotBorder
/selectedDotBorder
colors are added inVAutomaticPageIndicatorUIModel
, that allows for border customizationselectedIndex
is renamed tocurrent
Helpers - Architectural Pattern Helpers
VAlertUIModel
is moved fromVAlertParameters
toView.vAlert(id:parameters)
SpinnerType
is removed fromVSpinnerParameters
and is moved toView.vContinuousSpinner(parameters:)
andView.vDashedSpinner(parameters:)
Other
- Demo app is replaced with previews
ColorBook.accent
is renamed toColor.blue
PresentationHost
is moved to VCore
3.2.3(32) — 2023 04 09
Other
- Bug fixes and improvements
3.2.2(31) — 2023 04 02
VSlider
- Issue with tap gesture registering incorrect location is fixed
3.2.1(30) — 2023 03 23
VTextField
- Issue with password visibility icon not being visible is fixed
- Close button animation is set to
nil
- Issue with keyboard animation affecting close button's offset is fixed
3.2.0(29) — 2023 03 09
VRoundedLabeledButton
- Missing
titleLabelLineType
fromVRoundedLabeledButtonUIModel
is now utilized inside the button
VRadioButton
- Issue with radio button turning off after being tapped is fixed
VTextField
VTextFieldType
is renamed toContentType
and is moved toVTextFieldUIModel
VTextView
TextLineLimitType
is removed frominit
and can now be customized viatextLineType
inVTextViewUIModel
VList
VListRowSeparatorType
is renamed toSeparatorType
and is moved toVListRowUIModel
VModal
- Issue with some content not stretching to full width is fixed
VToast
VToastTextLineType
is renamed toTextLineType
and is moved toVToastUIModel
VSpinner
VSpinner
is split toVContinuousSpinner
andVDashedSpinner
VPageIndicator
VPageIndicator
is split toVPageIndicator
,VCompactPageIndicator
andVAutomaticPageIndicator
VMarquee
VMarquee
is split toVWrappingMarquee
andVBouncingMarquee
Other
presentationHost(id:allowsHitTests:isPresented:content:)
method is added that replaces currentPresentationHost
API- Issue with tap gesture falling through some contents when presenting modal using
PresentationHost
is fixed - Memory leak caused by
forceDismiss(id:)
method inPresentationHost
is fixed
3.1.0(28) — 2023 03 03
General
- Various properties inside UI models are replaced with relevant mapped sub UI models for additional customization. For instance, spinner properties inside
VPrimaryButtonUIModel
are replaced withVPlainButtonUIModel
.
VPrimaryButton
animations
model is added toVPrimaryButtonUIModel
for customizing spinner animations
VPageIndicator
direction
is added toVPageIndicatorUIModel
that support omni-directional layoutdot
parameter is added to initializer that supports dot customizationVPageIndicatorUIModel
is split into 3 subsequent UI models representing each typeVPageIndicatorType.finite
is renamed toVPageIndicatorType.standard
VPageIndicatorType.infinite
is renamed toVPageIndicatorType.compact
VMarquee
- Marquee container is added that auto-scrolls it's content
API
VComponentsLocalizationService
is renamed to VComponentsLocalizationManager
3.0.0(27) — 2022 10 02
General
- Minimum SDK version is increased to
iOS
16.0
- Minimum
Swift
language version is increased to5.7
- Previously deprecated symbols are removed
VPrimaryButton
- Corner radius is changed from
20
to16
. titleMinimumScaleFactor
is added inVPrimaryButtonUIModel
VSecondaryButton
titleMinimumScaleFactor
is added inVSecondaryButtonUIModel
VSquareButton
VSquareButton
is renamed toVRoundedButton
titleMinimumScaleFactor
is added inVRoundedButtonUIModel
VRoundedLabeledButton
- New button type is added
VPlainButton
titleMinimumScaleFactor
is added inVPlainButtonUIModel
VNavigationLink
- Component is removed, as Package migrates to
NavigationStack
-based programatic navigation
VLink
- Component is removed, to support more UI customization with simple
UIApplication.shared.open(:)
VToggle
titleLineLimit
is replaced withtitleLineType
inVToggleUIModel
titleMinimumScaleFactor
is added inVToggleUIModel
VCheckBox
titleLineLimit
is replaced withtitleLineType
inVCheckBoxUIModel
titleMinimumScaleFactor
is added inVCheckBoxUIModel
VRadioButton
titleLineLimit
is replaced withtitleLineType
inVRadioButtonUIModel
titleMinimumScaleFactor
is added inVRadioButtonUIModel
VSegmentedPicker
headerLineLimit
is replaced withheaderTitleLineType
isVSegmentedPickerUIModel
footerLineLimit
is replaced withfooterTitleLineType
isVSegmentedPickerUIModel
titleMinimumScaleFactor
is added inVSegmentedPickerUIModel
indicatorPress
is added inVSegmentedPickerUIModel
rowContentPressedScale
is added inVSegmentedPickerUIModel
- Header and footer color mismatched when disabled is fixed
title
is renamed torowTitle
inVSegmentedPickerUIModel
VWheelPicker
headerLineLimit
is replaced withheaderTitleLineType
isVWheelPickerUIModel
footerLineLimit
is replaced withfooterTitleLineType
isVWheelPickerUIModel
titleMinimumScaleFactor
is added inVWheelPickerUIModel
- Header and footer color mismatched when disabled is fixed
VMenuPicker
- MenuPicker is deprecated. Use
VMenu
withVMenuPickerSection
.
VTextField
- TextField Height is changed from
45
to50
placeholder
color is added toVTextFieldUIModel
headerLineLimit
is replaced withheaderTitleLineType
isVTextFieldUIModel
footerLineLimit
is replaced withfooterTitleLineType
isVTextFieldUIModel
- Header and footer color mismatched when disabled is fixed
VTextView
- TextView component is added
VDisclosureGroup
- Chevron icon direction is now right for collapsed state, and down for expanded
contentMargins
are changed from15
s tozero
inVDisclosureGroupUIModel
. This configuration supports list with already-padded rows. But in case of non-list content, additional padding must be used.VDisclosureGroupUIModel.insettedContent
is added- Issue with corner radius messing layout when content margin is
zero
is fixed
VLazyScrollView
- List is removed for more versatile
VListRow
-based API
VList
- List is removed for more versatile
VListRow
-based API
VStaticList
- List is removed for more versatile
VListRow
-based API
VModal
- Modal header title now can be changed via
vModalHeaderTitle(_:)
andvModalHeaderLabel(_:)
contentMargins
are changed from15
s tozero
inVModalUIModel
. This configuration supports list with already-padded rows. But in case of non-list content, additional padding must be used.VModalUIModel.insettedContent
is addedVModalUIModel.noHeaderLabel
is addedheaderSafeAreaEdges
is added toVModalUIModel
that can be used for full-sized modal
VBottomSheet
- BottomSheet header title now can be changed via
vBottomSheetHeaderTitle(_:)
andvBottomSheetHeaderLabel(_:)
contentMargins
are changed from15
s tozero
inVBottomSheetUIModel
. This configuration supports list with already-padded rows. But in case of non-list content, additional padding must be used.VBottomSheetUIModel.insettedContent
is addedVBottomSheetUIModel.scrollableContent
is addedVBottomSheetUIModel.noHeaderLabel
is addedVBottomSheetUIModel.scrollableContentNoHeaderLabel
is addedVBottomSheetUIModel.fullSizedContent
is addedheaderSafeAreaEdges
is added toVBottomSheetUIModel
that can be used for full-sized modal- Issue with content clipping outside container with big corner radius is fixed
- Issue with content not stretching to full height when grabber, header, and divider are all hidden if fixed
isContentDraggable
is renamed tocontentIsDraggable
inVBottomSheetUIModel
VSideBar
contentMargins
are changed from15
s tozero
inVSideBarUIModel
. This configuration supports list with already-padded rows. But in case of non-list content, additional padding must be used.VSideBarUIModel.insettedContent
is added
VAlert
- Alert now builds actions using
resultBuilder
VAlertPresentable
is added in style ofAlertPresentable
from VCore
VConfirmationDialog
- ConfirmationDialog now builds actions using
resultBuilder
- ConfirmationDialog API is updated to match
VAlert
VConfirmationDialogPresentable
is added in style ofConfirmationDialogPresentable
from VCore
VMenu
- Menu now support multiple section
- Menu now builds sections and rows using
resultBuilder
- Menu now supports picker section, transferred from
VMenuPicker
VContextMenu
- ContextMenu now support multiple section
- ContextMenu now builds sections and rows using
resultBuilder
- ContextMenu now supports picker section, transferred from
VMenuPicker
VToast
VToastType
is renamed toVToastTextLineType
VSpinner
VSpinnerPresentable
is added in style ofProgressViewPresentable
from VCore
VText
VTextType
is renamed toTextLineType
Other
PresentationHost
API is updated, and all modals now have id-basedView
extension methodsPresentationHostViewController
is no longerpublic
PickableEnumeration
is renamed toHashableEnumeration
PickableTitledEnumeration
is renamed toStringRepresentableHashableEnumeration
HashableEnumeration
andCustomStringConvertibleHashableEnumeration
are moved to VCoreGenericState
s andGenericStateModels
s are moved to VCoreBasicAnimation
is moved to VCorepressed
anddisabled
Color
s inColorBook
are updated, to be0.3
opacity of original referenceColor
s
2.3.4(26) — 2022 07 04
Other
- Bug fixes and improvements
2.3.3(25) — 2022 07 04
Models
EdgeInsets
s are renamed to full names from VCore
2.3.2(24) — 2022 07 04
Other
- Bug fixes and improvements
2.3.1(23) — 2022 07 04
General
- Divider and separators are now scaled to screen sizes
VModal
- Issue with content clipping outside border, when margins are zero, is fixed
2.3.0(22) — 2022 06 27
VSideBar
- SideBar now supports presentation from all four edges
- Issue with buttons, nested inside
ScrollView
, not registering clicks is fixed
2.2.0(21) — 2022 06 25
VBaseButton
- Button is deprecated, use
SwiftUIBaseButton
from VCore
VTextField
- Issue with keyboard dismissing after changing the secure status is fixed
VList
VListLayoutType
is deprecated. OldVList
now supports flexible layout, and newVStaticList
is added for fixed layout.- Last separator is now visible by default
- Separator is added before the first row, which is visible by default
VStaticList
- New list component is added that has a fixed layout
VContextMenu
- ContextMenu component is added
2.1.2(20) — 2022 06 20
General
Model
objects are renamed toUIModel
s
2.1.1(19) — 2022 06 17
Other
- Missing demo app
.xcodeproj
file is now tracked
2.1.0(18) — 2022 06 15
VSlider
roundsProgressViewRightEdge
is added toVSliderModel
to round progress view- Progress view is now rounded by default
VProgressBar
roundsProgressViewRightEdge
is added toVProgressBar
to round progress view- Progress view is now rounded by default
Other
ModalSizes
andModalSizes.SizeConfiguration
now conform toEquatable,
Hashable, and
Comparable`asSwiftUIAnimation
is renamed totoSwiftUIAnimation
inBasicAnimation
2.0.0(17) — 2022 05 26
General
- Project is migrated from
XCFramework
toSwift
Package - Minimum SDK version is increased to
iOS
15.0
- Previously deprecated symbols are removed
- Components are reworked
- Colors are reworked
- Button, state, and value picker components' state enums are removed, and
disabled
modifier can be used instead - Generic type
Content
is renamed toLabel
in button and state pickers as perSwiftUI
's guidelines blinder
is renamed todimmingView
VPrimaryButton
- Button loader size is changed from
10
to15
VSquareButton
- Button font is changed to
system bold
size15
VPlainButton
- Button font is changed to
system medium
size15
VChevronButton
- Button is removed in favor of more general
VSquareButton
VCloseButton
- Button is removed in favor of more general
VSquareButton
VWebLink
VWebLink
is renamed toVLink
VToggle
titleLineLimit
is added toVToggleModel
VCheckBox
titleLineLimit
is added toVCHeckBoxModel
VRadioButton
titleLineLimit
is added toVRadioButtonModel
VSegmentedPicker
headerLineLimit
andfooterLineLimit
are added toVSegmentedPickerModel
VMenuPicker
- Label issue with
iOS
15
is fixed
VWheelPicker
headerLineLimit
andfooterLineLimit
are added toVWheelPicker
VRangeSlider
- RangeSlider would now crash if invalid height parameters are used
VBaseTextField
- TextField is obsoleted by native
TextField
since SwiftUI3.0
, and is removed
VTextField
- TextField now support native
focusable()
API VTextFieldHighlight
is removed in favor of customVTextFieldModel
s- TextField Height is changed from
50
to45
- TextField corner radius is changed from
10
to12
- Placeholder font is changed to
system
size16
warning
highlight is added toVTextFieldModel
headerLineLimit
andfooterLineLimit
are added toVTextFieldModel
VSheet
- Sheet margins are changed from
10
to15
VAccordion
VAccordion
is renamed toVDisclosureGroup
- DisclosureGroup margins are changed from
10
to15
VBaseList
VBaseList
is renamed toVList
- List can now be initialized with constant range and row content
VList
- List is removed in favor of
VBaseList
(nowVList
) andVSheet
VSectionList
- List is removed in favor of
VBaseList
(nowVList
) andVSheet
VTabNavigationView
- TabNavigationView is removed
VNavigationView
- NavigationView is removed
VModal
- Modal is migrated to new
SwiftUI
3.0
API - Modal now supports landscape mode
headerAlignment
is added toVModalModel
- Modal margins are changed from
10
to15
- Modal now has option for adding shadow
VHalfModal
VHalfModal
is renamed to `VBottomSheet- BottomSheet is migrated to new
SwiftUI
3.0
API` - BottomSheet now supports landscape mode
headerAlignment
is added toVBottomSheetModel
- BottomSheet can now be snapped to height by dragging it at high velocities
- BottomSheet now supports content autoresizing
- BottomSheet height has changed to
0.6
,0.6
, and0.9
ratios of screen height as min, ideal, and max heights - BottomSheet margins are changed from
10
to15
- BottomSheet now has option for adding shadow
- Issue with modal snapping to max height if dragged to min when
pullDown
dismiss type is not enabled is fixed - BottomSheet would now crash if invalid height parameters are used
VSideBar
- SideBar is migrated to new
SwiftUI
3.0
API` - SideBar now supports landscape mode
- SideBar margins are changed from
10
to15
- SideBar now has option for adding shadow
VDialog
VDialog
is renamed toVAlert
- Alert is migrated to new
SwiftUI
3.0
API` - Alert now supports landscape mode
- Alert can now be created with
Error
- Alert now has option for adding shadow
description
is renamed tomessage
VActionSheet
VActionSheet
is renamed toVConfirmationDialog
- ConfirmationDialog is migrated to new
SwiftUI
3.0
API` description
is renamed tomessage
VMenu
- Label issue with
iOS
15
is fixed
VToast
- Toast is migrated to new
SwiftUI
3.0
API` rounded
VToast.Layout.CornerRadiusType
is renamed tocapsule
custom
VToast.Layout.CornerRadiusType
is renamed torounded
VToastType
oneLine
is renamed tosingleLine
VPageIndicator
- PageIndicator would now crash if invalid height parameters are used
VBaseView
- View is removed as it offers no additional customization
VText
VTextType
oneLine
is renamed tosingleLine
Other
StateColors
s andStateOpacities
s are replaced withGenericStateModel
sLayoutGroup
s are renamed toEdgeInsets
sVPickableItem
is renamed toPickableEnumeration
API
VComponentsLocalizationService
is added, that supports localization within the Package
Other
ImageBook
is made public, and asset icons in library can no be re-set- Several internal properties are now exposed to
public
in models
1.6.0(16) — 2022 01 07
General
showIndicator
property is moved fromMisc
toLayout
in the models, and emptyMisc
objects are deprecated
VToast
oneLine
is now a default parameter in the initializer
VText
oneLine
is now a default parameter in the initializertruncatingMode
property is added toVTextModel
minimumScaleFactor
property is added toVTextModel
Extensions
- Issues with conditional
View
functionif
are fixed
1.5.0(15) — 2021 12 24
VBaseButton
VBaseButton
API is updated by implementingVBaseButtonGestureState
- Implementation of state-bound components is also updated
VCheckBox
- Component now supports colors for pressed state in
VCheckBoxModel
VRadioButton
- Component now supports colors for pressed state in
VRadioButtonModel
VToggle
- Component now supports colors for pressed state in
VToggleModel
Other
StateColors_EPDL
is renamed toStateColors_EPLD
1.4.6(14) — 2021 12 10
VBaseButton
- Clicks overriding scroll gesture is fixed
VPrimaryButton
- Button height is changed to
56
1.4.5(13) — 2021 11 05
General
nextState
is renamed tosetNextState
in state-bound component states
Other
- Several color group objects and their parameters are renamed
1.4.4(12) — 2021 10 28
VHalfModal
Resize Indicator
is renamed toGrabber
1.4.3(11) — 2021 10 11
Bug fixes and improvements
1.4.2(10) — 2021 09 02
VSpinner
- Issue with
continuous
spinner breaking inNavigationView
inSwiftUI
3.0
is fixed
1.4.1(9) — 2021 08 29
VCheckBox
intermediate
is renamed toindeterminate
VLink
VLink
is renamed toVWebLink
VSectionList
VSectionListRowViewModelable
is deprecated in favor ofIdentifiable
Other
- Layout and color groups used in models can now be initialized as
.zero
,.clear
, and.solid
1.4.0(8) — 2021 08 26
VNavigationLink
- Navigation can now occur using
vNavigationLink
View
extension
VBaseList
- Divider margins are added to
VBaseListModel
VList
- Divider margins are added to
VListModel
VSectionList
- Divider margins are added to
VSectionListModel
VSectionListRow
is renamed toVSectionListRowViewModelable
VSectionListSection
is renamed toVSectionListSectionViewModelable
VAccordion
- Divider margins are added to
VAccordionModel
VNavigationView
- Default divider color is changed from
ColorBook.clear
to gray
VBaseView
- Default title alignment is changed from
leading
tocenter
1.3.1(7) — 2021 02 27
VBaseTextField
- TextField calling
onChange
handler one keystroke behind is fixed
VTextField
- TextField calling
onChange
handler one keystroke behind is fixed
1.3.0(6) — 2021 02 16
VBaseTextField
autocapitalization
is added toVBaseTextFieldModel
VTextField
autocapitalization
is added toVTextFieldModel
1.2.1(5) — 2021 02 14
VHalfModal
- Close button layout when embedded inside
VNavigationView
is fixed
1.2.0(4) — 2021 02 12
VSection
VSection
is renamed toVList
VTable
VTable
is renamed toVSectionList
VLazyList
VLazyList
is renamed toVLazyScrollView
1.1.1(3) — 2021 02 10
Bug fixes and improvements
1.1.0(2) — 2021 02 09
General
- Documentation on public declarations, methods, and properties are added
1.0.0(1) — 2021 02 07
Initial release