├── Carthage ├── Build │ ├── Mac │ │ ├── With_mac.framework │ │ │ ├── Versions │ │ │ │ ├── Current │ │ │ │ └── A │ │ │ │ │ ├── With_mac │ │ │ │ │ ├── Modules │ │ │ │ │ ├── With_mac.swiftmodule │ │ │ │ │ │ ├── x86_64.swiftdoc │ │ │ │ │ │ └── x86_64.swiftmodule │ │ │ │ │ └── module.modulemap │ │ │ │ │ └── Headers │ │ │ │ │ └── With_mac.h │ │ │ ├── Headers │ │ │ ├── Modules │ │ │ ├── Resources │ │ │ └── With_mac │ │ ├── Hybrid_macOS.framework │ │ │ ├── Versions │ │ │ │ ├── Current │ │ │ │ └── A │ │ │ │ │ ├── Hybrid_macOS │ │ │ │ │ ├── Modules │ │ │ │ │ ├── Hybrid_macOS.swiftmodule │ │ │ │ │ │ ├── x86_64.swiftdoc │ │ │ │ │ │ └── x86_64.swiftmodule │ │ │ │ │ └── module.modulemap │ │ │ │ │ └── Headers │ │ │ │ │ └── Hybrid_macOS.h │ │ │ ├── Headers │ │ │ ├── Modules │ │ │ ├── Resources │ │ │ └── Hybrid_macOS │ │ ├── Spatial_macOS.framework │ │ │ ├── Versions │ │ │ │ ├── Current │ │ │ │ └── A │ │ │ │ │ ├── Spatial_macOS │ │ │ │ │ ├── Modules │ │ │ │ │ ├── Spatial_macOS.swiftmodule │ │ │ │ │ │ ├── x86_64.swiftdoc │ │ │ │ │ │ └── x86_64.swiftmodule │ │ │ │ │ └── module.modulemap │ │ │ │ │ └── Headers │ │ │ │ │ └── Spatial_macOS.h │ │ │ ├── Headers │ │ │ ├── Modules │ │ │ ├── Resources │ │ │ └── Spatial_macOS │ │ ├── With_mac.framework.dSYM │ │ │ └── Contents │ │ │ │ ├── Resources │ │ │ │ └── DWARF │ │ │ │ │ └── With_mac │ │ │ │ └── Info.plist │ │ ├── Hybrid_macOS.framework.dSYM │ │ │ └── Contents │ │ │ │ ├── Resources │ │ │ │ └── DWARF │ │ │ │ │ └── Hybrid_macOS │ │ │ │ └── Info.plist │ │ └── Spatial_macOS.framework.dSYM │ │ │ └── Contents │ │ │ ├── Resources │ │ │ └── DWARF │ │ │ │ └── Spatial_macOS │ │ │ └── Info.plist │ ├── iOS │ │ ├── With.framework │ │ │ ├── With │ │ │ ├── Info.plist │ │ │ ├── Modules │ │ │ │ ├── With.swiftmodule │ │ │ │ │ ├── arm64.swiftdoc │ │ │ │ │ ├── x86_64.swiftdoc │ │ │ │ │ ├── arm64.swiftmodule │ │ │ │ │ └── x86_64.swiftmodule │ │ │ │ └── module.modulemap │ │ │ └── Headers │ │ │ │ └── With.h │ │ ├── Spatial.framework │ │ │ ├── Spatial │ │ │ ├── Info.plist │ │ │ ├── Modules │ │ │ │ ├── Spatial.swiftmodule │ │ │ │ │ ├── arm64.swiftdoc │ │ │ │ │ ├── x86_64.swiftdoc │ │ │ │ │ ├── arm64.swiftmodule │ │ │ │ │ └── x86_64.swiftmodule │ │ │ │ └── module.modulemap │ │ │ └── Headers │ │ │ │ └── Spatial.h │ │ ├── Hybrid_iOS.framework │ │ │ ├── Hybrid_iOS │ │ │ ├── Info.plist │ │ │ ├── Modules │ │ │ │ ├── Hybrid_iOS.swiftmodule │ │ │ │ │ ├── arm64.swiftdoc │ │ │ │ │ ├── x86_64.swiftdoc │ │ │ │ │ ├── arm64.swiftmodule │ │ │ │ │ └── x86_64.swiftmodule │ │ │ │ └── module.modulemap │ │ │ └── Headers │ │ │ │ └── Hybrid_iOS.h │ │ ├── With.framework.dSYM │ │ │ └── Contents │ │ │ │ ├── Resources │ │ │ │ └── DWARF │ │ │ │ │ └── With │ │ │ │ └── Info.plist │ │ ├── Spatial.framework.dSYM │ │ │ └── Contents │ │ │ │ ├── Resources │ │ │ │ └── DWARF │ │ │ │ │ └── Spatial │ │ │ │ └── Info.plist │ │ └── Hybrid_iOS.framework.dSYM │ │ │ └── Contents │ │ │ ├── Resources │ │ │ └── DWARF │ │ │ │ └── Hybrid_iOS │ │ │ └── Info.plist │ ├── .With.version │ ├── .Hybrid.version │ └── .Spatial.version └── Checkouts │ ├── Hybrid │ ├── Carthage │ │ ├── Build │ │ └── Checkouts │ │ │ ├── Spatial │ │ │ ├── Carthage │ │ │ │ ├── Build │ │ │ │ └── Checkouts │ │ │ │ │ └── With │ │ │ │ │ ├── WithExample │ │ │ │ │ ├── Assets.xcassets │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── AppDelegate.swift │ │ │ │ │ ├── Carthage │ │ │ │ │ └── Build │ │ │ │ │ │ └── iOS │ │ │ │ │ │ ├── With.framework │ │ │ │ │ │ ├── With │ │ │ │ │ │ ├── Info.plist │ │ │ │ │ │ ├── Modules │ │ │ │ │ │ │ ├── module.modulemap │ │ │ │ │ │ │ └── With.swiftmodule │ │ │ │ │ │ │ │ ├── arm64.swiftdoc │ │ │ │ │ │ │ │ ├── x86_64.swiftdoc │ │ │ │ │ │ │ │ ├── arm64.swiftmodule │ │ │ │ │ │ │ │ └── x86_64.swiftmodule │ │ │ │ │ │ └── Headers │ │ │ │ │ │ │ └── With.h │ │ │ │ │ │ └── With.framework.dSYM │ │ │ │ │ │ └── Contents │ │ │ │ │ │ ├── Resources │ │ │ │ │ │ └── DWARF │ │ │ │ │ │ │ └── With │ │ │ │ │ │ └── Info.plist │ │ │ │ │ ├── WithExample.xcodeproj │ │ │ │ │ ├── project.xcworkspace │ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ │ ├── xcuserdata │ │ │ │ │ │ │ ├── eon.xcuserdatad │ │ │ │ │ │ │ │ └── UserInterfaceState.xcuserstate │ │ │ │ │ │ │ └── andre.xcuserdatad │ │ │ │ │ │ │ │ └── UserInterfaceState.xcuserstate │ │ │ │ │ │ └── xcshareddata │ │ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ │ └── xcuserdata │ │ │ │ │ │ └── andre.xcuserdatad │ │ │ │ │ │ └── xcschemes │ │ │ │ │ │ └── xcschememanagement.plist │ │ │ │ │ ├── With │ │ │ │ │ ├── With.h │ │ │ │ │ └── Info.plist │ │ │ │ │ ├── With mac │ │ │ │ │ └── With_mac.h │ │ │ │ │ └── src │ │ │ │ │ └── With.swift │ │ │ ├── Cartfile │ │ │ ├── Cartfile.resolved │ │ │ ├── SpatialExample │ │ │ │ ├── view │ │ │ │ │ ├── table │ │ │ │ │ │ ├── cell │ │ │ │ │ │ │ ├── protocol │ │ │ │ │ │ │ │ ├── CellDataKind.swift │ │ │ │ │ │ │ │ ├── LeagueCellData.swift │ │ │ │ │ │ │ │ ├── MatchTeamCellData.swift │ │ │ │ │ │ │ │ ├── MatchScoreCellData.swift │ │ │ │ │ │ │ │ └── MatchCellData.swift │ │ │ │ │ │ │ ├── matchhighlight │ │ │ │ │ │ │ │ └── MatchHighlightCell.swift │ │ │ │ │ │ │ ├── match │ │ │ │ │ │ │ │ ├── MatchCell+Const.swift │ │ │ │ │ │ │ │ └── MatchCell.swift │ │ │ │ │ │ │ ├── input │ │ │ │ │ │ │ │ ├── InputTextItem+Constants.swift │ │ │ │ │ │ │ │ └── InputTextCell.swift │ │ │ │ │ │ │ └── BaseCell.swift │ │ │ │ │ │ └── CustomTableView+Interaction.swift │ │ │ │ │ ├── main │ │ │ │ │ │ ├── card │ │ │ │ │ │ │ ├── CardView+Constant.swift │ │ │ │ │ │ │ └── content │ │ │ │ │ │ │ │ ├── bottom │ │ │ │ │ │ │ │ ├── BottomBar+Constant.swift │ │ │ │ │ │ │ │ └── BottomBar.swift │ │ │ │ │ │ │ │ ├── top │ │ │ │ │ │ │ │ └── TopBar.swift │ │ │ │ │ │ │ │ └── middle │ │ │ │ │ │ │ │ ├── MiddleContent.swift │ │ │ │ │ │ │ │ ├── itemView │ │ │ │ │ │ │ │ ├── ItemView.swift │ │ │ │ │ │ │ │ └── ItemView+Create.swift │ │ │ │ │ │ │ │ └── MiddleContent+Create.swift │ │ │ │ │ │ └── MainView.swift │ │ │ │ │ ├── spaceTest │ │ │ │ │ │ └── SpacingTestView.swift │ │ │ │ │ ├── MainVC.swift │ │ │ │ │ ├── animTest │ │ │ │ │ │ └── AnimationTestView.swift │ │ │ │ │ └── MainVC+Create.swift │ │ │ │ ├── Assets.xcassets │ │ │ │ │ └── Contents.json │ │ │ │ ├── common │ │ │ │ │ ├── Constants.swift │ │ │ │ │ └── Extension.swift │ │ │ │ └── AppDelegate.swift │ │ │ ├── Spatial.xcodeproj │ │ │ │ ├── xcuserdata │ │ │ │ │ ├── eon.xcuserdatad │ │ │ │ │ │ └── xcdebugger │ │ │ │ │ │ │ └── Breakpoints_v2.xcbkptlist │ │ │ │ │ └── andre.xcuserdatad │ │ │ │ │ │ └── xcschemes │ │ │ │ │ │ └── xcschememanagement.plist │ │ │ │ └── project.xcworkspace │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ ├── xcuserdata │ │ │ │ │ ├── eon.xcuserdatad │ │ │ │ │ │ └── UserInterfaceState.xcuserstate │ │ │ │ │ ├── andre.xcuserdatad │ │ │ │ │ │ └── UserInterfaceState.xcuserstate │ │ │ │ │ └── andrejorgensen.xcuserdatad │ │ │ │ │ │ └── UserInterfaceState.xcuserstate │ │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ ├── Spatial │ │ │ │ ├── src │ │ │ │ │ ├── align │ │ │ │ │ │ ├── axis │ │ │ │ │ │ │ ├── Axis.swift │ │ │ │ │ │ │ ├── VerticalAlign.swift │ │ │ │ │ │ │ ├── HorizontalAlign.swift │ │ │ │ │ │ │ └── AxisType.swift │ │ │ │ │ │ ├── aligntype │ │ │ │ │ │ │ ├── AlignType.swift │ │ │ │ │ │ │ └── AlignType+Extension.swift │ │ │ │ │ │ └── alignment │ │ │ │ │ │ │ └── Alignment.swift │ │ │ │ │ ├── type │ │ │ │ │ │ ├── extra │ │ │ │ │ │ │ └── ConstraintView.swift │ │ │ │ │ │ └── ConstraintKind.swift │ │ │ │ │ └── common │ │ │ │ │ │ └── Hybrid.swift │ │ │ │ ├── Spatial.h │ │ │ │ └── Info.plist │ │ │ └── Spatial-macOS │ │ │ │ └── Spatial_macOS.h │ │ │ └── With │ │ │ ├── WithExample │ │ │ ├── Assets.xcassets │ │ │ │ └── Contents.json │ │ │ └── AppDelegate.swift │ │ │ ├── Carthage │ │ │ └── Build │ │ │ │ └── iOS │ │ │ │ ├── With.framework │ │ │ │ ├── With │ │ │ │ ├── Info.plist │ │ │ │ ├── Modules │ │ │ │ │ ├── With.swiftmodule │ │ │ │ │ │ ├── arm64.swiftdoc │ │ │ │ │ │ ├── x86_64.swiftdoc │ │ │ │ │ │ ├── arm64.swiftmodule │ │ │ │ │ │ └── x86_64.swiftmodule │ │ │ │ │ └── module.modulemap │ │ │ │ └── Headers │ │ │ │ │ └── With.h │ │ │ │ └── With.framework.dSYM │ │ │ │ └── Contents │ │ │ │ ├── Resources │ │ │ │ └── DWARF │ │ │ │ │ └── With │ │ │ │ └── Info.plist │ │ │ ├── WithExample.xcodeproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ ├── xcuserdata │ │ │ │ │ ├── eon.xcuserdatad │ │ │ │ │ │ └── UserInterfaceState.xcuserstate │ │ │ │ │ └── andre.xcuserdatad │ │ │ │ │ │ └── UserInterfaceState.xcuserstate │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcuserdata │ │ │ │ └── andre.xcuserdatad │ │ │ │ └── xcschemes │ │ │ │ └── xcschememanagement.plist │ │ │ ├── With │ │ │ ├── With.h │ │ │ └── Info.plist │ │ │ ├── With mac │ │ │ └── With_mac.h │ │ │ └── src │ │ │ └── With.swift │ ├── Cartfile │ ├── src │ │ ├── slider │ │ │ ├── util │ │ │ │ ├── Track.swift │ │ │ │ ├── interactive │ │ │ │ │ ├── InteractiveView.swift │ │ │ │ │ └── InteractiveView+Core.swift │ │ │ │ └── Thumb.swift │ │ │ ├── Slider+Core.swift │ │ │ └── Slider+Setter.swift │ │ ├── spinner │ │ │ ├── Spinner+Type.swift │ │ │ └── stepper │ │ │ │ ├── Stepper+Const.swift │ │ │ │ ├── Stepper+Type.swift │ │ │ │ ├── Stepper+Core.swift │ │ │ │ ├── button │ │ │ │ └── MinusButton.swift │ │ │ │ └── Stepper.swift │ │ ├── button │ │ │ ├── select │ │ │ │ ├── switchbutton │ │ │ │ │ ├── SWB+Type.swift │ │ │ │ │ └── SWB+Const.swift │ │ │ │ ├── Selectable.swift │ │ │ │ ├── selectbutton │ │ │ │ │ ├── SB+Type.swift │ │ │ │ │ ├── SB+Const.swift │ │ │ │ │ ├── SB+Core.swift │ │ │ │ │ ├── SB+Interaction.swift │ │ │ │ │ └── SelectButton.swift │ │ │ │ ├── special │ │ │ │ │ ├── STB+Type.swift │ │ │ │ │ ├── STB+Const.swift │ │ │ │ │ ├── STB+Interaction.swift │ │ │ │ │ ├── STB+Core.swift │ │ │ │ │ └── SelectableTextButton.swift │ │ │ │ └── switch │ │ │ │ │ ├── Switch+Type.swift │ │ │ │ │ ├── Switch+Interaction.swift │ │ │ │ │ ├── Switch+Const.swift │ │ │ │ │ └── Switch+Core.swift │ │ │ ├── check │ │ │ │ ├── checkboxbutton │ │ │ │ │ ├── CBB+Type.swift │ │ │ │ │ └── CBB+Const.swift │ │ │ │ ├── CheckButton+Interaction.swift │ │ │ │ ├── CheckButton+Type.swift │ │ │ │ └── CheckButton+Const.swift │ │ │ ├── text │ │ │ │ ├── TextButton+Type.swift │ │ │ │ └── TextButton+Create.swift │ │ │ └── button │ │ │ │ ├── Button+Core.swift │ │ │ │ ├── Button+Type.swift │ │ │ │ └── Button+Const.swift │ │ ├── DEPRECATED │ │ │ └── animation │ │ │ │ └── AnimationButton+Interaction.swift │ │ └── common │ │ │ ├── LayerView.swift │ │ │ └── hybrid │ │ │ └── label │ │ │ ├── VerticallyAlignedTextFieldCell.swift │ │ │ └── NSLabel.swift │ ├── Hybrid │ │ ├── Assets.xcassets │ │ │ └── Contents.json │ │ ├── MainVC.swift │ │ └── AppDelegate.swift │ ├── Hybrid-example-macOS │ │ ├── Assets.xcassets │ │ │ └── Contents.json │ │ ├── Hybrid_example_macOS.entitlements │ │ └── AppDelegate.swift │ ├── Cartfile.resolved │ ├── Hybrid.xcodeproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ ├── xcuserdata │ │ │ └── eon.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── example │ │ └── ExampleView.swift │ ├── Hybrid-iOS │ │ ├── Hybrid_iOS.h │ │ └── Info.plist │ └── Hybrid-macOS │ │ └── Hybrid_macOS.h │ ├── Spatial │ ├── Carthage │ │ ├── Build │ │ └── Checkouts │ │ │ └── With │ │ │ ├── WithExample │ │ │ ├── Assets.xcassets │ │ │ │ └── Contents.json │ │ │ └── AppDelegate.swift │ │ │ ├── Carthage │ │ │ └── Build │ │ │ │ └── iOS │ │ │ │ ├── With.framework │ │ │ │ ├── With │ │ │ │ ├── Info.plist │ │ │ │ ├── Modules │ │ │ │ │ ├── With.swiftmodule │ │ │ │ │ │ ├── arm64.swiftdoc │ │ │ │ │ │ ├── x86_64.swiftdoc │ │ │ │ │ │ ├── arm64.swiftmodule │ │ │ │ │ │ └── x86_64.swiftmodule │ │ │ │ │ └── module.modulemap │ │ │ │ └── Headers │ │ │ │ │ └── With.h │ │ │ │ └── With.framework.dSYM │ │ │ │ └── Contents │ │ │ │ ├── Resources │ │ │ │ └── DWARF │ │ │ │ │ └── With │ │ │ │ └── Info.plist │ │ │ ├── WithExample.xcodeproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ ├── xcuserdata │ │ │ │ │ ├── eon.xcuserdatad │ │ │ │ │ │ └── UserInterfaceState.xcuserstate │ │ │ │ │ └── andre.xcuserdatad │ │ │ │ │ │ └── UserInterfaceState.xcuserstate │ │ │ │ └── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcuserdata │ │ │ │ └── andre.xcuserdatad │ │ │ │ └── xcschemes │ │ │ │ └── xcschememanagement.plist │ │ │ ├── With │ │ │ ├── With.h │ │ │ └── Info.plist │ │ │ ├── With mac │ │ │ └── With_mac.h │ │ │ └── src │ │ │ └── With.swift │ ├── Cartfile │ ├── Cartfile.resolved │ ├── SpatialExample │ │ ├── view │ │ │ ├── table │ │ │ │ ├── cell │ │ │ │ │ ├── protocol │ │ │ │ │ │ ├── CellDataKind.swift │ │ │ │ │ │ ├── LeagueCellData.swift │ │ │ │ │ │ ├── MatchScoreCellData.swift │ │ │ │ │ │ ├── MatchTeamCellData.swift │ │ │ │ │ │ └── MatchCellData.swift │ │ │ │ │ ├── matchhighlight │ │ │ │ │ │ └── MatchHighlightCell.swift │ │ │ │ │ ├── match │ │ │ │ │ │ ├── MatchCell+Const.swift │ │ │ │ │ │ └── MatchCell.swift │ │ │ │ │ ├── input │ │ │ │ │ │ ├── InputTextItem+Constants.swift │ │ │ │ │ │ └── InputTextCell.swift │ │ │ │ │ └── BaseCell.swift │ │ │ │ └── CustomTableView+Interaction.swift │ │ │ ├── main │ │ │ │ ├── card │ │ │ │ │ ├── CardView+Constant.swift │ │ │ │ │ └── content │ │ │ │ │ │ ├── bottom │ │ │ │ │ │ ├── BottomBar+Constant.swift │ │ │ │ │ │ └── BottomBar.swift │ │ │ │ │ │ ├── top │ │ │ │ │ │ └── TopBar.swift │ │ │ │ │ │ └── middle │ │ │ │ │ │ ├── MiddleContent.swift │ │ │ │ │ │ ├── itemView │ │ │ │ │ │ ├── ItemView.swift │ │ │ │ │ │ └── ItemView+Create.swift │ │ │ │ │ │ └── MiddleContent+Create.swift │ │ │ │ └── MainView.swift │ │ │ ├── spaceTest │ │ │ │ └── SpacingTestView.swift │ │ │ ├── MainVC.swift │ │ │ ├── animTest │ │ │ │ └── AnimationTestView.swift │ │ │ └── MainVC+Create.swift │ │ ├── Assets.xcassets │ │ │ └── Contents.json │ │ ├── common │ │ │ ├── Constants.swift │ │ │ └── Extension.swift │ │ └── AppDelegate.swift │ ├── Spatial.xcodeproj │ │ ├── xcuserdata │ │ │ ├── eon.xcuserdatad │ │ │ │ └── xcdebugger │ │ │ │ │ └── Breakpoints_v2.xcbkptlist │ │ │ └── andre.xcuserdatad │ │ │ │ └── xcschemes │ │ │ │ └── xcschememanagement.plist │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ ├── xcuserdata │ │ │ ├── andre.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ │ ├── eon.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ │ └── andrejorgensen.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── Spatial │ │ ├── src │ │ │ ├── align │ │ │ │ ├── axis │ │ │ │ │ ├── Axis.swift │ │ │ │ │ ├── VerticalAlign.swift │ │ │ │ │ ├── HorizontalAlign.swift │ │ │ │ │ └── AxisType.swift │ │ │ │ ├── aligntype │ │ │ │ │ ├── AlignType.swift │ │ │ │ │ └── AlignType+Extension.swift │ │ │ │ └── alignment │ │ │ │ │ ├── Alignment.swift │ │ │ │ │ └── Alignment+Extension.swift │ │ │ ├── type │ │ │ │ ├── extra │ │ │ │ │ └── ConstraintView.swift │ │ │ │ ├── ConstraintKind.swift │ │ │ │ └── ConstraintKind+Type.swift │ │ │ └── common │ │ │ │ └── Hybrid.swift │ │ ├── Spatial.h │ │ └── Info.plist │ └── Spatial-macOS │ │ └── Spatial_macOS.h │ └── With │ ├── WithExample │ ├── Assets.xcassets │ │ └── Contents.json │ └── AppDelegate.swift │ ├── Carthage │ └── Build │ │ └── iOS │ │ ├── With.framework │ │ ├── With │ │ ├── Info.plist │ │ ├── Modules │ │ │ ├── With.swiftmodule │ │ │ │ ├── arm64.swiftdoc │ │ │ │ ├── x86_64.swiftdoc │ │ │ │ ├── arm64.swiftmodule │ │ │ │ └── x86_64.swiftmodule │ │ │ └── module.modulemap │ │ └── Headers │ │ │ └── With.h │ │ └── With.framework.dSYM │ │ └── Contents │ │ ├── Resources │ │ └── DWARF │ │ │ └── With │ │ └── Info.plist │ ├── WithExample.xcodeproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ ├── xcuserdata │ │ │ ├── eon.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ │ └── andre.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcuserdata │ │ └── andre.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist │ ├── With │ ├── With.h │ └── Info.plist │ ├── With mac │ └── With_mac.h │ └── src │ └── With.swift ├── AnimKitExample ├── elasticTest │ ├── Box.swift │ ├── View+Elastic.swift │ └── ElasticView+Event.swift ├── Assets.xcassets │ ├── Contents.json │ ├── eye.imageset │ │ ├── eye.pdf │ │ └── Contents.json │ ├── bolt.imageset │ │ ├── bolt.pdf │ │ └── Contents.json │ └── calculator.imageset │ │ ├── calculator.pdf │ │ └── Contents.json ├── peekandpop │ ├── button │ │ ├── modal │ │ │ ├── ModalButton+Type.swift │ │ │ ├── force │ │ │ │ ├── ForceButton+Const.swift │ │ │ │ ├── ForceButton+Type.swift │ │ │ │ ├── ForceButton.swift │ │ │ │ ├── ForceButton+Helper.swift │ │ │ │ └── ForceButton+Enum.swift │ │ │ ├── ModalButton+Helper.swift │ │ │ └── ModalButton+Anim.swift │ │ └── dismiss │ │ │ ├── DismissButton+Anim.swift │ │ │ └── DismissButton.swift │ └── common │ │ ├── NSWindow+Extension.swift │ │ └── DepthParser.swift ├── AnimKitExample.entitlements ├── AppDelegate.swift ├── test │ ├── View+SpringerTest.swift │ ├── View+EaserTest.swift │ └── View+MovingTest.swift ├── AppDelegate+Create.swift └── View.swift ├── Cartfile.private ├── AnimKitExampleIOS ├── Assets.xcassets │ └── Contents.json ├── peekandpop │ ├── button │ │ └── modal │ │ │ ├── FirstButton.swift │ │ │ ├── ThirdButton.swift │ │ │ ├── SecondButton.swift │ │ │ ├── forcetouch │ │ │ ├── ForceTouchButtonKind.swift │ │ │ └── ForceTouchButton.swift │ │ │ └── modalbutton │ │ │ └── ModalButton.swift │ └── PeakAndPopView.swift ├── ViewController.swift ├── MainVC.swift └── AppDelegate.swift ├── src ├── physics │ ├── springer │ │ └── Springer+Type.swift │ ├── easer │ │ ├── Easer+Type.swift │ │ └── Easer+Core.swift │ ├── rubberband │ │ ├── RubberBand+Default.swift │ │ ├── RubberBand+Access.swift │ │ └── group │ │ │ ├── MoverGroup.swift │ │ │ └── Dir.swift │ ├── protocol │ │ └── Advancable.swift │ ├── mover │ │ ├── Mover+Core.swift │ │ └── Mover.swift │ └── Physics │ │ └── PhysicsAnimKind+Access.swift ├── common │ ├── DisplayLink.swift │ ├── ArraySugar.swift │ ├── CGRectSugar.swift │ ├── roundedrect │ │ ├── RoundedRect+Extension.swift │ │ └── RoundedRect.swift │ └── ViewSugar.swift ├── animation │ ├── loop │ │ ├── LoopAnimator+Default.swift │ │ ├── LoopAnimator+Type.swift │ │ └── LoopAnimator+Core.swift │ ├── Animator │ │ ├── Animator+Default.swift │ │ ├── Animator+Access.swift │ │ └── Animator+Type.swift │ └── frame │ │ ├── FrameAnimator+Access.swift │ │ ├── FrameAnimator+Core.swift │ │ ├── protocol │ │ └── FrameAnimatable.swift │ │ └── FrameAnimator.swift ├── proxy │ └── AnimProxyKind.swift └── easing │ ├── type │ └── Linear.swift │ ├── EasingEquation.swift │ └── Easing.swift ├── Cartfile.resolved ├── AnimKitExample.xcodeproj └── project.xcworkspace │ ├── contents.xcworkspacedata │ ├── xcuserdata │ └── eon.xcuserdatad │ │ ├── UserInterfaceState.xcuserstate │ │ └── WorkspaceSettings.xcsettings │ └── xcshareddata │ ├── WorkspaceSettings.xcsettings │ └── IDEWorkspaceChecks.plist ├── AnimKit ├── AnimKit.h └── Info.plist └── AnimKitIOS ├── AnimKitIOS.h └── Info.plist /Carthage/Build/Mac/With_mac.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /Carthage/Build/Mac/Hybrid_macOS.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /Carthage/Build/Mac/Spatial_macOS.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Build: -------------------------------------------------------------------------------- 1 | ../../../../Carthage/Build -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Carthage/Build: -------------------------------------------------------------------------------- 1 | ../../../../Carthage/Build -------------------------------------------------------------------------------- /Carthage/Build/Mac/Hybrid_macOS.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /Carthage/Build/Mac/Hybrid_macOS.framework/Modules: -------------------------------------------------------------------------------- 1 | Versions/Current/Modules -------------------------------------------------------------------------------- /Carthage/Build/Mac/With_mac.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /Carthage/Build/Mac/With_mac.framework/Modules: -------------------------------------------------------------------------------- 1 | Versions/Current/Modules -------------------------------------------------------------------------------- /Carthage/Build/Mac/With_mac.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /Carthage/Build/Mac/With_mac.framework/With_mac: -------------------------------------------------------------------------------- 1 | Versions/Current/With_mac -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Cartfile: -------------------------------------------------------------------------------- 1 | github "eonist/With" "master" 2 | -------------------------------------------------------------------------------- /Carthage/Build/Mac/Hybrid_macOS.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /Carthage/Build/Mac/Spatial_macOS.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /Carthage/Build/Mac/Spatial_macOS.framework/Modules: -------------------------------------------------------------------------------- 1 | Versions/Current/Modules -------------------------------------------------------------------------------- /Carthage/Build/Mac/Spatial_macOS.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /Carthage/Build/Mac/Hybrid_macOS.framework/Hybrid_macOS: -------------------------------------------------------------------------------- 1 | Versions/Current/Hybrid_macOS -------------------------------------------------------------------------------- /Carthage/Build/Mac/Spatial_macOS.framework/Spatial_macOS: -------------------------------------------------------------------------------- 1 | Versions/Current/Spatial_macOS -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Build: -------------------------------------------------------------------------------- 1 | ../../../../Carthage/Build -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Cartfile: -------------------------------------------------------------------------------- 1 | github "eonist/With" "master" 2 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Cartfile: -------------------------------------------------------------------------------- 1 | github "eonist/Spatial" "master" 2 | github "eonist/With" "master" 3 | -------------------------------------------------------------------------------- /AnimKitExample/elasticTest/Box.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import Hybrid_macOS 3 | 4 | class Box: Thumb { } 5 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Cartfile.resolved: -------------------------------------------------------------------------------- 1 | github "eonist/With" "de390eba1633f98fea840c5d02e457d996e73071" 2 | -------------------------------------------------------------------------------- /Cartfile.private: -------------------------------------------------------------------------------- 1 | github "eonist/With" "master" 2 | github "eonist/Spatial" "master" 3 | github "eonist/Hybrid" "master" 4 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/slider/util/Track.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | open class Track: InteractiveView { } 4 | -------------------------------------------------------------------------------- /AnimKitExample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Carthage/Build/iOS/With.framework/With: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/iOS/With.framework/With -------------------------------------------------------------------------------- /AnimKitExampleIOS/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Carthage/Build/iOS/Spatial.framework/Spatial: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/iOS/Spatial.framework/Spatial -------------------------------------------------------------------------------- /Carthage/Build/iOS/With.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/iOS/With.framework/Info.plist -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Cartfile.resolved: -------------------------------------------------------------------------------- 1 | github "eonist/With" "de390eba1633f98fea840c5d02e457d996e73071" 2 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/table/cell/protocol/CellDataKind.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | protocol CellDataKind {} 4 | -------------------------------------------------------------------------------- /Carthage/Build/iOS/Spatial.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/iOS/Spatial.framework/Info.plist -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Hybrid/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/With/WithExample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /AnimKitExample/Assets.xcassets/eye.imageset/eye.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/AnimKitExample/Assets.xcassets/eye.imageset/eye.pdf -------------------------------------------------------------------------------- /Carthage/Build/iOS/Hybrid_iOS.framework/Hybrid_iOS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/iOS/Hybrid_iOS.framework/Hybrid_iOS -------------------------------------------------------------------------------- /Carthage/Build/iOS/Hybrid_iOS.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/iOS/Hybrid_iOS.framework/Info.plist -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /AnimKitExample/Assets.xcassets/bolt.imageset/bolt.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/AnimKitExample/Assets.xcassets/bolt.imageset/bolt.pdf -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Hybrid-example-macOS/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Carthage/Build/Mac/With_mac.framework/Versions/A/With_mac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/Mac/With_mac.framework/Versions/A/With_mac -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/table/cell/protocol/CellDataKind.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | protocol CellDataKind {} 4 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/table/cell/matchhighlight/MatchHighlightCell.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | //actionLabel (left) 3 | //timeLabel (right) 4 | -------------------------------------------------------------------------------- /AnimKitExampleIOS/peekandpop/button/modal/FirstButton.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | class FirstButton: ModalButton { 4 | override var factor: CGFloat { return 1 } 5 | } 6 | -------------------------------------------------------------------------------- /AnimKitExampleIOS/peekandpop/button/modal/ThirdButton.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | class ThirdButton: ModalButton { 4 | override var factor: CGFloat { return 3 } 5 | } 6 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/WithExample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /src/physics/springer/Springer+Type.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | extension Springer { 4 | public typealias Config = (spring: T, friction: T) // Signatures 5 | } 6 | -------------------------------------------------------------------------------- /AnimKitExampleIOS/peekandpop/button/modal/SecondButton.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | class SecondButton: ModalButton { 4 | override var factor: CGFloat { return 2 } 5 | } 6 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/spinner/Spinner+Type.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | extension Spinner { 4 | public typealias OnChange = (_ value: String) -> Void 5 | } 6 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Carthage/Checkouts/With/WithExample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/With: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/With -------------------------------------------------------------------------------- /AnimKitExample/Assets.xcassets/calculator.imageset/calculator.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/AnimKitExample/Assets.xcassets/calculator.imageset/calculator.pdf -------------------------------------------------------------------------------- /Carthage/Build/Mac/Hybrid_macOS.framework/Versions/A/Hybrid_macOS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/Mac/Hybrid_macOS.framework/Versions/A/Hybrid_macOS -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Cartfile.resolved: -------------------------------------------------------------------------------- 1 | github "eonist/Spatial" "0d44ec6f1d898b0ea4a076b5c023bf64eef51bae" 2 | github "eonist/With" "216976bcbccf3d0f4a5221ef0009b16f4060944c" 3 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Carthage/Build/Mac/Spatial_macOS.framework/Versions/A/Spatial_macOS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/Mac/Spatial_macOS.framework/Versions/A/Spatial_macOS -------------------------------------------------------------------------------- /Carthage/Build/iOS/With.framework.dSYM/Contents/Resources/DWARF/With: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/iOS/With.framework.dSYM/Contents/Resources/DWARF/With -------------------------------------------------------------------------------- /Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Info.plist -------------------------------------------------------------------------------- /Carthage/Build/iOS/Spatial.framework.dSYM/Contents/Resources/DWARF/Spatial: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/iOS/Spatial.framework.dSYM/Contents/Resources/DWARF/Spatial -------------------------------------------------------------------------------- /Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/arm64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/arm64.swiftdoc -------------------------------------------------------------------------------- /Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/x86_64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/x86_64.swiftdoc -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/table/cell/matchhighlight/MatchHighlightCell.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | //actionLabel (left) 3 | //timeLabel (right) 4 | -------------------------------------------------------------------------------- /src/physics/easer/Easer+Type.swift: -------------------------------------------------------------------------------- 1 | /** 2 | * Type 3 | */ 4 | extension Easer { 5 | public typealias FrameTickSignature = (T) -> Void 6 | public typealias OnComplete = () -> Void 7 | } 8 | -------------------------------------------------------------------------------- /Carthage/Build/Mac/With_mac.framework.dSYM/Contents/Resources/DWARF/With_mac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/Mac/With_mac.framework.dSYM/Contents/Resources/DWARF/With_mac -------------------------------------------------------------------------------- /Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/arm64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/arm64.swiftmodule -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/WithExample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Carthage/Build/iOS/Spatial.framework/Modules/Spatial.swiftmodule/arm64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/iOS/Spatial.framework/Modules/Spatial.swiftmodule/arm64.swiftdoc -------------------------------------------------------------------------------- /Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/x86_64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/x86_64.swiftmodule -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/select/switchbutton/SWB+Type.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | extension SwitchButton { 4 | public typealias SwitchButtonStyle = (textColor: Color, font: Font) 5 | } 6 | -------------------------------------------------------------------------------- /Carthage/Build/iOS/Hybrid_iOS.framework.dSYM/Contents/Resources/DWARF/Hybrid_iOS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/iOS/Hybrid_iOS.framework.dSYM/Contents/Resources/DWARF/Hybrid_iOS -------------------------------------------------------------------------------- /Carthage/Build/iOS/Spatial.framework/Modules/Spatial.swiftmodule/x86_64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/iOS/Spatial.framework/Modules/Spatial.swiftmodule/x86_64.swiftdoc -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/check/checkboxbutton/CBB+Type.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | extension CheckBoxButton { 4 | public typealias CheckBoxBtnStyle = (textColor: Color, font: Font) 5 | } 6 | -------------------------------------------------------------------------------- /src/common/DisplayLink.swift: -------------------------------------------------------------------------------- 1 | #if os(iOS) 2 | import UIKit 3 | public typealias DisplayLink = CADisplayLink 4 | #elseif os(macOS) 5 | import Cocoa 6 | public typealias DisplayLink = CVDisplayLink 7 | #endif 8 | -------------------------------------------------------------------------------- /Carthage/Build/Mac/Hybrid_macOS.framework.dSYM/Contents/Resources/DWARF/Hybrid_macOS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/Mac/Hybrid_macOS.framework.dSYM/Contents/Resources/DWARF/Hybrid_macOS -------------------------------------------------------------------------------- /Carthage/Build/iOS/Spatial.framework/Modules/Spatial.swiftmodule/arm64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/iOS/Spatial.framework/Modules/Spatial.swiftmodule/arm64.swiftmodule -------------------------------------------------------------------------------- /Carthage/Build/iOS/Spatial.framework/Modules/Spatial.swiftmodule/x86_64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/iOS/Spatial.framework/Modules/Spatial.swiftmodule/x86_64.swiftmodule -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/table/cell/protocol/LeagueCellData.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | struct LeagueCellData: CellDataKind { 4 | let team: String 5 | let placement: String 6 | } 7 | -------------------------------------------------------------------------------- /Carthage/Build/Mac/Spatial_macOS.framework.dSYM/Contents/Resources/DWARF/Spatial_macOS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/Mac/Spatial_macOS.framework.dSYM/Contents/Resources/DWARF/Spatial_macOS -------------------------------------------------------------------------------- /Carthage/Build/iOS/Hybrid_iOS.framework/Modules/Hybrid_iOS.swiftmodule/arm64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/iOS/Hybrid_iOS.framework/Modules/Hybrid_iOS.swiftmodule/arm64.swiftdoc -------------------------------------------------------------------------------- /Carthage/Build/iOS/Hybrid_iOS.framework/Modules/Hybrid_iOS.swiftmodule/x86_64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/iOS/Hybrid_iOS.framework/Modules/Hybrid_iOS.swiftmodule/x86_64.swiftdoc -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Spatial.xcodeproj/xcuserdata/eon.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/main/card/CardView+Constant.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | extension CardView { 4 | static let margin: UIEdgeInsets = .init(top: 24, left: 12, bottom: 24, right: 12) 5 | } 6 | -------------------------------------------------------------------------------- /Cartfile.resolved: -------------------------------------------------------------------------------- 1 | github "eonist/Hybrid" "11bf4a5191a97df0e8d762aaa9e8cdb2739d58dc" 2 | github "eonist/Spatial" "068d05d0c87a82194da4027eabc26e966ae2bd15" 3 | github "eonist/With" "216976bcbccf3d0f4a5221ef0009b16f4060944c" 4 | -------------------------------------------------------------------------------- /Carthage/Build/iOS/Hybrid_iOS.framework/Modules/Hybrid_iOS.swiftmodule/arm64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/iOS/Hybrid_iOS.framework/Modules/Hybrid_iOS.swiftmodule/arm64.swiftmodule -------------------------------------------------------------------------------- /Carthage/Build/iOS/Hybrid_iOS.framework/Modules/Hybrid_iOS.swiftmodule/x86_64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/iOS/Hybrid_iOS.framework/Modules/Hybrid_iOS.swiftmodule/x86_64.swiftmodule -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/With: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/With -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/With: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/With -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/table/cell/protocol/MatchScoreCellData.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | struct MatchScoreCellData: CellDataKind { 4 | let homeScore: String 5 | let awayScore: String 6 | } 7 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/table/cell/protocol/MatchTeamCellData.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | struct MatchTeamCellData: CellDataKind { 4 | let homeTeam: String 5 | let awayTeam: String 6 | } 7 | -------------------------------------------------------------------------------- /AnimKitExample/peekandpop/button/modal/ModalButton+Type.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | /** 3 | * Typealias 4 | */ 5 | extension ModalButton { 6 | typealias Design = (icon: ImageAsset, idleColor: NSColor?, idleFrame: CGRect) 7 | } 8 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/select/Selectable.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | public protocol Selectable: AnyObject { 4 | var selected: Bool { get set }//{get{return getSelected()}set{setSelected(newValue)}} 5 | } 6 | -------------------------------------------------------------------------------- /Carthage/Build/Mac/With_mac.framework/Versions/A/Modules/With_mac.swiftmodule/x86_64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/Mac/With_mac.framework/Versions/A/Modules/With_mac.swiftmodule/x86_64.swiftdoc -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Info.plist -------------------------------------------------------------------------------- /Carthage/Checkouts/With/Carthage/Build/iOS/With.framework.dSYM/Contents/Resources/DWARF/With: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework.dSYM/Contents/Resources/DWARF/With -------------------------------------------------------------------------------- /Carthage/Build/Mac/With_mac.framework/Versions/A/Modules/With_mac.swiftmodule/x86_64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/Mac/With_mac.framework/Versions/A/Modules/With_mac.swiftmodule/x86_64.swiftmodule -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/table/cell/protocol/LeagueCellData.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | struct LeagueCellData: CellDataKind { 4 | let team: String 5 | let placement: String 6 | } 7 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/select/selectbutton/SB+Type.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | /** 4 | * Type 5 | */ 6 | extension SelectButton { 7 | public typealias Styles = (active: Button.Style, inActive: Button.Style) 8 | } 9 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Info.plist -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/table/cell/protocol/MatchCellData.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | struct MatchCellData: CellDataKind { 4 | let homeTeam: String 5 | let awayTeam: String 6 | let date: String 7 | } 8 | -------------------------------------------------------------------------------- /AnimKitExampleIOS/ViewController.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | class ViewController: UIViewController { 4 | override func viewDidLoad() { 5 | super.viewDidLoad() 6 | // Do any additional setup after loading the view. 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Spatial.xcodeproj/xcuserdata/eon.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/main/card/CardView+Constant.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | extension CardView { 4 | static let margin: UIEdgeInsets = .init(top: 24, left: 12, bottom: 24, right: 12) 5 | } 6 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/check/checkboxbutton/CBB+Const.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | extension CheckBoxButton { 4 | public static let defaultStyle: CheckBoxBtnStyle = (textColor: .black, font: .systemFont(ofSize: 20)) 5 | } 6 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/select/special/STB+Type.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Type 4 | */ 5 | extension SelectableTextButton { 6 | public typealias Styles = (active: TextButtonStyle, inActive: TextButtonStyle) 7 | } 8 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/select/switchbutton/SWB+Const.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | extension SwitchButton { 4 | public static let defaultStyle: SwitchButtonStyle = (textColor: .black, font: .systemFont(ofSize: 20)) 5 | } 6 | -------------------------------------------------------------------------------- /Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/arm64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/arm64.swiftdoc -------------------------------------------------------------------------------- /Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/x86_64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/x86_64.swiftdoc -------------------------------------------------------------------------------- /Carthage/Build/Mac/Hybrid_macOS.framework/Versions/A/Modules/Hybrid_macOS.swiftmodule/x86_64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/Mac/Hybrid_macOS.framework/Versions/A/Modules/Hybrid_macOS.swiftmodule/x86_64.swiftdoc -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/table/cell/protocol/MatchTeamCellData.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | struct MatchTeamCellData: CellDataKind { 4 | let homeTeam: String 5 | let awayTeam: String 6 | } 7 | -------------------------------------------------------------------------------- /Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/arm64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/arm64.swiftmodule -------------------------------------------------------------------------------- /Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/x86_64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/x86_64.swiftmodule -------------------------------------------------------------------------------- /AnimKitExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /AnimKitExample.xcodeproj/project.xcworkspace/xcuserdata/eon.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/AnimKitExample.xcodeproj/project.xcworkspace/xcuserdata/eon.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Carthage/Build/Mac/Hybrid_macOS.framework/Versions/A/Modules/Hybrid_macOS.swiftmodule/x86_64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/Mac/Hybrid_macOS.framework/Versions/A/Modules/Hybrid_macOS.swiftmodule/x86_64.swiftmodule -------------------------------------------------------------------------------- /Carthage/Build/Mac/Spatial_macOS.framework/Versions/A/Modules/Spatial_macOS.swiftmodule/x86_64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/Mac/Spatial_macOS.framework/Versions/A/Modules/Spatial_macOS.swiftmodule/x86_64.swiftdoc -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/table/cell/protocol/MatchScoreCellData.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | struct MatchScoreCellData: CellDataKind { 4 | let homeScore: String 5 | let awayScore: String 6 | } 7 | -------------------------------------------------------------------------------- /Carthage/Build/Mac/Spatial_macOS.framework/Versions/A/Modules/Spatial_macOS.swiftmodule/x86_64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Build/Mac/Spatial_macOS.framework/Versions/A/Modules/Spatial_macOS.swiftmodule/x86_64.swiftmodule -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/table/cell/protocol/MatchCellData.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | struct MatchCellData: CellDataKind { 4 | let homeTeam: String 5 | let awayTeam: String 6 | let date: String 7 | } 8 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Hybrid.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Carthage/Build/iOS/With.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module With { 2 | umbrella header "With.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module With.Swift { 9 | header "With-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Spatial.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/main/card/content/bottom/BottomBar+Constant.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | extension BottomBar { 4 | static let bottomBarHeight: CGFloat = UIScreen.main.bounds.width / 4 + UIApplication.shared.statusBarFrame.height 5 | } 6 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/select/selectbutton/SB+Const.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | /** 4 | * Const 5 | */ 6 | extension SelectButton { 7 | public static let defaultStyles: Styles = (active: Button.alternateStyle, inActive: Button.defaultStyle) 8 | } 9 | -------------------------------------------------------------------------------- /Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/With: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/With -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/spinner/stepper/Stepper+Const.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Const 4 | */ 5 | extension Stepper { 6 | public static let defaultData: InitData = (value: 0, increment: 1, min: CGFloat(Int.min), max: CGFloat(Int.max), decimals: 0) 7 | } 8 | -------------------------------------------------------------------------------- /AnimKitExample.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Carthage/Build/iOS/Spatial.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Spatial { 2 | umbrella header "Spatial.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module Spatial.Swift { 9 | header "Spatial-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework.dSYM/Contents/Resources/DWARF/With: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework.dSYM/Contents/Resources/DWARF/With -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework.dSYM/Contents/Resources/DWARF/With: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework.dSYM/Contents/Resources/DWARF/With -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Info.plist -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Hybrid.xcodeproj/project.xcworkspace/xcuserdata/eon.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Hybrid/Hybrid.xcodeproj/project.xcworkspace/xcuserdata/eon.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Spatial.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/main/card/content/bottom/BottomBar+Constant.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | extension BottomBar { 4 | static let bottomBarHeight: CGFloat = UIScreen.main.bounds.width / 4 + UIApplication.shared.statusBarFrame.height 5 | } 6 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/arm64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/arm64.swiftdoc -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/x86_64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/x86_64.swiftdoc -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/arm64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/arm64.swiftdoc -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Spatial.xcodeproj/project.xcworkspace/xcuserdata/andre.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Spatial/Spatial.xcodeproj/project.xcworkspace/xcuserdata/andre.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Spatial.xcodeproj/project.xcworkspace/xcuserdata/eon.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Spatial/Spatial.xcodeproj/project.xcworkspace/xcuserdata/eon.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Spatial/src/align/axis/Axis.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Axis alignment 4 | * - Note: Use .rawValue if you want to get the string "topLeft" 5 | */ 6 | public enum Axis: String { 7 | case hor // Horizontal 8 | case ver // Vertical 9 | } 10 | -------------------------------------------------------------------------------- /Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module With { 2 | umbrella header "With.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module With.Swift { 9 | header "With-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/xcuserdata/eon.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/xcuserdata/eon.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /src/animation/loop/LoopAnimator+Default.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Deafult 4 | */ 5 | extension LoopAnimator { 6 | /** 7 | * Default init values 8 | */ 9 | static var initLoopValues: InitLoopValues = (duration: 0.5, from: 0, to: 1, repeatCount: 3) 10 | } 11 | -------------------------------------------------------------------------------- /Carthage/Build/Mac/With_mac.framework/Versions/A/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module With_mac { 2 | umbrella header "With_mac.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module With_mac.Swift { 9 | header "With_mac-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /Carthage/Build/iOS/Hybrid_iOS.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Hybrid_iOS { 2 | umbrella header "Hybrid_iOS.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module Hybrid_iOS.Swift { 9 | header "Hybrid_iOS-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/arm64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/arm64.swiftmodule -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/select/special/STB+Const.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Const 4 | */ 5 | extension SelectableTextButton { 6 | public static let defaultStyles: Styles = (active: TextButton.alternateTextButtonStyle, inActive: TextButton.defaultTextButtonStyle) 7 | } 8 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/x86_64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/x86_64.swiftdoc -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/xcuserdata/andre.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/xcuserdata/andre.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/x86_64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/x86_64.swiftmodule -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/arm64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/arm64.swiftmodule -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/x86_64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/x86_64.swiftmodule -------------------------------------------------------------------------------- /AnimKitExample/peekandpop/button/dismiss/DismissButton+Anim.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | extension DismissButton { 4 | /** 5 | * onFrameTick 6 | */ 7 | func onFrameTick(value: CGFloat) { 8 | self.frame.origin.y = value // We only want to animate the Y position 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Spatial.xcodeproj/project.xcworkspace/xcuserdata/andrejorgensen.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Spatial/Spatial.xcodeproj/project.xcworkspace/xcuserdata/andrejorgensen.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Carthage/Build/Mac/Hybrid_macOS.framework/Versions/A/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Hybrid_macOS { 2 | umbrella header "Hybrid_macOS.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module Hybrid_macOS.Swift { 9 | header "Hybrid_macOS-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Spatial/src/align/axis/Axis.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Axis alignment 4 | * - Note: Use .rawValue if you want to get the string "topLeft" 5 | */ 6 | public enum Axis: String { 7 | case hor/*Horizontal*/ 8 | case ver/*Vertical*/ 9 | } 10 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module With { 2 | umbrella header "With.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module With.Swift { 9 | header "With-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/select/switch/Switch+Type.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Style 4 | */ 5 | extension Switch { 6 | public typealias SwitchStyles = (selected: SwitchStyle, unSelected: SwitchStyle) 7 | public typealias SwitchStyle = (foregroundColor: Color, backgroundColor: Color) 8 | } 9 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module With { 2 | umbrella header "With.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module With.Swift { 9 | header "With-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /Carthage/Build/Mac/Spatial_macOS.framework/Versions/A/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Spatial_macOS { 2 | umbrella header "Spatial_macOS.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module Spatial_macOS.Swift { 9 | header "Spatial_macOS-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Spatial/src/align/axis/VerticalAlign.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * - Note: Use .rawValue if you want to get the string "topLeft" 4 | */ 5 | public enum VerticalAlign: String { 6 | case top 7 | case bottom 8 | case centerY // Use centerY or else .dot syntax fails 9 | } 10 | -------------------------------------------------------------------------------- /src/animation/Animator/Animator+Default.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Defaults 4 | */ 5 | extension Animator { 6 | public static let initValues: InitValues = (dur: 0.5, from: 0, to: 1) // Default init values 7 | static let fps: CGFloat = 60 // Fixme: ⚠️️ this should be derived from a device variable 8 | } 9 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Spatial/src/align/axis/HorizontalAlign.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * - Note: Use .rawValue if you want to get the string "topLeft" 4 | */ 5 | public enum HorizontalAlign: String { 6 | case left 7 | case right 8 | case centerX // Use centerX or else .dot syntax fails 9 | } 10 | -------------------------------------------------------------------------------- /src/proxy/AnimProxyKind.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Fixme: ⚠️️ This protocol may not even be needed as you don't extend AnimProxy 4 | */ 5 | public protocol AnimProxyKind: AnyObject { 6 | func onFrame() 7 | var animators: [FrameAnimator] { get set } 8 | var displayLink: DisplayLink { get } 9 | } 10 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Spatial/src/type/extra/ConstraintView.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * - Note: Convenient UIView so you don't have to add anchor and size your self 4 | */ 5 | open class ConstraintView: View, ConstraintKind { 6 | public var anchor: AnchorConstraint? 7 | public var size: SizeConstraint? 8 | } 9 | -------------------------------------------------------------------------------- /src/physics/rubberband/RubberBand+Default.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Defaults 4 | */ 5 | extension RubberBand { 6 | public static var defaultConfig: Config = ( 7 | friction: 0.98, 8 | springEasing: 0.2, 9 | spring: 0.4, 10 | limit: 100.0, 11 | epsilon: 0.15 12 | ) 13 | } 14 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework.dSYM/Contents/Resources/DWARF/With: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework.dSYM/Contents/Resources/DWARF/With -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module With { 2 | umbrella header "With.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module With.Swift { 9 | header "With-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Spatial.xcodeproj/project.xcworkspace/xcuserdata/eon.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Spatial.xcodeproj/project.xcworkspace/xcuserdata/eon.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/xcuserdata/eon.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/xcuserdata/eon.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Hybrid/MainVC.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Hybrid_iOS 3 | 4 | class MainVC: UIViewController { 5 | override func viewDidLoad() { 6 | super.viewDidLoad() 7 | self.view = ExampleView(frame: UIScreen.main.bounds) 8 | } 9 | override var prefersStatusBarHidden: Bool { return true } 10 | } 11 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/spaceTest/SpacingTestView.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Spatial 3 | 4 | class SpacingTestView: UIView { 5 | lazy var verticalItems: [UIView] = createVerticalItems() 6 | override func layoutSubviews() { 7 | super.layoutSubviews() 8 | _ = verticalItems 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /AnimKitExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /AnimKitExample/Assets.xcassets/bolt.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "bolt.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | }, 12 | "properties" : { 13 | "preserves-vector-representation" : true 14 | } 15 | } -------------------------------------------------------------------------------- /AnimKitExample/Assets.xcassets/eye.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "eye.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | }, 12 | "properties" : { 13 | "preserves-vector-representation" : true 14 | } 15 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/arm64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/arm64.swiftdoc -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/x86_64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/x86_64.swiftdoc -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Spatial.xcodeproj/project.xcworkspace/xcuserdata/andre.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Spatial.xcodeproj/project.xcworkspace/xcuserdata/andre.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/xcuserdata/andre.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/xcuserdata/andre.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/xcuserdata/eon.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/xcuserdata/eon.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Spatial/src/align/axis/AxisType.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Single axis type 4 | * - Note: use .rawValue if you want to get the string "topLeft" 5 | */ 6 | public enum AxisType: String { 7 | case start // left, top 8 | case middle // centerX, centerY 9 | case end // right, bottom 10 | } 11 | -------------------------------------------------------------------------------- /Carthage/Build/.With.version: -------------------------------------------------------------------------------- 1 | { 2 | "commitish" : "216976bcbccf3d0f4a5221ef0009b16f4060944c", 3 | "Mac" : [ 4 | { 5 | "name" : "With_mac", 6 | "hash" : "de464a72f59546cc7789fd1f8f16b1548f8b2b54e6bb5d3c19bd9c4d273c0b67", 7 | "swiftToolchainVersion" : "5.0 (swiftlang-1001.0.69.5 clang-1001.0.46.3)" 8 | } 9 | ] 10 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/arm64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/arm64.swiftmodule -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/x86_64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Modules/With.swiftmodule/x86_64.swiftmodule -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Spatial/src/align/axis/VerticalAlign.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * - Note: Use .rawValue if you want to get the string "topLeft" 4 | */ 5 | public enum VerticalAlign: String { 6 | case top 7 | case bottom 8 | case centerY /* Use centerY or else .dot syntax fails */ 9 | } 10 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/xcuserdata/andre.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/xcuserdata/andre.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /AnimKitExample/Assets.xcassets/calculator.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "calculator.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | }, 12 | "properties" : { 13 | "preserves-vector-representation" : true 14 | } 15 | } -------------------------------------------------------------------------------- /Carthage/Build/.Hybrid.version: -------------------------------------------------------------------------------- 1 | { 2 | "commitish" : "11bf4a5191a97df0e8d762aaa9e8cdb2739d58dc", 3 | "Mac" : [ 4 | { 5 | "name" : "Hybrid_macOS", 6 | "hash" : "f359c06c49b4faff8f5d230de1a3f8182a84b80b823390b9f6574d1e7ebb49cc", 7 | "swiftToolchainVersion" : "5.0 (swiftlang-1001.0.69.5 clang-1001.0.46.3)" 8 | } 9 | ] 10 | } -------------------------------------------------------------------------------- /Carthage/Build/.Spatial.version: -------------------------------------------------------------------------------- 1 | { 2 | "commitish" : "068d05d0c87a82194da4027eabc26e966ae2bd15", 3 | "Mac" : [ 4 | { 5 | "name" : "Spatial_macOS", 6 | "hash" : "6bc7f184c93eb4e0ab83da3afec981a2d0f3763d41f12b0e764bd1158473d5d7", 7 | "swiftToolchainVersion" : "5.0 (swiftlang-1001.0.69.5 clang-1001.0.46.3)" 8 | } 9 | ] 10 | } -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Spatial/src/align/axis/HorizontalAlign.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * - Note: Use .rawValue if you want to get the string "topLeft" 4 | */ 5 | public enum HorizontalAlign: String { 6 | case left 7 | case right 8 | case centerX/* Use centerX or else .dot syntax fails */ 9 | } 10 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Spatial/src/type/extra/ConstraintView.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * - Note: Convenient UIView so you don't have to add anchor and size your self 4 | */ 5 | open class ConstraintView: View, ConstraintKind { 6 | public var anchor: AnchorConstraint? 7 | public var size: SizeConstraint? 8 | } 9 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/table/CustomTableView+Interaction.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | extension CustomTableView { 4 | /** 5 | * When an item is tapped 6 | */ 7 | func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 8 | Swift.print("Tapped idx: \(indexPath.row)") 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Spatial.xcodeproj/project.xcworkspace/xcuserdata/andrejorgensen.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Spatial.xcodeproj/project.xcworkspace/xcuserdata/andrejorgensen.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/check/CheckButton+Interaction.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * interaction 4 | */ 5 | extension CheckButton { 6 | /** 7 | * onTapUpInside 8 | */ 9 | override open func onUpInside() { 10 | super.onUpInside() 11 | Swift.print("onUpInside") 12 | selected.toggle() 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/select/selectbutton/SB+Core.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Core 4 | */ 5 | extension SelectButton { 6 | /** 7 | * Fixme: ⚠️️ This is not needed as you can set it in style 8 | */ 9 | override open func drawLayout() { 10 | self.caLayer?.cornerRadius = self.frame.height / 2 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/select/switch/Switch+Interaction.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Interaction 4 | */ 5 | extension Switch { 6 | /** 7 | * onTapUpInside 8 | */ 9 | override open func onUpInside() { 10 | // Swift.print("onUpInside") 11 | super.onUpInside() 12 | selected.toggle() 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/spaceTest/SpacingTestView.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Spatial 3 | 4 | class SpacingTestView: UIView { 5 | lazy var verticalItems: [UIView] = createVerticalItems() 6 | override func layoutSubviews() { 7 | super.layoutSubviews() 8 | _ = verticalItems 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Hybrid.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/select/selectbutton/SB+Interaction.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Interaction 4 | */ 5 | extension SelectButton { 6 | /** 7 | * onTapUpInside 8 | */ 9 | override open func onUpInside() { 10 | Swift.print("onUpInside") 11 | super.onUpInside() 12 | selected.toggle() 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Spatial.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Spatial/src/align/axis/AxisType.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Single axis type 4 | * - Note: use .rawValue if you want to get the string "topLeft" 5 | */ 6 | public enum AxisType: String { 7 | case start /*left, top*/ 8 | case middle /*centerX, centerY*/ 9 | case end /*right, bottom*/ 10 | } 11 | -------------------------------------------------------------------------------- /src/physics/easer/Easer+Core.swift: -------------------------------------------------------------------------------- 1 | /** 2 | * Core 3 | */ 4 | extension Easer { 5 | /** 6 | * The value will never be absolute, so we use epsilon to determine if it's close enough 7 | * - Fixme: ⚠️️ Rename to hasStopped 8 | */ 9 | var assertStop: Bool { 10 | return state.velocity.isNear(value: stopVelocity, epsilon: epsilon) 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /AnimKitExampleIOS/MainVC.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import AnimKitIOS 3 | 4 | class MainVC: UIViewController { 5 | override func viewDidLoad() { 6 | super.viewDidLoad() 7 | // view = MainView(frame: .zero) 8 | view = PeekAndPopView() 9 | view.backgroundColor = .yellow 10 | } 11 | override var prefersStatusBarHidden: Bool { return true } 12 | } 13 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/table/CustomTableView+Interaction.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | extension CustomTableView { 4 | /** 5 | * When an item is tapped 6 | */ 7 | func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 8 | Swift.print("Tapped idx: \(indexPath.row)") 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/check/CheckButton+Type.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | /** 4 | * Typealias 5 | */ 6 | extension CheckButton { 7 | public typealias CheckBtnStyles = (active: CheckButton.CheckBtnStyle, inActive: CheckButton.CheckBtnStyle) 8 | public typealias CheckBtnStyle = (backgroundColor: Color, borderColor: Color, isRounded: Bool) 9 | } 10 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/select/special/STB+Interaction.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Interaction 4 | */ 5 | extension SelectableTextButton { 6 | /** 7 | * onTapUpInside 8 | */ 9 | override open func onUpInside() { 10 | Swift.print("onUpInside") 11 | super.onUpInside() 12 | selected.toggle() //toggle 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/animation/loop/LoopAnimator+Type.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Type 4 | */ 5 | extension LoopAnimator { 6 | /** 7 | * Typalias signature for initValues 8 | * - Parameter repeatCount: the number of times the animation should loop 9 | */ 10 | typealias InitLoopValues = (duration: CGFloat, from: CGFloat, to: CGFloat, repeatCount: Int) 11 | } 12 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Spatial.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/xcuserdata/eon.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/xcuserdata/eon.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/xcuserdata/andre.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eonist/AnimLib/HEAD/Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/xcuserdata/andre.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /src/animation/frame/FrameAnimator+Access.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Access 4 | */ 5 | extension FrameAnimator { 6 | /** 7 | * Assert if an animator is in the array of animators (aka is animating) 8 | * Fixme: ⚠️️ Name this hasStopped 9 | */ 10 | public var stopped: Bool { 11 | return animProxy.animators.first { $0 === self } == nil 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/check/CheckButton+Const.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | /** 4 | * Const 5 | */ 6 | extension CheckButton { 7 | public static let defStyle: CheckBtnStyle = (.white, .black, true) 8 | public static let altStyle: CheckBtnStyle = (.black, .white, true) 9 | public static let defaultStyles: CheckBtnStyles = (active: altStyle, inActive: defStyle) 10 | } 11 | -------------------------------------------------------------------------------- /AnimKitExample/AnimKitExample.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.files.user-selected.read-only 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /AnimKitExample/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import AnimKit 3 | 4 | @NSApplicationMain 5 | class AppDelegate: NSObject, NSApplicationDelegate { 6 | @IBOutlet weak var window: NSWindow! 7 | /** 8 | * Creates the view 9 | */ 10 | lazy var view: NSView = createView() 11 | func applicationDidFinishLaunching(_ aNotification: Notification) { 12 | _ = view 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/physics/rubberband/RubberBand+Access.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Access 4 | */ 5 | extension RubberBand { 6 | var friction: CGFloat { return config.friction } 7 | var springEasing: CGFloat { return config.springEasing } 8 | var spring: CGFloat { return config.spring } 9 | var limit: CGFloat { return config.limit } 10 | var epsilon: CGFloat { return config.epsilon } 11 | } 12 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/WithExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/animation/frame/FrameAnimator+Core.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Core 4 | */ 5 | extension FrameAnimator { 6 | /** 7 | * This is called from the AnimProxy.onFrameOnMainThread method 8 | */ 9 | @objc func onFrameTick() { // Fixme: ⚠️️ should be marked overridable, and move this to extension and use @objc etc 10 | fatalError("Must be overwritten in subclass") 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Carthage/Checkouts/With/With/With.h: -------------------------------------------------------------------------------- 1 | 2 | #import 3 | 4 | //! Project version number for With. 5 | FOUNDATION_EXPORT double WithVersionNumber; 6 | 7 | //! Project version string for With. 8 | FOUNDATION_EXPORT const unsigned char WithVersionString[]; 9 | 10 | // In this header, you should import all the public headers of your framework using statements like #import 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/common/ArraySugar.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | extension Array { 4 | /** 5 | * Removes first item in array if available 6 | */ 7 | @discardableResult 8 | public mutating func removeFirst(_ item: Element) -> Element? { 9 | if let i = self.firstIndex(where: { ($0 as AnyObject) === (item as AnyObject) }) { 10 | return self.remove(at: i) 11 | } 12 | return nil 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Carthage/Build/iOS/With.framework/Headers/With.h: -------------------------------------------------------------------------------- 1 | 2 | #import 3 | 4 | //! Project version number for With. 5 | FOUNDATION_EXPORT double WithVersionNumber; 6 | 7 | //! Project version string for With. 8 | FOUNDATION_EXPORT const unsigned char WithVersionString[]; 9 | 10 | // In this header, you should import all the public headers of your framework using statements like #import 11 | 12 | 13 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Hybrid-example-macOS/Hybrid_example_macOS.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.files.user-selected.read-only 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Spatial/Spatial.h: -------------------------------------------------------------------------------- 1 | 2 | #import 3 | 4 | //! Project version number for Spatial. 5 | FOUNDATION_EXPORT double SpatialVersionNumber; 6 | 7 | //! Project version string for Spatial. 8 | FOUNDATION_EXPORT const unsigned char SpatialVersionString[]; 9 | 10 | // In this header, you should import all the public headers of your framework using statements like #import 11 | 12 | 13 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/With/With.h: -------------------------------------------------------------------------------- 1 | 2 | #import 3 | 4 | //! Project version number for With. 5 | FOUNDATION_EXPORT double WithVersionNumber; 6 | 7 | //! Project version string for With. 8 | FOUNDATION_EXPORT const unsigned char WithVersionString[]; 9 | 10 | // In this header, you should import all the public headers of your framework using statements like #import 11 | 12 | 13 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Carthage/Checkouts/With/With/With.h: -------------------------------------------------------------------------------- 1 | 2 | #import 3 | 4 | //! Project version number for With. 5 | FOUNDATION_EXPORT double WithVersionNumber; 6 | 7 | //! Project version string for With. 8 | FOUNDATION_EXPORT const unsigned char WithVersionString[]; 9 | 10 | // In this header, you should import all the public headers of your framework using statements like #import 11 | 12 | 13 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Spatial/src/type/ConstraintKind.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * UIView's that implement this protocol are able to store the anchor and size constraints 4 | * - Note: Storing Constraints is a must if you want to change the constraints at a later point in time 5 | */ 6 | public protocol ConstraintKind: AnyObject { 7 | var anchor: AnchorConstraint? { get set } 8 | var size: SizeConstraint? { get set } 9 | } 10 | -------------------------------------------------------------------------------- /Carthage/Build/iOS/Spatial.framework/Headers/Spatial.h: -------------------------------------------------------------------------------- 1 | 2 | #import 3 | 4 | //! Project version number for Spatial. 5 | FOUNDATION_EXPORT double SpatialVersionNumber; 6 | 7 | //! Project version string for Spatial. 8 | FOUNDATION_EXPORT const unsigned char SpatialVersionString[]; 9 | 10 | // In this header, you should import all the public headers of your framework using statements like #import 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/easing/type/Linear.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * No easing, linear animation 4 | * - Fixme: ⚠️️ An idea is to use enums to attach equations to the animator like Easing.linear.ease etc 5 | */ 6 | public class Linear { 7 | /* 8 | * ease 9 | */ 10 | public static func ease(_ t: CGFloat, _ b: CGFloat, _ c: CGFloat, _ d: CGFloat) -> CGFloat { // Think line in graph: y = x 11 | return c * t / d + b 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /AnimKitExample/peekandpop/button/modal/force/ForceButton+Const.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | extension ForceButton { 4 | static let defaultStageSwitch: StageSwitch = { stage in } 5 | static let defaultStageChange: StageChange = { stage in /*Swift.print("no call-back attached stage: \(stage)")*/ } 6 | static let defaultPressureChange: PressureChange = { linearPressure in /*Swift.print("no call-back attached linearPressure: \(linearPressure)")*/ } 7 | } 8 | -------------------------------------------------------------------------------- /Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Headers/With.h: -------------------------------------------------------------------------------- 1 | 2 | #import 3 | 4 | //! Project version number for With. 5 | FOUNDATION_EXPORT double WithVersionNumber; 6 | 7 | //! Project version string for With. 8 | FOUNDATION_EXPORT const unsigned char WithVersionString[]; 9 | 10 | // In this header, you should import all the public headers of your framework using statements like #import 11 | 12 | 13 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/main/card/content/bottom/BottomBar.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | class BottomBar: UIView { 4 | override init(frame: CGRect) { 5 | super.init(frame: frame) 6 | backgroundColor = .blue 7 | } 8 | /** 9 | * Boilerplate 10 | */ 11 | @available(*, unavailable) 12 | required init?(coder aDecoder: NSCoder) { 13 | fatalError("init(coder:) has not been implemented") 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/common/CGRectSugar.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | extension CGRect { 4 | public static func + (a: CGRect, b: CGRect) -> CGRect { return CGRect(origin: a.origin + b.origin, size: a.size + b.size) } 5 | public static func - (a: CGRect, b: CGRect) -> CGRect { return CGRect(origin: a.origin - b.origin, size: a.size - b.size) } 6 | public static func * (a: CGRect, b: CGRect) -> CGRect { return CGRect(origin: a.origin * b.origin, size: a.size * b.size) } 7 | } 8 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Spatial/Spatial.h: -------------------------------------------------------------------------------- 1 | 2 | #import 3 | 4 | //! Project version number for Spatial. 5 | FOUNDATION_EXPORT double SpatialVersionNumber; 6 | 7 | //! Project version string for Spatial. 8 | FOUNDATION_EXPORT const unsigned char SpatialVersionString[]; 9 | 10 | // In this header, you should import all the public headers of your framework using statements like #import 11 | 12 | 13 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/spinner/stepper/Stepper+Type.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Type 4 | */ 5 | extension Stepper { 6 | public typealias OnChange = (_ value: String) -> Void 7 | /** 8 | * - Parameter decimals: Decimal places 9 | * - Parameter increment: The amount of incrementation for each stepping 10 | */ 11 | public typealias InitData = (value: CGFloat, increment: CGFloat, min: CGFloat, max: CGFloat, decimals: Int) 12 | } 13 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Spatial/src/align/aligntype/AlignType.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Single align type 4 | * - Fixme: ⚠️️ Reference AlignType in HorAlign and VerAlign, and prob use CenterX,CenterY naming instead 5 | * - Note: Use .rawValue if you want to get the string "topLeft" 6 | */ 7 | public enum AlignType: String { 8 | case left 9 | case right 10 | case top 11 | case bottom 12 | case centerHor 13 | case centerVer 14 | } 15 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/common/Constants.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | /** 4 | * Move to own class, margins, insets etc 5 | * TIPS: Access all colors via: Constants.Colors.allCases 6 | */ 7 | class Constants { 8 | enum Colors: String, CaseIterable { 9 | case blue = "FB1B4D", yellow = "1DE3E6", red = "22FFA0", green = "FED845" 10 | var uiColor: UIColor { 11 | return .init(hex: self.rawValue) 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/animation/frame/protocol/FrameAnimatable.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * - Fixme: ⚠️️ This protocol might not be needed 4 | * - Fixme: ⚠️️ Rename stopped to hasStopped 5 | */ 6 | public protocol FrameAnimatable { 7 | var animProxy: AnimProxyKind { get } // Access to singelton instance 8 | func start() // Start animation 9 | func stop() // Stop animation 10 | var stopped: Bool { get } // Assert if this animation has stopped or not 11 | } 12 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/With/With.h: -------------------------------------------------------------------------------- 1 | 2 | #import 3 | 4 | //! Project version number for With. 5 | FOUNDATION_EXPORT double WithVersionNumber; 6 | 7 | //! Project version string for With. 8 | FOUNDATION_EXPORT const unsigned char WithVersionString[]; 9 | 10 | // In this header, you should import all the public headers of your framework using statements like #import 11 | 12 | 13 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/text/TextButton+Type.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | /** 4 | * Typealias 5 | */ 6 | extension TextButton { 7 | public typealias TextButtonStyle = (backgroundColor: Color, borderColor: Color, textColor: Color, borderWidth: CGFloat) 8 | public static let defaultTextButtonStyle: TextButtonStyle = (.white, .black, .black, 1) 9 | public static let alternateTextButtonStyle: TextButtonStyle = (.black, .white, .white, 1) 10 | } 11 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Spatial/src/type/ConstraintKind.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * UIView's that implement this protocol are able to store the anchor and size constraints 4 | * - Note: Storing Constraints is a must if you want to change the constraints at a later point in time 5 | */ 6 | public protocol ConstraintKind: AnyObject { 7 | var anchor: AnchorConstraint? { get set } 8 | var size: SizeConstraint? { get set } 9 | } 10 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Headers/With.h: -------------------------------------------------------------------------------- 1 | 2 | #import 3 | 4 | //! Project version number for With. 5 | FOUNDATION_EXPORT double WithVersionNumber; 6 | 7 | //! Project version string for With. 8 | FOUNDATION_EXPORT const unsigned char WithVersionString[]; 9 | 10 | // In this header, you should import all the public headers of your framework using statements like #import 11 | 12 | 13 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/select/switch/Switch+Const.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Const 4 | */ 5 | extension Switch { 6 | public static let defaultSwitchStyles: SwitchStyles = (selected: selectedStyle, unSelected: unSelectedStyle) 7 | public static let selectedStyle: SwitchStyle = (foregroundColor: .green, backgroundColor: .lightGray) 8 | public static let unSelectedStyle: SwitchStyle = (foregroundColor: .lightGray, backgroundColor: .gray) 9 | } 10 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Headers/With.h: -------------------------------------------------------------------------------- 1 | 2 | #import 3 | 4 | //! Project version number for With. 5 | FOUNDATION_EXPORT double WithVersionNumber; 6 | 7 | //! Project version string for With. 8 | FOUNDATION_EXPORT const unsigned char WithVersionString[]; 9 | 10 | // In this header, you should import all the public headers of your framework using statements like #import 11 | 12 | 13 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/main/card/content/bottom/BottomBar.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | class BottomBar: UIView { 4 | override init(frame: CGRect) { 5 | super.init(frame: frame) 6 | backgroundColor = .blue 7 | } 8 | /** 9 | * Boilerplate 10 | */ 11 | @available(*, unavailable) 12 | required init?(coder aDecoder: NSCoder) { 13 | fatalError("init(coder:) has not been implemented") 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Spatial/src/align/aligntype/AlignType.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Single align type 4 | * - Todo: ⚠️️ Reference AlignType in HorAlign and VerAlign, and prob use CenterX,CenterY naming instead 5 | * - Note: Use .rawValue if you want to get the string "topLeft" 6 | */ 7 | public enum AlignType: String { 8 | case left 9 | case right 10 | case top 11 | case bottom 12 | case centerHor 13 | case centerVer 14 | } 15 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/common/Constants.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | /** 4 | * Move to own class, margins, insets etc 5 | * TIPS: Access all colors via: Constants.Colors.allCases 6 | */ 7 | class Constants { 8 | enum Colors: String, CaseIterable { 9 | case blue = "FB1B4D", yellow = "1DE3E6", red = "22FFA0", green = "FED845" 10 | var uiColor: UIColor { 11 | return .init(hex: self.rawValue) 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /AnimKitExample/peekandpop/button/modal/ModalButton+Helper.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | extension ModalButton { 4 | /** 5 | * hides other buttons 6 | */ 7 | func hideOtherButtons(isHidden: Bool) { 8 | let parent = (self.superview as? PeekAndPopView) 9 | let otherButtons: [ModalButton] = [parent?.firstButton, parent?.secondButton, parent?.thirdButton].compactMap { $0 }.filter { $0 != self } 10 | otherButtons.forEach { $0.isHidden = isHidden } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /AnimKitExample/peekandpop/common/NSWindow+Extension.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | /** 3 | * Helper 4 | * - Fixme: ⚠️️ move to common etc, NSWindow+Extension etc 5 | */ 6 | extension NSWindow { 7 | /** 8 | * Returns window contentview frame (Convenient way to get content rect) 9 | */ 10 | public static var winContentFrame: CGRect { 11 | let win: NSWindow = NSApp.windows.first! 12 | return NSWindow.contentRect(forFrameRect: win.frame, styleMask: win.styleMask) 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /AnimKitExample/peekandpop/button/modal/force/ForceButton+Type.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | /** 3 | * Enum, type 4 | */ 5 | extension ForceButton { 6 | typealias StageSwitch = (_ stage: Int) -> Void 7 | typealias StageChange = (_ stage: Stage) -> Void 8 | typealias PressureChange = (_ linearPressure: CGFloat) -> Void 9 | } 10 | /** 11 | * Storage for linearPressure and forceDepth 12 | */ 13 | // public typealias ForceTouch = (linearPressure: CGFloat, forceDepth: ForceTouchButton.ForceTouchDepth) 14 | -------------------------------------------------------------------------------- /AnimKitExampleIOS/peekandpop/button/modal/forcetouch/ForceTouchButtonKind.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | public protocol ForceTouchButtonKind { 4 | func stageChange(curStage: ForceTouchButton.ForceTouchStage, prevDepth: ForceTouchButton.ForceTouchDepth) 5 | } 6 | extension ForceTouchButtonKind { 7 | public func stageChange(curStage: ForceTouchButton.ForceTouchStage, prevDepth: ForceTouchButton.ForceTouchDepth) { 8 | Swift.print("default implementation, override in subclass") 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework/Headers/With.h: -------------------------------------------------------------------------------- 1 | 2 | #import 3 | 4 | //! Project version number for With. 5 | FOUNDATION_EXPORT double WithVersionNumber; 6 | 7 | //! Project version string for With. 8 | FOUNDATION_EXPORT const unsigned char WithVersionString[]; 9 | 10 | // In this header, you should import all the public headers of your framework using statements like #import 11 | 12 | 13 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/button/Button+Core.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | extension Button { 4 | override open func drawLayout() { 5 | // Swift.print("Button.drawLayout") 6 | self.caLayer?.cornerRadius = style.isRounded ? frame.height / 2 : self.caLayer?.cornerRadius ?? 0 7 | self.caLayer?.borderColor = style.borderColor.cgColor 8 | self.caLayer?.backgroundColor = style.backgroundColor.cgColor 9 | self.caLayer?.borderWidth = style.borderWidth 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/table/cell/match/MatchCell+Const.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | /** 4 | * Constants 5 | */ 6 | extension MatchCell { 7 | static let backgroundColor: UIColor = .blue 8 | static let cellHeight: CGFloat = 124 9 | static let cellReuseIdendifier: String = "\(MatchCell.self)" 10 | enum Margin { 11 | static let horizontal: CGFloat = 12 12 | static let vertical: CGFloat = 12 13 | static let verticalSpaceBetween: CGFloat = 4 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/main/card/content/top/TopBar.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | class TopBar: UIView { 4 | // lazy var buttons:[UIButton] = createButtons() 5 | override init(frame: CGRect) { 6 | super.init(frame: frame) 7 | self.backgroundColor = .orange 8 | } 9 | /** 10 | * Boilerplate 11 | */ 12 | @available(*, unavailable) 13 | required init?(coder aDecoder: NSCoder) { 14 | fatalError("init(coder:) has not been implemented") 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/animation/Animator/Animator+Access.swift: -------------------------------------------------------------------------------- 1 | /** 2 | * Access 3 | */ 4 | extension Animator { 5 | var duration: CGFloat { get { return initValues.dur } set { initValues.dur = newValue } } // In seconds 6 | var from: CGFloat { get { return initValues.from } set { initValues.from = newValue } } // From this value 7 | var to: CGFloat { get { return initValues.to } set { initValues.to = newValue } } // To this value 8 | var framesToEnd: CGFloat { return Animator.fps * duration } // totFrameCount 9 | } 10 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/select/special/STB+Core.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Core 4 | */ 5 | extension SelectableTextButton { 6 | /** 7 | * - Note: We have to store the constraints because we animate them 8 | * - Note: This is the only place to get frame.height consistently (when you use either AutoLayout or CGRect based layout) 9 | */ 10 | override open func drawLayout() { 11 | super.drawLayout() 12 | self.caLayer?.cornerRadius = self.frame.height / 2 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/MainVC.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Spatial 3 | 4 | class MainVC: UIViewController { 5 | lazy var mainView: MainView = createMainView() 6 | lazy var animTestView: AnimationTest = createAnimTestView() 7 | override func viewDidLoad() { 8 | super.viewDidLoad() 9 | _ = mainView 10 | //_ = animTestView 11 | self.view.backgroundColor = .lightGray 12 | } 13 | override var prefersStatusBarHidden: Bool { return true } // hides statusbar 14 | } 15 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/table/cell/input/InputTextItem+Constants.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | /** 3 | * Constants 4 | */ 5 | extension InputTextCell { 6 | static let backgroundColor: UIColor = .blue 7 | static let cellHeight: CGFloat = 124 8 | static let cellReuseIdendifier: String = "\(InputTextCell.self)" 9 | enum Margin { 10 | static let horizontal: CGFloat = 12 11 | static let vertical: CGFloat = 12 12 | static let verticalSpaceBetween: CGFloat = 4 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/common/roundedrect/RoundedRect+Extension.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | extension RoundedRect { 4 | public static func + (a: RoundedRect, b: RoundedRect) -> RoundedRect { return .init(rect: a.rect + b.rect, fillet: a.fillet + b.fillet) } 5 | public static func - (a: RoundedRect, b: RoundedRect) -> RoundedRect { return .init(rect: a.rect - b.rect, fillet: a.fillet - b.fillet) } 6 | public static func * (a: RoundedRect, b: RoundedRect) -> RoundedRect { return .init(rect: a.rect * b.rect, fillet: a.fillet * b.fillet) } 7 | } 8 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/table/cell/match/MatchCell+Const.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | /** 4 | * Constants 5 | */ 6 | extension MatchCell { 7 | static let backgroundColor: UIColor = .blue 8 | static let cellHeight: CGFloat = 124 9 | static let cellReuseIdendifier: String = "\(MatchCell.self)" 10 | enum Margin { 11 | static let horizontal: CGFloat = 12 12 | static let vertical: CGFloat = 12 13 | static let verticalSpaceBetween: CGFloat = 4 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/main/card/content/top/TopBar.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | class TopBar: UIView { 4 | // lazy var buttons:[UIButton] = createButtons() 5 | override init(frame: CGRect) { 6 | super.init(frame: frame) 7 | self.backgroundColor = .orange 8 | } 9 | /** 10 | * Boilerplate 11 | */ 12 | @available(*, unavailable) 13 | required init?(coder aDecoder: NSCoder) { 14 | fatalError("init(coder:) has not been implemented") 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/example/ExampleView.swift: -------------------------------------------------------------------------------- 1 | #if os(iOS) 2 | import Hybrid_iOS 3 | #elseif os(macOS) 4 | import Hybrid_macOS 5 | #endif 6 | 7 | open class ExampleView: View { 8 | override public init(frame: CGRect) { 9 | super.init(frame: frame) 10 | self.caLayer?.backgroundColor = Color.white.cgColor 11 | createUI() 12 | } 13 | /** 14 | * Boilerplate 15 | */ 16 | public required init?(coder decoder: NSCoder) { 17 | fatalError("init(coder:) has not been implemented") 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/MainVC.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Spatial 3 | 4 | class MainVC: UIViewController { 5 | lazy var mainView: MainView = createMainView() 6 | lazy var animTestView: AnimationTest = createAnimTestView() 7 | override func viewDidLoad() { 8 | super.viewDidLoad() 9 | _ = mainView 10 | //_ = animTestView 11 | self.view.backgroundColor = .lightGray 12 | } 13 | override var prefersStatusBarHidden: Bool { return true }/*hides statusbar*/ 14 | } 15 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/animTest/AnimationTestView.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Spatial 3 | 4 | class AnimationTest: UIView { 5 | lazy var button: Button = createButton() 6 | override init(frame: CGRect) { 7 | super.init(frame: frame) 8 | self.backgroundColor = .green 9 | _ = button 10 | } 11 | /** 12 | * Boilerplate 13 | */ 14 | @available(*, unavailable) 15 | required init?(coder aDecoder: NSCoder) { 16 | fatalError("init(coder:) has not been implemented") 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/table/cell/input/InputTextItem+Constants.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | /** 3 | * Constants 4 | */ 5 | extension InputTextCell { 6 | static let backgroundColor: UIColor = .blue 7 | static let cellHeight: CGFloat = 124 8 | static let cellReuseIdendifier: String = "\(InputTextCell.self)" 9 | enum Margin { 10 | static let horizontal: CGFloat = 12 11 | static let vertical: CGFloat = 12 12 | static let verticalSpaceBetween: CGFloat = 4 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/physics/protocol/Advancable.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Protocol for the Advancer 4 | */ 5 | public protocol Advancable { 6 | static func + (lhs: Self, rhs: Self) -> Self 7 | static func - (lhs: Self, rhs: Self) -> Self 8 | static func * (lhs: Self, rhs: Self) -> Self 9 | static var defaults: AnimState { get } // fixme: ⚠️️ Rename to deafultState 10 | static var defaultEasing: Self { get } 11 | static var defaultSpring: Springer.Config { get } 12 | func isNear( value: Self, epsilon: Self) -> Bool 13 | } 14 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/slider/util/interactive/InteractiveView.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * - Fixme: ⚠️️ Probably rename to onMoveCallback, or move, or moveCallBack et 4 | */ 5 | open class InteractiveView: GraphicView { 6 | /*Callbacks*/ 7 | public var onDown: CallBack = { _ in } 8 | public var onUp: CallBack = { _ in } 9 | public var onMove: CallBack = { _ in } // Fixme: rename to onDrag 10 | } 11 | /** 12 | * Type 13 | */ 14 | extension InteractiveView { 15 | public typealias CallBack = (_ point: CGPoint) -> Void 16 | } 17 | -------------------------------------------------------------------------------- /AnimKit/AnimKit.h: -------------------------------------------------------------------------------- 1 | // 2 | // AnimKit.h 3 | // AnimKit 4 | // 5 | // Created by Eon on 22/07/2019. 6 | // Copyright © 2019 FutureLab. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for AnimKit. 12 | FOUNDATION_EXPORT double AnimKitVersionNumber; 13 | 14 | //! Project version string for AnimKit. 15 | FOUNDATION_EXPORT const unsigned char AnimKitVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /AnimKitExample/test/View+SpringerTest.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import AnimKit 3 | 4 | extension View { 5 | /** 6 | * Springer4 tests 7 | */ 8 | func springer4Test() { 9 | _ = { 10 | let animator = Springer { print("val: " + "\($0)") } 11 | animator.targetValue = 100 12 | animator.start() 13 | }() 14 | _ = { 15 | let animator = Springer { print("val: " + "\($0)") } 16 | animator.targetValue = CGPoint(x: 100, y: 100) 17 | animator.start() 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/animTest/AnimationTestView.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Spatial 3 | 4 | class AnimationTest: UIView { 5 | lazy var button: Button = createButton() 6 | override init(frame: CGRect) { 7 | super.init(frame: frame) 8 | self.backgroundColor = .green 9 | _ = button 10 | } 11 | /** 12 | * Boilerplate 13 | */ 14 | @available(*, unavailable) 15 | required init?(coder aDecoder: NSCoder) { 16 | fatalError("init(coder:) has not been implemented") 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Spatial/src/align/aligntype/AlignType+Extension.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Extension 4 | */ 5 | extension AlignType { 6 | public var axis: Axis { 7 | switch self { 8 | case .top, .bottom, .centerVer: return .ver 9 | case .left, .right, .centerHor: return .hor 10 | } 11 | } 12 | public var axisType: AxisType { 13 | switch self { 14 | case .top, .left: return .start 15 | case .centerHor, .centerVer: return .middle 16 | case .bottom, .right: return .end 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/main/card/content/middle/MiddleContent.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Spatial 3 | 4 | class MiddleContent: UIView { 5 | lazy var itemViews: [ItemView] = createItemViews() 6 | override init(frame: CGRect) { 7 | super.init(frame: frame) 8 | self.backgroundColor = .yellow 9 | _ = itemViews 10 | } 11 | /** 12 | * Boilerplate 13 | */ 14 | @available(*, unavailable) 15 | required init?(coder aDecoder: NSCoder) { 16 | fatalError("init(coder:) has not been implemented") 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/DEPRECATED/animation/AnimationButton+Interaction.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | #if os(iOS) 3 | /** 4 | * Interaction 5 | */ 6 | extension AnimationButton { 7 | /** 8 | * down 9 | */ 10 | override open func onDown() { 11 | super.onDown() 12 | self.shrink { 13 | self.textLabel.alpha = 0.2 14 | } 15 | } 16 | /** 17 | * up 18 | */ 19 | override open func onUp() { 20 | super.onUp() 21 | self.grow { 22 | self.textLabel.alpha = 1.0 23 | } 24 | } 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Spatial/src/align/alignment/Alignment.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Alignment types (Both axises) 4 | * - Fixme: ⚠️️ Add none? 5 | * - Fixme: ⚠️️ Make own Carthage framework named Align? 🤔 6 | * - Note: use Alignment.topLeft.rawValue if you want to get the string "topLeft" 7 | */ 8 | public enum Alignment: String { 9 | case topLeft 10 | case topCenter 11 | case topRight 12 | case bottomLeft 13 | case bottomCenter 14 | case bottomRight 15 | case centerLeft 16 | case centerRight 17 | case centerCenter 18 | } 19 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/main/card/content/middle/itemView/ItemView.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Spatial 3 | 4 | class ItemView: UIView { 5 | lazy var horizontalItems: [UIView] = createHorizontalItems() 6 | override init(frame: CGRect) { 7 | super.init(frame: frame) 8 | backgroundColor = .green 9 | _ = horizontalItems 10 | } 11 | /** 12 | * Boilerplate 13 | */ 14 | @available(*, unavailable) 15 | required init?(coder aDecoder: NSCoder) { 16 | fatalError("init(coder:) has not been implemented") 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /AnimKitExample/test/View+EaserTest.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import AnimKit 3 | 4 | extension View { 5 | /** 6 | * Easer4 tests 7 | */ 8 | func easer4Test() { 9 | _ = { 10 | let animator = Easer { print("val: " + "\($0)") } 11 | animator.targetValue = 100 12 | animator.start() 13 | } 14 | _ = { 15 | let animator = Easer { print("val: " + "\($0)") } 16 | animator.targetValue = CGPoint(x: 100, y: 100) 17 | animator.start() 18 | }() 19 | } 20 | } 21 | //🏀 add examples to comment 22 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/slider/Slider+Core.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | extension Slider { 4 | #if os(iOS) 5 | override open func layoutSubviews() { 6 | super.layoutSubviews() 7 | drawLayout() 8 | } 9 | #elseif os(macOS) 10 | override open func layout() { 11 | super.layout() 12 | drawLayout() 13 | } 14 | #endif 15 | /** 16 | * Called when autolayout changes on the entire component (Beta) 17 | */ 18 | @objc open func drawLayout() { 19 | let progress = self.progress 20 | self.progress = progress 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/slider/Slider+Setter.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | extension Slider { 4 | /** 5 | * Sets the thumbs side and repositions the thumb accordingly 6 | */ 7 | open func setThumbSide(width: CGFloat) { 8 | button.frame.size = .init(width:width, height:width) 9 | let value: CGFloat = SliderHelper.thumbPosition(progress: progress, side: frame.size[axis], thumbSide: button.frame.size[axis]) 10 | var pos: CGPoint = .zero 11 | pos[axis] = value 12 | button.update(offset: pos, align: .topLeft, alignTo: .topLeft) 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /AnimKitIOS/AnimKitIOS.h: -------------------------------------------------------------------------------- 1 | // 2 | // AnimKitIOS.h 3 | // AnimKitIOS 4 | // 5 | // Created by Eon on 25/07/2019. 6 | // Copyright © 2019 FutureLab. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for AnimKitIOS. 12 | FOUNDATION_EXPORT double AnimKitIOSVersionNumber; 13 | 14 | //! Project version string for AnimKitIOS. 15 | FOUNDATION_EXPORT const unsigned char AnimKitIOSVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/common/LayerView.swift: -------------------------------------------------------------------------------- 1 | #if os(macOS) 2 | import Cocoa 3 | 4 | open class LayerView: FlippedView { 5 | override public init(frame frameRect: NSRect) { 6 | super.init(frame: frameRect) 7 | self.wantsLayer = true/*if true then view is layer backed*/ 8 | } 9 | /** 10 | * Boilerplate 11 | */ 12 | public required init?(coder decoder: NSCoder) { 13 | fatalError("init(coder:) has not been implemented") 14 | } 15 | } 16 | 17 | open class FlippedView: NSView { 18 | override open var isFlipped: Bool { return true } 19 | } 20 | #endif 21 | -------------------------------------------------------------------------------- /src/physics/mover/Mover+Core.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | extension Mover { 4 | /** 5 | * - Abstract: In charge of incrementing the value 6 | * - Fixme ⚠️️ I'm not sure if the param direct is needed. also maybe rename to isDirect? 7 | */ 8 | @objc open func updatePosition(_ direct: Bool = false) { 9 | value += velocity 10 | } 11 | /** 12 | * - Abstract: Called every on every frame tick (60FPS) 13 | */ 14 | override func onFrameTick() { 15 | Swift.print("Mover.onFrameTick") 16 | updatePosition() 17 | callBack(value) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Spatial/src/align/aligntype/AlignType+Extension.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Extension 4 | */ 5 | extension AlignType { 6 | public var axis: Axis { 7 | switch self { 8 | case .top, .bottom, .centerVer: return .ver 9 | case .left, .right, .centerHor: return .hor 10 | } 11 | } 12 | public var axisType: AxisType { 13 | switch self { 14 | case .top, .left: return .start 15 | case .centerHor, .centerVer: return .middle 16 | case .bottom, .right: return .end 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/main/card/content/middle/MiddleContent.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Spatial 3 | 4 | class MiddleContent: UIView { 5 | lazy var itemViews: [ItemView] = createItemViews() 6 | override init(frame: CGRect) { 7 | super.init(frame: frame) 8 | self.backgroundColor = .yellow 9 | _ = itemViews 10 | } 11 | /** 12 | * Boilerplate 13 | */ 14 | @available(*, unavailable) 15 | required init?(coder aDecoder: NSCoder) { 16 | fatalError("init(coder:) has not been implemented") 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Carthage/Checkouts/With/With mac/With_mac.h: -------------------------------------------------------------------------------- 1 | // 2 | // With_mac.h 3 | // With mac 4 | // 5 | // Created by Eon on 25/01/2019. 6 | // Copyright © 2019 FutureLab. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for With_mac. 12 | FOUNDATION_EXPORT double With_macVersionNumber; 13 | 14 | //! Project version string for With_mac. 15 | FOUNDATION_EXPORT const unsigned char With_macVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Spatial/src/align/alignment/Alignment.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Alignment types (Both axises) 4 | * - Fixme: ⚠️️ Add none? 5 | * - Fixme: ⚠️️ Make own Carthage framework named Align? 🤔 6 | * - Note: use Alignment.topLeft.rawValue if you want to get the string "topLeft" 7 | */ 8 | public enum Alignment: String { 9 | case topLeft 10 | case topCenter 11 | case topRight 12 | case bottomLeft 13 | case bottomCenter 14 | case bottomRight 15 | case centerLeft 16 | case centerRight 17 | case centerCenter 18 | } 19 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/main/card/content/middle/itemView/ItemView.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Spatial 3 | 4 | class ItemView: UIView { 5 | lazy var horizontalItems: [UIView] = createHorizontalItems() 6 | override init(frame: CGRect) { 7 | super.init(frame: frame) 8 | backgroundColor = .green 9 | _ = horizontalItems 10 | } 11 | /** 12 | * Boilerplate 13 | */ 14 | @available(*, unavailable) 15 | required init?(coder aDecoder: NSCoder) { 16 | fatalError("init(coder:) has not been implemented") 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/physics/Physics/PhysicsAnimKind+Access.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Access (Getters) 4 | */ 5 | extension PhysicsAnimKind { 6 | public var targetValue: T { get { return state.targetValue } set { state.targetValue = newValue } } 7 | var velocity: T { get { return state.velocity } set { state.velocity = newValue } } 8 | public var value: T { get { return state.value } set { state.value = newValue } } 9 | var epsilon: T { get { return state.epsilon } set { state.epsilon = newValue } } 10 | var stopVelocity: T { get { return state.stopVelocity } set { state.stopVelocity = newValue } } 11 | } 12 | -------------------------------------------------------------------------------- /AnimKitExample/peekandpop/button/modal/ModalButton+Anim.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import AnimKit 3 | /** 4 | * Animation 5 | */ 6 | extension ModalButton { 7 | /** 8 | * onFrameTick 9 | * - Note: it seems we don't need `disableAnim {}`, but maybe in the future 10 | */ 11 | func onFrameTick(value: RoundedRect) { 12 | self.frame = value.rect 13 | self.layer?.cornerRadius = value.fillet 14 | } 15 | } 16 | //AutoLayout code: 17 | //let yOffset: CGFloat = touchPoint.y - onDownYOffset + (height/2) 18 | //self.update(offset: .init(x: 0, y: yOffset), align: .centerCenter, alignTo: .topCenter) 19 | -------------------------------------------------------------------------------- /AnimKitExampleIOS/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | @UIApplicationMain 3 | class AppDelegate: UIResponder, UIApplicationDelegate { 4 | lazy var window: UIWindow? = { 5 | let win = UIWindow(frame: UIScreen.main.bounds) 6 | let vc = MainVC() 7 | win.rootViewController = vc 8 | win.makeKeyAndVisible() // Important since we have no Main storyboard anymore 9 | return win 10 | }() 11 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 12 | _ = window 13 | return true 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Hybrid-iOS/Hybrid_iOS.h: -------------------------------------------------------------------------------- 1 | // 2 | // Hybrid_iOS.h 3 | // Hybrid-iOS 4 | // 5 | // Created by Eon on 09/03/2019. 6 | // Copyright © 2019 FutureLab. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for Hybrid_iOS. 12 | FOUNDATION_EXPORT double Hybrid_iOSVersionNumber; 13 | 14 | //! Project version string for Hybrid_iOS. 15 | FOUNDATION_EXPORT const unsigned char Hybrid_iOSVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Carthage/Build/Mac/With_mac.framework/Versions/A/Headers/With_mac.h: -------------------------------------------------------------------------------- 1 | // 2 | // With_mac.h 3 | // With mac 4 | // 5 | // Created by Eon on 25/01/2019. 6 | // Copyright © 2019 FutureLab. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for With_mac. 12 | FOUNDATION_EXPORT double With_macVersionNumber; 13 | 14 | //! Project version string for With_mac. 15 | FOUNDATION_EXPORT const unsigned char With_macVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/With mac/With_mac.h: -------------------------------------------------------------------------------- 1 | // 2 | // With_mac.h 3 | // With mac 4 | // 5 | // Created by Eon on 25/01/2019. 6 | // Copyright © 2019 FutureLab. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for With_mac. 12 | FOUNDATION_EXPORT double With_macVersionNumber; 13 | 14 | //! Project version string for With_mac. 15 | FOUNDATION_EXPORT const unsigned char With_macVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Carthage/Checkouts/With/With mac/With_mac.h: -------------------------------------------------------------------------------- 1 | // 2 | // With_mac.h 3 | // With mac 4 | // 5 | // Created by Eon on 25/01/2019. 6 | // Copyright © 2019 FutureLab. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for With_mac. 12 | FOUNDATION_EXPORT double With_macVersionNumber; 13 | 14 | //! Project version string for With_mac. 15 | FOUNDATION_EXPORT const unsigned char With_macVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Carthage/Build/iOS/Hybrid_iOS.framework/Headers/Hybrid_iOS.h: -------------------------------------------------------------------------------- 1 | // 2 | // Hybrid_iOS.h 3 | // Hybrid-iOS 4 | // 5 | // Created by Eon on 09/03/2019. 6 | // Copyright © 2019 FutureLab. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for Hybrid_iOS. 12 | FOUNDATION_EXPORT double Hybrid_iOSVersionNumber; 13 | 14 | //! Project version string for Hybrid_iOS. 15 | FOUNDATION_EXPORT const unsigned char Hybrid_iOSVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Hybrid-macOS/Hybrid_macOS.h: -------------------------------------------------------------------------------- 1 | // 2 | // Hybrid_macOS.h 3 | // Hybrid-macOS 4 | // 5 | // Created by Eon on 09/03/2019. 6 | // Copyright © 2019 FutureLab. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for Hybrid_macOS. 12 | FOUNDATION_EXPORT double Hybrid_macOSVersionNumber; 13 | 14 | //! Project version string for Hybrid_macOS. 15 | FOUNDATION_EXPORT const unsigned char Hybrid_macOSVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/spinner/stepper/Stepper+Core.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Core 4 | */ 5 | extension Stepper { 6 | /** 7 | * Change 8 | */ 9 | func change(amount: CGFloat) { 10 | let newVal: CGFloat = initData.value + amount 11 | let minVal: CGFloat = min(newVal, initData.max)/*Cap the value from min to max*/ 12 | let maxVal: CGFloat = max(minVal, initData.min) 13 | initData.value = maxVal 14 | let strVal: String = .init(format: "%.0\(initData.decimals)f", maxVal)/*The value must have no more than the value of the _decimals*/ 15 | onChange(strVal) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Hybrid/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | @UIApplicationMain 4 | class AppDelegate: UIResponder, UIApplicationDelegate { 5 | lazy var window: UIWindow? = { 6 | let win = UIWindow(frame: UIScreen.main.bounds) 7 | let vc = MainVC() 8 | win.rootViewController = vc 9 | win.makeKeyAndVisible()/*Important since we have no Main storyboard anymore*/ 10 | return win 11 | }() 12 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 13 | _ = window 14 | return true 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/button/Button+Type.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Type 4 | */ 5 | extension Button { 6 | /*Closure signatures*/ 7 | public typealias UpInsideCallBack = () -> Void 8 | public typealias UpOutsideCallBack = () -> Void 9 | public typealias DownCallBack = () -> Void 10 | public typealias UpCallBack = () -> Void 11 | #if os(macOS) 12 | public typealias OverCallBack = () -> Void 13 | public typealias OutCallBack = () -> Void 14 | #endif 15 | /*Style*/ 16 | public typealias Style = (backgroundColor: Color, borderColor: Color, borderWidth: CGFloat, isRounded: Bool) 17 | } 18 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Spatial-macOS/Spatial_macOS.h: -------------------------------------------------------------------------------- 1 | // 2 | // Spatial_macOS.h 3 | // Spatial-macOS 4 | // 5 | // Created by Eon on 07/03/2019. 6 | // Copyright © 2019 FutureLab. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for Spatial_macOS. 12 | FOUNDATION_EXPORT double Spatial_macOSVersionNumber; 13 | 14 | //! Project version string for Spatial_macOS. 15 | FOUNDATION_EXPORT const unsigned char Spatial_macOSVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Carthage/Checkouts/With/WithExample/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | @UIApplicationMain 3 | class AppDelegate: UIResponder, UIApplicationDelegate { 4 | lazy var window: UIWindow? = { 5 | let win = UIWindow(frame: UIScreen.main.bounds) 6 | let vc = ViewController() 7 | win.rootViewController = vc 8 | win.makeKeyAndVisible()/*Important since we have no Main storyboard anymore*/ 9 | return win 10 | }() 11 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 12 | _ = window 13 | return true 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/With mac/With_mac.h: -------------------------------------------------------------------------------- 1 | // 2 | // With_mac.h 3 | // With mac 4 | // 5 | // Created by Eon on 25/01/2019. 6 | // Copyright © 2019 FutureLab. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for With_mac. 12 | FOUNDATION_EXPORT double With_macVersionNumber; 13 | 14 | //! Project version string for With_mac. 15 | FOUNDATION_EXPORT const unsigned char With_macVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | @UIApplicationMain 4 | class AppDelegate: UIResponder, UIApplicationDelegate { 5 | lazy var window: UIWindow? = { 6 | let win = UIWindow(frame: UIScreen.main.bounds) 7 | let vc = MainVC() 8 | win.rootViewController = vc 9 | win.makeKeyAndVisible()/*Important since we have no Main storyboard anymore*/ 10 | return win 11 | }() 12 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 13 | _ = window 14 | return true 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Carthage/Build/Mac/Hybrid_macOS.framework/Versions/A/Headers/Hybrid_macOS.h: -------------------------------------------------------------------------------- 1 | // 2 | // Hybrid_macOS.h 3 | // Hybrid-macOS 4 | // 5 | // Created by Eon on 09/03/2019. 6 | // Copyright © 2019 FutureLab. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for Hybrid_macOS. 12 | FOUNDATION_EXPORT double Hybrid_macOSVersionNumber; 13 | 14 | //! Project version string for Hybrid_macOS. 15 | FOUNDATION_EXPORT const unsigned char Hybrid_macOSVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /AnimKitExample/peekandpop/button/modal/force/ForceButton.swift: -------------------------------------------------------------------------------- 1 | import Hybrid_macOS 2 | import Cocoa 3 | 4 | class ForceButton: Button { 5 | var prevStage: Int = 0 6 | var stageSwitch: StageSwitch = defaultStageSwitch 7 | var stageChange: StageChange = defaultStageChange 8 | var pressureChange: PressureChange = defaultPressureChange 9 | override init(style: Button.Style = Button.defaultStyle, frame: CGRect = .zero) { 10 | super.init(style: style, frame: frame) 11 | } 12 | /** 13 | * Boilerplate 14 | */ 15 | required init?(coder aDecoder: NSCoder) { 16 | fatalError("init(coder:) has not been implemented") 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/physics/rubberband/group/MoverGroup.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Movergroup for rubberband 4 | * - Fixme: ⚠️️ rename to ElasticMoverGroup, SpringSolverGroup 5 | */ 6 | public struct MoverGroup { 7 | var xMover: RubberBand 8 | var yMover: RubberBand 9 | public typealias FrameTick = (CGFloat, Dir) -> Void 10 | public init(_ callBack:@escaping FrameTick, _ maskSize: CGSize, _ contentSize: CGSize) { 11 | self.xMover = RubberBand({ val in callBack(val, .hor) }, (0, maskSize.width), (0, contentSize.width)) 12 | self.yMover = RubberBand({ val in callBack(val, .ver) }, (0, maskSize.height), (0, contentSize.height)) 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Carthage/Build/Mac/Spatial_macOS.framework/Versions/A/Headers/Spatial_macOS.h: -------------------------------------------------------------------------------- 1 | // 2 | // Spatial_macOS.h 3 | // Spatial-macOS 4 | // 5 | // Created by Eon on 07/03/2019. 6 | // Copyright © 2019 FutureLab. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for Spatial_macOS. 12 | FOUNDATION_EXPORT double Spatial_macOSVersionNumber; 13 | 14 | //! Project version string for Spatial_macOS. 15 | FOUNDATION_EXPORT const unsigned char Spatial_macOSVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/WithExample/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | @UIApplicationMain 3 | class AppDelegate: UIResponder, UIApplicationDelegate { 4 | lazy var window: UIWindow? = { 5 | let win = UIWindow(frame: UIScreen.main.bounds) 6 | let vc = ViewController() 7 | win.rootViewController = vc 8 | win.makeKeyAndVisible()/*Important since we have no Main storyboard anymore*/ 9 | return win 10 | }() 11 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 12 | _ = window 13 | return true 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Carthage/Checkouts/With/WithExample/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | @UIApplicationMain 3 | class AppDelegate: UIResponder, UIApplicationDelegate { 4 | lazy var window: UIWindow? = { 5 | let win = UIWindow(frame: UIScreen.main.bounds) 6 | let vc = ViewController() 7 | win.rootViewController = vc 8 | win.makeKeyAndVisible()/*Important since we have no Main storyboard anymore*/ 9 | return win 10 | }() 11 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 12 | _ = window 13 | return true 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /AnimKitExample/test/View+MovingTest.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import AnimKit 3 | 4 | extension View { 5 | /** 6 | * testAnimation 7 | */ 8 | func testAnimation() { 9 | let box: NSView = .init(frame: .init(origin: .zero, size: .init(width: 100, height: 100))) 10 | box.wantsLayer = true 11 | box.layer?.backgroundColor = NSColor.orange.cgColor 12 | addSubview(box) 13 | let animator: Animator = .init() 14 | animator.onFrame = { progress in Swift.print("onFrame"); disableAnim { box.frame.origin.x = 100 * progress } } 15 | animator.completed = { Swift.print("Animation completed ✅") } 16 | animator.start() 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Spatial-macOS/Spatial_macOS.h: -------------------------------------------------------------------------------- 1 | // 2 | // Spatial_macOS.h 3 | // Spatial-macOS 4 | // 5 | // Created by Eon on 07/03/2019. 6 | // Copyright © 2019 FutureLab. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for Spatial_macOS. 12 | FOUNDATION_EXPORT double Spatial_macOSVersionNumber; 13 | 14 | //! Project version string for Spatial_macOS. 15 | FOUNDATION_EXPORT const unsigned char Spatial_macOSVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | @UIApplicationMain 4 | class AppDelegate: UIResponder, UIApplicationDelegate { 5 | lazy var window: UIWindow? = { 6 | let win = UIWindow(frame: UIScreen.main.bounds) 7 | let vc = MainVC() 8 | win.rootViewController = vc 9 | win.makeKeyAndVisible()/*Important since we have no Main storyboard anymore*/ 10 | return win 11 | }() 12 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 13 | _ = window 14 | return true 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/animation/Animator/Animator+Type.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Type 4 | */ 5 | extension Animator { 6 | public typealias Completed = () -> Void 7 | /** 8 | * Signature for initValues 9 | * - Parameters: 10 | * - dur: the seconds you want the animation to last 11 | * - from: from which value you want the animation to start from 12 | * - to: the end value you want to modulate to 13 | */ 14 | public typealias InitValues = (dur: CGFloat, from: CGFloat, to: CGFloat) 15 | } 16 | // Fixme: ⚠️️ Possibly move this into a different scope 17 | public typealias FrameTick = (CGFloat) -> Void // the callBack signature for onFrame ticks 18 | -------------------------------------------------------------------------------- /src/physics/rubberband/group/Dir.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | public enum Dir { 4 | case hor, ver 5 | } 6 | /** 7 | * - Note: Alternate Idea: let value:CGFloat = CGSize()[.hor] 8 | * ## Examples: 9 | * let value:CGFloat = Dir.hor.val(CGSize()) 10 | */ 11 | extension Dir { 12 | func val(_ size: CGSize) -> CGFloat { 13 | switch self { 14 | case .hor: 15 | return size.width 16 | case .ver: 17 | return size.height 18 | } 19 | } 20 | func val(_ point: CGPoint) -> CGFloat { 21 | switch self { 22 | case .hor: 23 | return point.x 24 | case .ver: 25 | return point.y 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /AnimKitExample/AppDelegate+Create.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import AnimKit 3 | /** 4 | * Create 5 | */ 6 | extension AppDelegate { 7 | /** 8 | * createView 9 | */ 10 | func createView() -> NSView { 11 | window.setFrame(.init(origin: window.frame.origin, size: WinRect.size), display: true) 12 | let contentRect = window.contentRect(forFrameRect: window.frame) // size of win sans titleBar 13 | //let view:NSView = View(frame: contentRect) 14 | //let view:NSView = ElasticTestView(frame: contentRect) 15 | let view: NSView = PeekAndPopView.shared 16 | view.frame = contentRect 17 | window.contentView = view 18 | return view 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /AnimKitExample/View.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import AnimKit 3 | 4 | open class View: NSView { 5 | override open var isFlipped: Bool { return true } // TopLeft orientation 6 | override public init(frame: CGRect) { 7 | super.init(frame: frame) 8 | Swift.print("Hello world") 9 | self.wantsLayer = true // if true then view is layer backed 10 | // testAnimation() 11 | // zoomBackAndForthAnimTest() 12 | // easer4Test() 13 | // springer4Test() 14 | // elasticTest() 15 | } 16 | /** 17 | * Boilerplate 18 | */ 19 | public required init?(coder decoder: NSCoder) { 20 | fatalError("init(coder:) has not been implemented") 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Hybrid-example-macOS/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | 3 | @NSApplicationMain 4 | class AppDelegate: NSObject, NSApplicationDelegate { 5 | @IBOutlet weak var window: NSWindow! 6 | /** 7 | * Creates the view 8 | */ 9 | lazy var view: NSView = { 10 | let contentRect = window.contentRect(forFrameRect: window.frame)/*size of win sans titlebar*/ 11 | let view: ExampleView = .init(frame: contentRect) 12 | window.contentView = view 13 | view.layer?.backgroundColor = NSColor.white.cgColor 14 | return view 15 | }() 16 | func applicationDidFinishLaunching(_ aNotification: Notification) { 17 | _ = view 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/WithExample/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | @UIApplicationMain 3 | class AppDelegate: UIResponder, UIApplicationDelegate { 4 | lazy var window: UIWindow? = { 5 | let win = UIWindow(frame: UIScreen.main.bounds) 6 | let vc = ViewController() 7 | win.rootViewController = vc 8 | win.makeKeyAndVisible()/*Important since we have no Main storyboard anymore*/ 9 | return win 10 | }() 11 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 12 | _ = window 13 | return true 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /AnimKitExample/peekandpop/button/modal/force/ForceButton+Helper.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | extension ForceButton { 4 | /** 5 | * - Note: calculates the entire range of the stage pressures so from stage 0 to 1 the pressure goes from 0 to 0.5 and from stage 1 to 2 the lienar pressure goes from 0.5 to 1 this makes it easier to scale things in a linear fashion from 0 to 1 in the entire stage range 6 | */ 7 | func linearPressure(pressure: Float, stage: Int) -> CGFloat { 8 | let pressure: CGFloat = .init(pressure) 9 | if stage == 0 { return 0 } 10 | else if stage == 1 { return pressure / 2 } 11 | else { return 0.5 + (pressure / 2) } /*if stage == 2*/ 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /AnimKitExample/peekandpop/common/DepthParser.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | 3 | public class DepthParser { 4 | /** 5 | * Returns the front most view 6 | * - Fixme: ⚠️️ make this T where T is NSView etc 7 | */ 8 | public static func frontMostView(views: [NSView]) -> NSView? { 9 | return views.sorted(by: { $0.superview?.subviews.firstIndex(of: $0) ?? 0 > $1.superview?.subviews.firstIndex(of: $1) ?? 0 }).first 10 | } 11 | /** 12 | * Return the front most view 13 | * - Fixme: ⚠️️ make this T where T is NSView etc 14 | */ 15 | public static func frontMostView(parent: NSView) -> NSView? { 16 | return DepthParser.frontMostView(views: parent.subviews) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/slider/util/interactive/InteractiveView+Core.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | //⚠️️ could be useful in the future, if you need overridng abilities 3 | //extension InteractiveView{ 4 | // /** 5 | // * onDown 6 | // */ 7 | // func onDown(_ point:CGPoint){ 8 | // Swift.print("InteractiveView.onDown \(point) 👇") 9 | // 10 | // } 11 | // /** 12 | // * onUp 13 | // */ 14 | // func onUp(_ point:CGPoint){ 15 | // Swift.print("InteractiveView.onUp \(point) 👆") 16 | // 17 | // } 18 | // /** 19 | // * onMove 20 | // */ 21 | // func onMove(_ point:CGPoint){ 22 | // Swift.print("InteractiveView.onMove \(point)") 23 | // 24 | // } 25 | //} 26 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/button/Button+Const.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Const 4 | */ 5 | extension Button { 6 | //Default closure 7 | public static let defaultUpInside: UpInsideCallBack = {} 8 | public static let defaultUpOutside: UpOutsideCallBack = {} 9 | public static let defaultUp: UpCallBack = {} 10 | public static let defaultDown: DownCallBack = {} 11 | #if os(macOS) 12 | public static let defaultOver: OverCallBack = {} 13 | public static let defaultOut: OutCallBack = {} 14 | #endif 15 | /*Style*/ 16 | public static let defaultStyle: Style = (.white, .black, 1, false) 17 | public static let alternateStyle: Style = (.black, .white, 1, false) 18 | } 19 | -------------------------------------------------------------------------------- /src/easing/EasingEquation.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * - Parameters: 4 | * - t: time (current frame) this can also be actual time 5 | * - b: begin (the value it is at the begining) 6 | * - c: change (end value - begining value) sort of the amount to change, this can also be described as the difference between two values 7 | * - d: duration (total frames in anim) this can also be actual time 8 | * - Fixme: ⚠️️ Complete the: Elastic, Circular, Back, bounce, Quibic +++ 9 | * - Note: robertpenner.com has lots of tutorials and pdfs on how easing works 10 | */ 11 | public typealias EasingEquation = (_ t: CGFloat, _ b: CGFloat, _ c: CGFloat, _ d: CGFloat) -> CGFloat // Easing equation signature 12 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/MainVC+Create.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Spatial 3 | /** 4 | * Create 5 | */ 6 | extension MainVC { 7 | /** 8 | * Creates main view 9 | */ 10 | func createMainView() -> MainView { 11 | let view: MainView = .init() 12 | self.view.addSubview(view) 13 | view.anchorAndSize(to: self.view) 14 | return view 15 | } 16 | /** 17 | * Creates animation test view 18 | */ 19 | func createAnimTestView() -> AnimationTest { 20 | let view: AnimationTest = .init(frame: .init(origin: .zero, size: .zero)) 21 | self.view.addSubview(view) 22 | view.anchorAndSize(to: self.view) 23 | return view 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/common/Extension.swift: -------------------------------------------------------------------------------- 1 | import UIKit.UIColor 2 | 3 | extension UIColor { 4 | /** 5 | * EXAMPLE: let color = UIColor(hex: "ff0000") 6 | */ 7 | internal convenience init(hex: String) { 8 | let scanner = Scanner(string: hex) 9 | scanner.scanLocation = 0 10 | var rgbValue: UInt64 = 0 11 | scanner.scanHexInt64(&rgbValue) 12 | let red = (rgbValue & 0xff0000) >> 16 13 | let green = (rgbValue & 0xff00) >> 8 14 | let blue = rgbValue & 0xff 15 | self.init( 16 | red: CGFloat(red) / 0xff, 17 | green: CGFloat(green) / 0xff, 18 | blue: CGFloat(blue) / 0xff, 19 | alpha: 1 20 | ) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /AnimKitExample.xcodeproj/project.xcworkspace/xcuserdata/eon.xcuserdatad/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildLocationStyle 6 | UseAppPreferences 7 | CustomBuildLocationType 8 | RelativeToDerivedData 9 | DerivedDataLocationStyle 10 | Default 11 | EnabledFullIndexStoreVisibility 12 | 13 | IssueFilterStyle 14 | ShowActiveSchemeOnly 15 | LiveSourceIssuesEnabled 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/common/roundedrect/RoundedRect.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Decorator over CGRect 4 | * - Fixme: ⚠️️ create an init method with one param, that are used for all params 5 | */ 6 | public struct RoundedRect { 7 | public var rect: CGRect 8 | public var fillet: CGFloat 9 | public init(rect: CGRect = .zero, fillet: CGFloat = .zero) { 10 | self.rect = rect 11 | self.fillet = fillet 12 | } 13 | } 14 | extension RoundedRect { 15 | public var origin: CGPoint { get { return rect.origin } set { rect.origin = newValue } } 16 | public var size: CGSize { get { return rect.size } set { rect.size = newValue } } 17 | public static var zero: RoundedRect = .init(rect: .zero, fillet: .zero) 18 | } 19 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/MainVC+Create.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Spatial 3 | /** 4 | * Create 5 | */ 6 | extension MainVC { 7 | /** 8 | * Creates main view 9 | */ 10 | func createMainView() -> MainView { 11 | let view: MainView = .init() 12 | self.view.addSubview(view) 13 | view.anchorAndSize(to: self.view) 14 | return view 15 | } 16 | /** 17 | * Creates animation test view 18 | */ 19 | func createAnimTestView() -> AnimationTest { 20 | let view: AnimationTest = .init(frame: .init(origin: .zero, size: .zero)) 21 | self.view.addSubview(view) 22 | view.anchorAndSize(to: self.view) 23 | return view 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/table/cell/match/MatchCell.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | class MatchCell: BaseCell { 4 | lazy var homeTeamLabel: UILabel = createHomeTeamLabel() 5 | lazy var awayTeamLable: UILabel = createAwayTeamLabel() 6 | lazy var dateLabel: UILabel = createDateLabel() 7 | /** 8 | * When you set the data, the diferent UI's will be updated 9 | */ 10 | override var data: CellDataKind? { 11 | didSet { 12 | guard let data: MatchCellData = data as? MatchCellData else { fatalError("data not avaiable") } 13 | homeTeamLabel.text = data.homeTeam 14 | awayTeamLable.text = data.awayTeam 15 | dateLabel.text = data.date //update ui 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/common/Extension.swift: -------------------------------------------------------------------------------- 1 | import UIKit.UIColor 2 | 3 | extension UIColor { 4 | /** 5 | * EXAMPLE: let color = UIColor(hex: "ff0000") 6 | */ 7 | internal convenience init(hex: String) { 8 | let scanner = Scanner(string: hex) 9 | scanner.scanLocation = 0 10 | var rgbValue: UInt64 = 0 11 | scanner.scanHexInt64(&rgbValue) 12 | let red = (rgbValue & 0xff0000) >> 16 13 | let green = (rgbValue & 0xff00) >> 8 14 | let blue = rgbValue & 0xff 15 | self.init( 16 | red: CGFloat(red) / 0xff, 17 | green: CGFloat(green) / 0xff, 18 | blue: CGFloat(blue) / 0xff, 19 | alpha: 1 20 | ) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/common/hybrid/label/VerticallyAlignedTextFieldCell.swift: -------------------------------------------------------------------------------- 1 | #if os(macOS) 2 | import Cocoa 3 | 4 | class VerticallyAlignedTextFieldCell: NSTextFieldCell { 5 | let textHeight: CGFloat 6 | init(textHeight: CGFloat, textCell string: String) { 7 | self.textHeight = textHeight 8 | super.init(textCell: string) 9 | } 10 | required init(coder: NSCoder) { 11 | fatalError("init(coder:) has not been implemented") 12 | } 13 | override func drawingRect(forBounds rect: NSRect) -> NSRect { 14 | let newRect = NSRect(x: 0, y: (rect.size.height - textHeight) / 2, width: rect.size.width, height: rect.size.height) 15 | return super.drawingRect(forBounds: newRect) 16 | } 17 | } 18 | #endif 19 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/select/switch/Switch+Core.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | #if os(iOS) 3 | import Spatial 4 | #elseif os(macOS) 5 | import Spatial_macOS 6 | #endif 7 | 8 | extension Switch { 9 | /** 10 | * Change foreground 11 | */ 12 | func toggleForegroundPosition() { 13 | // Swift.print("toggleForeground") 14 | let alignment: Alignment = selected ? .topRight : .topLeft 15 | let offset: CGPoint = selected ? .init(x: -4, y: 4) : .init(x: 4, y: 4) 16 | // Swift.print("alignment: \(alignment)") 17 | if let anchor = foreground.anchor { NSLayoutConstraint.deactivate([anchor.x, anchor.y]) } 18 | foreground.applyAnchor(to: self, align: alignment, alignTo: alignment, offset: offset) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/animation/loop/LoopAnimator+Core.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Core 4 | */ 5 | extension LoopAnimator { 6 | /** 7 | * Fires on every frame tick 8 | */ 9 | override func onFrameTick() { 10 | let val: CGFloat = easing(currentFrameCount, from, to - from, framesToEnd) 11 | onFrame(val) // call the FrameTick method 12 | if currentFrameCount >= framesToEnd { 13 | self.currentFrameCount = 0 // Reset 14 | if curRepeatCount >= repeatCount { // The loop ended 15 | curRepeatCount = 0 // Reset 16 | stop() // Stop animation 17 | completed() 18 | } 19 | curRepeatCount += 1 20 | } 21 | self.currentFrameCount += 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /AnimKitExample/peekandpop/button/modal/force/ForceButton+Enum.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Enum, type 4 | */ 5 | extension ForceButton { 6 | /** 7 | * Stages 8 | */ 9 | public enum Stage: Int { // case none 10 | case clickDown // from noStage to clickStage 11 | case deepClickDown // from clickStage to deepClickStage 12 | case clickUp // from clickStage to noStage 13 | case deepClickUp // from deepStage to clickStage 14 | } 15 | public enum Depth: Int { 16 | case idle // all force before 0.33 of pressure 17 | case click // it has detected a click and is moving between 0.33 and 0.66 of pressure 18 | case deepClick // it has deteted a deep click and is moving between 0.66 and 1.0 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/table/cell/match/MatchCell.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | class MatchCell: BaseCell { 4 | lazy var homeTeamLabel: UILabel = createHomeTeamLabel() 5 | lazy var awayTeamLable: UILabel = createAwayTeamLabel() 6 | lazy var dateLabel: UILabel = createDateLabel() 7 | /** 8 | * When you set the data, the diferent UI's will be updated 9 | */ 10 | override var data: CellDataKind? { 11 | didSet { 12 | guard let data: MatchCellData = data as? MatchCellData else { fatalError("data not avaiable") } 13 | homeTeamLabel.text = data.homeTeam 14 | awayTeamLable.text = data.awayTeam 15 | dateLabel.text = data.date //update ui 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/table/cell/input/InputTextCell.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | /** 3 | * Provides a way to show a DescriptionLabel and and InputTextField in a TableCell 4 | */ 5 | class InputTextCell: BaseCell { 6 | lazy var descLabel: UILabel = createDescLabel() 7 | lazy var inputTextField: UITextField = createInputTextField() 8 | /** 9 | * When you set the data, the diferent UI's will be updated 10 | */ 11 | override var data: CellDataKind? { 12 | didSet { 13 | guard let data: LeagueCellData = data as? LeagueCellData else { fatalError("data not avaiable") } 14 | descLabel.text = data.placement // update ui 15 | inputTextField.text = data.team 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /AnimKitExample/peekandpop/button/dismiss/DismissButton.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import Hybrid_macOS 3 | import AnimKit 4 | /** 5 | * Fixme: ⚠️️ add dismiss anim when leave deep-click-mode 6 | */ 7 | class DismissButton: TextButton { 8 | /** 9 | * The animator 10 | */ 11 | lazy var animator: Easer = .init(.init(DismissButton.hidden.origin.y), CGFloat.defaultEasing, onFrameTick) 12 | override init(text: String = "Default", style: TextButton.TextButtonStyle = defaultTextButtonStyle, frame: CGRect = .zero) { 13 | super.init(text: text, style: style, frame: frame) 14 | } 15 | /** 16 | * Boilerplate 17 | */ 18 | required init?(coder aDecoder: NSCoder) { 19 | fatalError("init(coder:) has not been implemented") 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/common/ViewSugar.swift: -------------------------------------------------------------------------------- 1 | import QuartzCore 2 | /** 3 | * Disable implicit animation 4 | * - Fixme: ⚠️️ Figure out how to disaple auto anim in NSViews i think it's: layer.actions = ["sublayers":NSNull()] see: https://stackoverflow.com/questions/5833488/how-to-disable-calayer-implicit-animations/43560444#43560444 and: https://stackoverflow.com/questions/2244147/disabling-implicit-animations-in-calayer-setneedsdisplayinrect?rq=1 5 | * ## Examples: 6 | * disableAnim { view.isHidden = true } // Default animation is now disabled, Basically whatever you put inside the closure is not animated 7 | */ 8 | public func disableAnim(_ closure: () -> Void) { 9 | CATransaction.begin() 10 | CATransaction.setDisableActions(true) 11 | closure() 12 | CATransaction.commit() 13 | } 14 | -------------------------------------------------------------------------------- /Carthage/Build/iOS/With.framework.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.futurelab.github.io.With 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleVersion 18 | 1 19 | 20 | 21 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/spinner/stepper/button/MinusButton.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | public class MinusButton: Button { 4 | /** 5 | * Draw 1 line 6 | * - Note: we draw graphics here because it's the only pace where .frame is available when using auto layout 7 | */ 8 | override public func drawLayout() { 9 | super.drawLayout() 10 | let r: CGFloat = self.frame.size.width 11 | let line1: CAShapeLayer = { 12 | let p1: CGPoint = .init(x: r / 4, y: r / 2) 13 | let p2: CGPoint = .init(x: r - (r / 4), y: (r / 2)) 14 | let line = CGShapeUtil.drawLine(lineLayer: .init(), line: (p1, p2), lineStyle: (self.borderColor, 1)) 15 | return line 16 | }() 17 | self.caLayer?.addSublayer(line1) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/easing/Easing.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | public class Easing { 4 | public static var back: Back.Type { return Back.self } 5 | public static var bounce: Bounce.Type { return Bounce.self } 6 | public static var circ: Circ.Type { return Circ.self } 7 | public static var cubic: Cubic.Type { return Cubic.self } 8 | public static var elastic: Elastic.Type { return Elastic.self } 9 | public static var expo: Expo.Type { return Expo.self } 10 | public static var linear: Linear.Type { return Linear.self } 11 | public static var quad: Quad.Type { return Quad.self } 12 | public static var quart: Quart.Type { return Quart.self } 13 | public static var quint: Quint.Type { return Quint.self } 14 | public static var sine: Sine.Type { return Sine.self } 15 | } 16 | -------------------------------------------------------------------------------- /Carthage/Build/iOS/Spatial.framework.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.io.github.futurelab.Spatial 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleVersion 18 | 1 19 | 20 | 21 | -------------------------------------------------------------------------------- /Carthage/Build/Mac/With_mac.framework.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.io.github.futurelab.With-mac 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleVersion 18 | 1 19 | 20 | 21 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/table/cell/input/InputTextCell.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | /** 3 | * Provides a way to show a DescriptionLabel and and InputTextField in a TableCell 4 | */ 5 | class InputTextCell: BaseCell { 6 | lazy var descLabel: UILabel = createDescLabel() 7 | lazy var inputTextField: UITextField = createInputTextField() 8 | /** 9 | * When you set the data, the diferent UI's will be updated 10 | */ 11 | override var data: CellDataKind? { 12 | didSet { 13 | guard let data: LeagueCellData = data as? LeagueCellData else { fatalError("data not avaiable") } 14 | descLabel.text = data.placement // update ui 15 | inputTextField.text = data.team 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Carthage/Build/Mac/Hybrid_macOS.framework.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.io.github.futurelab.Hybrid-macOS 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleVersion 18 | 1 19 | 20 | 21 | -------------------------------------------------------------------------------- /Carthage/Build/iOS/Hybrid_iOS.framework.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.io.github.futurelab.Hybrid-iOS 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleVersion 18 | 1 19 | 20 | 21 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/main/MainView.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | class MainView: UIView { 4 | lazy var cardView: CardView = createCardView() 5 | lazy var spacingTestView: UIView = createSpacingTestView() 6 | lazy var minMaxTestView: UIView = createMinMaxView() 7 | lazy var testView: UIView = createTestView() 8 | lazy var tableTestView: UIView = createTableView() 9 | override init(frame: CGRect) { 10 | super.init(frame: frame) 11 | //_ = minMaxTestView 12 | _ = tableTestView 13 | //_ = testView 14 | } 15 | /** 16 | * Boilerplate 17 | */ 18 | @available(*, unavailable) 19 | required init?(coder aDecoder: NSCoder) { 20 | fatalError("init(coder:) has not been implemented") 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Carthage/Build/Mac/Spatial_macOS.framework.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.io.github.futurelab.Spatial-macOS 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleVersion 18 | 1 19 | 20 | 21 | -------------------------------------------------------------------------------- /Carthage/Checkouts/With/Carthage/Build/iOS/With.framework.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.futurelab.github.io.With 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleVersion 18 | 1 19 | 20 | 21 | -------------------------------------------------------------------------------- /Carthage/Checkouts/With/src/With.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | @discardableResult/*👈 Avoids xcode compiler warnings if result is not used*/ 3 | /** 4 | * ## Examples: 5 | * let rectangle = with(CGRect.init(x: 0, y: 0, width: 100, height: 100)) { 6 | * $0 = $0.offsetBy(dx: 20, dy: 20) 7 | * $0 = $0.insetBy(dx: 10, dy: 10) 8 | * } 9 | * Swift.print(rectangle)// X:30.0, y:30.0, width:80.0, height:80.0 10 | * 11 | * EXAMPLE 2: 12 | * let color = with(UIColor.init(red: 50, green: 100, blue: 0, alpha: 0.9)) { ( col:inout UIColor) -> Void in 13 | * col = col.withAlphaComponent(0.2) 14 | * } 15 | * Swift.print(color.cgColor.alpha)//0.2 16 | */ 17 | public func with(_ item: T, update: (inout T) throws -> Void) rethrows -> T { 18 | var item = item 19 | try update(&item) 20 | return item 21 | } 22 | -------------------------------------------------------------------------------- /Carthage/Checkouts/With/WithExample.xcodeproj/xcuserdata/andre.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | With.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 0 11 | 12 | WithExample.xcscheme_^#shared#^_ 13 | 14 | orderHint 15 | 1 16 | 17 | 18 | SuppressBuildableAutocreation 19 | 20 | 6533532A21B6723B0056BB34 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Spatial.xcodeproj/xcuserdata/andre.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | Spatial.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 0 11 | 12 | SpatialExample.xcscheme_^#shared#^_ 13 | 14 | orderHint 15 | 1 16 | 17 | 18 | SuppressBuildableAutocreation 19 | 20 | F1D369E52171FDAE00F498FA 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /AnimKitIOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/physics/mover/Mover.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | public class Mover: FrameAnimator { 4 | public var value: CGFloat = 0 5 | var velocity: CGFloat 6 | var callBack: FrameTick 7 | /** 8 | * - Parameters: 9 | * - value: the value that should be applied to the target 10 | * - velocity: The amount increased on each frame-tick of the animation 11 | * - callback: the closure method that is called on every "frame-tick" and changes the property, you can use a var closure or a regular method, probably even an inline closure 12 | */ 13 | init(_ animatable: AnimProxyKind, _ callBack:@escaping FrameTick, _ value: CGFloat, _ velocity: CGFloat = 0) { 14 | self.value = value 15 | self.velocity = velocity 16 | self.callBack = callBack 17 | super.init(animatable) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.futurelab.github.io.With 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleVersion 18 | 1 19 | 20 | 21 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.futurelab.github.io.With 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleVersion 18 | 1 19 | 20 | 21 | -------------------------------------------------------------------------------- /AnimKitExample/elasticTest/View+Elastic.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import AnimKit 3 | import Hybrid_macOS 4 | 5 | extension ElasticTestView { 6 | /** 7 | * Elastic test 8 | */ 9 | func elasticTest() { 10 | let rect: CGRect = .init(origin: .zero, size: .init(width: 100, height: 100)) 11 | let box: Thumb = .init(frame: rect) 12 | box.caLayer?.backgroundColor = Color.black.cgColor 13 | box.onMove = self.onMove 14 | addSubview(box) 15 | } 16 | func onMove(p: CGPoint) { 17 | Swift.print("p: \(p)") 18 | } 19 | } 20 | 21 | // let animator: Animator = .init() 22 | // animator.onFrame = { progress in Swift.print("onFrame"); disableAnim { box.frame.origin.x = 100 * progress } } 23 | // animator.completed = { Swift.print("Animation completed ✅") } 24 | // animator.start() 25 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/src/With.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | @discardableResult/*👈 Avoids xcode compiler warnings if result is not used*/ 3 | /** 4 | * ## Examples: 5 | * let rectangle = with(CGRect.init(x: 0, y: 0, width: 100, height: 100)) { 6 | * $0 = $0.offsetBy(dx: 20, dy: 20) 7 | * $0 = $0.insetBy(dx: 10, dy: 10) 8 | * } 9 | * Swift.print(rectangle)// X:30.0, y:30.0, width:80.0, height:80.0 10 | * 11 | * EXAMPLE 2: 12 | * let color = with(UIColor.init(red: 50, green: 100, blue: 0, alpha: 0.9)) { ( col:inout UIColor) -> Void in 13 | * col = col.withAlphaComponent(0.2) 14 | * } 15 | * Swift.print(color.cgColor.alpha)//0.2 16 | */ 17 | public func with(_ item: T, update: (inout T) throws -> Void) rethrows -> T { 18 | var item = item 19 | try update(&item) 20 | return item 21 | } 22 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/WithExample.xcodeproj/xcuserdata/andre.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | With.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 0 11 | 12 | WithExample.xcscheme_^#shared#^_ 13 | 14 | orderHint 15 | 1 16 | 17 | 18 | SuppressBuildableAutocreation 19 | 20 | 6533532A21B6723B0056BB34 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Carthage/Checkouts/With/WithExample.xcodeproj/xcuserdata/andre.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | With.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 0 11 | 12 | WithExample.xcscheme_^#shared#^_ 13 | 14 | orderHint 15 | 1 16 | 17 | 18 | SuppressBuildableAutocreation 19 | 20 | 6533532A21B6723B0056BB34 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Carthage/Checkouts/With/src/With.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | @discardableResult/*👈 Avoids xcode compiler warnings if result is not used*/ 3 | /** 4 | * ## Examples: 5 | * let rectangle = with(CGRect.init(x: 0, y: 0, width: 100, height: 100)) { 6 | * $0 = $0.offsetBy(dx: 20, dy: 20) 7 | * $0 = $0.insetBy(dx: 10, dy: 10) 8 | * } 9 | * Swift.print(rectangle)// X:30.0, y:30.0, width:80.0, height:80.0 10 | * 11 | * EXAMPLE 2: 12 | * let color = with(UIColor.init(red: 50, green: 100, blue: 0, alpha: 0.9)) { ( col:inout UIColor) -> Void in 13 | * col = col.withAlphaComponent(0.2) 14 | * } 15 | * Swift.print(color.cgColor.alpha)//0.2 16 | */ 17 | public func with(_ item: T, update: (inout T) throws -> Void) rethrows -> T { 18 | var item = item 19 | try update(&item) 20 | return item 21 | } 22 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Spatial.xcodeproj/xcuserdata/andre.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | Spatial.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 0 11 | 12 | SpatialExample.xcscheme_^#shared#^_ 13 | 14 | orderHint 15 | 1 16 | 17 | 18 | SuppressBuildableAutocreation 19 | 20 | F1D369E52171FDAE00F498FA 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/slider/util/Thumb.swift: -------------------------------------------------------------------------------- 1 | #if os(iOS) 2 | import Spatial 3 | import UIKit 4 | #elseif os(macOS) 5 | import Spatial_macOS 6 | import Cocoa 7 | #endif 8 | 9 | open class Thumb: InteractiveView, ConstraintKind { 10 | #if os(iOS) 11 | /** 12 | * Thouch moved 13 | */ 14 | override open func touchesMoved(_ touches: Set, with event: UIEvent?) { 15 | if let touch = touches.first /* touch.view == self*/ { 16 | let touchPoint = touch.location(in: self.superview) 17 | onMove(touchPoint) 18 | } 19 | } 20 | #elseif os(macOS) 21 | /** 22 | * Mouse dragged 23 | */ 24 | override open func mouseDragged(with event: NSEvent) { 25 | let p: CGPoint = self.superview!.convert(event.locationInWindow, from: nil) 26 | onMove(p) 27 | } 28 | #endif 29 | } 30 | -------------------------------------------------------------------------------- /Carthage/Checkouts/With/With/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | 22 | 23 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Spatial/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | 22 | 23 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Hybrid-iOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | 22 | 23 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/select/selectbutton/SelectButton.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | open class SelectButton: Button, Selectable { 4 | internal var styles: Styles 5 | open var selected: Bool { 6 | didSet { 7 | self.style = selected ? styles.active : styles.inActive 8 | } 9 | } 10 | public init(selected: Bool = false, styles: Styles = defaultStyles, frame: CGRect = .zero) { 11 | self.styles = styles 12 | self.selected = selected 13 | let style: Style = selected ? styles.active : styles.inActive 14 | super.init(style: style, frame: frame) 15 | _ = { self.selected = self.selected }()/*hack*/ 16 | } 17 | /** 18 | * Boilerplate 19 | */ 20 | public required init?(coder aDecoder: NSCoder) { 21 | fatalError("init(coder:) has not been implemented") 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /AnimKitExampleIOS/peekandpop/PeakAndPopView.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Hybrid_iOS 3 | 4 | class PeekAndPopView: UIView { 5 | lazy var firstButton: ModalButton = createModalButton(btn: FirstButton()) 6 | lazy var secondButton: ModalButton = createModalButton(btn: SecondButton()) 7 | lazy var thirdButton: ModalButton = createModalButton(btn: ThirdButton()) 8 | lazy var promptButton: PromptButton = createPromptButton() 9 | /** 10 | * Initiate 11 | */ 12 | init() { 13 | Swift.print("PeekAndPopView.init()") 14 | super.init(frame: .zero) 15 | _ = firstButton 16 | _ = secondButton 17 | _ = thirdButton 18 | _ = promptButton 19 | } 20 | /** 21 | * Boilerplate 22 | */ 23 | required init?(coder aDecoder: NSCoder) { 24 | fatalError("init(coder:) has not been implemented") 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/Carthage/Build/iOS/With.framework.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.futurelab.github.io.With 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleVersion 18 | 1 19 | 20 | 21 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/src/With.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | @discardableResult/*👈 Avoids xcode compiler warnings if result is not used*/ 3 | /** 4 | * ## Examples: 5 | * let rectangle = with(CGRect.init(x: 0, y: 0, width: 100, height: 100)) { 6 | * $0 = $0.offsetBy(dx: 20, dy: 20) 7 | * $0 = $0.insetBy(dx: 10, dy: 10) 8 | * } 9 | * Swift.print(rectangle)// X:30.0, y:30.0, width:80.0, height:80.0 10 | * 11 | * EXAMPLE 2: 12 | * let color = with(UIColor.init(red: 50, green: 100, blue: 0, alpha: 0.9)) { ( col:inout UIColor) -> Void in 13 | * col = col.withAlphaComponent(0.2) 14 | * } 15 | * Swift.print(color.cgColor.alpha)//0.2 16 | */ 17 | public func with(_ item: T, update: (inout T) throws -> Void) rethrows -> T { 18 | var item = item 19 | try update(&item) 20 | return item 21 | } 22 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/main/card/content/middle/itemView/ItemView+Create.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Spatial 3 | 4 | extension ItemView { 5 | /** 6 | * Creates horizontal items 7 | */ 8 | func createHorizontalItems() -> [UIView] { 9 | let size: CGSize = .init(width: 48, height: 48) 10 | let views: [UIView] = [UIColor.purple, .orange, .red, .blue].map { 11 | let view: UIView = .init(frame: .zero) 12 | self.addSubview(view) 13 | view.backgroundColor = $0 14 | return view 15 | } 16 | views.activateAnchorsAndSizes { views in 17 | let anchors = Constraint.distribute(horizontally: views, align: .centerLeft) 18 | let sizes = views.map { Constraint.size($0, size: size) } 19 | return (anchors, sizes) 20 | } 21 | return views 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/WithExample.xcodeproj/xcuserdata/andre.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | With.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 0 11 | 12 | WithExample.xcscheme_^#shared#^_ 13 | 14 | orderHint 15 | 1 16 | 17 | 18 | SuppressBuildableAutocreation 19 | 20 | 6533532A21B6723B0056BB34 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/With/With/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | 22 | 23 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Carthage/Checkouts/With/With/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | 22 | 23 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Spatial/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | 22 | 23 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/common/hybrid/label/NSLabel.swift: -------------------------------------------------------------------------------- 1 | #if os(macOS) 2 | import Cocoa 3 | /** 4 | * Note: - use self.textColor to set text color 5 | */ 6 | open class NSLabel: NSTextField { 7 | override init(frame frameRect: NSRect) { 8 | super.init(frame: frameRect) 9 | self.isBezeled = false 10 | self.drawsBackground = false 11 | self.isEditable = false 12 | self.isSelectable = false 13 | } 14 | /** 15 | * Boilerplate 16 | */ 17 | public required init?(coder: NSCoder) { 18 | fatalError("init(coder:) has not been implemented") 19 | } 20 | // open override var cell: NSCell? {get{Swift.print("cell");return super.cell}set{super.cell = newValue}} 21 | // open override func drawCell(_ cell: NSCell) { 22 | // Swift.print("drawCell") 23 | // super.drawCell(cell) 24 | // } 25 | } 26 | #endif 27 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/main/MainView.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | class MainView: UIView { 4 | lazy var cardView: CardView = createCardView() 5 | lazy var spacingTestView: UIView = createSpacingTestView() 6 | lazy var minMaxTestView: UIView = createMinMaxView() 7 | lazy var testView: UIView = createTestView() 8 | lazy var tableTestView: UIView = createTableView() 9 | lazy var sizeTestingView: SizeTestingView = createSizeTestingView() 10 | override init(frame: CGRect) { 11 | super.init(frame: frame) 12 | //_ = minMaxTestView 13 | // _ = tableTestView 14 | //_ = testView 15 | _ = sizeTestingView 16 | } 17 | /** 18 | * Boilerplate 19 | */ 20 | @available(*, unavailable) 21 | required init?(coder aDecoder: NSCoder) { 22 | fatalError("init(coder:) has not been implemented") 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/main/card/content/middle/itemView/ItemView+Create.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Spatial 3 | 4 | extension ItemView { 5 | /** 6 | * Creates horizontal items 7 | */ 8 | func createHorizontalItems() -> [UIView] { 9 | let size: CGSize = .init(width: 48, height: 48) 10 | let views: [UIView] = [UIColor.purple, .orange, .red, .blue].map { 11 | let view: UIView = .init(frame: .zero) 12 | self.addSubview(view) 13 | view.backgroundColor = $0 14 | return view 15 | } 16 | views.activateAnchorsAndSizes { views in 17 | let anchors = Constraint.distribute(horizontally: views, align: .centerLeft) 18 | let sizes = views.map { Constraint.size($0, size: size) } 19 | return (anchors, sizes) 20 | } 21 | return views 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/main/card/content/middle/MiddleContent+Create.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Spatial 3 | 4 | extension MiddleContent { 5 | /** 6 | * Create items 7 | */ 8 | func createItemViews() -> [ItemView] { 9 | let size: CGSize = .init(width: self.frame.width, height: 48) 10 | let itemViews: [ItemView] = (0..<5).map {_ in 11 | let itemView: ItemView = .init(frame: .zero) 12 | self.addSubview(itemView) 13 | return itemView 14 | } 15 | itemViews.activateAnchorsAndSizes { views in /*All vertically centered, 48p height each*/ 16 | let anchors = Constraint.distribute(vertically: views, align: .topLeft, spacing: 12, offset: 24) 17 | let sizes = views.map { Constraint.size($0, size: size) } 18 | return (anchors, sizes) 19 | } 20 | return itemViews 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Carthage/Checkouts/With/With/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | 22 | 23 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/spinner/stepper/Stepper.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * ## Examples: 4 | * let stepper:Stepper = .init() 5 | * view.addSubview(stepper) 6 | * stepper.onChange = {value in Swift.print("value: \(value)")} 7 | */ 8 | open class Stepper: View { 9 | public var onChange: OnChange = { _ in Swift.print("must be set by user") } 10 | lazy var plusButton: Button = createPlusButton() 11 | lazy var minusButton: Button = createMinusButton() 12 | var initData: InitData 13 | public init(initData: InitData = Stepper.defaultData, frame: CGRect = .zero) { 14 | self.initData = initData 15 | super.init(frame: frame) 16 | _ = plusButton 17 | _ = minusButton 18 | } 19 | /** 20 | * Boilerplate 21 | */ 22 | public required init?(coder aDecoder: NSCoder) { 23 | fatalError("init(coder:) has not been implemented") 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/animation/frame/FrameAnimator.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * - Abstract: FrameAnimator serves as the Core Animator in this Animation library 4 | * - Fixme: ⚠️️⚠️️⚠️️ Make a local stopped flag, so you don't have to itrate animProxy.animations so many times 5 | * - Remark: We use NSObject in order to use @objc overriding in conjunction with extensions 6 | */ 7 | public class FrameAnimator: NSObject, FrameAnimatable { // Fixme: ⚠️️ Rename to FrameAnimator 8 | public var animProxy: AnimProxyKind // Reference to where the displayLink resides 9 | /** 10 | * - Parameter animatable: A reference to the AnimProxy singelton instance 11 | * - Fixme: ⚠️️ It's possible that we can just setup the sigelton as a lazy var, and not have to pass it in as a param 12 | */ 13 | public init(_ animatable: AnimProxyKind = AnimProxy.shared) { 14 | self.animProxy = animatable 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/SpatialExample/view/table/cell/BaseCell.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | class BaseCell: UITableViewCell { 4 | var data: CellDataKind?/*Stores cellData*/ 5 | /** 6 | * Init 7 | */ 8 | override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { 9 | super.init(style: style, reuseIdentifier: reuseIdentifier) 10 | self.selectionStyle = .none/*disables the selection highlighting*/ 11 | } 12 | /** 13 | * NOTE: If you're using Auto Layout, you'll need to subclass your UIView and call roundCorners in the view's layoutSubviews for optimal effect. 14 | */ 15 | override func layoutSubviews() { 16 | super.layoutSubviews() 17 | } 18 | /** 19 | * Boilerplate 20 | */ 21 | @available(*, unavailable) 22 | required init?(coder aDecoder: NSCoder) { 23 | fatalError("init(coder:) has not been implemented") 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/main/card/content/middle/MiddleContent+Create.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Spatial 3 | 4 | extension MiddleContent { 5 | /** 6 | * Create items 7 | */ 8 | func createItemViews() -> [ItemView] { 9 | let size: CGSize = .init(width: self.frame.width, height: 48) 10 | let itemViews: [ItemView] = (0..<5).map {_ in 11 | let itemView: ItemView = .init(frame: .zero) 12 | self.addSubview(itemView) 13 | return itemView 14 | } 15 | itemViews.activateAnchorsAndSizes { views in /*All vertically centered, 48p height each*/ 16 | let anchors = Constraint.distribute(vertically: views, align: .topLeft, spacing: 12, offset: 24) 17 | let sizes = views.map { Constraint.size($0, size: size) } 18 | return (anchors, sizes) 19 | } 20 | return itemViews 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /AnimKitExampleIOS/peekandpop/button/modal/modalbutton/ModalButton.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import UIKit 3 | import Hybrid_iOS 4 | import Spatial 5 | 6 | class ModalButton: ForceTouchButton { 7 | var factor: CGFloat { return 0 } 8 | var onDownYOffset: CGFloat = 0 9 | override init(style: Button.Style = Button.defaultStyle, frame: CGRect = .zero) { 10 | super.init(style: style, frame: frame) 11 | } 12 | /** 13 | * Boilerplate 14 | */ 15 | required init?(coder aDecoder: NSCoder) { 16 | fatalError("init(coder:) has not been implemented") 17 | } 18 | } 19 | /** 20 | * Helper 21 | */ 22 | extension ModalButton { 23 | /** 24 | * Called on each stage change 25 | */ 26 | func stageChange(curStage: ForceTouchButton.ForceTouchStage, prevStage: ForceTouchButton.ForceTouchStage) { 27 | Swift.print("stageChange curStage: \(curStage) prevStage: \(prevStage)") 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/select/special/SelectableTextButton.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | open class SelectableTextButton: TextButton, Selectable { 4 | internal var styles: Styles 5 | open var selected: Bool { 6 | didSet { 7 | self.textButtonStyle = selected ? styles.active : styles.inActive 8 | } 9 | } 10 | public init(selected: Bool = false, text: String = "Default", styles: Styles = defaultStyles, frame: CGRect = .zero) { 11 | self.styles = styles 12 | self.selected = selected 13 | let style: TextButtonStyle = selected ? styles.active : styles.inActive 14 | super.init(text: text, style: style, frame: frame) 15 | _ = { self.selected = self.selected }()/*hack*/ 16 | } 17 | /** 18 | * Boilerplate 19 | */ 20 | public required init?(coder aDecoder: NSCoder) { 21 | fatalError("init(coder:) has not been implemented") 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /AnimKitExampleIOS/peekandpop/button/modal/forcetouch/ForceTouchButton.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Hybrid_iOS 3 | import Spatial 4 | /** 5 | * Fixme: impliment a check for 3d touch: https://developer.apple.com/documentation/uikit/touches_presses_and_gestures/tracking_the_force_of_3d_touch_events/checking_the_availability_of_3d_touch 6 | */ 7 | public class ForceTouchButton: Button, ForceTouchButtonKind { 8 | var prevDepth: ForceTouchDepth = .idle 9 | override init(style: Button.Style = Button.defaultStyle, frame: CGRect = .zero) { 10 | super.init(style: style, frame: frame) 11 | } 12 | required init?(coder aDecoder: NSCoder) { 13 | fatalError("init(coder:) has not been implemented") 14 | } 15 | } 16 | 17 | // To check if there is forceTouch capability: 18 | 19 | // if( traitCollection.forceTouchCapability == .available) { 20 | // registerForPreviewing(with: self, sourceView: self) 21 | // } 22 | -------------------------------------------------------------------------------- /AnimKit/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | NSHumanReadableCopyright 22 | Copyright © 2019 FutureLab. All rights reserved. 23 | 24 | 25 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/SpatialExample/view/table/cell/BaseCell.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | class BaseCell: UITableViewCell { 4 | var data: CellDataKind?/*Stores cellData*/ 5 | /** 6 | * Init 7 | */ 8 | override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { 9 | super.init(style: style, reuseIdentifier: reuseIdentifier) 10 | self.selectionStyle = .none/*disables the selection highlighting*/ 11 | } 12 | /** 13 | * NOTE: If you're using Auto Layout, you'll need to subclass your UIView and call roundCorners in the view's layoutSubviews for optimal effect. 14 | */ 15 | override func layoutSubviews() { 16 | super.layoutSubviews() 17 | } 18 | /** 19 | * Boilerplate 20 | */ 21 | @available(*, unavailable) 22 | required init?(coder aDecoder: NSCoder) { 23 | fatalError("init(coder:) has not been implemented") 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Spatial/src/common/Hybrid.swift: -------------------------------------------------------------------------------- 1 | /** 2 | * - Abstract: this class makes Spatial work for iOS and macOS 3 | */ 4 | #if os(iOS) 5 | import UIKit 6 | public typealias View = UIView 7 | public typealias EdgeInsets = UIEdgeInsets 8 | #elseif os(macOS) 9 | import Cocoa 10 | public typealias View = NSView 11 | public typealias EdgeInsets = NSEdgeInsets 12 | #endif 13 | 14 | extension CGRect { 15 | /** 16 | * - Note: the insetBy is uniform like: NSRect.init(x: 0, y: 0, width: 100, height: 100).insetBy(dx: 10, dy: 10)//(10.0, 10.0, 80.0, 80.0) 17 | */ 18 | public func inset(by inset: EdgeInsets) -> CGRect { 19 | let x = self.origin.x + inset.left 20 | let y = self.origin.y + inset.top 21 | let width = self.size.width - inset.left - inset.right 22 | let height = self.size.height - inset.top - inset.bottom 23 | return .init(x: x, y: y, width: width, height: height) 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /AnimKitExample/elasticTest/ElasticView+Event.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | 3 | extension ElasticTestView { 4 | /** 5 | * OnMove 6 | */ 7 | func onMove(p: CGPoint) { 8 | // Swift.print("onMove.p: \(p)") 9 | // let p: CGPoint = self.convert((window?.mouseLocationOutsideOfEventStream)!, from: nil)//self.convert(event.locationInWindow, from: nil) 10 | let yOffset: CGFloat = p.y - onDownYOffset 11 | // rubberband.value = -yOffset 12 | // rubberband.updatePosition(true) 13 | // rubberband.start() 14 | animator.direct = true 15 | animator.setTargetValue(yOffset).start() 16 | } 17 | func onDown(p: CGPoint) { 18 | onDownYOffset = p.y 19 | } 20 | } 21 | extension ElasticTestView { 22 | /** 23 | * thumbFrameAnim 24 | */ 25 | func thumbFrameAnim(yValue: CGFloat) { 26 | // Swift.print("thumbFrameAnim.yValue: \(yValue)") 27 | thumb.frame.origin.y = yValue 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/src/button/text/TextButton+Create.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | #if os(iOS) 3 | import With 4 | import Spatial 5 | #elseif os(macOS) 6 | import With_mac 7 | import Spatial_macOS 8 | #endif 9 | 10 | /** 11 | * Create 12 | */ 13 | extension TextButton { 14 | /** 15 | * Create text label 16 | */ 17 | open func createTextLabel() -> Label { 18 | return with(.init()) { 19 | addSubview($0) 20 | $0.text = self.text 21 | $0.textColor = .orange 22 | // Swift.print("$0.textColor: \($0.textColor)") 23 | $0.textAlignment = .center 24 | $0.font = .systemFont(ofSize: 20) 25 | $0.centerVertically() 26 | $0.anchorAndSize(to: self ) 27 | #if os(macOS)//if applied in iOS the text becomes gray 28 | $0.isEnabled = false/*Disables interactivity, so that upInside callback works in macOS*/ 29 | #endif 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Spatial/src/align/alignment/Alignment+Extension.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Extension 4 | */ 5 | extension Alignment { 6 | /** 7 | * - Returns the horizontal type from the dual-axis type `Alignment` 8 | */ 9 | public var horAlign: HorizontalAlign { 10 | switch self { 11 | case .topLeft, .centerLeft, .bottomLeft: return .left 12 | case .topRight, .bottomRight, .centerRight: return .right 13 | case .bottomCenter, .topCenter, .centerCenter: return .centerX 14 | } 15 | } 16 | /** 17 | * - Returns the vertical type from the dual-axis type `Alignment` 18 | */ 19 | public var verAlign: VerticalAlign { 20 | switch self { 21 | case .topRight, .topCenter, .topLeft: return .top 22 | case .bottomCenter, .bottomRight, .bottomLeft: return .bottom 23 | case .centerRight, .centerLeft, .centerCenter: return .centerY 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Hybrid/Carthage/Checkouts/Spatial/Spatial/src/common/Hybrid.swift: -------------------------------------------------------------------------------- 1 | /** 2 | * - Abstract: this class makes Spatial work for iOS and macOS 3 | */ 4 | #if os(iOS) 5 | import UIKit 6 | public typealias View = UIView 7 | public typealias EdgeInsets = UIEdgeInsets 8 | #elseif os(macOS) 9 | import Cocoa 10 | public typealias View = NSView 11 | public typealias EdgeInsets = NSEdgeInsets 12 | #endif 13 | 14 | extension CGRect { 15 | /** 16 | * - Note: the insetBy is uniform like: NSRect.init(x: 0, y: 0, width: 100, height: 100).insetBy(dx: 10, dy: 10)//(10.0, 10.0, 80.0, 80.0) 17 | */ 18 | public func inset(by inset: EdgeInsets) -> CGRect { 19 | let x = self.origin.x + inset.left 20 | let y = self.origin.y + inset.top 21 | let width = self.size.width - inset.left - inset.right 22 | let height = self.size.height - inset.top - inset.bottom 23 | return .init(x: x, y: y, width: width, height: height) 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Carthage/Checkouts/Spatial/Spatial/src/type/ConstraintKind+Type.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | /** 3 | * Single 4 | */ 5 | extension ConstraintKind where Self: View { 6 | /** 7 | * Combinational types and closure signatures 8 | * - Note: This could be useful in a global domain, for now just access it by: ConstraintKind.UIViewConstraintKind 9 | */ 10 | public typealias ViewConstraintKind = View & ConstraintKind 11 | public typealias AnchorAndSize = (anchor: AnchorConstraint, size: SizeConstraint) 12 | } 13 | /** 14 | * Bulk 15 | */ 16 | extension Array where Element: ConstraintKind.ViewConstraintKind { 17 | public typealias AnchorAndSizeClosure = (_ views: [View]) -> AnchorConstraintsAndSizeConstraints 18 | public typealias SizesClosure = (_ views: [View]) -> [SizeConstraint] 19 | public typealias AnchorClosure = (_ views: [View]) -> [AnchorConstraint] 20 | public typealias AxisClosure = (_ views: [View]) -> [NSLayoutConstraint] 21 | } 22 | --------------------------------------------------------------------------------