@tracktor/map 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,31 @@
1
+ (function(){"use strict";try{if(typeof document<"u"){var o=document.createElement("style");o.appendChild(document.createTextNode(`.mapboxgl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgb(0 0 0/0)}.mapboxgl-canvas{left:0;position:absolute;top:0}.mapboxgl-map:-webkit-full-screen{height:100%;width:100%}.mapboxgl-canary{background-color:salmon}.mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass{cursor:grab;-webkit-user-select:none;user-select:none}.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer{cursor:pointer}.mapboxgl-canvas-container.mapboxgl-interactive:active,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active{cursor:grabbing}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-canvas-container.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:pinch-zoom}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:none}.mapboxgl-ctrl-bottom,.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.mapboxgl-ctrl-left,.mapboxgl-ctrl-right,.mapboxgl-ctrl-top,.mapboxgl-ctrl-top-left,.mapboxgl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.mapboxgl-ctrl-top-left{left:0;top:0}.mapboxgl-ctrl-top{left:50%;top:0;transform:translate(-50%)}.mapboxgl-ctrl-top-right{right:0;top:0}.mapboxgl-ctrl-right{right:0;top:50%;transform:translateY(-50%)}.mapboxgl-ctrl-bottom-right{bottom:0;right:0}.mapboxgl-ctrl-bottom{bottom:0;left:50%;transform:translate(-50%)}.mapboxgl-ctrl-bottom-left{bottom:0;left:0}.mapboxgl-ctrl-left{left:0;top:50%;transform:translateY(-50%)}.mapboxgl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.mapboxgl-ctrl-top-left .mapboxgl-ctrl{float:left;margin:10px 0 0 10px}.mapboxgl-ctrl-top .mapboxgl-ctrl{float:left;margin:10px 0}.mapboxgl-ctrl-top-right .mapboxgl-ctrl{float:right;margin:10px 10px 0 0}.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl,.mapboxgl-ctrl-right .mapboxgl-ctrl{float:right;margin:0 10px 10px 0}.mapboxgl-ctrl-bottom .mapboxgl-ctrl{float:left;margin:10px 0}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl,.mapboxgl-ctrl-left .mapboxgl-ctrl{float:left;margin:0 0 10px 10px}.mapboxgl-ctrl-group{background:#fff;border-radius:4px}.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px #0000001a}@media (-ms-high-contrast:active){.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.mapboxgl-ctrl-group button{background-color:transparent;border:0;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:none;overflow:hidden;padding:0;width:29px}.mapboxgl-ctrl-group button+button{border-top:1px solid #ddd}.mapboxgl-ctrl button .mapboxgl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}@media (-ms-high-contrast:active){.mapboxgl-ctrl-icon{background-color:transparent}.mapboxgl-ctrl-group button+button{border-top:1px solid ButtonText}}.mapboxgl-ctrl-attrib-button:focus,.mapboxgl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl button:disabled{cursor:not-allowed}.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon{opacity:.25}.mapboxgl-ctrl-group button:first-child{border-radius:4px 4px 0 0}.mapboxgl-ctrl-group button:last-child{border-radius:0 0 4px 4px}.mapboxgl-ctrl-group button:only-child{border-radius:inherit}.mapboxgl-ctrl button:not(:disabled):hover{background-color:#0000000d}.mapboxgl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon{animation:mapboxgl-spin 2s linear infinite}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}}@keyframes mapboxgl-spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='0.3' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='0.9' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;cursor:pointer;display:block;height:23px;margin:0 0 -4px -4px;overflow:hidden;width:88px}a.mapboxgl-ctrl-logo.mapboxgl-compact{width:23px}@media (-ms-high-contrast:active){a.mapboxgl-ctrl-logo{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23fff' stroke-width='3' fill='%23fff'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23000'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E")}}.mapboxgl-ctrl.mapboxgl-ctrl-attrib{background-color:#ffffff80;margin:0;padding:0 5px}@media screen{.mapboxgl-ctrl-attrib.mapboxgl-compact{background-color:#fff;border-radius:12px;box-sizing:content-box;margin:10px;min-height:20px;padding:2px 24px 2px 0;position:relative}.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner{display:none}.mapboxgl-ctrl-attrib-button{background-color:#ffffff80;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px;box-sizing:border-box;cursor:pointer;display:none;height:24px;outline:none;position:absolute;right:0;top:0;width:24px}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button{left:0}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner{display:block}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button{background-color:#0000000d}.mapboxgl-ctrl-bottom-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;right:0}.mapboxgl-ctrl-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{right:0}.mapboxgl-ctrl-top-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{right:0;top:0}.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{left:0;top:0}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;left:0}.mapboxgl-ctrl-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{left:0}}@media screen and (-ms-high-contrast:active){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (-ms-high-contrast:black-on-white){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}.mapboxgl-ctrl-attrib a{color:#000000bf;text-decoration:none}.mapboxgl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.mapboxgl-ctrl-attrib .mapbox-improve-map{font-weight:700;margin-left:2px}.mapboxgl-attrib-empty{display:none}.mapboxgl-ctrl-scale{background-color:#ffffffbf;border:2px solid #333;border-top:#333;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px;white-space:nowrap}.mapboxgl-popup{display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.mapboxgl-popup-anchor-top,.mapboxgl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-right{flex-direction:column}.mapboxgl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-right{flex-direction:column-reverse}.mapboxgl-popup-anchor-left{flex-direction:row}.mapboxgl-popup-anchor-right{flex-direction:row-reverse}.mapboxgl-popup-tip{border:10px solid transparent;height:0;width:0;z-index:1}.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{align-self:center;border-bottom-color:#fff;border-top:none}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip{align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{align-self:center;border-left-color:#fff;border-right:none}.mapboxgl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.mapboxgl-popup-close-button:hover{background-color:#0000000d}.mapboxgl-popup-content{background:#fff;border-radius:3px;box-shadow:0 1px 2px #0000001a;padding:10px 10px 15px;pointer-events:auto;position:relative}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content{border-top-left-radius:0}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content{border-top-right-radius:0}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content{border-bottom-left-radius:0}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content{border-bottom-right-radius:0}.mapboxgl-popup-track-pointer{display:none}.mapboxgl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;user-select:none}.mapboxgl-map:hover .mapboxgl-popup-track-pointer{display:flex}.mapboxgl-map:active .mapboxgl-popup-track-pointer{display:none}.mapboxgl-marker{left:0;opacity:1;position:absolute;top:0;transition:opacity .2s;will-change:transform}.mapboxgl-user-location-dot,.mapboxgl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.mapboxgl-user-location-dot:before{animation:mapboxgl-user-location-dot-pulse 2s infinite;content:"";position:absolute}.mapboxgl-user-location-dot:after{border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px #00000059;box-sizing:border-box;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading{height:0;width:0}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after,.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-bottom:7.5px solid #4aa1eb;content:"";position:absolute}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-left:7.5px solid transparent;transform:translateY(-28px) skewY(-20deg)}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after{border-right:7.5px solid transparent;transform:translate(7.5px,-28px) skewY(20deg)}@keyframes mapboxgl-user-location-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.mapboxgl-user-location-dot-stale{background-color:#aaa}.mapboxgl-user-location-dot-stale:after{display:none}.mapboxgl-user-location-accuracy-circle{background-color:#1da1f233;border-radius:100%;height:1px;width:1px}.mapboxgl-crosshair,.mapboxgl-crosshair .mapboxgl-interactive,.mapboxgl-crosshair .mapboxgl-interactive:active{cursor:crosshair}.mapboxgl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}@media print{.mapbox-improve-map{display:none}}.mapboxgl-scroll-zoom-blocker,.mapboxgl-touch-pan-blocker{align-items:center;background:#000000b3;color:#fff;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;height:100%;justify-content:center;left:0;opacity:0;pointer-events:none;position:absolute;text-align:center;top:0;transition:opacity .75s ease-in-out;transition-delay:1s;width:100%}.mapboxgl-scroll-zoom-blocker-show,.mapboxgl-touch-pan-blocker-show{opacity:1;transition:opacity .1s ease-in-out}.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page,.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page .mapboxgl-canvas{touch-action:pan-x pan-y}`)),document.head.appendChild(o)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
2
+ (function(A,R){typeof exports=="object"&&typeof module<"u"?R(exports,require("react"),require("@tracktor/design-system"),require("mapbox-gl"),require("react-dom"),require("@mui/x-license")):typeof define=="function"&&define.amd?define(["exports","react","@tracktor/design-system","mapbox-gl","react-dom","@mui/x-license"],R):(A=typeof globalThis<"u"?globalThis:A||self,R(A["@tracktor/map"]={},A.React,A.designSystem,A.mapboxgl,A.ReactDOM,A.muiXLicense))})(this,function(A,R,J,z,He,Xe){"use strict";var Q={exports:{}},K={};/**
3
+ * @license React
4
+ * react-jsx-runtime.production.min.js
5
+ *
6
+ * Copyright (c) Facebook, Inc. and its affiliates.
7
+ *
8
+ * This source code is licensed under the MIT license found in the
9
+ * LICENSE file in the root directory of this source tree.
10
+ */var pe;function qe(){if(pe)return K;pe=1;var t=R,n=Symbol.for("react.element"),i=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,u=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,b={key:!0,ref:!0,__self:!0,__source:!0};function p(v,d,T){var g,P={},O=null,F=null;T!==void 0&&(O=""+T),d.key!==void 0&&(O=""+d.key),d.ref!==void 0&&(F=d.ref);for(g in d)a.call(d,g)&&!b.hasOwnProperty(g)&&(P[g]=d[g]);if(v&&v.defaultProps)for(g in d=v.defaultProps,d)P[g]===void 0&&(P[g]=d[g]);return{$$typeof:n,type:v,key:O,ref:F,props:P,_owner:u.current}}return K.Fragment=i,K.jsx=p,K.jsxs=p,K}var H={};/**
11
+ * @license React
12
+ * react-jsx-runtime.development.js
13
+ *
14
+ * Copyright (c) Facebook, Inc. and its affiliates.
15
+ *
16
+ * This source code is licensed under the MIT license found in the
17
+ * LICENSE file in the root directory of this source tree.
18
+ */var ve;function Ze(){return ve||(ve=1,process.env.NODE_ENV!=="production"&&function(){var t=R,n=Symbol.for("react.element"),i=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),u=Symbol.for("react.strict_mode"),b=Symbol.for("react.profiler"),p=Symbol.for("react.provider"),v=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),T=Symbol.for("react.suspense"),g=Symbol.for("react.suspense_list"),P=Symbol.for("react.memo"),O=Symbol.for("react.lazy"),F=Symbol.for("react.offscreen"),B=Symbol.iterator,X="@@iterator";function D(e){if(e===null||typeof e!="object")return null;var r=B&&e[B]||e[X];return typeof r=="function"?r:null}var l=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function x(e){{for(var r=arguments.length,o=new Array(r>1?r-1:0),s=1;s<r;s++)o[s-1]=arguments[s];m("error",e,o)}}function m(e,r,o){{var s=l.ReactDebugCurrentFrame,y=s.getStackAddendum();y!==""&&(r+="%s",o=o.concat([y]));var h=o.map(function(f){return String(f)});h.unshift("Warning: "+r),Function.prototype.apply.call(console[e],console,h)}}var S=!1,E=!1,N=!1,k=!1,yr=!1,Ce;Ce=Symbol.for("react.module.reference");function gr(e){return!!(typeof e=="string"||typeof e=="function"||e===a||e===b||yr||e===u||e===T||e===g||k||e===F||S||E||N||typeof e=="object"&&e!==null&&(e.$$typeof===O||e.$$typeof===P||e.$$typeof===p||e.$$typeof===v||e.$$typeof===d||e.$$typeof===Ce||e.getModuleId!==void 0))}function hr(e,r,o){var s=e.displayName;if(s)return s;var y=r.displayName||r.name||"";return y!==""?o+"("+y+")":o}function xe(e){return e.displayName||"Context"}function I(e){if(e==null)return null;if(typeof e.tag=="number"&&x("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case a:return"Fragment";case i:return"Portal";case b:return"Profiler";case u:return"StrictMode";case T:return"Suspense";case g:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case v:var r=e;return xe(r)+".Consumer";case p:var o=e;return xe(o._context)+".Provider";case d:return hr(e,e.render,"ForwardRef");case P:var s=e.displayName||null;return s!==null?s:I(e.type)||"Memo";case O:{var y=e,h=y._payload,f=y._init;try{return I(f(h))}catch{return null}}}return null}var W=Object.assign,q=0,Te,Pe,Oe,Se,we,je,Ae;function Fe(){}Fe.__reactDisabledLog=!0;function br(){{if(q===0){Te=console.log,Pe=console.info,Oe=console.warn,Se=console.error,we=console.group,je=console.groupCollapsed,Ae=console.groupEnd;var e={configurable:!0,enumerable:!0,value:Fe,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}q++}}function Er(){{if(q--,q===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:W({},e,{value:Te}),info:W({},e,{value:Pe}),warn:W({},e,{value:Oe}),error:W({},e,{value:Se}),group:W({},e,{value:we}),groupCollapsed:W({},e,{value:je}),groupEnd:W({},e,{value:Ae})})}q<0&&x("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var ae=l.ReactCurrentDispatcher,ie;function $(e,r,o){{if(ie===void 0)try{throw Error()}catch(y){var s=y.stack.trim().match(/\n( *(at )?)/);ie=s&&s[1]||""}return`
19
+ `+ie+e}}var se=!1,ee;{var Rr=typeof WeakMap=="function"?WeakMap:Map;ee=new Rr}function De(e,r){if(!e||se)return"";{var o=ee.get(e);if(o!==void 0)return o}var s;se=!0;var y=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var h;h=ae.current,ae.current=null,br();try{if(r){var f=function(){throw Error()};if(Object.defineProperty(f.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(f,[])}catch(j){s=j}Reflect.construct(e,[],f)}else{try{f.call()}catch(j){s=j}e.call(f.prototype)}}else{try{throw Error()}catch(j){s=j}e()}}catch(j){if(j&&s&&typeof j.stack=="string"){for(var c=j.stack.split(`
20
+ `),w=s.stack.split(`
21
+ `),_=c.length-1,C=w.length-1;_>=1&&C>=0&&c[_]!==w[C];)C--;for(;_>=1&&C>=0;_--,C--)if(c[_]!==w[C]){if(_!==1||C!==1)do if(_--,C--,C<0||c[_]!==w[C]){var L=`
22
+ `+c[_].replace(" at new "," at ");return e.displayName&&L.includes("<anonymous>")&&(L=L.replace("<anonymous>",e.displayName)),typeof e=="function"&&ee.set(e,L),L}while(_>=1&&C>=0);break}}}finally{se=!1,ae.current=h,Er(),Error.prepareStackTrace=y}var G=e?e.displayName||e.name:"",Y=G?$(G):"";return typeof e=="function"&&ee.set(e,Y),Y}function mr(e,r,o){return De(e,!1)}function _r(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function re(e,r,o){if(e==null)return"";if(typeof e=="function")return De(e,_r(e));if(typeof e=="string")return $(e);switch(e){case T:return $("Suspense");case g:return $("SuspenseList")}if(typeof e=="object")switch(e.$$typeof){case d:return mr(e.render);case P:return re(e.type,r,o);case O:{var s=e,y=s._payload,h=s._init;try{return re(h(y),r,o)}catch{}}}return""}var Z=Object.prototype.hasOwnProperty,Le={},Me=l.ReactDebugCurrentFrame;function te(e){if(e){var r=e._owner,o=re(e.type,e._source,r?r.type:null);Me.setExtraStackFrame(o)}else Me.setExtraStackFrame(null)}function Cr(e,r,o,s,y){{var h=Function.call.bind(Z);for(var f in e)if(h(e,f)){var c=void 0;try{if(typeof e[f]!="function"){var w=Error((s||"React class")+": "+o+" type `"+f+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[f]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw w.name="Invariant Violation",w}c=e[f](r,f,s,o,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(_){c=_}c&&!(c instanceof Error)&&(te(y),x("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",s||"React class",o,f,typeof c),te(null)),c instanceof Error&&!(c.message in Le)&&(Le[c.message]=!0,te(y),x("Failed %s type: %s",o,c.message),te(null))}}}var xr=Array.isArray;function ue(e){return xr(e)}function Tr(e){{var r=typeof Symbol=="function"&&Symbol.toStringTag,o=r&&e[Symbol.toStringTag]||e.constructor.name||"Object";return o}}function Pr(e){try{return Ie(e),!1}catch{return!0}}function Ie(e){return""+e}function Ne(e){if(Pr(e))return x("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Tr(e)),Ie(e)}var ke=l.ReactCurrentOwner,Or={key:!0,ref:!0,__self:!0,__source:!0},We,Ye;function Sr(e){if(Z.call(e,"ref")){var r=Object.getOwnPropertyDescriptor(e,"ref").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function wr(e){if(Z.call(e,"key")){var r=Object.getOwnPropertyDescriptor(e,"key").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function jr(e,r){typeof e.ref=="string"&&ke.current}function Ar(e,r){{var o=function(){We||(We=!0,x("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",r))};o.isReactWarning=!0,Object.defineProperty(e,"key",{get:o,configurable:!0})}}function Fr(e,r){{var o=function(){Ye||(Ye=!0,x("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",r))};o.isReactWarning=!0,Object.defineProperty(e,"ref",{get:o,configurable:!0})}}var Dr=function(e,r,o,s,y,h,f){var c={$$typeof:n,type:e,key:r,ref:o,props:f,_owner:h};return c._store={},Object.defineProperty(c._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(c,"_self",{configurable:!1,enumerable:!1,writable:!1,value:s}),Object.defineProperty(c,"_source",{configurable:!1,enumerable:!1,writable:!1,value:y}),Object.freeze&&(Object.freeze(c.props),Object.freeze(c)),c};function Lr(e,r,o,s,y){{var h,f={},c=null,w=null;o!==void 0&&(Ne(o),c=""+o),wr(r)&&(Ne(r.key),c=""+r.key),Sr(r)&&(w=r.ref,jr(r,y));for(h in r)Z.call(r,h)&&!Or.hasOwnProperty(h)&&(f[h]=r[h]);if(e&&e.defaultProps){var _=e.defaultProps;for(h in _)f[h]===void 0&&(f[h]=_[h])}if(c||w){var C=typeof e=="function"?e.displayName||e.name||"Unknown":e;c&&Ar(f,C),w&&Fr(f,C)}return Dr(e,c,w,y,s,ke.current,f)}}var ce=l.ReactCurrentOwner,Ue=l.ReactDebugCurrentFrame;function V(e){if(e){var r=e._owner,o=re(e.type,e._source,r?r.type:null);Ue.setExtraStackFrame(o)}else Ue.setExtraStackFrame(null)}var le;le=!1;function fe(e){return typeof e=="object"&&e!==null&&e.$$typeof===n}function Be(){{if(ce.current){var e=I(ce.current.type);if(e)return`
23
+
24
+ Check the render method of \``+e+"`."}return""}}function Mr(e){return""}var Ve={};function Ir(e){{var r=Be();if(!r){var o=typeof e=="string"?e:e.displayName||e.name;o&&(r=`
25
+
26
+ Check the top-level render call using <`+o+">.")}return r}}function Ge(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var o=Ir(r);if(Ve[o])return;Ve[o]=!0;var s="";e&&e._owner&&e._owner!==ce.current&&(s=" It was passed a child from "+I(e._owner.type)+"."),V(e),x('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',o,s),V(null)}}function Je(e,r){{if(typeof e!="object")return;if(ue(e))for(var o=0;o<e.length;o++){var s=e[o];fe(s)&&Ge(s,r)}else if(fe(e))e._store&&(e._store.validated=!0);else if(e){var y=D(e);if(typeof y=="function"&&y!==e.entries)for(var h=y.call(e),f;!(f=h.next()).done;)fe(f.value)&&Ge(f.value,r)}}}function Nr(e){{var r=e.type;if(r==null||typeof r=="string")return;var o;if(typeof r=="function")o=r.propTypes;else if(typeof r=="object"&&(r.$$typeof===d||r.$$typeof===P))o=r.propTypes;else return;if(o){var s=I(r);Cr(o,e.props,"prop",s,e)}else if(r.PropTypes!==void 0&&!le){le=!0;var y=I(r);x("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",y||"Unknown")}typeof r.getDefaultProps=="function"&&!r.getDefaultProps.isReactClassApproved&&x("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function kr(e){{for(var r=Object.keys(e.props),o=0;o<r.length;o++){var s=r[o];if(s!=="children"&&s!=="key"){V(e),x("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",s),V(null);break}}e.ref!==null&&(V(e),x("Invalid attribute `ref` supplied to `React.Fragment`."),V(null))}}var ze={};function Ke(e,r,o,s,y,h){{var f=gr(e);if(!f){var c="";(e===void 0||typeof e=="object"&&e!==null&&Object.keys(e).length===0)&&(c+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var w=Mr();w?c+=w:c+=Be();var _;e===null?_="null":ue(e)?_="array":e!==void 0&&e.$$typeof===n?(_="<"+(I(e.type)||"Unknown")+" />",c=" Did you accidentally export a JSX literal instead of a component?"):_=typeof e,x("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",_,c)}var C=Lr(e,r,o,y,h);if(C==null)return C;if(f){var L=r.children;if(L!==void 0)if(s)if(ue(L)){for(var G=0;G<L.length;G++)Je(L[G],e);Object.freeze&&Object.freeze(L)}else x("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else Je(L,e)}if(Z.call(r,"key")){var Y=I(e),j=Object.keys(r).filter(function(Gr){return Gr!=="key"}),de=j.length>0?"{key: someKey, "+j.join(": ..., ")+": ...}":"{key: someKey}";if(!ze[Y+de]){var Vr=j.length>0?"{"+j.join(": ..., ")+": ...}":"{}";x(`A props object containing a "key" prop is being spread into JSX:
27
+ let props = %s;
28
+ <%s {...props} />
29
+ React keys must be passed directly to JSX without using spread:
30
+ let props = %s;
31
+ <%s key={someKey} {...props} />`,de,Y,Vr,Y),ze[Y+de]=!0}}return e===a?kr(C):Nr(C),C}}function Wr(e,r,o){return Ke(e,r,o,!0)}function Yr(e,r,o){return Ke(e,r,o,!1)}var Ur=Yr,Br=Wr;H.Fragment=a,H.jsx=Ur,H.jsxs=Br}()),H}var ye;function Qe(){return ye||(ye=1,process.env.NODE_ENV==="production"?Q.exports=qe():Q.exports=Ze()),Q.exports}var M=Qe();const $e=({containerStyle:t,square:n,loading:i=!1,height:a=300,width:u="100%"},b)=>M.jsxs(J.Box,{sx:{position:"relative"},height:a,children:[M.jsx(J.Box,{sx:{borderRadius:n?0:1,left:0,position:"absolute",top:0,zIndex:1,...t},ref:b,width:u,height:a}),i&&M.jsx(J.Skeleton,{sx:{left:0,position:"absolute",top:0,zIndex:0},width:u,height:a,variant:n?"rectangular":"rounded"})]}),er=R.forwardRef($e),ge=t=>typeof t=="object"&&t!==null&&"type"in t&&"coordinates"in t,rr=t=>{if(typeof t!="object"||t===null||!("geometry"in t&&"properties"in t))return!1;const{geometry:i}=t;if(typeof i!="object"||i===null||!("coordinates"in i))return!1;const{coordinates:a}=i;if(!Array.isArray(a)||a.length!==2||!ge(i))return!1;const{properties:u}=t;return typeof u!="object"||u===null?!1:"id"in u&&u.id!==void 0},he=(t,n)=>Number.isFinite(t)&&Number.isFinite(n)&&t>=-90&&t<=90&&n>=-180&&n<=180,tr=()=>{try{const t=document.createElement("canvas");return!!(window.WebGLRenderingContext&&(t.getContext("webgl")||t.getContext("experimental-webgl")))}catch{return!1}};var U={},be;function nr(){if(be)return U;be=1;var t=He;if(process.env.NODE_ENV==="production")U.createRoot=t.createRoot,U.hydrateRoot=t.hydrateRoot;else{var n=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;U.createRoot=function(i,a){n.usingClientEntryPoint=!0;try{return t.createRoot(i,a)}finally{n.usingClientEntryPoint=!1}},U.hydrateRoot=function(i,a,u){n.usingClientEntryPoint=!0;try{return t.hydrateRoot(i,a,u)}finally{n.usingClientEntryPoint=!1}}}return U}var Ee=nr();const or=t=>{const n=document.createElement("button");return n.innerText="×",n.style.position="absolute",n.style.top="5px",n.style.right="5px",n.style.background="transparent",n.style.border="none",n.style.fontSize="16px",n.style.padding="0",n.style.margin="0",n.style.cursor="pointer",n.type="button",n.setAttribute("aria-label","Close popup"),n.removeAttribute("aria-hidden"),n.onclick=()=>t.remove(),n},Re=({map:t,tooltip:n,coordinates:i})=>{if(!i||!n||!t.current||!Array.isArray(i)||i.length!==2)return;const a=document.createElement("div");a.style.position="relative",a.style.overflow="hidden";const u=document.createElement("div");u.style.padding="10px";const b=Ee.createRoot(u);b.render(n);const p=new z.Popup({closeButton:!1}).setLngLat(i).setDOMContent(a).addTo(t.current);p.on("close",()=>{b.unmount()});const v=or(p);a.appendChild(v),a.appendChild(u)},me=t=>Array.isArray(t)?t.length>=2?[t[0],t[1]]:void 0:t,ar=({map:t,markers:n,event:i})=>{var b,p,v,d,T;if(!((b=t.current)!=null&&b.isStyleLoaded()))return;const a=((d=(v=(p=t.current)==null?void 0:p.getStyle())==null?void 0:v.layers)==null?void 0:d.filter(g=>g.id.startsWith("marker-")).map(g=>g.id))||[],u=(T=t.current)==null?void 0:T.queryRenderedFeatures(i.point,{layers:a});if(u&&u.length>0){const g=u[0];if(!rr(g)||!ge(g.geometry))return;const{geometry:P}=g,{properties:O}=g,F=P.coordinates.slice();if(F.length!==2||typeof F[0]!="number"||typeof F[1]!="number")return;const[B,X]=F,D=n.find(l=>l.id===(O==null?void 0:O.id));D&&Re({coordinates:[B,X],map:t,tooltip:D==null?void 0:D.Tooltip})}},ir=({palette:t,type:n})=>{const i=t.mode==="dark"?"black":"white",a=t.secondary.main,u=t.info.main;switch(n){case"dropOff":return{"circle-color":i,"circle-radius":5,"circle-stroke-color":u,"circle-stroke-width":6};default:return{"circle-color":i,"circle-radius":7,"circle-stroke-color":a,"circle-stroke-width":8}}},sr=(t,n,i,a)=>{const u={features:i.map(p=>({geometry:{coordinates:p.geometry.coordinates,type:"Point"},properties:{id:p.properties.id,...p.properties},type:"Feature"})),type:"FeatureCollection"},b=t.getSource(n);b?b.setData(u):t.addSource(n,{data:u,type:"geojson"}),u.features.forEach(p=>{const{description:v,id:d}=p.properties||{},T=ir({palette:a,type:v}),g=`marker-${d}`;t.getLayer(g)?Object.entries(T||{}).forEach(([P,O])=>{t.setPaintProperty(g,P,O)}):t.addLayer({filter:["==","id",d],id:g,paint:T,source:n,type:"circle"})})},ur=(t,n)=>{document.querySelectorAll(".react-custom-marker").forEach(a=>a.remove()),n.forEach(a=>{const{IconComponent:u,iconProps:b}=a.properties||{},{coordinates:p}=a.geometry;if(u&&p.length>=2){const v=document.createElement("div");v.className="react-custom-marker",v.style.position="absolute";const d=document.createElement("div"),T=Ee.createRoot(d);u&&T.render(R.createElement(u,b||{})),v.appendChild(d),new z.Marker(v).setLngLat([p[0],p[1]]).addTo(t)}})},cr=t=>({features:(t==null?void 0:t.map((n,i)=>({geometry:{coordinates:[Number.isFinite(Number(n.lng))?Number(n.lng):Number(ne),Number.isFinite(Number(n.lat))?Number(n.lat):Number(oe)],type:"Point"},properties:{description:n.type,IconComponent:n.IconComponent,iconProps:n.iconProps,id:n.id||`{marker-${i}}`,name:n.name,size:n.size||1,zIndex:n.zIndex||0},type:"Feature"})))||[],type:"FeatureCollection"}),lr=({map:t,setLoadingMapBox:n,palette:i,markers:a})=>{if(n(!1),!t.current)return;const u=cr(a),b=u.features.filter(v=>{var d;return((d=v.properties)==null?void 0:d.IconComponent)===void 0}),p=u.features.filter(v=>{var d;return(d=v.properties)==null?void 0:d.IconComponent});p.length&&ur(t.current,p),b.length&&sr(t.current,"markerProps",b,i)},fr=({mapStyle:t,mapContainer:n,zoomFlyFrom:i,markers:a,center:u})=>{var p,v;return{center:u?me(u):{lat:((p=a==null?void 0:a[0])==null?void 0:p.lat)!==void 0?Number(a[0].lat):oe,lng:((v=a==null?void 0:a[0])==null?void 0:v.lng)!==void 0?Number(a[0].lng):ne},container:(n==null?void 0:n.current)||"",cooperativeGestures:!0,failIfMajorPerformanceCaveat:!1,style:t,zoom:i}},ne=2.333,oe=46.8677,dr=({markers:t,loading:n,center:i,flyToDuration:a=5e3,fitBoundDuration:u=1e3,fitBounds:b=!0,disableFlyTo:p=!1,fitBoundsPadding:v=50,mapStyle:d="mapbox://styles/mapbox/streets-v12?optimize=true",zoom:T=6,zoomFlyFrom:g=3,openPopup:P,onMapClick:O})=>{const{palette:F}=J.useTheme(),[B,X]=R.useState(!0),D=R.useRef(null),l=R.useRef(null),x=!t||t.some(m=>m.lat===void 0||m.lng===void 0);return R.useEffect(()=>{if(l.current||!D.current||n||!tr())return;D.current.innerHTML!==""&&(D.current.innerHTML="");const m=fr({center:i,mapContainer:D,mapStyle:d,markers:t,zoomFlyFrom:g});l.current=new z.Map(m)},[i,n,d,t,g]),R.useEffect(()=>{if(!l.current||x)return;const m=()=>{lr({map:l,markers:t,palette:F,setLoadingMapBox:X})};l.current.loaded()?m():l.current.once("load",m)},[t,x,F]),R.useEffect(()=>{if(!l.current||!t)return;const m=l.current._popups;if(m.length&&m.forEach(E=>E.remove()),P){const E=t.find(k=>k.id===P),N=[Number(E==null?void 0:E.lng)||0,Number(E==null?void 0:E.lat)||0];Re({coordinates:N,map:l,tooltip:E==null?void 0:E.Tooltip})}const S=E=>{ar({event:E,map:l,markers:t})};return l.current.on("click",S),()=>{var E;(E=l.current)==null||E.off("click",S)}},[l,t,P]),R.useEffect(()=>{if(!l.current||!i)return;const m=Array.isArray(i)&&he(i[1],i[0])?me(i):{lat:oe,lng:ne};m&&l.current.setCenter(m)},[i]),R.useEffect(()=>{if(!l.current||!O)return;const m=S=>O(S.lngLat.lng,S.lngLat.lat);return l.current.on("click",m),()=>{var S;(S=l.current)==null||S.off("click",m)}},[O]),R.useEffect(()=>{if(!l.current||(p||l.current.flyTo({duration:a,zoom:T}),!b||!(t!=null&&t.length)||(t==null?void 0:t.length)<2))return;const m=new z.LngLatBounds,S=t.filter(E=>{const N=Number(E.lng),k=Number(E.lat);return he(k,N)});if(!(S.length<2)){for(let E=0;E<S.length;E+=1){const N=Number(S[E].lng),k=Number(S[E].lat);m.extend([N,k])}l.current.fitBounds(m,{duration:u,padding:v})}},[t,b,v,a,T,u,p]),R.useEffect(()=>()=>{l.current&&(l.current.remove(),l.current=null)},[]),{loading:B||n,map:l,mapContainer:D,markers:t}},pr=({containerStyle:t,square:n,theme:i,height:a=300,width:u="100%",...b})=>{const{loading:p,mapContainer:v}=dr(b);return M.jsxs(M.Fragment,{children:[M.jsx(J.GlobalStyles,{styles:{".mapboxgl-popup-content":{backgroundColor:"transparent!important",borderRadius:"0px !important",boxShadow:"none!important",padding:"0px 0px!important",width:"fit-content!important"}}}),M.jsx(er,{ref:v,loading:p,height:a,width:u,containerStyle:t,square:n})]})},_e=R.createContext({licenceMapbox:"",licenseMuiX:""}),vr=({children:t,licenseMuiX:n,licenceMapbox:i})=>{R.useEffect(()=>{n&&Xe.LicenseInfo.setLicenseKey(n)},[n]);const a=R.useMemo(()=>({licenceMapbox:i,licenseMuiX:n}),[n,i]);return i&&(z.accessToken=i),M.jsx(_e.Provider,{value:a,children:t})};A.MapProvider=vr,A.MapProviderContext=_e,A.MarkerMap=pr,Object.defineProperty(A,Symbol.toStringTag,{value:"Module"})});
@@ -0,0 +1,89 @@
1
+ import { SxProps, ThemeOptions } from '@tracktor/design-system';
2
+ import { LngLatLike } from 'mapbox-gl';
3
+ import { MarkerProps } from './Markers.tsx';
4
+ export interface MarkerMapProps {
5
+ /**
6
+ * Determines if the map should automatically adjust its zoom to include all markers.
7
+ */
8
+ fitBounds?: boolean;
9
+ /**
10
+ * Padding in pixels to add around bounds when using fitBounds.
11
+ */
12
+ fitBoundsPadding?: number;
13
+ /**
14
+ * Coordinates for the center of the map (longitude, latitude).
15
+ */
16
+ center?: LngLatLike | number[];
17
+ /**
18
+ * Map style to use (URL or style identifier).
19
+ */
20
+ mapStyle?: string;
21
+ /**
22
+ * Initial zoom level of the map.
23
+ */
24
+ zoom?: number;
25
+ /**
26
+ * Zoom level to use during fly animations.
27
+ */
28
+ zoomFlyFrom?: number;
29
+ /**
30
+ * Maximum width of popups in pixels or other CSS unit.
31
+ */
32
+ popupMaxWidth?: string;
33
+ /**
34
+ * Width of the map container.
35
+ */
36
+ width?: number | string;
37
+ /**
38
+ * Height of the map container.
39
+ */
40
+ height?: number | string;
41
+ /**
42
+ * Indicates if the map is currently loading.
43
+ */
44
+ loading?: boolean;
45
+ /**
46
+ * URL of the image to use for markers.
47
+ */
48
+ markerImageURL?: string;
49
+ /**
50
+ * Style to apply to the map container (uses MUI's SxProps system).
51
+ */
52
+ containerStyle?: SxProps;
53
+ /**
54
+ * Disables the animation when flying to a point.
55
+ */
56
+ disableFlyTo?: boolean;
57
+ /**
58
+ * Duration of the fly animation in milliseconds.
59
+ */
60
+ flyToDuration?: number;
61
+ /**
62
+ * Duration of the fit bounds animation in milliseconds.
63
+ */
64
+ fitBoundDuration?: number;
65
+ /**
66
+ * Forces the map container to be square.
67
+ */
68
+ square?: boolean;
69
+ /**
70
+ * ID of the marker whose popup should be open by default.
71
+ */
72
+ openPopup?: number | string;
73
+ /**
74
+ * Automatically opens popups when hovering over markers.
75
+ */
76
+ openPopupOnHover?: boolean;
77
+ /**
78
+ * Array of markers to display on the map.
79
+ */
80
+ markers?: MarkerProps[];
81
+ /**
82
+ * Function called when clicking on the map, with coordinates of the clicked point.
83
+ */
84
+ onMapClick?: (lng: number, lat: number) => void;
85
+ /**
86
+ * The theme of Map. If not set, it will use the theme of the parent ThemeProvider.
87
+ */
88
+ theme?: "dark" | "light" | ThemeOptions;
89
+ }
@@ -0,0 +1,15 @@
1
+ import { default as React, ReactNode } from 'react';
2
+ export interface MarkerProps {
3
+ id?: number | string;
4
+ lng: number | unknown;
5
+ lat: number | unknown;
6
+ Tooltip?: ReactNode;
7
+ iconImage?: string;
8
+ size?: number;
9
+ zIndex?: number;
10
+ onClick?: () => void;
11
+ type?: string;
12
+ name?: string;
13
+ IconComponent?: React.ComponentType<any>;
14
+ iconProps?: Record<string, any>;
15
+ }
@@ -0,0 +1,19 @@
1
+ type Coordinates = [number, number];
2
+ interface GeometryPoint {
3
+ type: string;
4
+ coordinates: Coordinates;
5
+ }
6
+ interface FeatureProperties {
7
+ id: string | number;
8
+ [key: string]: unknown;
9
+ }
10
+ export interface ClickedFeature {
11
+ geometry: GeometryPoint;
12
+ properties: FeatureProperties;
13
+ [key: string]: unknown;
14
+ }
15
+ export declare const isFeatureGeometry: (geometry: unknown) => geometry is GeometryPoint;
16
+ export declare const isClickedFeature: (feature: unknown) => feature is ClickedFeature;
17
+ export declare const isValidLatLng: (lat: number, lng: number) => boolean;
18
+ export declare const isWebGLSupported: () => boolean;
19
+ export {};
@@ -0,0 +1,15 @@
1
+ import { Map } from 'mapbox-gl';
2
+ import { MutableRefObject, ReactNode } from 'react';
3
+ interface AddPopupProps {
4
+ coordinates?: [number, number];
5
+ tooltip?: ReactNode;
6
+ map: MutableRefObject<Map | null>;
7
+ }
8
+ /**
9
+ * Add a popup on the map at the provided coordinates with the provided tooltip (ReactNode)
10
+ * @param map
11
+ * @param tooltip
12
+ * @param coordinates
13
+ */
14
+ declare const addPopup: ({ map, tooltip, coordinates }: AddPopupProps) => void;
15
+ export default addPopup;
@@ -0,0 +1,7 @@
1
+ import { LngLatLike } from 'mapbox-gl';
2
+ /**
3
+ * Cast the center to LngLatLike if it's an array (in right Coordinates system [lng, lat])
4
+ * @param center
5
+ */
6
+ declare const coordinateConverter: (center: LngLatLike | number[] | undefined) => LngLatLike | undefined;
7
+ export default coordinateConverter;
@@ -0,0 +1,15 @@
1
+ import { MapMouseEvent, Map } from 'mapbox-gl';
2
+ import { MutableRefObject } from 'react';
3
+ import { MarkerProps } from '../types/Markers.tsx';
4
+ export interface HandleMapClickProps {
5
+ map: MutableRefObject<Map | null>;
6
+ markers: MarkerProps[];
7
+ event: MapMouseEvent;
8
+ }
9
+ /**
10
+ * Handle the map click event to display a popup on the clicked marker
11
+ * @param map
12
+ * @param markers
13
+ * @param event
14
+ */
15
+ export declare const handleMapClick: ({ map, markers, event }: HandleMapClickProps) => void;
@@ -0,0 +1,35 @@
1
+ import { Palette } from '@tracktor/design-system';
2
+ import { Map } from 'mapbox-gl';
3
+ import { MutableRefObject } from 'react';
4
+ import { MarkerProps } from '../types/Markers.tsx';
5
+ interface GenerateMarkersProps {
6
+ palette: Palette;
7
+ type?: string;
8
+ }
9
+ interface LoadMarkersProps {
10
+ map: MutableRefObject<Map | null>;
11
+ palette: Palette;
12
+ setLoadingMapBox: (loading: boolean) => void;
13
+ markers: MarkerProps[];
14
+ }
15
+ /**
16
+ * Assign the markers style based on provided palette and type
17
+ * @param palette - The color palette to use
18
+ * @param type - The marker type (e.g., "dropOff")
19
+ * @returns Style object for the marker
20
+ */
21
+ export declare const generateMarkers: ({ palette, type }: GenerateMarkersProps) => {
22
+ "circle-color": string;
23
+ "circle-radius": number;
24
+ "circle-stroke-color": string;
25
+ "circle-stroke-width": number;
26
+ };
27
+ /**
28
+ * Load GeoJSON markers on the map with the provided style
29
+ * @param map - MapBox instance
30
+ * @param setLoadingMapBox - Function to set loading state
31
+ * @param palette - Color palette
32
+ * @param markers - Array of marker objects
33
+ */
34
+ export declare const loadMarkers: ({ map, setLoadingMapBox, palette, markers }: LoadMarkersProps) => void;
35
+ export {};
@@ -0,0 +1,33 @@
1
+ import { LngLatLike } from 'mapbox-gl';
2
+ import { RefObject } from 'react';
3
+ import { MarkerProps } from '../types/Markers.tsx';
4
+ interface MapOptionsProps {
5
+ center?: LngLatLike | number[];
6
+ mapContainer?: RefObject<HTMLDivElement | null>;
7
+ markers?: MarkerProps[];
8
+ mapStyle: string;
9
+ zoomFlyFrom?: number;
10
+ }
11
+ /**
12
+ * MapBox options to initialize the map
13
+ * @param mapStyle
14
+ * @param mapContainer
15
+ * @param zoomFlyFrom
16
+ * @param markers
17
+ * @param center
18
+ */
19
+ declare const mapOptions: ({ mapStyle, mapContainer, zoomFlyFrom, markers, center }: MapOptionsProps) => {
20
+ center: {
21
+ lng: number;
22
+ lat: number;
23
+ } | {
24
+ lon: number;
25
+ lat: number;
26
+ } | [number, number] | undefined;
27
+ container: string | HTMLDivElement;
28
+ cooperativeGestures: boolean;
29
+ failIfMajorPerformanceCaveat: boolean;
30
+ style: string;
31
+ zoom: number | undefined;
32
+ };
33
+ export default mapOptions;
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@tracktor/map",
3
+ "description": "A react library to easily display map with multiple tools",
4
+ "private": false,
5
+ "version": "0.1.0",
6
+ "type": "module",
7
+ "scripts": {
8
+ "env:load": "./bin/load-env.sh",
9
+ "example": "vite",
10
+ "build": "tsc && vite build",
11
+ "lint": "eslint .",
12
+ "preview": "vite preview"
13
+ },
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "main": "dist/main.umd.cjs",
18
+ "module": "dist/main.js",
19
+ "exports": {
20
+ ".": {
21
+ "import": "./dist/main.js",
22
+ "require": "./dist/main.umd.cjs"
23
+ }
24
+ },
25
+ "dependencies": {
26
+ "@mui/icons-material": "^5.17.1",
27
+ "@mui/x-license": "^7.2.1",
28
+ "@tracktor/design-system": "^3.11.4",
29
+ "mapbox-gl": "^3.11.0"
30
+ },
31
+ "devDependencies": {
32
+ "@types/mapbox-gl": "^3.4.1",
33
+ "@types/node": "^22.14.0",
34
+ "@types/react": "^19.0.10",
35
+ "@types/react-dom": "^19.0.4",
36
+ "@vitejs/plugin-react": "^4.3.4",
37
+ "eslint-config-react-tracktor": "^1.10.0",
38
+ "globals": "^15.15.0",
39
+ "react": "^18.3.1",
40
+ "react-dom": "^18.3.1",
41
+ "typescript": "~5.7.2",
42
+ "vite": "^6.2.3",
43
+ "vite-plugin-dts": "^4.5.3",
44
+ "vite-plugin-css-injected-by-js": "^3.5.2"
45
+ },
46
+ "peerDependencies": {
47
+ "@mui/x-license": "*",
48
+ "@tracktor/design-system": "*",
49
+ "mapbox-gl": ">=3.0.0",
50
+ "react": "18.x",
51
+ "react-dom": "18.x"
52
+ }
53
+ }