Also add `UIView.animate` animation effect to example code. Also removes redundant `Updatable` protocol.
Resolves#49
* Define and set RefTarget in TokamakUIKit
* Add animation example
* Rename backgroundColor to currentColor
* Add comments to Animation example
* Rename StyleProps to ViewProps
* Init new argument order
* Init accessibility
* Add Accessibility.swift to project
* Sort Style init arguments
* Reorder arguments in Example
* Add Props init to StackView
* Fix arguments order in test
* Expose accessibility configuration on view props
* Rename ViewProps to StyleProps
This also cleans up and refines some of the `Example` code and removes unused `key` property from `AnyNode`, which greatly improves error-reporting of Swift type-checker when wrong props are passed to `node` function.
Resolves#10Resolves#9Resolves#16
* Add Ref class and RefComponent protocol
* Add AnyRef protocol, add ref to AnyNode.init
* Cleanup hooks, add Target class to Gluon module
* Fix tests, avoid optionality in Target class
* Improve doc comments on Hooks.effect overload
* Implement effects scheduling with finalizers
* Add HookedComponents protocol, Hooks as class
* Cleanup after rebased on `master`
* Fix tests failing after Hooks refactoring
* Remove `key` argument from AnyNode.init, cleanups
* Efficient Reduceable state fully working w/ tests
* Fix use of comments for Equatable AnyNode operator
* Cleanup comments in Hooks and MHC
* Add TimerCounter, fix host not unmounting children
* Rename Reduceable to Updatable, fix effects bugs
* Fix TestRenderer compilation issues
* Remove `print` remnants in Timer Example code
Turns out `.safeArea` auto layout constraints didn't work. This is now fixed, which allows cleaning up Example layout code.
Also, there's no easy way to implement `topLayoutGuide` and `bottomLayoutGuide` support for old versions of iOS that don't have `safeAreaLayoutGuide`. It's much easier to just drop iOS 10 or older ¯\_(ツ)_/¯
* Add {top,bottom}LayoutGuide constraints
* Fix .safeArea constraints, bump iOS requirements
This allows `ListView` components to handle selection of items. Example `TableModal` component was refined to demo the new property.
* Add onSelect parameter to ListView.Props
* Implemented `onSelected` prop, test in demo app