Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add style-properties.md doc * Add f32_max and f32_min functions to sys module * Add Grid variant to Display enum * Group FlexboxLayout properties by logical group * Add CSS Grid track definition properties * Add CSS Grid placement properties * WIP Grid data structures * Use separate enums for MinTrackSizingFunction and MaxTrackSizingFunction * More WIP Grid data structures * Update grid size estimates to resolve spans against the implicit grid estimates * Expand GridOccupancyMatrix when recording the positions of out of bounds grid items * Implement remainder of grid auto placement * Improve no_std/alloc compatibility * Make placement functions return placement spans rather than recording placement directly * Fix grid size estimation with negative coords + add tests for grid size estimation * Cargo fmt + comment updates * Add auto placement test + many auto placement fixes * Refactor placement test into a reusable test runner * Add test for definitely positioned items * Add placement test for column auto flow * Fix placement of oversized items + add test * Fix placement with secondary axis fixed + add test * Remove commented code to break infinite loop * Add test for dense packing algorithm * Add test for sparse packing algorithm * Fix alloc compatibility * Add comments main grid compute function * Add test for initialize_grid_tracks + fixes * Track sizing algorithm WIP * Fix style.rs tests * Move grid module to be a submodule of the compute module * Track sizing algo exploration * Reintroduce planned increase variables * Track sizing WIP * Factor common alignment logic into a function * Fix test generator to use correct name for TrackSizingFunction * Fix overzealous assertion in coordinate transformation code * Implement naive track sizing and alignment for fixed sized tracks * Grid: Add tests to cover fixed tracks/no free space case * Merge AlignContent with JustifyContent - Remove Default impl for the new type - Make style props take Option<AlignContent> rather than AlignContent * Test generator: add support for missing alignment/justify values * Add tests for grid track alignment * Merge AlignItems with AlignSelf. AlignSelf::Auto become Option::None * Make AlignItems optional. Remove align_self method from Style struct * Add justify_items and justify_self style properties * Rename FlexStart and FlexEnd alignment variants to Start and End * Implement item alignment for fixed sized and stretched grid items * Fix grid-{row,columns}-{start,end} support in generated tests * Fix sizing of fixed size items with stretch alignment * Add tests for grid item alignment * Add known size font + support for calculating content sizes to gentest JS script * Add MeasureFunc support to gentest script * Add support for content-sizing grid children * Add basic test for content-sized grid children * Gentest: fix generation of minmax() track sizing functions * Implement 11.6 "Maximise Tracks" * Add tests for fixed minmax() columns * Implement 11.8 "Stretch auto Tracks" * Add test for auto tracks * Treat text fixtures beginning with x as disabled tests * Implement 11.7. Expand Flexible Tracks * Add tests for basic fr expansion cases * Resolve container size before performing alignment * Implement Step 3.1 "intrinsic minimums" of 11.5 "Resolve Intrinsic Track Sizes" * Add tests for content sizing auto tracks * Add commented out second run through track sizing * Implement Step 3.2 "min/max-content" of 11.5. "Resolve Intrinsic Track Sizes" * Add test for content-sizing a min-content column * Move spanned track limit computation to method on GridItem * Implement Step 3.3 "max-content minimums" of 11.5. "Resolve Intrinsic Track Sizes" * Add test for max-content minimums * De-deduplicate distribute space up to limits logic * Implement Step 3.5 "max-content maximums" of 11.5. "Resolve Intrinsic Track Sizes" * Implement Step 3.4 "floor growth limit at base size" of 11.5. "Resolve Intrinsic Track Sizes" * Add test for content sized intrinsic max track sizing function column * Implement Step 3.6 "max-content maximums" of 11.5. "Resolve Intrinsic Track Sizes" * Add test for max-content max track sizing function column * Use planned_growth_limit_increase * Rename grid_fr_auto test to make name more unique * Add test for item that spans a min-content and flexible column * Pass correct to distribution function for max-content distribution * Fixes for sizing items crossing flex tracks Only distribute space from items crossing flex tracks to flex tracks * Add tests for flex tracks * Fix typo when passing inherent size for final placement * Add test where content sized width determines size of fr, but item doesn't end up spanning the entire width of the track * Reorganise grid module * Remove commented out code * Document grid style items * Remove track sizing debug logs * Remove track_sizing_algorithm_inner indirection * Extract 11.7 expand flexible tracks into it's own method * Extract 11.8 stretch auto tracks into it's own function * Extract 11.6 maximise tracks into it's own function * Extract 11.4. Initialize track sizes into it's own function * Split 11.5. resolve intrinsic track sizes into it's own function * Co-locate function for sub-steps with the main step function * Remove unused AvailableSpaceMode enum (this is now implemented using a closure) * Improve top level grid algorithm comments * Remove AvailableSpaceCache and uses * Remove unused populate_negative_grid_tracks function * Move item positioning logic to alignment module * Remove unused imports * Add grid styles to prelude * Remove unused parameters in flexbox module * Remove measure_node parameter from track_sizing_function * Remove unused TrackCounts code * Fix grid_item warnings * Remove GridAxisTracks struct * Clear up warnings in track_sizing module * Fix warnings in grid_track module * Document absolute axis get functions * Remove unused methods on CellOccupancyMatrix struct * Disable unused code warning for gutter alignment adjustment code * Remove 'static from generated measure funcs (clippy) * Remove unncessary spread defaults from generated tests (clippy) * Selected clippy auto-fixes * Pass immutable reference instead of mutable reference * Convert gentest script from json crate to serde_json * Fix clippy lints in gentest script * Add module documentation * Resolve clippy lints in style module * Document grid axis module * Rename GridAxis to AbstractAxis * Move axis module to top level of crate * Allow coordinate conversion function to be unused * Fix lints in placement module * Document coordinate transformation code * Document grid item module * Document track sizing module * Fix clippy lints in alignment module * Fix clippy lints in grid_track module * Document the explicit_grid module * Document the cell_occupancy module * Remove unused grid_axis_sum method * Convert track sizing functions to use LengthPercentage instead of Dimension * Remove unnecessary .into() calls * Split style module into multiple files * Implement content alignment adjustment for track sizing algorithm * Don't distribute maximum's space to growth limits for items crossing flex tracks * Implement FromPoints, TaffyZero, and TaffyAuto for track sizing functions * Hide grid implementation behind a feature flag 'experimental_grid' * Rename estimate_size module to implicit_grid * Convert TrackSizingFunction to MinMax struct + implement style helpers Style helpers: - percent - min_content - max_content - flex - minmax * Rename Dimension method get_absolute to into_option * Add support for repeat(auto-fill) * Add repeat(auto-fill) test for container with padding * Add support for repeat() track definitions to gentest script * Add simple generated test for repeat(auto-fill) * Move AvailableSpace to style module + implement style helpers for AvailableSpace * Rename as_options() method on Size<AvailableSpace> to into_options() * Collapse first and last tracks of the implicit grid * Add support for repeat(auto-fit) * Add support for fit-content() with pixel/points argument values * Fix typo in src/style/grid.rs Co-authored-by: Alice Cecile <[email protected]> * Add backticks src/style/grid.rs Co-authored-by: Alice Cecile <[email protected]> * Fix typo in src/style/grid.rs Co-authored-by: Alice Cecile <[email protected]> * Add backticks in src/style/grid.rs Co-authored-by: Alice Cecile <[email protected]> * Update style-properties.md * Add line breaks to doc comment in src/style/grid.rs Co-authored-by: Alice Cecile <[email protected]> * Document style helpers * Remove doc string from impl * Remove multiple blank lines * Fix track alignment for grid containers with padding and/or borders * Fix list blanks lines * Add cargo alias for generating tests * Exclude hermit-abi from duplicate dependency detection * Gitignore file names ending in -test-names.txt * Fix application of max-sizes to leaf nodes * Implement positioning for hidden/absolute grid items + perform recursive layout on all grid items * Add gentests for absolutely positioned grid children * Add test for hidden grid children * Add support for children with margins (fixed sized columns) * Add gentests for children with margins (fixed size columns) * Take margins into account when content sizing tracks * Add tests for intrinsically sized tracks containing children with margins * Pass stretch fit size as a known_dimension when laying out grid children * Use MaybeMath helpers in grid alignment * Fix running tests without experimental_grid feature * Don't enable experimental_grid feature by default for tests/examples * Allow test measure_func to be unused (depends on feature flags) * Run tests with and without experimental_grid feature in CI * Fix CSS Grid CI jobs * Add alignment style changes to release notes * Add style helpers for grid placement properties * Add grid_holy_grail example * Rename GridPlacement::Track to GridPlacement::Line * CSS Grid release notes WIP * Add supported properties to release notes * Fix table links * More release note rendering fixes * Split missing features in planned/not planned * Add links to CSS Grid learning resources * Link to grid example in release notes rather than including it inline * Bump header sizes * Add AvailableSpace module change to release notes * Improve documentation of grid styles * Fix benchmark compilation (failed due to Style no longer being Copy) * Update CONTRIBUTING guide to use cargo gentest * Rename CI tasks to stop github getting confused * Iterate over grid items and absolute/hidden children separately when performing final positioning * Fix typo where negative_implicit count was used to generate positive_implicit tracks * Add tests for out of flow items and positive implicit items * Improve debug tree printing (include node key + align output) * Remove completed TODO * Fix placement for items with a definite primary axis and indefinite secondary axis position * Add out of order items and implicit tracks tests * Enabled grid feature when running clippy in CI * Fix clippy lints with grid feature enabled Co-authored-by: Alice Cecile <[email protected]>
- Loading branch information