You can write it yourself. On map event 'idle' check the boundries and if they not fit in your area (you will set max left, max right, max top, max bottom) change center of the map (map.setCenter(latlng).
something like this:
var topBound = 44.5;
var bottomBound = 41;
var leftBound = 22.1;
var rightBound = 28.9;
//drag end, center changed, bounds changed ...
function mapIdle_Handler() {
//limit bounds =========================================================
var center = map.getCenter();
if(center.lng() < leftBound) {
map.centerMapOn(center.lat(), leftBound);
//console.log("out of bounds: left" + center.lat() + "/" + leftBound);
}
if(center.lng() > rightBound) {
map.centerMapOn(center.lat(), rightBound);
//console.log("out of bounds: right");
}
if(center.lat() > topBound) {
map.centerMapOn(topBound, center.lng());
//console.log("out of bounds: top");
}
if(center.lat() < bottomBound) {
map.centerMapOn(bottomBound, center.lng());
//console.log("out of bounds: bottom");
}
// end limit bounds ====================================================
}
google.maps.event.addListener(map, 'idle', mapIdle_Handler);