hunk.code_window:   min-width: 6px;
     background-color: ${theme.text.link};
     border-radius: 100%;
     margin: ${spacing[2]}px ${spacing[1.5]}px;
   `;
hunk.labels: keep keep keep add keep
hunk.after_edit:   align-self: self-start;
  
hunk.file_path: docs/ui/components/Sidebar/SidebarLink.tsx
hunk.type: add
file: package abi47_0_0.com.swmansion.reanimated.nodes;
  
  import abi47_0_0.com.facebook.react.bridge.JavaOnlyMap;
  import abi47_0_0.com.facebook.react.bridge.ReadableMap;
  import abi47_0_0.com.facebook.react.bridge.WritableArray;
  import abi47_0_0.com.facebook.react.bridge.WritableMap;
  import abi47_0_0.com.swmansion.reanimated.NodesManager;
  import abi47_0_0.com.swmansion.reanimated.Utils;
  import java.util.Map;
  
  public class StyleNode extends Node {
  
    private final Map<String, Integer> mMapping;
  
    public StyleNode(int nodeID, ReadableMap config, NodesManager nodesManager) {
      super(nodeID, config, nodesManager);
      mMapping = Utils.processMapping(config.getMap("style"));
    }
  
    @Override
    protected WritableMap evaluate() {
      JavaOnlyMap propMap = new JavaOnlyMap();
      for (Map.Entry<String, Integer> entry : mMapping.entrySet()) {
        Node node = mNodesManager.findNodeById(entry.getValue(), Node.class);
        if (node instanceof TransformNode) {
          propMap.putArray(entry.getKey(), (WritableArray) node.value());
        } else {
          Object val = node.value();
          if (val instanceof Double) {
            propMap.putDouble(entry.getKey(), (Double) val);
          } else if (val instanceof String) {
            propMap.putString(entry.getKey(), (String) val);
          } else {
            throw new IllegalStateException("Wrong style form");
          }
        }
      }
      return propMap;
    }
  }
  