* 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
The abundance of `@_spi(TokamakCore)` makes it harder to parse some of our code visually when skimming. I propose consistently moving attributes on declarations to separate lines. Here's an update to `.swiftformat` config with the new settings applied to the codebase.
* Tweak formatting rules
* Improve readability with newlines
* More newlines to visually separate declarations
* Fix build error caused by merge conflict
Co-authored-by: Carson Katri <Carson.katri@gmail.com>