Transform Geometry doesn't have a Selection socket, we need to use the
Scale Elements node in Single Axis mode, as @Gorgious suggested. However, simply making the Z axis $0$ would result in a single direction of $(1,1,0)$ whereas we want to scale on two axes—$x(1,0,0)$ and $y(0,1,0)$—so we need to use two
Scale Elements operations one after another for each of them:
Scale Elements node scales each face or edge from their own individual 'origin's. To make them move together, we need to use a single Center as the operation origin—here I'm doing that by providing it with the selection's average position I get from an
Attribute Statistic node.
As a side note you're perhaps already aware:
Why don't we use the three
Named Attributes as a selection directly, and first make it go through a
Capture Attribute instead?
Because, it seems, domain interpolation going from vertices (Point domain) to faces have some differences between the old vertex group system (which is a special kind of float+boolean attribute field) and the new generic attributes system in Geometry Nodes. Directly using the vertex groups as a selection gives you extraneous faces (faces those vertices belong to) you don't want in your scaling operation. Capturing the vertex groups as a boolean field in the Point domain forces Geometry Nodes to re-do the interpolation, this time without those extraneous faces in our selection: