)]}'
{
  "commit": "c7ecdf41112fa5e97b837b0001ac584bdffcb29a",
  "tree": "0c8d0e374432095f594ad1a8c260508ecfa17f96",
  "parents": [
    "40c94ab7ff11ac596b27e4d66d3595d0aeec331a"
  ],
  "author": {
    "name": "philter",
    "email": "hello@rive.app",
    "time": "Fri Jun 21 15:20:46 2024 +0000"
  },
  "committer": {
    "name": "philter",
    "email": "hello@rive.app",
    "time": "Fri Jun 21 15:20:46 2024 +0000"
  },
  "message": "Animation for Layouts\n\n- Popout for setting layout animation\n- Supports hold, linear, cubic ease and elastic\n- Layouts can have custom interpolation or inherit from up the layout tree\n- This PR also implements the change to not store flexGrow or alignSelf when setting scaleType, rather we put the logic into syncStyle and directly pass the values for those into the layout engine\n- Tested with Rive Renderer in editor and seems to work well!\n- @alxgibsn I moved the animation popout to the Layout inspector. We discussed the Auto Layout inspector, but since animation can be applied to a layoutcomponent that has no children (whereas the Auto Layout inspector must have children to be expanded), it seemed more appropriate there.\n\nDiffs\u003d\n31f5ee5c4 Animation for Layouts (#7426)\n\nCo-authored-by: Philip Chung \u003cphilterdesign@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2027035738bf302d79184bd460daaa69f70a6d82",
      "old_mode": 33188,
      "old_path": ".rive_head",
      "new_id": "bd73d8c3caeac45fd84848445a1fd4a417ce52ad",
      "new_mode": 33188,
      "new_path": ".rive_head"
    },
    {
      "type": "modify",
      "old_id": "d3da49c8e849837ba497b984bcdfc82b618a93dc",
      "old_mode": 33188,
      "old_path": "dev/defs/layout/layout_component_style.json",
      "new_id": "194601b820727b59d57eeaf8cd732c030d1765d1",
      "new_mode": 33188,
      "new_path": "dev/defs/layout/layout_component_style.json"
    },
    {
      "type": "delete",
      "old_id": "a239d432c052fc254ca495f7cb2f1cc03501a3ba",
      "old_mode": 33188,
      "old_path": "dev/defs/layout_component_absolute.json",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "fedb0c7001c484e8216738757381df15ef7e07bf",
      "old_mode": 33188,
      "old_path": "include/rive/component_dirt.hpp",
      "new_id": "ccd64c0cafb26c0fdb31a9155b887e4c4d56a935",
      "new_mode": 33188,
      "new_path": "include/rive/component_dirt.hpp"
    },
    {
      "type": "modify",
      "old_id": "c4018d2e8eed97c983664bda1e2820643a0a468a",
      "old_mode": 33188,
      "old_path": "include/rive/generated/core_registry.hpp",
      "new_id": "b073d8aa68a8dd2df280026bf30017138ccb2109",
      "new_mode": 33188,
      "new_path": "include/rive/generated/core_registry.hpp"
    },
    {
      "type": "modify",
      "old_id": "28dd01b53bc2646a7dd769f6492e0f29098e3bff",
      "old_mode": 33188,
      "old_path": "include/rive/generated/layout/layout_component_style_base.hpp",
      "new_id": "60163da9bbf264d6c317b17f900ef76d90d85241",
      "new_mode": 33188,
      "new_path": "include/rive/generated/layout/layout_component_style_base.hpp"
    },
    {
      "type": "delete",
      "old_id": "b61486fea9eadf5c7424b100e1f6155662c2969e",
      "old_mode": 33188,
      "old_path": "include/rive/generated/layout_component_absolute_base.hpp",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "69335930f1c62e80f8ba145734ae293acc84e7a6",
      "old_mode": 33188,
      "old_path": "include/rive/layout/layout_component_style.hpp",
      "new_id": "4b8c0ffe4656f60e3900aa23d2d9419239640a69",
      "new_mode": 33188,
      "new_path": "include/rive/layout/layout_component_style.hpp"
    },
    {
      "type": "modify",
      "old_id": "1049e3b1cee851bab4ec64fe22973f88baca301e",
      "old_mode": 33188,
      "old_path": "include/rive/layout_component.hpp",
      "new_id": "4a5be7581f8975cf6e74506271c1c60518c6f5dc",
      "new_mode": 33188,
      "new_path": "include/rive/layout_component.hpp"
    },
    {
      "type": "delete",
      "old_id": "955f64c18d1bb32ee4ec4959f21cadf0631c446e",
      "old_mode": 33188,
      "old_path": "include/rive/layout_component_absolute.hpp",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "6c0fe6a57ae969c13be61a7008efe59e7a3efda0",
      "old_mode": 33188,
      "old_path": "src/artboard.cpp",
      "new_id": "4ecf5da78f698fc2f068b6a5888be9a161cecbd5",
      "new_mode": 33188,
      "new_path": "src/artboard.cpp"
    },
    {
      "type": "delete",
      "old_id": "c35c4a8fe0ea965d07f978623702f1d37c361f64",
      "old_mode": 33188,
      "old_path": "src/generated/layout_component_absolute_base.cpp",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "c1693f6d5702b6b351fdfe76fd04530a1491b3de",
      "old_mode": 33188,
      "old_path": "src/layout/layout_component_style.cpp",
      "new_id": "325e92a64833d744e448e39b106fe4b0efbe9167",
      "new_mode": 33188,
      "new_path": "src/layout/layout_component_style.cpp"
    },
    {
      "type": "modify",
      "old_id": "c9b600fcd7bfc28be9b80959e7da4769f7a90f2b",
      "old_mode": 33188,
      "old_path": "src/layout_component.cpp",
      "new_id": "402d0f4e45d9e1a2a8b53ad306fa68b544ce8939",
      "new_mode": 33188,
      "new_path": "src/layout_component.cpp"
    },
    {
      "type": "modify",
      "old_id": "c5c07ec683cff66373ea64626629dafaa8c79cd5",
      "old_mode": 33188,
      "old_path": "test/layout_test.cpp",
      "new_id": "e7176a13d71c31a74b2fe39cd3c8eed4680a2115",
      "new_mode": 33188,
      "new_path": "test/layout_test.cpp"
    }
  ]
}
