MapConfigSchema
constMapConfigSchema:ZodObject<{antialias:ZodOptional<ZodBoolean>;attributionControl:ZodOptional<ZodBoolean>;bearing:ZodDefault<ZodNumber>;bounds:ZodOptional<ZodUnion<[ZodTuple<[ZodNumber,ZodNumber,ZodNumber,ZodNumber],null>,ZodArray<ZodNumber,"many">]>>;boxZoom:ZodOptional<ZodBoolean>;center:ZodTuple<[ZodNumber,ZodNumber],null>;crossSourceCollisions:ZodOptional<ZodBoolean>;doubleClickZoom:ZodOptional<ZodBoolean>;dragPan:ZodOptional<ZodBoolean>;dragRotate:ZodOptional<ZodBoolean>;fadeDuration:ZodOptional<ZodNumber>;failIfMajorPerformanceCaveat:ZodOptional<ZodBoolean>;fitTo:ZodOptional<ZodObject<{maxZoom:ZodOptional<ZodNumber>;padding:ZodOptional<ZodNumber>;source:ZodString; },"strip",ZodTypeAny, {maxZoom?:number;padding?:number;source:string; }, {maxZoom?:number;padding?:number;source:string; }>>;hash:ZodOptional<ZodBoolean>;interactive:ZodDefault<ZodBoolean>;keyboard:ZodOptional<ZodBoolean>;locale:ZodOptional<ZodRecord<ZodString,ZodString>>;localIdeographFontFamily:ZodOptional<ZodString>;logoPosition:ZodOptional<ZodEnum<["top-left","top-right","bottom-left","bottom-right"]>>;mapStyle:ZodOptional<ZodUnion<[ZodString,ZodAny]>>;maxBounds:ZodOptional<ZodTuple<[ZodNumber,ZodNumber,ZodNumber,ZodNumber],null>>;maxPitch:ZodOptional<ZodNumber>;maxTileCacheSize:ZodOptional<ZodNumber>;maxZoom:ZodOptional<ZodNumber>;minPitch:ZodOptional<ZodNumber>;minZoom:ZodOptional<ZodNumber>;pitch:ZodDefault<ZodNumber>;preserveDrawingBuffer:ZodOptional<ZodBoolean>;refreshExpiredTiles:ZodOptional<ZodBoolean>;renderWorldCopies:ZodOptional<ZodBoolean>;scrollZoom:ZodOptional<ZodBoolean>;touchPitch:ZodOptional<ZodBoolean>;touchZoomRotate:ZodOptional<ZodBoolean>;trackResize:ZodOptional<ZodBoolean>;zoom:ZodNumber; },"passthrough",ZodTypeAny,objectOutputType<{antialias:ZodOptional<ZodBoolean>;attributionControl:ZodOptional<ZodBoolean>;bearing:ZodDefault<ZodNumber>;bounds:ZodOptional<ZodUnion<[ZodTuple<[ZodNumber,ZodNumber,ZodNumber,ZodNumber],null>,ZodArray<ZodNumber,"many">]>>;boxZoom:ZodOptional<ZodBoolean>;center:ZodTuple<[ZodNumber,ZodNumber],null>;crossSourceCollisions:ZodOptional<ZodBoolean>;doubleClickZoom:ZodOptional<ZodBoolean>;dragPan:ZodOptional<ZodBoolean>;dragRotate:ZodOptional<ZodBoolean>;fadeDuration:ZodOptional<ZodNumber>;failIfMajorPerformanceCaveat:ZodOptional<ZodBoolean>;fitTo:ZodOptional<ZodObject<{maxZoom:ZodOptional<ZodNumber>;padding:ZodOptional<ZodNumber>;source:ZodString; },"strip",ZodTypeAny, {maxZoom?:number;padding?:number;source:string; }, {maxZoom?:number;padding?:number;source:string; }>>;hash:ZodOptional<ZodBoolean>;interactive:ZodDefault<ZodBoolean>;keyboard:ZodOptional<ZodBoolean>;locale:ZodOptional<ZodRecord<ZodString,ZodString>>;localIdeographFontFamily:ZodOptional<ZodString>;logoPosition:ZodOptional<ZodEnum<["top-left","top-right","bottom-left","bottom-right"]>>;mapStyle:ZodOptional<ZodUnion<[ZodString,ZodAny]>>;maxBounds:ZodOptional<ZodTuple<[ZodNumber,ZodNumber,ZodNumber,ZodNumber],null>>;maxPitch:ZodOptional<ZodNumber>;maxTileCacheSize:ZodOptional<ZodNumber>;maxZoom:ZodOptional<ZodNumber>;minPitch:ZodOptional<ZodNumber>;minZoom:ZodOptional<ZodNumber>;pitch:ZodDefault<ZodNumber>;preserveDrawingBuffer:ZodOptional<ZodBoolean>;refreshExpiredTiles:ZodOptional<ZodBoolean>;renderWorldCopies:ZodOptional<ZodBoolean>;scrollZoom:ZodOptional<ZodBoolean>;touchPitch:ZodOptional<ZodBoolean>;touchZoomRotate:ZodOptional<ZodBoolean>;trackResize:ZodOptional<ZodBoolean>;zoom:ZodNumber; },ZodTypeAny,"passthrough">,objectInputType<{antialias:ZodOptional<ZodBoolean>;attributionControl:ZodOptional<ZodBoolean>;bearing:ZodDefault<ZodNumber>;bounds:ZodOptional<ZodUnion<[ZodTuple<[ZodNumber,ZodNumber,ZodNumber,ZodNumber],null>,ZodArray<ZodNumber,"many">]>>;boxZoom:ZodOptional<ZodBoolean>;center:ZodTuple<[ZodNumber,ZodNumber],null>;crossSourceCollisions:ZodOptional<ZodBoolean>;doubleClickZoom:ZodOptional<ZodBoolean>;dragPan:ZodOptional<ZodBoolean>;dragRotate:ZodOptional<ZodBoolean>;fadeDuration:ZodOptional<ZodNumber>;failIfMajorPerformanceCaveat:ZodOptional<ZodBoolean>;fitTo:ZodOptional<ZodObject<{maxZoom:ZodOptional<ZodNumber>;padding:ZodOptional<ZodNumber>;source:ZodString; },"strip",ZodTypeAny, {maxZoom?:number;padding?:number;source:string; }, {maxZoom?:number;padding?:number;source:string; }>>;hash:ZodOptional<ZodBoolean>;interactive:ZodDefault<ZodBoolean>;keyboard:ZodOptional<ZodBoolean>;locale:ZodOptional<ZodRecord<ZodString,ZodString>>;localIdeographFontFamily:ZodOptional<ZodString>;logoPosition:ZodOptional<ZodEnum<["top-left","top-right","bottom-left","bottom-right"]>>;mapStyle:ZodOptional<ZodUnion<[ZodString,ZodAny]>>;maxBounds:ZodOptional<ZodTuple<[ZodNumber,ZodNumber,ZodNumber,ZodNumber],null>>;maxPitch:ZodOptional<ZodNumber>;maxTileCacheSize:ZodOptional<ZodNumber>;maxZoom:ZodOptional<ZodNumber>;minPitch:ZodOptional<ZodNumber>;minZoom:ZodOptional<ZodNumber>;pitch:ZodDefault<ZodNumber>;preserveDrawingBuffer:ZodOptional<ZodBoolean>;refreshExpiredTiles:ZodOptional<ZodBoolean>;renderWorldCopies:ZodOptional<ZodBoolean>;scrollZoom:ZodOptional<ZodBoolean>;touchPitch:ZodOptional<ZodBoolean>;touchZoomRotate:ZodOptional<ZodBoolean>;trackResize:ZodOptional<ZodBoolean>;zoom:ZodNumber; },ZodTypeAny,"passthrough">>
Defined in: packages/core/src/schemas/map.schema.ts:328
Map configuration with MapLibre options.
Remarks
Section titled “Remarks”Core map configuration including initial view, style, and interaction settings.
Uses .passthrough() to allow any MapLibre GL JS options.
Required:
center- Initial map center [lng, lat]zoom- Initial zoom level (0-24)
Optional (with global fallback):
mapStyle- MapLibre style URL or object. When omitted, inherits from globalconfig.defaultMapStyle. Required if no global default is set.
View Options:
pitch- Camera tilt angle (0-85)bearing- Camera rotation (0-360)bounds- Fit to boundsminZoom,maxZoom- Zoom constraintsminPitch,maxPitch- Pitch constraintsmaxBounds- Geographic bounds constraint
Interaction:
interactive- Enable/disable all interactionsscrollZoom,boxZoom,dragRotate,dragPan- Individual controlskeyboard,doubleClickZoom,touchZoomRotate,touchPitch
Examples
Section titled “Examples”Basic Map (explicit style)
config: center: [-74.006, 40.7128] zoom: 12 mapStyle: "https://demotiles.maplibre.org/style.json"Map with Global Style Inheritance
# Root config sets default styleconfig: defaultMapStyle: "https://demotiles.maplibre.org/style.json"
pages: - blocks: - type: map id: simple-map config: center: [-74.006, 40.7128] zoom: 12 # mapStyle inherited from config.defaultMapStyle3D View
config: center: [-122.4194, 37.7749] zoom: 15 pitch: 60 bearing: 30 mapStyle: "https://demotiles.maplibre.org/style.json"Constrained Map
config: center: [-74.006, 40.7128] zoom: 12 minZoom: 8 maxZoom: 18 maxBounds: [-74.3, 40.5, -73.7, 40.9] mapStyle: "https://demotiles.maplibre.org/style.json"Non-Interactive Map
config: center: [-74.006, 40.7128] zoom: 12 interactive: false mapStyle: "https://demotiles.maplibre.org/style.json"