gitextract_xvgxkjtt/ ├── .github/ │ └── workflows/ │ └── swift.yml ├── .gitignore ├── .swiftpm/ │ └── xcode/ │ ├── package.xcworkspace/ │ │ └── contents.xcworkspacedata │ └── xcshareddata/ │ └── xcschemes/ │ └── DSFSparkline.xcscheme ├── Demos/ │ ├── Documentation Project/ │ │ ├── Documentation Project/ │ │ │ ├── AppDelegate.swift │ │ │ ├── Assets.xcassets/ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ └── Contents.json │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Contents.json │ │ │ ├── Base.lproj/ │ │ │ │ └── Main.storyboard │ │ │ ├── CenteringClipView.swift │ │ │ ├── Documentation_Project.entitlements │ │ │ ├── Info.plist │ │ │ ├── Utilities.swift │ │ │ └── ViewController.swift │ │ └── Documentation Project.xcodeproj/ │ │ ├── project.pbxproj │ │ └── project.xcworkspace/ │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata/ │ │ └── swiftpm/ │ │ └── Package.resolved │ ├── Playground/ │ │ ├── Sparklines Playground.playground/ │ │ │ ├── Contents.swift │ │ │ ├── contents.xcplayground │ │ │ └── playground.xcworkspace/ │ │ │ └── contents.xcworkspacedata │ │ └── Sparklines Playground.xcworkspace/ │ │ └── contents.xcworkspacedata │ ├── Samples/ │ │ ├── Demos.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace/ │ │ │ │ └── contents.xcworkspacedata │ │ │ ├── xcshareddata/ │ │ │ │ └── xcschemes/ │ │ │ │ ├── All Demos.xcscheme │ │ │ │ ├── SwiftUI Sparkline Demo (iOS).xcscheme │ │ │ │ ├── SwiftUI Sparkline Demo (macOS).xcscheme │ │ │ │ ├── iOS Sparkline Demo.xcscheme │ │ │ │ ├── macOS Sparkline Demo Objc.xcscheme │ │ │ │ ├── macOS Sparkline Demo.xcscheme │ │ │ │ ├── macOS Table Demo.xcscheme │ │ │ │ └── tvOS Sparkline Demo.xcscheme │ │ │ └── xcuserdata/ │ │ │ └── dford.xcuserdatad/ │ │ │ └── xcdebugger/ │ │ │ └── Breakpoints_v2.xcbkptlist │ │ ├── SwiftUI Sparkline Crossplatform/ │ │ │ ├── Shared/ │ │ │ │ ├── ActiveView.swift │ │ │ │ ├── ActivityGridView.swift │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── AttributedString.swift │ │ │ │ ├── BarDemoContentView.swift │ │ │ │ ├── BitmapGenerationView.swift │ │ │ │ ├── CircularGaugeView.swift │ │ │ │ ├── CircularProgress.swift │ │ │ │ ├── ContentView.swift │ │ │ │ ├── DataBarGraphContent.swift │ │ │ │ ├── DotGraphView.swift │ │ │ │ ├── Extensions.swift │ │ │ │ ├── LineDemoContentView.swift │ │ │ │ ├── PercentBarView.swift │ │ │ │ ├── PieGraphDemoView.swift │ │ │ │ ├── ReportView.swift │ │ │ │ ├── StackLineDemoContentView.swift │ │ │ │ ├── StripesDemoView.swift │ │ │ │ ├── SwiftUI-Overlays/ │ │ │ │ │ ├── OverlayView.swift │ │ │ │ │ ├── StripesOverlaidView.swift │ │ │ │ │ ├── SuperCoolLineSpark.swift │ │ │ │ │ ├── SwiftUIContentView.swift │ │ │ │ │ └── SwiftUIView.swift │ │ │ │ ├── SwiftUI_Sparkline_DemoApp.swift │ │ │ │ ├── TabletView.swift │ │ │ │ ├── TestingView.swift │ │ │ │ ├── WinLossGraphContentView.swift │ │ │ │ └── WiperGaugeDemoView.swift │ │ │ ├── iOS/ │ │ │ │ └── Info.plist │ │ │ └── macOS/ │ │ │ ├── Info.plist │ │ │ └── macOS.entitlements │ │ ├── iOS Sparkline Demo/ │ │ │ ├── AppDelegate.swift │ │ │ ├── Assets.xcassets/ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Contents.json │ │ │ ├── Base.lproj/ │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── Main.storyboard │ │ │ ├── Info.plist │ │ │ ├── SceneDelegate.swift │ │ │ ├── ViewController.swift │ │ │ └── iOS Sparkline Demo.entitlements │ │ ├── macOS Sparkline Demo/ │ │ │ ├── AppDelegate.swift │ │ │ ├── Assets.xcassets/ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Contents.json │ │ │ ├── Base.lproj/ │ │ │ │ └── Main.storyboard │ │ │ ├── Info.plist │ │ │ ├── ViewController.swift │ │ │ ├── cpuUsage.swift │ │ │ └── macOS_Sparkline_Demo.entitlements │ │ ├── macOS Sparkline Demo Objc/ │ │ │ ├── AppDelegate.h │ │ │ ├── AppDelegate.m │ │ │ ├── Assets.xcassets/ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Contents.json │ │ │ ├── Base.lproj/ │ │ │ │ └── Main.storyboard │ │ │ ├── Info.plist │ │ │ ├── ViewController.h │ │ │ ├── ViewController.m │ │ │ ├── macOS_Sparkline_Demo_Objc.entitlements │ │ │ └── main.m │ │ ├── macOS Table Demo/ │ │ │ ├── AppDelegate.swift │ │ │ ├── Assets.xcassets/ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Contents.json │ │ │ ├── Base.lproj/ │ │ │ │ └── Main.storyboard │ │ │ ├── GridViewController.swift │ │ │ ├── Info.plist │ │ │ ├── ViewController.swift │ │ │ └── macOS_Table_Demo.entitlements │ │ └── tvOS Sparkline Demo/ │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets/ │ │ │ ├── App Icon & Top Shelf Image.brandassets/ │ │ │ │ ├── App Icon - App Store.imagestack/ │ │ │ │ │ ├── Back.imagestacklayer/ │ │ │ │ │ │ ├── Content.imageset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Front.imagestacklayer/ │ │ │ │ │ │ ├── Content.imageset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Middle.imagestacklayer/ │ │ │ │ │ ├── Content.imageset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── App Icon.imagestack/ │ │ │ │ │ ├── Back.imagestacklayer/ │ │ │ │ │ │ ├── Content.imageset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Front.imagestacklayer/ │ │ │ │ │ │ ├── Content.imageset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Middle.imagestacklayer/ │ │ │ │ │ ├── Content.imageset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── Contents.json │ │ │ │ ├── Top Shelf Image Wide.imageset/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Top Shelf Image.imageset/ │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Base.lproj/ │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── Info.plist │ │ └── ViewController.swift │ └── Simple Wiper Gauge/ │ ├── Simple Wiper Gauge/ │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets/ │ │ │ ├── AccentColor.colorset/ │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset/ │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Base.lproj/ │ │ │ └── Main.storyboard │ │ ├── Info.plist │ │ ├── Simple_Wiper_Gauge.entitlements │ │ └── ViewController.swift │ └── Simple Wiper Gauge.xcodeproj/ │ ├── project.pbxproj │ └── project.xcworkspace/ │ ├── contents.xcworkspacedata │ └── xcshareddata/ │ └── swiftpm/ │ └── Package.resolved ├── LICENSE ├── Package.resolved ├── Package.swift ├── README.md ├── Sources/ │ └── DSFSparkline/ │ ├── DSFSparklines.h │ ├── Info.plist │ ├── datasource/ │ │ ├── DSFSparkline+DataSource.swift │ │ ├── DSFSparkline+StaticDataSource.swift │ │ └── data-core/ │ │ ├── SparklineData.swift │ │ └── SparklineWindow.swift │ ├── overlay/ │ │ ├── renderers/ │ │ │ ├── core/ │ │ │ │ ├── DSFSparklineOverlay+Centerable.swift │ │ │ │ ├── DSFSparklineOverlay+DataSource.swift │ │ │ │ ├── DSFSparklineOverlay+StaticDataSource.swift │ │ │ │ └── DSFSparklineOverlay.swift │ │ │ ├── overlays-components/ │ │ │ │ ├── DSFSparklineOverlay+GridLines.swift │ │ │ │ ├── DSFSparklineOverlay+RangeHighlight.swift │ │ │ │ └── DSFSparklineOverlay+ZeroLine.swift │ │ │ └── overlays-graph/ │ │ │ ├── DSFSparklineOverlay+ActivityGrid.swift │ │ │ ├── DSFSparklineOverlay+Bar.swift │ │ │ ├── DSFSparklineOverlay+CircularGauge.swift │ │ │ ├── DSFSparklineOverlay+CircularProgress.swift │ │ │ ├── DSFSparklineOverlay+DataBar.swift │ │ │ ├── DSFSparklineOverlay+Dot.swift │ │ │ ├── DSFSparklineOverlay+Line.swift │ │ │ ├── DSFSparklineOverlay+PercentBar.swift │ │ │ ├── DSFSparklineOverlay+Pie.swift │ │ │ ├── DSFSparklineOverlay+Stackline.swift │ │ │ ├── DSFSparklineOverlay+Stripes.swift │ │ │ ├── DSFSparklineOverlay+Tablet.swift │ │ │ ├── DSFSparklineOverlay+WinLossTie.swift │ │ │ └── DSFSparklineOverlay+WiperGauge.swift │ │ ├── surfaces/ │ │ │ ├── DSFSparklineSurface+AttributedString.swift │ │ │ ├── DSFSparklineSurface+Bitmap.swift │ │ │ ├── DSFSparklineSurface+SwiftUI.swift │ │ │ ├── DSFSparklineSurface+View.swift │ │ │ └── DSFSparklineSurface.swift │ │ └── types/ │ │ ├── DSFSparkline+ActivityGridDefinition.swift │ │ ├── DSFSparkline+GradientBucket.swift │ │ ├── DSFSparkline+GridLinesDefinition.swift │ │ ├── DSFSparkline+HighlightRangeDefinition.swift │ │ ├── DSFSparkline+Palette.swift │ │ ├── DSFSparkline+ValueBasedFill.swift │ │ ├── DSFSparkline+ZeroLineDefinition.swift │ │ ├── DSFSparkline.swift │ │ └── fill/ │ │ ├── DSFSparkline+FillColor.swift │ │ ├── DSFSparkline+FillGradient.swift │ │ └── DSFSparkline+Fillable.swift │ ├── prebuilt/ │ │ ├── DSFSparklineActivityGridView+SwiftUI.swift │ │ ├── DSFSparklineActivityGridView.swift │ │ ├── DSFSparklineBarGraphView+SwiftUI.swift │ │ ├── DSFSparklineBarGraphView.swift │ │ ├── DSFSparklineCircularGaugeView+SwiftUI.swift │ │ ├── DSFSparklineCircularGaugeView.swift │ │ ├── DSFSparklineCircularProgressView+SwiftUI.swift │ │ ├── DSFSparklineCircularProgressView.swift │ │ ├── DSFSparklineDataBarGraphView+SwiftUI.swift │ │ ├── DSFSparklineDataBarGraphView.swift │ │ ├── DSFSparklineDotGraphView+SwiftUI.swift │ │ ├── DSFSparklineDotGraphView.swift │ │ ├── DSFSparklineLineGraphView+SwiftUI.swift │ │ ├── DSFSparklineLineGraphView.swift │ │ ├── DSFSparklinePercentBarGraphView+SwiftUI.swift │ │ ├── DSFSparklinePercentBarGraphView.swift │ │ ├── DSFSparklinePieGraphView+SwiftUI.swift │ │ ├── DSFSparklinePieGraphView.swift │ │ ├── DSFSparklineStackLineGraphView+SwiftUI.swift │ │ ├── DSFSparklineStackLineGraphView.swift │ │ ├── DSFSparklineStripesGraphView+SwiftUI.swift │ │ ├── DSFSparklineStripesGraphView.swift │ │ ├── DSFSparklineTabletGraphView+SwiftUI.swift │ │ ├── DSFSparklineTabletGraphView.swift │ │ ├── DSFSparklineWinLossGraphView+SwiftUI.swift │ │ ├── DSFSparklineWinLossGraphView.swift │ │ ├── DSFSparklineWiperGaugeGraphView+SwiftUI.swift │ │ ├── DSFSparklineWiperGaugeGraphView.swift │ │ └── ui/ │ │ ├── DSFSparklineDataSourceView.swift │ │ └── DSFSparklineZeroLinedGraphView.swift │ └── util/ │ ├── Angle.swift │ ├── ArbitraryAnimator.swift │ ├── CGColor+BackwardsCompatibility.swift │ ├── CGContext+extensions.swift │ ├── CGPath+Hermite.swift │ ├── CGPath+innerShadow.swift │ ├── DSFSparkline+Shadow.swift │ ├── LayerInvalidating.swift │ ├── NSShadow+extensions.swift │ └── Utilities.swift ├── Tests/ │ └── DSFSparklineTests/ │ ├── CircularGaugeTests.swift │ ├── CircularProgressTests.swift │ ├── DSFSparklineTests.swift │ ├── LineGraphTests.swift │ ├── PresentationTests.swift │ └── utils/ │ └── TestFilesContainer.swift └── Tools/ └── sanity-check.sh