Our map component uses maplibre (an opensource fork of mapbox) and you can create custom map data sources.
For your requirements using raster map tiles prob makes the most sense and our map component has a raster option (although not used for a long time) that uses the mapbox/maplibre raster library which IIRC uses leaflet.
You could customise the mapwidget.ts file to do whatever you want with the map but unfortunately there’s no existing support for multiple map layers or drag selection of markers