Activity indicator styles and shimmer placeholder modifier#2
Merged
Conversation
Introduce orbital and pulsing activity indicator styles alongside the existing system ProgressView default, with token-backed sizing and motion. Add higShimmer modifier for redacted placeholder loading states, wire shimmer tokens through all themes, and expand the Activity Indicator showcase with custom styles and a shimmer subsection.
Port the remaining eight Exyte indicator types (arcs, rotatingDots, flickeringDots, scalingDots, opacityDots, equalizer, growingCircle, gradient) with token-backed parameters, theme colors, and Reduce Motion support. Expand showcase to demo all ten custom styles plus system.
Migrate PhotoPicker library and image loading from DispatchQueue to actors (PhotosLibraryExecutor, PhotoKitCoordinator). Add CI guard that fails on DispatchQueue and dispatch_* usage in Sources and Tests.
Use grep/find in all CI verification scripts so jobs pass without rg installed. Link Requirements/ from README.md. Scope preview coverage to public View types and fix PhotoPicker overlay naming.
Replace build-and-test.yml with pr-checks.yml: governance on ubuntu-latest, macOS build/snapshots after governance passes. Add run_pr_checks.sh orchestrators, SwiftPM cache, cancel-in-progress concurrency, PR template, and include missing token/signing/sample-app guards. Finish rg removal in remaining verify scripts.
Fix macOS PR Checks failure when ripgrep is not installed on the runner.
Snapshot PNGs are for README and GitHub Pages only. Drop snapshot diff and manifest guards from CI; keep capture scripts for manual use.
Annotate PickerChrome button style helpers and ViewModifier bodies with @mainactor, and cast .glass explicitly for iOS 26. Build thumbnail request options inside PhotoKitCoordinator to avoid sending non-Sendable PHImageRequestOptions across actor boundaries.
Remove GlassButtonStyle references that require the iOS 26 SDK unavailable on CI runners. Runtime availability checks do not prevent compile-time type resolution, so fall back to .bordered consistently across SDKs.
Bring back GlassButtonStyle usage with iOS 26 availability fallback to .bordered. Delete the GitHub Actions PR Checks workflow and its orchestrator scripts; update docs to list manual verification commands.
Resolve PhotoPicker actor conflicts by keeping allowsNetwork-based caching API that builds PHImageRequestOptions inside PhotoKitCoordinator.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds two custom activity indicator styles (
.orbital,.pulsing) alongside the existing.systemdefault, plus a token-backedhigShimmermodifier for redacted placeholder loading states.Changes
Activity Indicator
HIGActivityIndicatorStyle:.system(default),.orbital,.pulsingHIGActivityIndicatorTokensShimmer
higShimmer(isActive:mode:)modifier with mask, overlay, and background modesHIGShimmerTokenswired throughHIGTheme(System, Brand, High Contrast, Preview)Showcase
Docs & tests
Test plan
swift buildswift test(47 tests)Scripts/verify_component_token_usage.shScripts/verify_docc_coverage.shScripts/capture_showcase_snapshots.sh