Repository navigation
SwiftUI Components 2.0.0
The component library that was removed in June 2026 is back, now building for iOS 17 and macOS 14 in the Swift 6 language mode, with tests and CI.
Added
- Restored the components: 220 public views and 12 view modifiers across buttons, cards, charts, forms, inputs, lists, loading, navigation, overlays, text, toasts and miscellaneous views.
- macOS 14 support through small platform shims (system colors, haptics, keyboard type, capitalization, wheel pickers, paged
TabView). KeyboardKindto choose the software keyboard ofTextInputFieldwithout UIKit types.- Public static helpers:
CreditCardInput.CardType.detect(from:),CreditCardInput.formatCardNumber(_:),formatExpiry(_:),checkExpiry(_:now:calendar:),isLuhnValid(_:),PhoneInput.format(_:pattern:),PhoneInput.hasValidLength(_:),HighlightedText.matchRanges(in:terms:caseSensitive:),FlowLayout.arrange(sizes:maxWidth:spacing:). - Public initializers for
SnackBarManagerandBannerManager, andSnackBarManager.pendingCount. - Swift Testing suites for the logic above, pagination, the toast managers, and render tests for four gallery pages in light and dark mode.
- README screenshots rendered on the iOS simulator, and
scripts/generate-screenshots.sh. - DocC catalog with an overview, a getting-started article, an article on collecting card details and platform notes, published to GitHub Pages by the
Documentationworkflow. The site leaves out the SwiftUIViewmembers each view inherits. Examples/ComponentGallery, an iOS and macOS app with one screen per README sample; the README samples are compiled by the app and by the tests.- README translations into Turkish, Simplified Chinese, Japanese, Korean, Spanish, German, French, Brazilian Portuguese and Russian, and a generated banner, badges and buttons.
.spi.ymlfor the Swift Package Index.
Changed
- Breaking: minimum platforms are now iOS 17 and macOS 14 (was iOS 16 / macOS 13 in 1.0.0).
swift-tools-version6.2 (Xcode 26, the version CI builds with) and Swift 6 language mode; the restored code uses iOS 17 APIs such asonChange(of:initial:_:). tvOS, watchOS and visionOS were removed from the manifest because the package was never built for them.TextInputField(keyboardType:)now takes aKeyboardKindinstead ofUIKeyboardType.FlowLayoutis a single public type inLayout/FlowLayout.swift(three copies existed).HighlightedTextbuilds anAttributedString, so highlight backgrounds actually render.- CI runs through the shared workflows in
muhittincamdali/.github:swift teston macOS,xcodebuildbuilds for iOS and macOS,xcodebuild teston an iPhone simulator, DocC to GitHub Pages, link, wording and translation checks. A repository workflow builds the example app. All actions are pinned to commit SHAs, with nocontinue-on-error. - The code of conduct, security policy and issue forms come from
muhittincamdali/.githubinstead of local copies.
Fixed
- Repeating timers in
InlineLoader,LoadingText,TimedPinInput,TypewriterText,CarouselandVerticalMarqueeTextkept running after the view disappeared. BannerManager.show(_:)cleared the new banner about 0.25 s after showing it;SnackBarManagerhad the same race when a snackbar was shown during the exit animation.PaginatedListViewModel.refresh()did nothing while a page was loading..toast(isPresenting:)could be hidden early by the timer of a previous toast.CreditCardInputcrashed on input such as "½" in the Luhn check, did not recognise Mastercard 2-series or Diners Club 300–305/39 numbers, and grouped Amex numbers as 4-4-4-4.RatingInputin.exactmode reported half a star too much while dragging.GaugeChartneedle pointed away from the value.SparklineChartwith one value andPieChartwith a zero total produced NaN geometry.PricingCardperiod label was unreadable on the highlighted header.SnapCarouselusedUIScreenbounds instead of its own viewport;ExpandableTextmeasured truncation with a fixed body font.
Removed
- Placeholder
Enterprise/utilities (circuit breaker, retry policy, event bus, metrics) andGlassLibrary, which only printed a message. Documentation/,Examples/andTemplates/, which described APIs that do not exist or did not compile.- The CocoaPods podspec (it declared iOS 15 and was never validated).
- Placeholder tests that only asserted values were non-nil, and the unused SwiftLint config.
Full changelog: CHANGELOG.md