Basically a grid, made out of two bezier curves, one for the x-, and one for the y-loops. Since the nature of bezier curves is forming arcs and s-shapes, we could use this behavior for the bending.
The handles of the “Y“ curve are used to pull the loops to the center, so when you use a subdivision surface node, the middle crease will be nice and crisp - if you want so.
The “Resample Curve“ nodes are absolute necessities. Don’t miss them 😉
Unfortunately i still don’t know a simple way (or any at all) to create UVs out of thin air, so apart from using the object- or generated texture coordinate space, the magic stops here.