)]}'
{
  "commit": "9f0db02f31da8d0675aa66a174503cc593b7ba7d",
  "tree": "737331068754fad2fd71ae06ddb338014622ff11",
  "parents": [
    "560a993838180d05490ebe93c9e5b8c3a134c369"
  ],
  "author": {
    "name": "luigi-rosso",
    "email": "hello@rive.app",
    "time": "Wed Jul 24 20:09:57 2024 +0000"
  },
  "committer": {
    "name": "luigi-rosso",
    "email": "hello@rive.app",
    "time": "Wed Jul 24 20:09:57 2024 +0000"
  },
  "message": "Nested artboard types: node, leaf, layout\n\n~~Adding as a draft to start testing.~~\n\n- [x] Add node, leaf, and layout types.\n- [x] Leaf supports fit and alignment.\n- [x] Leaf alignment is floating point instead of enum allowing for animation later.\n- [x] Layout allows external hosting artboards to take the nested layout node and host it in another hierarchy.\n- [x] Measure and control size for NestedArtboard from native.\n- [x] FFI changes for external layout node\n- [x] WASM changes for external layout node.\n- [x] Move layouts to RiveNative.\n\n\u003cimg width\u003d\"663\" alt\u003d\"CleanShot 2024-07-21 at 14 48 41@2x\" src\u003d\"https://github.com/user-attachments/assets/b2c70d55-5f09-421a-bde3-f49939c6effc\"\u003e\n\n~~For a follow up PR:\nI think it\u0027s time to move some of rive_common into rive_native. I think the layout stuff would be a good start. @philter take a look at how the rive_binding.cpp is shared in rive_native for both FFI and WASM. I think it would simplify our layout bindings to use this model too.~~\nNevermind, we need it for this PR or ```LayoutNode.fromExternal``` doesn\u0027t work.\n\nDiffs\u003d\n1a5f273bb Nested artboard types: node, leaf, layout (#7639)\n\nCo-authored-by: Luigi Rosso \u003cluigi-rosso@users.noreply.github.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9664e6945ae382552a781aea01c66d4bdfcd520f",
      "old_mode": 33188,
      "old_path": ".rive_head",
      "new_id": "fadf9ed6dbd1775ca8edd3a5352a9cc296834e2e",
      "new_mode": 33188,
      "new_path": ".rive_head"
    },
    {
      "type": "modify",
      "old_id": "112415c87ea1f406c416f1ea60188fd6f549700f",
      "old_mode": 33188,
      "old_path": "dev/defs/nested_artboard.json",
      "new_id": "8a1ea487d2d1850d2fac090e5e8435aa7c7eb9fc",
      "new_mode": 33188,
      "new_path": "dev/defs/nested_artboard.json"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b0579be46aae6f7068951393d2b38ab86e110b93",
      "new_mode": 33188,
      "new_path": "dev/defs/nested_artboard_layout.json"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cddf1585339b04b8e7e1767936a84e67afdff1bf",
      "new_mode": 33188,
      "new_path": "dev/defs/nested_artboard_leaf.json"
    },
    {
      "type": "modify",
      "old_id": "4b7cc3d95ef9509f12f25ee0a7037ad523353185",
      "old_mode": 33188,
      "old_path": "include/rive/artboard.hpp",
      "new_id": "2e78c7e8bddb1d04ae71ac8fdc9b89ceec0e7262",
      "new_mode": 33188,
      "new_path": "include/rive/artboard.hpp"
    },
    {
      "type": "modify",
      "old_id": "abeae9a82529cbd7812a3f1ba43e28dcf76b9147",
      "old_mode": 33188,
      "old_path": "include/rive/generated/core_registry.hpp",
      "new_id": "7abe2d5a989b158f9f29e2ca0fd0bf239943baae",
      "new_mode": 33188,
      "new_path": "include/rive/generated/core_registry.hpp"
    },
    {
      "type": "modify",
      "old_id": "a115ba297c5ff4e5d7d79d0fda36f7fefd276159",
      "old_mode": 33188,
      "old_path": "include/rive/generated/nested_artboard_base.hpp",
      "new_id": "a0c203abc9dbf606b80329f4e92962e62b6a3e03",
      "new_mode": 33188,
      "new_path": "include/rive/generated/nested_artboard_base.hpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7c5ce6f6b3e7fc9be6e95ccf4c6cccf2dcafd47d",
      "new_mode": 33188,
      "new_path": "include/rive/generated/nested_artboard_layout_base.hpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d72fa60bea5144802ecb3b0a51b43e163c6ef540",
      "new_mode": 33188,
      "new_path": "include/rive/generated/nested_artboard_leaf_base.hpp"
    },
    {
      "type": "modify",
      "old_id": "976544c70326e7958ec27dac1807c2b4c0befa9a",
      "old_mode": 33188,
      "old_path": "include/rive/layout_component.hpp",
      "new_id": "c0c4bdb4d23ea5696214aaee90e92e75ec009ffc",
      "new_mode": 33188,
      "new_path": "include/rive/layout_component.hpp"
    },
    {
      "type": "modify",
      "old_id": "57598156624aacc389335c3659c3d4010d3c1373",
      "old_mode": 33188,
      "old_path": "include/rive/nested_artboard.hpp",
      "new_id": "6457727590e5d441fb120d7ecf492da4cf64f331",
      "new_mode": 33188,
      "new_path": "include/rive/nested_artboard.hpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9a680747a3f92ea2a90f68d798d797fde073eca6",
      "new_mode": 33188,
      "new_path": "include/rive/nested_artboard_layout.hpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a7fa3d57528c1d3c114343bf0e32a6ad7dc8f3ff",
      "new_mode": 33188,
      "new_path": "include/rive/nested_artboard_leaf.hpp"
    },
    {
      "type": "modify",
      "old_id": "151c31bc30049f10cd1f3139a229a56558c0ce43",
      "old_mode": 33188,
      "old_path": "include/rive/transform_component.hpp",
      "new_id": "36580a6686dc50e6abb83bf4ed1707a660cf69c0",
      "new_mode": 33188,
      "new_path": "include/rive/transform_component.hpp"
    },
    {
      "type": "modify",
      "old_id": "7cd9b0299d36d30a73f9cc987980cf4778215d21",
      "old_mode": 33188,
      "old_path": "src/artboard.cpp",
      "new_id": "263f683f3c18eef4959952c79f1a9f287a31ba16",
      "new_mode": 33188,
      "new_path": "src/artboard.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "069c3746251046888c3fe2fcb329f1b9a0458264",
      "new_mode": 33188,
      "new_path": "src/generated/nested_artboard_layout_base.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d025a17fb7c3becd25072e80fa4d38088bdbe8ee",
      "new_mode": 33188,
      "new_path": "src/generated/nested_artboard_leaf_base.cpp"
    },
    {
      "type": "modify",
      "old_id": "52040d411fe8408d1c3913fc1100500f04332605",
      "old_mode": 33188,
      "old_path": "src/layout_component.cpp",
      "new_id": "872e88ef10c7b782435cc9d62c61b9ec462a985f",
      "new_mode": 33188,
      "new_path": "src/layout_component.cpp"
    },
    {
      "type": "modify",
      "old_id": "95138b0708e311f46360384531d92b7c8b054635",
      "old_mode": 33188,
      "old_path": "src/nested_artboard.cpp",
      "new_id": "6f30c4c1214e2cc7c9d6e7098c43311c6e3438ff",
      "new_mode": 33188,
      "new_path": "src/nested_artboard.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "eed115e4be45a1599938a65d015ab71b066a691f",
      "new_mode": 33188,
      "new_path": "src/nested_artboard_layout.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2ae92b6e4fc8c95b5b41992f93983bb8c6254494",
      "new_mode": 33188,
      "new_path": "src/nested_artboard_leaf.cpp"
    },
    {
      "type": "modify",
      "old_id": "db0c21cbdce6628030ebf3cee5a1d7fceb506da1",
      "old_mode": 33188,
      "old_path": "test/nested_artboard.cpp",
      "new_id": "fa886261d132939b79eed119bcbdce9b14e351a1",
      "new_mode": 33188,
      "new_path": "test/nested_artboard.cpp"
    },
    {
      "type": "modify",
      "old_id": "5fdd19e5215fb909abfc480f8fd531a671ee25e7",
      "old_mode": 33188,
      "old_path": "test/nested_artboard_opacity_test.cpp",
      "new_id": "209f2092711372c4b594a1dd9193d19540af2f05",
      "new_mode": 33188,
      "new_path": "test/nested_artboard_opacity_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "e53b250997a52e77621eca5f015eb3e337a2fa52",
      "old_mode": 33188,
      "old_path": "test/solo_test.cpp",
      "new_id": "30d57b01e48468cdb95c0700060b031ac089b4a6",
      "new_mode": 33188,
      "new_path": "test/solo_test.cpp"
    }
  ]
}
