function paddedClipExtent(projection, isArea = false) {
    var padding = isArea ? 65 : 5;
    var viewport = projection.clipExtent();
    var paddedExtent = [
        [viewport[0][0] - padding, viewport[0][1] - padding],
        [viewport[1][0] + padding, viewport[1][1] + padding]
    ];
    return d3_geoIdentity().clipExtent(paddedExtent).stream;
}
Returns a d3 projection stream that clips the given geometries to an
extent that is slightly padded.

Explanation of magic numbers:
"padding" here allows space for strokes to extend beyond the viewport,
so that the stroke isn't drawn along the edge of the viewport when
the shape is clipped.
When drawing lines, pad viewport by 5px.
When drawing areas, pad viewport by 65px in each direction to allow
for 60px area fill stroke (see ".fill-partial path.fill" css rule)

@param {import('../geo/raw_mercator').Projection} projection
@param {Boolean} isArea