I saw a few times requests to create a bi-directional level translator. It is pretty straight forward to do an unidirectional level translator with PSoC. Simply connect one pin directly to other. However doing a bi-directional is way more complicated.
The attached project contains a component that implements a circuit to do just that. I used the I2C SDA line as a test project. Note that this component will not work with a I2C SCL lines. But it can work with other digital buses that require a bi-directional pin with turning around cycles on the interface. Some examples are: MDIO, SWD, LPC.
Here is a glimpse of the internal circuit of this component:
The attached project runs on PSoC 6, but it can be ported to any PSoC with UDBs with minimal resources and does not require any APIs to start or configure it.