Tokamak/Sources/TokamakCore/Modifiers
Carson Katri d78ab20ea8
Add `Layout` protocol for FiberReconciler (#498)
* Initial pass at Layout protocol implementation

* Move layout into a separate pass

* Split reconciler into separate FiberReconcilerPass-es

* Cleanup reconcile pass

* Simplify cache implementation

* Optimize array capacity and persist cache between runs

* Revert viewChildrenCount

* Improve accuracy of stack layout

* Try caching sizeThatFits

* Revise caching of sizeThatFits

* Cleanup layout files and split up

* Further cleanup

* Add ContainedZLayout

* Add frame layouts

* Add snapshots tests that compare against native SwiftUI

* Perform updates from the top of the view hierarchy for dynamic layout

* Add Package.swift

* Fix reconciler bug

* Add test case for reconciler insert bug

* Respect spacing preferences

* Revise cache and spacing logic to match SwiftUI default implementations

* Allow spacing changes based on adjacent View type

* Support view traits in FiberReconciler (and LayoutValueKey by extension)

* Propagate cache invalidation

* Cleanup attributes

* Simplify LayoutPass and improve accuracy

* Cleanup logs

* Add layoutPriority tests

* Revise conflict with main

* Dictionary performance catch

* Remove unneccesary capacity preservation

* Update TokamakCoreBenchmark to handle LayoutView addition at hierarchy root

* Implement AnyLayout and replace LayoutActions

* Allow VStack/HStack to be created without children

* Fix padding implementation

* Formatting fixes

* Space out ViewArguments.swift properties

* Add backing storage to LayoutSubview to move out of ReconcilePass and slightly optimize stack usage
2022-06-27 08:53:30 -04:00
..
Effects Tweak formatting rules for attributes (#492) 2022-05-31 08:18:53 +01:00
AppearanceActionModifier.swift Apply latest SwiftFormat 2020-11-09 12:27:17 +00:00
AspectRatioLayout.swift Tweak formatting rules for attributes (#492) 2022-05-31 08:18:53 +01:00
FlexFrameLayout.swift Animation implementation using the Web Animations API (#427) 2021-07-13 08:48:45 -04:00
FrameLayout.swift Animation implementation using the Web Animations API (#427) 2021-07-13 08:48:45 -04:00
HoverActionModifier.swift Initial implementation of `onHover` (#448) 2021-09-20 16:13:30 +01:00
LifecycleModifier.swift Add Canvas and TimelineView to DOM renderer (#449) 2021-09-28 10:27:35 -04:00
ModifiedContent.swift Tweak formatting rules for attributes (#492) 2022-05-31 08:18:53 +01:00
Navigation.swift Build and test with SwiftWasm 5.6 on CI (#475) 2022-04-08 21:36:52 +01:00
PaddingLayout.swift Animation implementation using the Web Animations API (#427) 2021-07-13 08:48:45 -04:00
RedactionReasons.swift Apply latest SwiftFormat 2020-11-09 12:27:17 +00:00
ShadowLayout.swift Animation implementation using the Web Animations API (#427) 2021-07-13 08:48:45 -04:00
StyleModifiers.swift Add `Layout` protocol for FiberReconciler (#498) 2022-06-27 08:53:30 -04:00
TaskModifier.swift Build and test with SwiftWasm 5.6 on CI (#475) 2022-04-08 21:36:52 +01:00
ViewModifier.swift Custom Layout Engine for Fiber Reconciler (#472) 2022-05-30 15:49:26 -04:00
ZIndexModifier.swift Add `_targetRef` and `_domRef` modifiers (#240) 2020-08-02 22:01:38 +01:00