Commit Graph

2105 Commits

Author SHA1 Message Date
Nick Gerleman
47d34bd597 clang-format off 2022-10-14 08:31:33 -07:00
Nick Gerleman
3067175b64 h 2022-10-14 08:29:35 -07:00
Nick Gerleman
b288c14914 globstar 2022-10-14 08:27:31 -07:00
Nick Gerleman
54eed5d741 glob 2022-10-14 08:25:42 -07:00
Nick Gerleman
2a8e562791 case 2022-10-14 08:23:01 -07:00
Nick Gerleman
e4a306b4d7 yoga.cpp 2022-10-14 08:21:52 -07:00
Nick Gerleman
a23699d739 wut 2022-10-14 08:17:10 -07:00
Nick Gerleman
b34f44f4ec mess up the formatting 2022-10-14 08:13:23 -07:00
Nick Gerleman
ff5d29230e --dry-run 2022-10-14 08:09:29 -07:00
Nick Gerleman
bb6e6cbf56 . 2022-10-14 08:06:45 -07:00
Nick Gerleman
a6016c9567 google-java-format 2022-10-14 08:00:27 -07:00
Nick Gerleman
8c8ea5e6f0 . 2022-10-14 07:55:13 -07:00
Nick Gerleman
931cd34073 Add formating error 2022-10-14 07:49:34 -07:00
Nick Gerleman
ce1446e3bf . 2022-10-14 07:48:19 -07:00
Nick Gerleman
201dc80cf1 hyphen 2022-10-14 07:46:58 -07:00
Nick Gerleman
1e0971e986 workingDirectory 2022-10-14 07:44:37 -07:00
Nick Gerleman
7fc3a341fb wd 2022-10-14 07:43:30 -07:00
Nick Gerleman
018ebe3d37 format 2022-10-14 07:40:52 -07:00
Nick Gerleman
c3ac56e6ee cpp 2022-10-14 07:32:23 -07:00
Nick Gerleman
6168ad818e Apple 2022-10-14 07:26:16 -07:00
Nick Gerleman
55d614c4c2 WIP 2022-10-14 07:06:36 -07:00
Nick Gerleman
c2a0ccf0d4 Add tests for row-gap and column-gap
Summary:
This adds the fixtures from https://github.com/facebook/yoga/pull/1116 and generates tests.

This adds a good amount of coverage, but I plan to follow up with a diff adding a bit more, e.g. for interactions with flex direction of column when we should no-op, etc. I also discovered the current fixtures do not allow testing shorthand props like "gap" without changes.

This also updates the `webdrivers` gem to respond to a break with chromedriver on m1 macs from 4 days ago https://github.com/titusfortner/webdrivers/pull/239.

Reviewed By: yungsters

Differential Revision: D39922413

fbshipit-source-id: dfc7bda894be8dfcb24e25c19a4df0b09a72ce7e
2022-10-13 08:18:49 -07:00
Nick Gerleman
8e29e7c1e1 Teach test generator gap/row-gap/column-gap
Summary:
This adds mappings to the test generator to create the right language specific calls when an HTML fixture has gap properties.

Changelog:
[Internal][Added] - Teach yoga test generator gap/row-gap/column-gap

Reviewed By: javache

Differential Revision: D39922409

fbshipit-source-id: 5b905ed95ae64373d2c7d3bb1a03e94270bf209a
2022-10-13 08:18:49 -07:00
Nick Gerleman
f992e63ac5 Implement method bindings for gap/row-gap/column-gap
Summary:
This adds method bindings for `YGNodeStyleSetGap` and `YGNodeStyleGetGap`.

Changelog:
[Genral][Added] - Implement method bindings for yoga gap/row-gap/column-gap

Reviewed By: yungsters

Differential Revision: D39922411

fbshipit-source-id: 6cbb4d352203d2ec92df162c3f2f2efd02bd9568
2022-10-13 08:18:49 -07:00
Nick Gerleman
582533dbc6 Implement gap/row-gap/column-gap (within the C ABI)
Summary:
This extracts the core changes from https://github.com/facebook/yoga/pull/1116, to support gap/row-gap/column-gap, mostly identical, apart from the rename of gaps -> gutters.

The core functionality in this PR looks to be well tested from the fixtures added. I am not an expert in the internals of Yoga, but I am seeing everything that I would expect to. The space for the gap is accounted for in line-breaking, and the accumulated gaps limit the available line-length, before sizing flexible children, so items are sized correctly as to accommodate the gap. Then the gap is used for spacing during main axis and cross-axis justification.

Changelog:
[Genral][Added] - Implement gap/row-gap/column-gap (within the yoga C ABI)

Reviewed By: javache

Differential Revision: D39922410

fbshipit-source-id: 5850f22032169028bd8383b49dd240b335c11d3d
2022-10-13 08:18:49 -07:00
Dmitry Ivakhnenko
05dd228317 add setFlexBasisAuto (#1112)
Summary:
fix https://github.com/facebook/yoga/issues/766

is it possible to compile yoga and release the fix? Or javascript part of yoga is not maintained?

Pull Request resolved: https://github.com/facebook/yoga/pull/1112

Reviewed By: yungsters

Differential Revision: D40026371

Pulled By: NickGerleman

fbshipit-source-id: c2f3b18e2d3951338ce37cd3a319249996dd8a2e
2022-10-13 00:35:44 -07:00
simonla
1daed063f3 Fix memory leak (#1167)
Summary:
<img width="1126" alt="image" src="https://user-images.githubusercontent.com/14934570/195335369-e3fccde7-ff6c-4437-a261-7bc7435143c2.png">

`root_child0` be removed by`YGNodeRemoveChild(root, root_child0);`
so `YGNodeFreeRecursive(root);` can not free `root_child0`

Pull Request resolved: https://github.com/facebook/yoga/pull/1167

Reviewed By: NickGerleman, cipolleschi

Differential Revision: D40298891

Pulled By: motiz88

fbshipit-source-id: 251d3b3decfbd102372a7afeb2e95c907f96a980
2022-10-12 08:09:34 -07:00
Facebook Community Bot
260e60b4b1 Re-sync with internal repository (#1166)
Co-authored-by: Facebook Community Bot <6422482+facebook-github-bot@users.noreply.github.com>
2022-10-11 05:16:06 -07:00
Kinarobin
efdcfec88f Fix measure inner dimensions (#1114)
Summary:
`YGFloatIsUndefined(collectedFlexItemsValues.totalFlexGrowFactors) &&            collectedFlexItemsValues.totalFlexGrowFactors == 0`  is not reachable.

Pull Request resolved: https://github.com/facebook/yoga/pull/1114

Reviewed By: NickGerleman

Differential Revision: D40203817

Pulled By: NickGerleman

fbshipit-source-id: 46a8c19dc0e097f4c28e7f48135f0382a557764a
2022-10-11 03:38:35 -07:00
Nick Gerleman
48cbf3802e Remove YogaDev Workspace
Summary:
D14600002 (74202aecff) added an XCode workspace for Yoga, but it hasn't been updated along with source changes, and is no longer functional.

For OSS build we should probably instead be relying on [YogaKitSample](https://github.com/facebook/yoga/tree/main/YogaKit/YogaKitSample), which is generated to consume Yoga via its podspec. This is also broken, but there are PRs open which fix this, and it refects real OSS usage of Yoga better.

Reviewed By: javache

Differential Revision: D40169978

fbshipit-source-id: 27c2b011721ba22f9453704c3ca857bf2459ba6a
2022-10-10 21:40:20 -07:00
Nick Gerleman
94885d41f1 Remove Generated NDK Artifacts
Summary: These files are generated by Android Gradle Plugin doing the CMake build. Remove the generated files and add to the .gitignore (this looks to also be used by hg).

Reviewed By: javache

Differential Revision: D40169828

fbshipit-source-id: e0b7d907474aab5fcdb1a2ab33d46fdee6feed45
2022-10-10 21:40:08 -07:00
Chaiwat Ekkaewnumchai
a1ce49534d Add New Plugin for Layout Preview
Summary:
cute-jumper suggested the layout preview move out of fbandroid4idea plugin because
1. Litho layout preview requires Yoga library and Yoga native library, which requires bundling. Bundling isn't supported by fbandroid4idea, and changing the plugin would be complicated.
2. We have more control in releasing our features for layout preview in a separate plugin as opposed to in fbandroid4idea.

As a result, this diff creates a new plugin for layout preview. Note that this diff creates only placeholder as moving the whole part might be too big for one diff

Reviewed By: cute-jumper

Differential Revision: D39974345

fbshipit-source-id: e3f579f700eafc9413562abed923da1ca3135fba
2022-10-06 05:01:08 -07:00
Nick Gerleman
c96564d23d Fix License Headers and Whitespace
Summary: This change applies all Arcanist recommended lint changes, which amounts to changing copyright headers and some cases of whitespace changes.

Reviewed By: yungsters

Differential Revision: D40060899

fbshipit-source-id: b62f9472e6ef58a3fc3d22eed661578a2635cb1f
2022-10-04 13:59:32 -07:00
Pearce Liang
276de5c122 Fix comment typo 'layed out' to 'laid out' (#1061)
Summary:
Just a simple typo fix.

Pull Request resolved: https://github.com/facebook/yoga/pull/1061

Reviewed By: javache

Differential Revision: D40059940

Pulled By: javache

fbshipit-source-id: 052a4a8fe80ff49e059a3096500dbe5bddcb73db
2022-10-04 10:54:16 -07:00
Nick Gerleman
585df10ee8 strech -> stretch
Summary: This replicates https://github.com/facebook/yoga/pull/760, to fix a typo around align-items. It does not have an effect on the tests themselves, since align-items defaults to stretch, and the test generator omits CSS properties of a default value.

Reviewed By: yungsters

Differential Revision: D40060324

fbshipit-source-id: da0565f2ad17e3e4e0f541a1c7006cdeeb991ece
2022-10-04 08:51:51 -07:00
Jesse Katsumata
7a6f667bf1 docs: update url (#981)
Summary:
Updating url for react-native docs

Pull Request resolved: https://github.com/facebook/yoga/pull/981

Reviewed By: yungsters

Differential Revision: D40060061

Pulled By: yungsters

fbshipit-source-id: 7192b461cea007eb4c77789b92e911a62b21f0d3
2022-10-04 08:29:28 -07:00
licd
0a6a184fed YogaKit document does not exist any more (#873)
Summary:
document does not exist any more

Pull Request resolved: https://github.com/facebook/yoga/pull/873

Reviewed By: yungsters

Differential Revision: D40060142

Pulled By: yungsters

fbshipit-source-id: 51a5c2ba7d8b658fe30d2cdbb28aa6d544899caa
2022-10-04 08:14:04 -07:00
Joshua Yuan
68c038579c Fix broken absolute/relative link in Playground Editor (#1025)
Summary:
The correct link is https://yogalayout.com/docs/absolute-relative-layout
The current link leads to a broken page https://yogalayout.com/docs/absolute-position

Pull Request resolved: https://github.com/facebook/yoga/pull/1025

Reviewed By: yungsters

Differential Revision: D23031145

Pulled By: yungsters

fbshipit-source-id: 7adaf4856d38546f2f75b47912edd7dcc23da294
2022-10-04 08:02:30 -07:00
Yannic Bonenberger
e1b401ca36 Re-add support for using Yoga without exceptions (#1006)
Summary:
This is a partial rollback of 07c0d539bd.

Pull Request resolved: https://github.com/facebook/yoga/pull/1006

Reviewed By: yungsters

Differential Revision: D40032544

Pulled By: yungsters

fbshipit-source-id: 9ef9b80672eced86a98cfae66c81710bd3ee6f9b
2022-10-03 23:35:46 -07:00
Yurii Nakonechnyi
ec0a829110 Added suppression for warnings about unused parameters in 'publish<Type E>()' func (#1141)
Summary: Pull Request resolved: https://github.com/facebook/yoga/pull/1141

Reviewed By: yungsters

Differential Revision: D40025354

Pulled By: yungsters

fbshipit-source-id: 6eaaa77b71db95ab0dbc0a4f459c9d85f7e36c42
2022-10-03 22:04:06 -07:00
DaeWook, Kim
d16e918c52 Export YGInteropSetLogger method (#960)
Summary:
When building and using C # libraries,
EntryPointNotFoundException thrown from YGInteropSetLogger.

so, I added YOGA_EXPORT on YGInteropSetLogger.

Pull Request resolved: https://github.com/facebook/yoga/pull/960

Reviewed By: yungsters

Differential Revision: D40027238

Pulled By: yungsters

fbshipit-source-id: 6af584a16e66a31c91374a1bb64434888762e3c8
2022-10-03 21:26:05 -07:00
Jesse Katsumata
7f854ec13e Update README for android (#980)
Summary:
Install instruction and doc url seemed to be outdated.

Pull Request resolved: https://github.com/facebook/yoga/pull/980

Reviewed By: yungsters

Differential Revision: D40032063

Pulled By: yungsters

fbshipit-source-id: 540bf5fa87d343b3da9ccf8865ecc6ac646b77d7
2022-10-03 21:22:57 -07:00
Michael サイトー 中村 Bashurov
272eb940f1 Update standalone.md docs (#1110)
Summary:
Added set of row direction, otherwise it'll be column and numbers won't correspond to comments

https://codesandbox.io/s/yoga-standalone-docs-bug-izqwv?file=/src/index.js
![image](https://user-images.githubusercontent.com/1552189/142233513-8b21c77f-0a12-4c9d-9965-fe8c9e43c02f.png)

Pull Request resolved: https://github.com/facebook/yoga/pull/1110

Reviewed By: yungsters

Differential Revision: D40026417

Pulled By: yungsters

fbshipit-source-id: 7e26406909268f85ee9b1ccf73aad50bab042ff9
2022-10-03 21:13:20 -07:00
Joe Gallegos
bc4c8f9fd9 Update React Native docs link (#1036)
Summary:
Updated link for new React Native docs site.

Pull Request resolved: https://github.com/facebook/yoga/pull/1036

Reviewed By: yungsters

Differential Revision: D40026872

Pulled By: yungsters

fbshipit-source-id: e2d26b07b7b8785c0a2dee4543ec153fd69a8a3f
2022-10-03 21:11:52 -07:00
PhoebeHui
0faefad0c1 Add vcpkg installation instructions (#970)
Summary:
Yoga is available as a port in VCPKG , documenting the install process here will help users get started by providing a single set of commands to build yoga, ready to be included in their projects.

VCPKG is a C++ library manager that simplifies installation for yoga and other project dependencies, we also test whether our library ports build in various configurations (dynamic, static) on various platforms (OSX, Linux, Windows: x86, x64, UWP, ARM) to keep a wide coverage for users.

I'm a maintainer for vcpkg, and here is what the port script looks like. We try to keep the library maintained as close as possible to the original library.

Pull Request resolved: https://github.com/facebook/yoga/pull/970

Reviewed By: yungsters

Differential Revision: D40027569

Pulled By: yungsters

fbshipit-source-id: ca9a6aa481c7b46e96c5937fe3cc7b716e464e4d
2022-10-03 21:10:17 -07:00
迷渡
29c2151d8d fix missing dll exports (#1127)
Summary:
When I use libyogacore.so in other programming languages, it crash with message as

> Could not obtain symbol from the library: dlsym(0x20b84d220, YGConfigIsExperimentalFeatureEnabled): symbol not found

This function is defined as `WIN_EXPORT bool YGConfigIsExperimentalFeatureEnabled` in yoga.h, but is not defined using `YOGA_EXPORT` in yoga.cpp.

Pull Request resolved: https://github.com/facebook/yoga/pull/1127

Reviewed By: yungsters

Differential Revision: D40024450

Pulled By: yungsters

fbshipit-source-id: f6f01eadccb13d593c68300059e96f4b0bbc9fb6
2022-10-03 21:09:58 -07:00
Erfan Zekri Esfahani
572f525734 Update flex.md (#1118)
Summary:
correct sections' order in order to match header in alphabetical order

Pull Request resolved: https://github.com/facebook/yoga/pull/1118

Reviewed By: yungsters

Differential Revision: D40026297

Pulled By: yungsters

fbshipit-source-id: d28d41d69eb3a99fab9536cc79057c617cf0e2df
2022-10-03 18:48:30 -07:00
Nick Gerleman
80c89a48a1 Move GitHub Actions from Node 8 to Node 12 (#1164)
Summary:
Pull Request resolved: https://github.com/facebook/yoga/pull/1164

Yoga CI in GitHub is currently running using Node 8, released in 2017. It has long been out of support, and is not able to install many of the packages in the updated lockfile due to version restrictions in the new packages.

Node 12 is able to install the current lockfile. Although it is old enough that security support has ended for it 5 months ago, `yoga-layout` currently fails to install on Node 12+, because a dependency, `nbind`, was reliant on V8 internals that have changed between versions, and has not published a version supporting anything later than Node 10.

There are unpublished commits in the official repo which add Node 12 support. So, we use that version when developing against the website, to jump us to something more up to date, without rewriting or removing all of the JS bindings quite yet.

Reviewed By: yungsters

Differential Revision: D40036466

fbshipit-source-id: e1b775d87854250bd74fa17ca7ba939b32aa3bd8
2022-10-03 18:17:23 -07:00
Fabio Arnold
7986ca97a3 Fix typo in documentation (#1117)
Summary: Pull Request resolved: https://github.com/facebook/yoga/pull/1117

Reviewed By: yungsters

Differential Revision: D40026308

Pulled By: yungsters

fbshipit-source-id: e289f6461046f87a74947aff8e0aca5dc1db7ffc
2022-10-03 16:43:44 -07:00
Nick Gerleman
4ca1bfeff6 Update playground lockfile
Summary: Yoga playground within the website has a separate package.json from the website. Update that as well, which is responsible for 4 open dependabot PRs.

Reviewed By: yungsters

Differential Revision: D40026579

fbshipit-source-id: 2b82bdf2e90b8f433824f37b5e83750c338c9dfc
2022-10-03 15:50:39 -07:00