diff --git a/README.md b/README.md
index 87aef8a..fa003f3 100644
--- a/README.md
+++ b/README.md
@@ -61,6 +61,113 @@ hugo server -D
hugo --minify
```
+## PARCOURSMOB Integration
+
+This website is designed to be served by **PARCOURSMOB**, COOPGO's inclusive mobility platform. PARCOURSMOB acts as a reverse proxy that serves Hugo static files and dynamically hydrates journey search data.
+
+### Architecture
+
+```
+┌─────────────┐ ┌──────────────┐ ┌─────────────┐
+│ Browser │────▶│ PARCOURSMOB │────▶│ Hugo Build │
+│ │◀────│ (Go app) │◀────│ (static) │
+└─────────────┘ └──────────────┘ └─────────────┘
+ │
+ ▼
+ ┌──────────────┐
+ │ APIs │
+ │ - Transit │
+ │ - Carpool │
+ │ - Vehicles │
+ │ - Knowledge │
+ └──────────────┘
+```
+
+### Data Hydration
+
+PARCOURSMOB injects search data into the page via the global variable `window.__PARCOURSMOB_DATA__`. This variable contains:
+
+```javascript
+window.__PARCOURSMOB_DATA__ = {
+ searched: true, // Search was performed
+ departure: { /* GeoJSON Feature */ },
+ destination: { /* GeoJSON Feature */ },
+ departure_date: "2024-01-15",
+ departure_time: "08:30",
+ results: {
+ public_transit: {
+ number: 3,
+ results: [ /* OTP itineraries */ ]
+ },
+ carpools: {
+ number: 2,
+ results: [ /* RDEX/OCSS carpools */ ]
+ },
+ solidarity_drivers: {
+ number: 5
+ },
+ organized_carpools: {
+ number: 2
+ },
+ vehicles: {
+ number: 3,
+ results: [ /* Available vehicles */ ]
+ },
+ local_solutions: {
+ number: 4,
+ results: [ /* Knowledge base solutions */ ]
+ }
+ }
+};
+```
+
+### Dynamic Pages
+
+#### Search Page (`/recherche/`)
+
+The search form sends the following parameters:
+- `departure`: GeoJSON Feature of departure address (JSON stringified)
+- `destination`: GeoJSON Feature of arrival address (JSON stringified)
+- `departuredate`: Date in `YYYY-MM-DD` format
+- `departuretime`: Time in `HH:MM` format
+
+Address autocomplete uses the French government Address API (`api-adresse.data.gouv.fr`).
+
+### Alpine.js Components
+
+The site uses [Alpine.js](https://alpinejs.dev/) for client-side reactivity:
+
+- `searchBlock()`: Search form management with autocomplete
+- `rechercheApp()`: Results display and map interaction
+
+### MapLibre Map
+
+The map uses [MapLibre GL JS](https://maplibre.org/) with:
+- Self-hosted PMTiles
+- Custom markers for departure/arrival
+- Journey display (decoded polylines)
+- Geographic zones display (local solutions)
+
+### Configuration
+
+CTA (Call-to-Action) texts are configurable in the front matter of `/content/recherche/index.md`:
+
+```yaml
+contactCTA:
+ transit: "To organize your trip..."
+ carpool: "To organize your trip..."
+ solidarity: "To organize your trip..."
+ vehicles: "For more information..."
+ localSolutions: "For more information..."
+localSolutionsText: "Mobi'Pouce, on-demand transport..."
+```
+
+### Deployment
+
+1. Build the Hugo site: `hugo --minify`
+2. Configure PARCOURSMOB to serve the `public/` folder
+3. PARCOURSMOB intercepts requests to `/recherche/` and injects data
+
## License
This project is licensed under the **AGPLv3** (GNU Affero General Public License v3.0).
diff --git a/content/recherche/index.md b/content/recherche/index.md
new file mode 100644
index 0000000..6fd8498
--- /dev/null
+++ b/content/recherche/index.md
@@ -0,0 +1,12 @@
+---
+title: "Rechercher un trajet"
+headline: "Trouvez votre solution de mobilité"
+layout: recherche
+contactCTA:
+ transit: "Pour organiser votre déplacement, vous pouvez aussi appeler la Maison de la Mobilité Solidaire au"
+ carpool: "Pour organiser votre déplacement, vous pouvez aussi appeler la Maison de la Mobilité Solidaire au"
+ solidarity: "Pour organiser votre déplacement, appelez la Maison de la Mobilité Solidaire au"
+ vehicles: "Pour en savoir plus et réserver un véhicule, appelez la Maison de la Mobilité Solidaire au"
+ localSolutions: "Pour plus d'informations et pour organiser votre déplacement, appelez la Maison de la Mobilité Solidaire au"
+localSolutionsText: "Mobi'Pouce, transport à la demande, location de vélos, service de taxi gratuit... De nombreuses solutions existent sur le territoire."
+---
diff --git a/static/maps/protomaps-light.json b/static/maps/protomaps-light.json
new file mode 100644
index 0000000..0fce8d0
--- /dev/null
+++ b/static/maps/protomaps-light.json
@@ -0,0 +1,11818 @@
+{
+ "version": 8,
+ "sources": {
+ "protomaps": {
+ "type": "vector",
+ "url": "pmtiles://https://coopgo-gis-data.s3.fr-par.scw.cloud/vector-tiles/pmtiles/planet.pmtiles"
+ }
+ },
+ "layers": [
+ {
+ "id": "background",
+ "type": "background",
+ "paint": {
+ "background-color": "#cccccc"
+ }
+ },
+ {
+ "id": "earth",
+ "type": "fill",
+ "filter": [
+ "==",
+ "$type",
+ "Polygon"
+ ],
+ "source": "protomaps",
+ "source-layer": "earth",
+ "paint": {
+ "fill-color": "#e2dfda"
+ }
+ },
+ {
+ "id": "landcover",
+ "type": "fill",
+ "source": "protomaps",
+ "source-layer": "landcover",
+ "paint": {
+ "fill-color": [
+ "match",
+ [
+ "get",
+ "kind"
+ ],
+ "grassland",
+ "rgba(210, 239, 207, 1)",
+ "barren",
+ "rgba(255, 243, 215, 1)",
+ "urban_area",
+ "rgba(230, 230, 230, 1)",
+ "farmland",
+ "rgba(216, 239, 210, 1)",
+ "glacier",
+ "rgba(255, 255, 255, 1)",
+ "scrub",
+ "rgba(234, 239, 210, 1)",
+ "rgba(196, 231, 210, 1)"
+ ],
+ "fill-opacity": [
+ "interpolate",
+ [
+ "linear"
+ ],
+ [
+ "zoom"
+ ],
+ 5,
+ 1,
+ 7,
+ 0
+ ]
+ }
+ },
+ {
+ "id": "landuse_park",
+ "type": "fill",
+ "source": "protomaps",
+ "source-layer": "landuse",
+ "filter": [
+ "in",
+ "kind",
+ "national_park",
+ "park",
+ "cemetery",
+ "protected_area",
+ "nature_reserve",
+ "forest",
+ "golf_course",
+ "wood",
+ "nature_reserve",
+ "forest",
+ "scrub",
+ "grassland",
+ "grass",
+ "military",
+ "naval_base",
+ "airfield"
+ ],
+ "paint": {
+ "fill-opacity": [
+ "interpolate",
+ [
+ "linear"
+ ],
+ [
+ "zoom"
+ ],
+ 6,
+ 0,
+ 11,
+ 1
+ ],
+ "fill-color": [
+ "case",
+ [
+ "in",
+ [
+ "get",
+ "kind"
+ ],
+ [
+ "literal",
+ [
+ "national_park",
+ "park",
+ "cemetery",
+ "protected_area",
+ "nature_reserve",
+ "forest",
+ "golf_course"
+ ]
+ ]
+ ],
+ "#9cd3b4",
+ [
+ "in",
+ [
+ "get",
+ "kind"
+ ],
+ [
+ "literal",
+ [
+ "wood",
+ "nature_reserve",
+ "forest"
+ ]
+ ]
+ ],
+ "#a0d9a0",
+ [
+ "in",
+ [
+ "get",
+ "kind"
+ ],
+ [
+ "literal",
+ [
+ "scrub",
+ "grassland",
+ "grass"
+ ]
+ ]
+ ],
+ "#99d2bb",
+ [
+ "in",
+ [
+ "get",
+ "kind"
+ ],
+ [
+ "literal",
+ [
+ "glacier"
+ ]
+ ]
+ ],
+ "#e7e7e7",
+ [
+ "in",
+ [
+ "get",
+ "kind"
+ ],
+ [
+ "literal",
+ [
+ "sand"
+ ]
+ ]
+ ],
+ "#e2e0d7",
+ [
+ "in",
+ [
+ "get",
+ "kind"
+ ],
+ [
+ "literal",
+ [
+ "military",
+ "naval_base",
+ "airfield"
+ ]
+ ]
+ ],
+ "#c6dcdc",
+ "#e2dfda"
+ ]
+ }
+ },
+ {
+ "id": "landuse_urban_green",
+ "type": "fill",
+ "source": "protomaps",
+ "source-layer": "landuse",
+ "filter": [
+ "in",
+ "kind",
+ "allotments",
+ "village_green",
+ "playground"
+ ],
+ "paint": {
+ "fill-color": "#9cd3b4",
+ "fill-opacity": 0.7
+ }
+ },
+ {
+ "id": "landuse_hospital",
+ "type": "fill",
+ "source": "protomaps",
+ "source-layer": "landuse",
+ "filter": [
+ "==",
+ "kind",
+ "hospital"
+ ],
+ "paint": {
+ "fill-color": "#e4dad9"
+ }
+ },
+ {
+ "id": "landuse_industrial",
+ "type": "fill",
+ "source": "protomaps",
+ "source-layer": "landuse",
+ "filter": [
+ "==",
+ "kind",
+ "industrial"
+ ],
+ "paint": {
+ "fill-color": "#d1dde1"
+ }
+ },
+ {
+ "id": "landuse_school",
+ "type": "fill",
+ "source": "protomaps",
+ "source-layer": "landuse",
+ "filter": [
+ "in",
+ "kind",
+ "school",
+ "university",
+ "college"
+ ],
+ "paint": {
+ "fill-color": "#e4ded7"
+ }
+ },
+ {
+ "id": "landuse_beach",
+ "type": "fill",
+ "source": "protomaps",
+ "source-layer": "landuse",
+ "filter": [
+ "in",
+ "kind",
+ "beach"
+ ],
+ "paint": {
+ "fill-color": "#e8e4d0"
+ }
+ },
+ {
+ "id": "landuse_zoo",
+ "type": "fill",
+ "source": "protomaps",
+ "source-layer": "landuse",
+ "filter": [
+ "in",
+ "kind",
+ "zoo"
+ ],
+ "paint": {
+ "fill-color": "#c6dcdc"
+ }
+ },
+ {
+ "id": "landuse_aerodrome",
+ "type": "fill",
+ "source": "protomaps",
+ "source-layer": "landuse",
+ "filter": [
+ "in",
+ "kind",
+ "aerodrome"
+ ],
+ "paint": {
+ "fill-color": "#dadbdf"
+ }
+ },
+ {
+ "id": "roads_runway",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "filter": [
+ "==",
+ "kind_detail",
+ "runway"
+ ],
+ "paint": {
+ "line-color": "#e9e9ed",
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 10,
+ 0,
+ 12,
+ 4,
+ 18,
+ 30
+ ]
+ }
+ },
+ {
+ "id": "roads_taxiway",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "minzoom": 13,
+ "filter": [
+ "==",
+ "kind_detail",
+ "taxiway"
+ ],
+ "paint": {
+ "line-color": "#e9e9ed",
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 13,
+ 0,
+ 13.5,
+ 1,
+ 15,
+ 6
+ ]
+ }
+ },
+ {
+ "id": "landuse_runway",
+ "type": "fill",
+ "source": "protomaps",
+ "source-layer": "landuse",
+ "filter": [
+ "any",
+ [
+ "in",
+ "kind",
+ "runway",
+ "taxiway"
+ ]
+ ],
+ "paint": {
+ "fill-color": "#e9e9ed"
+ }
+ },
+ {
+ "id": "water",
+ "type": "fill",
+ "filter": [
+ "==",
+ "$type",
+ "Polygon"
+ ],
+ "source": "protomaps",
+ "source-layer": "water",
+ "paint": {
+ "fill-color": "#80deea"
+ }
+ },
+ {
+ "id": "water_stream",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "water",
+ "minzoom": 14,
+ "filter": [
+ "in",
+ "kind",
+ "stream"
+ ],
+ "paint": {
+ "line-color": "#80deea",
+ "line-width": 0.5
+ }
+ },
+ {
+ "id": "water_river",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "water",
+ "minzoom": 9,
+ "filter": [
+ "in",
+ "kind",
+ "river"
+ ],
+ "paint": {
+ "line-color": "#80deea",
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 9,
+ 0,
+ 9.5,
+ 1,
+ 18,
+ 12
+ ]
+ }
+ },
+ {
+ "id": "landuse_pedestrian",
+ "type": "fill",
+ "source": "protomaps",
+ "source-layer": "landuse",
+ "filter": [
+ "in",
+ "kind",
+ "pedestrian",
+ "dam"
+ ],
+ "paint": {
+ "fill-color": "#e3e0d4"
+ }
+ },
+ {
+ "id": "landuse_pier",
+ "type": "fill",
+ "source": "protomaps",
+ "source-layer": "landuse",
+ "filter": [
+ "==",
+ "kind",
+ "pier"
+ ],
+ "paint": {
+ "fill-color": "#e0e0e0"
+ }
+ },
+ {
+ "id": "roads_tunnels_other_casing",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "filter": [
+ "all",
+ [
+ "has",
+ "is_tunnel"
+ ],
+ [
+ "in",
+ "kind",
+ "other",
+ "path"
+ ]
+ ],
+ "paint": {
+ "line-color": "#e0e0e0",
+ "line-gap-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 14,
+ 0,
+ 20,
+ 7
+ ]
+ }
+ },
+ {
+ "id": "roads_tunnels_minor_casing",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "filter": [
+ "all",
+ [
+ "has",
+ "is_tunnel"
+ ],
+ [
+ "==",
+ "kind",
+ "minor_road"
+ ]
+ ],
+ "paint": {
+ "line-color": "#e0e0e0",
+ "line-dasharray": [
+ 3,
+ 2
+ ],
+ "line-gap-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 11,
+ 0,
+ 12.5,
+ 0.5,
+ 15,
+ 2,
+ 18,
+ 11
+ ],
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 12,
+ 0,
+ 12.5,
+ 1
+ ]
+ }
+ },
+ {
+ "id": "roads_tunnels_link_casing",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "filter": [
+ "all",
+ [
+ "has",
+ "is_tunnel"
+ ],
+ [
+ "has",
+ "is_link"
+ ]
+ ],
+ "paint": {
+ "line-color": "#e0e0e0",
+ "line-dasharray": [
+ 3,
+ 2
+ ],
+ "line-gap-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 13,
+ 0,
+ 13.5,
+ 1,
+ 18,
+ 11
+ ],
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 12,
+ 0,
+ 12.5,
+ 1
+ ]
+ }
+ },
+ {
+ "id": "roads_tunnels_major_casing",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "filter": [
+ "all",
+ [
+ "!has",
+ "is_tunnel"
+ ],
+ [
+ "!has",
+ "is_bridge"
+ ],
+ [
+ "==",
+ "kind",
+ "major_road"
+ ]
+ ],
+ "paint": {
+ "line-color": "#e0e0e0",
+ "line-dasharray": [
+ 3,
+ 2
+ ],
+ "line-gap-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 7,
+ 0,
+ 7.5,
+ 0.5,
+ 18,
+ 13
+ ],
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 9,
+ 0,
+ 9.5,
+ 1
+ ]
+ }
+ },
+ {
+ "id": "roads_tunnels_highway_casing",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "filter": [
+ "all",
+ [
+ "!has",
+ "is_tunnel"
+ ],
+ [
+ "!has",
+ "is_bridge"
+ ],
+ [
+ "==",
+ "kind",
+ "highway"
+ ],
+ [
+ "!has",
+ "is_link"
+ ]
+ ],
+ "paint": {
+ "line-color": "#e0e0e0",
+ "line-dasharray": [
+ 6,
+ 0.5
+ ],
+ "line-gap-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 3,
+ 0,
+ 3.5,
+ 0.5,
+ 18,
+ 15
+ ],
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 7,
+ 0,
+ 7.5,
+ 1,
+ 20,
+ 15
+ ]
+ }
+ },
+ {
+ "id": "roads_tunnels_other",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "filter": [
+ "all",
+ [
+ "has",
+ "is_tunnel"
+ ],
+ [
+ "in",
+ "kind",
+ "other",
+ "path"
+ ]
+ ],
+ "paint": {
+ "line-color": "#d5d5d5",
+ "line-dasharray": [
+ 4.5,
+ 0.5
+ ],
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 14,
+ 0,
+ 20,
+ 7
+ ]
+ }
+ },
+ {
+ "id": "roads_tunnels_minor",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "filter": [
+ "all",
+ [
+ "has",
+ "is_tunnel"
+ ],
+ [
+ "==",
+ "kind",
+ "minor_road"
+ ]
+ ],
+ "paint": {
+ "line-color": "#d5d5d5",
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 11,
+ 0,
+ 12.5,
+ 0.5,
+ 15,
+ 2,
+ 18,
+ 11
+ ]
+ }
+ },
+ {
+ "id": "roads_tunnels_link",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "filter": [
+ "all",
+ [
+ "has",
+ "is_tunnel"
+ ],
+ [
+ "has",
+ "is_link"
+ ]
+ ],
+ "paint": {
+ "line-color": "#d5d5d5",
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 13,
+ 0,
+ 13.5,
+ 1,
+ 18,
+ 11
+ ]
+ }
+ },
+ {
+ "id": "roads_tunnels_major",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "filter": [
+ "all",
+ [
+ "has",
+ "is_tunnel"
+ ],
+ [
+ "==",
+ "kind",
+ "major_road"
+ ]
+ ],
+ "paint": {
+ "line-color": "#d5d5d5",
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 6,
+ 0,
+ 12,
+ 1.6,
+ 15,
+ 3,
+ 18,
+ 13
+ ]
+ }
+ },
+ {
+ "id": "roads_tunnels_highway",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "filter": [
+ "all",
+ [
+ "has",
+ "is_tunnel"
+ ],
+ [
+ "==",
+ [
+ "get",
+ "kind"
+ ],
+ "highway"
+ ],
+ [
+ "!",
+ [
+ "has",
+ "is_link"
+ ]
+ ]
+ ],
+ "paint": {
+ "line-color": "#d5d5d5",
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 3,
+ 0,
+ 6,
+ 1.1,
+ 12,
+ 1.6,
+ 15,
+ 5,
+ 18,
+ 15
+ ]
+ }
+ },
+ {
+ "id": "buildings",
+ "type": "fill",
+ "source": "protomaps",
+ "source-layer": "buildings",
+ "filter": [
+ "in",
+ "kind",
+ "building",
+ "building_part"
+ ],
+ "paint": {
+ "fill-color": "#cccccc",
+ "fill-opacity": 0.5
+ }
+ },
+ {
+ "id": "roads_pier",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "filter": [
+ "==",
+ "kind_detail",
+ "pier"
+ ],
+ "paint": {
+ "line-color": "#e0e0e0",
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 12,
+ 0,
+ 12.5,
+ 0.5,
+ 20,
+ 16
+ ]
+ }
+ },
+ {
+ "id": "roads_minor_service_casing",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "!has",
+ "is_tunnel"
+ ],
+ [
+ "!has",
+ "is_bridge"
+ ],
+ [
+ "==",
+ "kind",
+ "minor_road"
+ ],
+ [
+ "==",
+ "kind_detail",
+ "service"
+ ]
+ ],
+ "paint": {
+ "line-color": "#e0e0e0",
+ "line-gap-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 13,
+ 0,
+ 18,
+ 8
+ ],
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 13,
+ 0,
+ 13.5,
+ 0.8
+ ]
+ }
+ },
+ {
+ "id": "roads_minor_casing",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "filter": [
+ "all",
+ [
+ "!has",
+ "is_tunnel"
+ ],
+ [
+ "!has",
+ "is_bridge"
+ ],
+ [
+ "==",
+ "kind",
+ "minor_road"
+ ],
+ [
+ "!=",
+ "kind_detail",
+ "service"
+ ]
+ ],
+ "paint": {
+ "line-color": "#e0e0e0",
+ "line-gap-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 11,
+ 0,
+ 12.5,
+ 0.5,
+ 15,
+ 2,
+ 18,
+ 11
+ ],
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 12,
+ 0,
+ 12.5,
+ 1
+ ]
+ }
+ },
+ {
+ "id": "roads_link_casing",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "minzoom": 13,
+ "filter": [
+ "has",
+ "is_link"
+ ],
+ "paint": {
+ "line-color": "#e0e0e0",
+ "line-gap-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 13,
+ 0,
+ 13.5,
+ 1,
+ 18,
+ 11
+ ],
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 13,
+ 0,
+ 13.5,
+ 1.5
+ ]
+ }
+ },
+ {
+ "id": "roads_major_casing_late",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ [
+ "!has",
+ "is_tunnel"
+ ],
+ [
+ "!has",
+ "is_bridge"
+ ],
+ [
+ "==",
+ "kind",
+ "major_road"
+ ]
+ ],
+ "paint": {
+ "line-color": "#e0e0e0",
+ "line-gap-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 6,
+ 0,
+ 12,
+ 1.6,
+ 15,
+ 3,
+ 18,
+ 13
+ ],
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 9,
+ 0,
+ 9.5,
+ 1
+ ]
+ }
+ },
+ {
+ "id": "roads_highway_casing_late",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ [
+ "!has",
+ "is_tunnel"
+ ],
+ [
+ "!has",
+ "is_bridge"
+ ],
+ [
+ "==",
+ "kind",
+ "highway"
+ ],
+ [
+ "!has",
+ "is_link"
+ ]
+ ],
+ "paint": {
+ "line-color": "#e0e0e0",
+ "line-gap-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 3,
+ 0,
+ 3.5,
+ 0.5,
+ 18,
+ 15
+ ],
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 7,
+ 0,
+ 7.5,
+ 1,
+ 20,
+ 15
+ ]
+ }
+ },
+ {
+ "id": "roads_other",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "filter": [
+ "all",
+ [
+ "!has",
+ "is_tunnel"
+ ],
+ [
+ "!has",
+ "is_bridge"
+ ],
+ [
+ "in",
+ "kind",
+ "other",
+ "path"
+ ],
+ [
+ "!=",
+ "kind_detail",
+ "pier"
+ ]
+ ],
+ "paint": {
+ "line-color": "#ebebeb",
+ "line-dasharray": [
+ 3,
+ 1
+ ],
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 14,
+ 0,
+ 20,
+ 7
+ ]
+ }
+ },
+ {
+ "id": "roads_link",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "filter": [
+ "has",
+ "is_link"
+ ],
+ "paint": {
+ "line-color": "#ffffff",
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 13,
+ 0,
+ 13.5,
+ 1,
+ 18,
+ 11
+ ]
+ }
+ },
+ {
+ "id": "roads_minor_service",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "filter": [
+ "all",
+ [
+ "!has",
+ "is_tunnel"
+ ],
+ [
+ "!has",
+ "is_bridge"
+ ],
+ [
+ "==",
+ "kind",
+ "minor_road"
+ ],
+ [
+ "==",
+ "kind_detail",
+ "service"
+ ]
+ ],
+ "paint": {
+ "line-color": "#ebebeb",
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 13,
+ 0,
+ 18,
+ 8
+ ]
+ }
+ },
+ {
+ "id": "roads_minor",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "filter": [
+ "all",
+ [
+ "!has",
+ "is_tunnel"
+ ],
+ [
+ "!has",
+ "is_bridge"
+ ],
+ [
+ "==",
+ "kind",
+ "minor_road"
+ ],
+ [
+ "!=",
+ "kind_detail",
+ "service"
+ ]
+ ],
+ "paint": {
+ "line-color": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 11,
+ "#ebebeb",
+ 16,
+ "#ffffff"
+ ],
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 11,
+ 0,
+ 12.5,
+ 0.5,
+ 15,
+ 2,
+ 18,
+ 11
+ ]
+ }
+ },
+ {
+ "id": "roads_major_casing_early",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "maxzoom": 12,
+ "filter": [
+ "all",
+ [
+ "!has",
+ "is_tunnel"
+ ],
+ [
+ "!has",
+ "is_bridge"
+ ],
+ [
+ "==",
+ "kind",
+ "major_road"
+ ]
+ ],
+ "paint": {
+ "line-color": "#e0e0e0",
+ "line-gap-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 7,
+ 0,
+ 7.5,
+ 0.5,
+ 18,
+ 13
+ ],
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 9,
+ 0,
+ 9.5,
+ 1
+ ]
+ }
+ },
+ {
+ "id": "roads_major",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "filter": [
+ "all",
+ [
+ "!has",
+ "is_tunnel"
+ ],
+ [
+ "!has",
+ "is_bridge"
+ ],
+ [
+ "==",
+ "kind",
+ "major_road"
+ ]
+ ],
+ "paint": {
+ "line-color": "#ffffff",
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 6,
+ 0,
+ 12,
+ 1.6,
+ 15,
+ 3,
+ 18,
+ 13
+ ]
+ }
+ },
+ {
+ "id": "roads_highway_casing_early",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "maxzoom": 12,
+ "filter": [
+ "all",
+ [
+ "!has",
+ "is_tunnel"
+ ],
+ [
+ "!has",
+ "is_bridge"
+ ],
+ [
+ "==",
+ "kind",
+ "highway"
+ ],
+ [
+ "!has",
+ "is_link"
+ ]
+ ],
+ "paint": {
+ "line-color": "#e0e0e0",
+ "line-gap-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 3,
+ 0,
+ 3.5,
+ 0.5,
+ 18,
+ 15
+ ],
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 7,
+ 0,
+ 7.5,
+ 1
+ ]
+ }
+ },
+ {
+ "id": "roads_highway",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "filter": [
+ "all",
+ [
+ "!has",
+ "is_tunnel"
+ ],
+ [
+ "!has",
+ "is_bridge"
+ ],
+ [
+ "==",
+ "kind",
+ "highway"
+ ],
+ [
+ "!has",
+ "is_link"
+ ]
+ ],
+ "paint": {
+ "line-color": "#ffffff",
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 3,
+ 0,
+ 6,
+ 1.1,
+ 12,
+ 1.6,
+ 15,
+ 5,
+ 18,
+ 15
+ ]
+ }
+ },
+ {
+ "id": "roads_rail",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "filter": [
+ "==",
+ "kind",
+ "rail"
+ ],
+ "paint": {
+ "line-dasharray": [
+ 0.3,
+ 0.75
+ ],
+ "line-opacity": 0.5,
+ "line-color": "#a7b1b3",
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 3,
+ 0,
+ 6,
+ 0.15,
+ 18,
+ 9
+ ]
+ }
+ },
+ {
+ "id": "boundaries_country",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "boundaries",
+ "filter": [
+ "<=",
+ "kind_detail",
+ 2
+ ],
+ "paint": {
+ "line-color": "#adadad",
+ "line-width": 0.7,
+ "line-dasharray": [
+ "step",
+ [
+ "zoom"
+ ],
+ [
+ "literal",
+ [
+ 2
+ ]
+ ],
+ 4,
+ [
+ "literal",
+ [
+ 2,
+ 1
+ ]
+ ]
+ ]
+ }
+ },
+ {
+ "id": "boundaries",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "boundaries",
+ "filter": [
+ ">",
+ "kind_detail",
+ 2
+ ],
+ "paint": {
+ "line-color": "#adadad",
+ "line-width": 0.4,
+ "line-dasharray": [
+ "step",
+ [
+ "zoom"
+ ],
+ [
+ "literal",
+ [
+ 2
+ ]
+ ],
+ 4,
+ [
+ "literal",
+ [
+ 2,
+ 1
+ ]
+ ]
+ ]
+ }
+ },
+ {
+ "id": "roads_bridges_other_casing",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ [
+ "has",
+ "is_bridge"
+ ],
+ [
+ "in",
+ "kind",
+ "other",
+ "path"
+ ]
+ ],
+ "paint": {
+ "line-color": "#e0e0e0",
+ "line-gap-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 14,
+ 0,
+ 20,
+ 7
+ ]
+ }
+ },
+ {
+ "id": "roads_bridges_link_casing",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ [
+ "has",
+ "is_bridge"
+ ],
+ [
+ "has",
+ "is_link"
+ ]
+ ],
+ "paint": {
+ "line-color": "#e0e0e0",
+ "line-gap-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 13,
+ 0,
+ 13.5,
+ 1,
+ 18,
+ 11
+ ],
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 12,
+ 0,
+ 12.5,
+ 1.5
+ ]
+ }
+ },
+ {
+ "id": "roads_bridges_minor_casing",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ [
+ "has",
+ "is_bridge"
+ ],
+ [
+ "==",
+ "kind",
+ "minor_road"
+ ]
+ ],
+ "paint": {
+ "line-color": "#e0e0e0",
+ "line-gap-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 11,
+ 0,
+ 12.5,
+ 0.5,
+ 15,
+ 2,
+ 18,
+ 11
+ ],
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 13,
+ 0,
+ 13.5,
+ 0.8
+ ]
+ }
+ },
+ {
+ "id": "roads_bridges_major_casing",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ [
+ "has",
+ "is_bridge"
+ ],
+ [
+ "==",
+ "kind",
+ "major_road"
+ ]
+ ],
+ "paint": {
+ "line-color": "#e0e0e0",
+ "line-gap-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 7,
+ 0,
+ 7.5,
+ 0.5,
+ 18,
+ 10
+ ],
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 9,
+ 0,
+ 9.5,
+ 1.5
+ ]
+ }
+ },
+ {
+ "id": "roads_bridges_other",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ [
+ "has",
+ "is_bridge"
+ ],
+ [
+ "in",
+ "kind",
+ "other",
+ "path"
+ ]
+ ],
+ "paint": {
+ "line-color": "#ebebeb",
+ "line-dasharray": [
+ 2,
+ 1
+ ],
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 14,
+ 0,
+ 20,
+ 7
+ ]
+ }
+ },
+ {
+ "id": "roads_bridges_minor",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ [
+ "has",
+ "is_bridge"
+ ],
+ [
+ "==",
+ "kind",
+ "minor_road"
+ ]
+ ],
+ "paint": {
+ "line-color": "#ffffff",
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 11,
+ 0,
+ 12.5,
+ 0.5,
+ 15,
+ 2,
+ 18,
+ 11
+ ]
+ }
+ },
+ {
+ "id": "roads_bridges_link",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ [
+ "has",
+ "is_bridge"
+ ],
+ [
+ "has",
+ "is_link"
+ ]
+ ],
+ "paint": {
+ "line-color": "#ffffff",
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 13,
+ 0,
+ 13.5,
+ 1,
+ 18,
+ 11
+ ]
+ }
+ },
+ {
+ "id": "roads_bridges_major",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ [
+ "has",
+ "is_bridge"
+ ],
+ [
+ "==",
+ "kind",
+ "major_road"
+ ]
+ ],
+ "paint": {
+ "line-color": "#f5f5f5",
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 6,
+ 0,
+ 12,
+ 1.6,
+ 15,
+ 3,
+ 18,
+ 13
+ ]
+ }
+ },
+ {
+ "id": "roads_bridges_highway_casing",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ [
+ "has",
+ "is_bridge"
+ ],
+ [
+ "==",
+ "kind",
+ "highway"
+ ],
+ [
+ "!has",
+ "is_link"
+ ]
+ ],
+ "paint": {
+ "line-color": "#e0e0e0",
+ "line-gap-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 3,
+ 0,
+ 3.5,
+ 0.5,
+ 18,
+ 15
+ ],
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 7,
+ 0,
+ 7.5,
+ 1,
+ 20,
+ 15
+ ]
+ }
+ },
+ {
+ "id": "roads_bridges_highway",
+ "type": "line",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "filter": [
+ "all",
+ [
+ "has",
+ "is_bridge"
+ ],
+ [
+ "==",
+ "kind",
+ "highway"
+ ],
+ [
+ "!has",
+ "is_link"
+ ]
+ ],
+ "paint": {
+ "line-color": "#ffffff",
+ "line-width": [
+ "interpolate",
+ [
+ "exponential",
+ 1.6
+ ],
+ [
+ "zoom"
+ ],
+ 3,
+ 0,
+ 6,
+ 1.1,
+ 12,
+ 1.6,
+ 15,
+ 5,
+ 18,
+ 15
+ ]
+ }
+ },
+ {
+ "id": "address_label",
+ "type": "symbol",
+ "source": "protomaps",
+ "source-layer": "buildings",
+ "minzoom": 18,
+ "filter": [
+ "==",
+ "kind",
+ "address"
+ ],
+ "layout": {
+ "symbol-placement": "point",
+ "text-font": [
+ "Noto Sans Italic"
+ ],
+ "text-field": [
+ "get",
+ "addr_housenumber"
+ ],
+ "text-size": 12
+ },
+ "paint": {
+ "text-color": "#91888b",
+ "text-halo-color": "#ffffff",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "water_waterway_label",
+ "type": "symbol",
+ "source": "protomaps",
+ "source-layer": "water",
+ "minzoom": 13,
+ "filter": [
+ "in",
+ "kind",
+ "river",
+ "stream"
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-font": [
+ "Noto Sans Italic"
+ ],
+ "text-field": [
+ "case",
+ [
+ "all",
+ [
+ "any",
+ [
+ "has",
+ "name"
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name2"
+ ],
+ [
+ "has",
+ "pgf:name2"
+ ]
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name3"
+ ],
+ [
+ "has",
+ "pgf:name3"
+ ]
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "case",
+ [
+ "any",
+ [
+ "is-supported-script",
+ [
+ "get",
+ "name"
+ ]
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "name:en"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "case",
+ [
+ "all",
+ [
+ "!",
+ [
+ "has",
+ "name:fr"
+ ]
+ ],
+ [
+ "has",
+ "name:en"
+ ],
+ [
+ "!",
+ [
+ "has",
+ "script"
+ ]
+ ]
+ ],
+ "",
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "get",
+ "name:en"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {}
+ ]
+ ],
+ [
+ "all",
+ [
+ "any",
+ [
+ "has",
+ "name"
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "any",
+ [
+ "has",
+ "name2"
+ ],
+ [
+ "has",
+ "pgf:name2"
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name3"
+ ],
+ [
+ "has",
+ "pgf:name3"
+ ]
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "all",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "has",
+ "script2"
+ ]
+ ],
+ [
+ "format",
+ [
+ "get",
+ "name:fr"
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "case",
+ [
+ "has",
+ "script2"
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "all",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "has",
+ "script2"
+ ],
+ [
+ "has",
+ "script3"
+ ]
+ ],
+ [
+ "format",
+ [
+ "get",
+ "name:fr"
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "case",
+ [
+ "!",
+ [
+ "has",
+ "script"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "!",
+ [
+ "has",
+ "script2"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ]
+ ]
+ ]
+ ],
+ "text-size": 12,
+ "text-letter-spacing": 0.2
+ },
+ "paint": {
+ "text-color": "#728dd4",
+ "text-halo-color": "#80deea",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "roads_labels_minor",
+ "type": "symbol",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "minzoom": 15,
+ "filter": [
+ "in",
+ "kind",
+ "minor_road",
+ "other",
+ "path"
+ ],
+ "layout": {
+ "symbol-sort-key": [
+ "get",
+ "min_zoom"
+ ],
+ "symbol-placement": "line",
+ "text-font": [
+ "Noto Sans Regular"
+ ],
+ "text-field": [
+ "case",
+ [
+ "all",
+ [
+ "any",
+ [
+ "has",
+ "name"
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name2"
+ ],
+ [
+ "has",
+ "pgf:name2"
+ ]
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name3"
+ ],
+ [
+ "has",
+ "pgf:name3"
+ ]
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "case",
+ [
+ "any",
+ [
+ "is-supported-script",
+ [
+ "get",
+ "name"
+ ]
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "name:en"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "case",
+ [
+ "all",
+ [
+ "!",
+ [
+ "has",
+ "name:fr"
+ ]
+ ],
+ [
+ "has",
+ "name:en"
+ ],
+ [
+ "!",
+ [
+ "has",
+ "script"
+ ]
+ ]
+ ],
+ "",
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "get",
+ "name:en"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {}
+ ]
+ ],
+ [
+ "all",
+ [
+ "any",
+ [
+ "has",
+ "name"
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "any",
+ [
+ "has",
+ "name2"
+ ],
+ [
+ "has",
+ "pgf:name2"
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name3"
+ ],
+ [
+ "has",
+ "pgf:name3"
+ ]
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "all",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "has",
+ "script2"
+ ]
+ ],
+ [
+ "format",
+ [
+ "get",
+ "name:fr"
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "case",
+ [
+ "has",
+ "script2"
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "all",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "has",
+ "script2"
+ ],
+ [
+ "has",
+ "script3"
+ ]
+ ],
+ [
+ "format",
+ [
+ "get",
+ "name:fr"
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "case",
+ [
+ "!",
+ [
+ "has",
+ "script"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "!",
+ [
+ "has",
+ "script2"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ]
+ ]
+ ]
+ ],
+ "text-size": 12
+ },
+ "paint": {
+ "text-color": "#91888b",
+ "text-halo-color": "#ffffff",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "water_label_ocean",
+ "type": "symbol",
+ "source": "protomaps",
+ "source-layer": "water",
+ "filter": [
+ "in",
+ "kind",
+ "sea",
+ "ocean",
+ "bay",
+ "strait",
+ "fjord"
+ ],
+ "layout": {
+ "text-font": [
+ "Noto Sans Italic"
+ ],
+ "text-field": [
+ "case",
+ [
+ "all",
+ [
+ "any",
+ [
+ "has",
+ "name"
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name2"
+ ],
+ [
+ "has",
+ "pgf:name2"
+ ]
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name3"
+ ],
+ [
+ "has",
+ "pgf:name3"
+ ]
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "case",
+ [
+ "any",
+ [
+ "is-supported-script",
+ [
+ "get",
+ "name"
+ ]
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "name:en"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "case",
+ [
+ "all",
+ [
+ "!",
+ [
+ "has",
+ "name:fr"
+ ]
+ ],
+ [
+ "has",
+ "name:en"
+ ],
+ [
+ "!",
+ [
+ "has",
+ "script"
+ ]
+ ]
+ ],
+ "",
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "get",
+ "name:en"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {}
+ ]
+ ],
+ [
+ "all",
+ [
+ "any",
+ [
+ "has",
+ "name"
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "any",
+ [
+ "has",
+ "name2"
+ ],
+ [
+ "has",
+ "pgf:name2"
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name3"
+ ],
+ [
+ "has",
+ "pgf:name3"
+ ]
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "all",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "has",
+ "script2"
+ ]
+ ],
+ [
+ "format",
+ [
+ "get",
+ "name:fr"
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "case",
+ [
+ "has",
+ "script2"
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "all",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "has",
+ "script2"
+ ],
+ [
+ "has",
+ "script3"
+ ]
+ ],
+ [
+ "format",
+ [
+ "get",
+ "name:fr"
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "case",
+ [
+ "!",
+ [
+ "has",
+ "script"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "!",
+ [
+ "has",
+ "script2"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ]
+ ]
+ ]
+ ],
+ "text-size": [
+ "interpolate",
+ [
+ "linear"
+ ],
+ [
+ "zoom"
+ ],
+ 3,
+ 10,
+ 10,
+ 12
+ ],
+ "text-letter-spacing": 0.1,
+ "text-max-width": 9,
+ "text-transform": "uppercase"
+ },
+ "paint": {
+ "text-color": "#728dd4",
+ "text-halo-width": 1,
+ "text-halo-color": "#80deea"
+ }
+ },
+ {
+ "id": "earth_label_islands",
+ "type": "symbol",
+ "source": "protomaps",
+ "source-layer": "earth",
+ "filter": [
+ "in",
+ "kind",
+ "island"
+ ],
+ "layout": {
+ "text-font": [
+ "Noto Sans Italic"
+ ],
+ "text-field": [
+ "case",
+ [
+ "all",
+ [
+ "any",
+ [
+ "has",
+ "name"
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name2"
+ ],
+ [
+ "has",
+ "pgf:name2"
+ ]
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name3"
+ ],
+ [
+ "has",
+ "pgf:name3"
+ ]
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "case",
+ [
+ "any",
+ [
+ "is-supported-script",
+ [
+ "get",
+ "name"
+ ]
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "name:en"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "case",
+ [
+ "all",
+ [
+ "!",
+ [
+ "has",
+ "name:fr"
+ ]
+ ],
+ [
+ "has",
+ "name:en"
+ ],
+ [
+ "!",
+ [
+ "has",
+ "script"
+ ]
+ ]
+ ],
+ "",
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "get",
+ "name:en"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {}
+ ]
+ ],
+ [
+ "all",
+ [
+ "any",
+ [
+ "has",
+ "name"
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "any",
+ [
+ "has",
+ "name2"
+ ],
+ [
+ "has",
+ "pgf:name2"
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name3"
+ ],
+ [
+ "has",
+ "pgf:name3"
+ ]
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "all",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "has",
+ "script2"
+ ]
+ ],
+ [
+ "format",
+ [
+ "get",
+ "name:fr"
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "case",
+ [
+ "has",
+ "script2"
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "all",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "has",
+ "script2"
+ ],
+ [
+ "has",
+ "script3"
+ ]
+ ],
+ [
+ "format",
+ [
+ "get",
+ "name:fr"
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "case",
+ [
+ "!",
+ [
+ "has",
+ "script"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "!",
+ [
+ "has",
+ "script2"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ]
+ ]
+ ]
+ ],
+ "text-size": 10,
+ "text-letter-spacing": 0.1,
+ "text-max-width": 8
+ },
+ "paint": {
+ "text-color": "#8f8f8f",
+ "text-halo-color": "#e0e0e0",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "water_label_lakes",
+ "type": "symbol",
+ "source": "protomaps",
+ "source-layer": "water",
+ "filter": [
+ "in",
+ "kind",
+ "lake",
+ "water"
+ ],
+ "layout": {
+ "text-font": [
+ "Noto Sans Italic"
+ ],
+ "text-field": [
+ "case",
+ [
+ "all",
+ [
+ "any",
+ [
+ "has",
+ "name"
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name2"
+ ],
+ [
+ "has",
+ "pgf:name2"
+ ]
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name3"
+ ],
+ [
+ "has",
+ "pgf:name3"
+ ]
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "case",
+ [
+ "any",
+ [
+ "is-supported-script",
+ [
+ "get",
+ "name"
+ ]
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "name:en"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "case",
+ [
+ "all",
+ [
+ "!",
+ [
+ "has",
+ "name:fr"
+ ]
+ ],
+ [
+ "has",
+ "name:en"
+ ],
+ [
+ "!",
+ [
+ "has",
+ "script"
+ ]
+ ]
+ ],
+ "",
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "get",
+ "name:en"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {}
+ ]
+ ],
+ [
+ "all",
+ [
+ "any",
+ [
+ "has",
+ "name"
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "any",
+ [
+ "has",
+ "name2"
+ ],
+ [
+ "has",
+ "pgf:name2"
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name3"
+ ],
+ [
+ "has",
+ "pgf:name3"
+ ]
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "all",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "has",
+ "script2"
+ ]
+ ],
+ [
+ "format",
+ [
+ "get",
+ "name:fr"
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "case",
+ [
+ "has",
+ "script2"
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "all",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "has",
+ "script2"
+ ],
+ [
+ "has",
+ "script3"
+ ]
+ ],
+ [
+ "format",
+ [
+ "get",
+ "name:fr"
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "case",
+ [
+ "!",
+ [
+ "has",
+ "script"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "!",
+ [
+ "has",
+ "script2"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ]
+ ]
+ ]
+ ],
+ "text-size": [
+ "interpolate",
+ [
+ "linear"
+ ],
+ [
+ "zoom"
+ ],
+ 3,
+ 10,
+ 6,
+ 12,
+ 10,
+ 12
+ ],
+ "text-letter-spacing": 0.1,
+ "text-max-width": 9
+ },
+ "paint": {
+ "text-color": "#728dd4",
+ "text-halo-color": "#80deea",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "roads_labels_major",
+ "type": "symbol",
+ "source": "protomaps",
+ "source-layer": "roads",
+ "minzoom": 11,
+ "filter": [
+ "in",
+ "kind",
+ "highway",
+ "major_road"
+ ],
+ "layout": {
+ "symbol-sort-key": [
+ "get",
+ "min_zoom"
+ ],
+ "symbol-placement": "line",
+ "text-font": [
+ "Noto Sans Regular"
+ ],
+ "text-field": [
+ "case",
+ [
+ "all",
+ [
+ "any",
+ [
+ "has",
+ "name"
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name2"
+ ],
+ [
+ "has",
+ "pgf:name2"
+ ]
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name3"
+ ],
+ [
+ "has",
+ "pgf:name3"
+ ]
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "case",
+ [
+ "any",
+ [
+ "is-supported-script",
+ [
+ "get",
+ "name"
+ ]
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "name:en"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "case",
+ [
+ "all",
+ [
+ "!",
+ [
+ "has",
+ "name:fr"
+ ]
+ ],
+ [
+ "has",
+ "name:en"
+ ],
+ [
+ "!",
+ [
+ "has",
+ "script"
+ ]
+ ]
+ ],
+ "",
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "get",
+ "name:en"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {}
+ ]
+ ],
+ [
+ "all",
+ [
+ "any",
+ [
+ "has",
+ "name"
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "any",
+ [
+ "has",
+ "name2"
+ ],
+ [
+ "has",
+ "pgf:name2"
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name3"
+ ],
+ [
+ "has",
+ "pgf:name3"
+ ]
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "all",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "has",
+ "script2"
+ ]
+ ],
+ [
+ "format",
+ [
+ "get",
+ "name:fr"
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "case",
+ [
+ "has",
+ "script2"
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "all",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "has",
+ "script2"
+ ],
+ [
+ "has",
+ "script3"
+ ]
+ ],
+ [
+ "format",
+ [
+ "get",
+ "name:fr"
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "case",
+ [
+ "!",
+ [
+ "has",
+ "script"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "!",
+ [
+ "has",
+ "script2"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ]
+ ]
+ ]
+ ],
+ "text-size": 12
+ },
+ "paint": {
+ "text-color": "#938a8d",
+ "text-halo-color": "#ffffff",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "pois",
+ "type": "symbol",
+ "source": "protomaps",
+ "source-layer": "pois",
+ "filter": [
+ "all",
+ [
+ "in",
+ [
+ "get",
+ "kind"
+ ],
+ [
+ "literal",
+ [
+ "beach",
+ "forest",
+ "marina",
+ "park",
+ "peak",
+ "zoo",
+ "garden",
+ "bench",
+ "aerodrome",
+ "station",
+ "bus_stop",
+ "ferry_terminal",
+ "stadium",
+ "university",
+ "library",
+ "school",
+ "animal",
+ "toilets",
+ "drinking_water"
+ ]
+ ]
+ ],
+ [
+ ">=",
+ [
+ "zoom"
+ ],
+ [
+ "+",
+ [
+ "get",
+ "min_zoom"
+ ],
+ 0
+ ]
+ ]
+ ],
+ "layout": {
+ "icon-image": [
+ "match",
+ [
+ "get",
+ "kind"
+ ],
+ "station",
+ "train_station",
+ [
+ "get",
+ "kind"
+ ]
+ ],
+ "text-font": [
+ "Noto Sans Regular"
+ ],
+ "text-justify": "auto",
+ "text-field": [
+ "case",
+ [
+ "all",
+ [
+ "any",
+ [
+ "has",
+ "name"
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name2"
+ ],
+ [
+ "has",
+ "pgf:name2"
+ ]
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name3"
+ ],
+ [
+ "has",
+ "pgf:name3"
+ ]
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "case",
+ [
+ "any",
+ [
+ "is-supported-script",
+ [
+ "get",
+ "name"
+ ]
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "name:en"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "case",
+ [
+ "all",
+ [
+ "!",
+ [
+ "has",
+ "name:fr"
+ ]
+ ],
+ [
+ "has",
+ "name:en"
+ ],
+ [
+ "!",
+ [
+ "has",
+ "script"
+ ]
+ ]
+ ],
+ "",
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "get",
+ "name:en"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {}
+ ]
+ ],
+ [
+ "all",
+ [
+ "any",
+ [
+ "has",
+ "name"
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "any",
+ [
+ "has",
+ "name2"
+ ],
+ [
+ "has",
+ "pgf:name2"
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name3"
+ ],
+ [
+ "has",
+ "pgf:name3"
+ ]
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "all",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "has",
+ "script2"
+ ]
+ ],
+ [
+ "format",
+ [
+ "get",
+ "name:fr"
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "case",
+ [
+ "has",
+ "script2"
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "all",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "has",
+ "script2"
+ ],
+ [
+ "has",
+ "script3"
+ ]
+ ],
+ [
+ "format",
+ [
+ "get",
+ "name:fr"
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "case",
+ [
+ "!",
+ [
+ "has",
+ "script"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "!",
+ [
+ "has",
+ "script2"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ]
+ ]
+ ]
+ ],
+ "text-size": [
+ "interpolate",
+ [
+ "linear"
+ ],
+ [
+ "zoom"
+ ],
+ 17,
+ 10,
+ 19,
+ 16
+ ],
+ "text-max-width": 8,
+ "text-offset": [
+ 1.1,
+ 0
+ ],
+ "text-variable-anchor": [
+ "left",
+ "right"
+ ]
+ },
+ "paint": {
+ "text-color": [
+ "case",
+ [
+ "in",
+ [
+ "get",
+ "kind"
+ ],
+ [
+ "literal",
+ [
+ "beach",
+ "forest",
+ "marina",
+ "park",
+ "peak",
+ "zoo",
+ "garden",
+ "bench"
+ ]
+ ]
+ ],
+ "#20834D",
+ [
+ "in",
+ [
+ "get",
+ "kind"
+ ],
+ [
+ "literal",
+ [
+ "aerodrome",
+ "station",
+ "bus_stop",
+ "ferry_terminal"
+ ]
+ ]
+ ],
+ "#315BCF",
+ [
+ "in",
+ [
+ "get",
+ "kind"
+ ],
+ [
+ "literal",
+ [
+ "stadium",
+ "university",
+ "library",
+ "school",
+ "animal",
+ "toilets",
+ "drinking_water"
+ ]
+ ]
+ ],
+ "#6A5B8F",
+ "#e2dfda"
+ ],
+ "text-halo-color": "#e2dfda",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "places_subplace",
+ "type": "symbol",
+ "source": "protomaps",
+ "source-layer": "places",
+ "filter": [
+ "==",
+ "kind",
+ "neighbourhood"
+ ],
+ "layout": {
+ "symbol-sort-key": [
+ "get",
+ "min_zoom"
+ ],
+ "text-field": [
+ "case",
+ [
+ "all",
+ [
+ "any",
+ [
+ "has",
+ "name"
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name2"
+ ],
+ [
+ "has",
+ "pgf:name2"
+ ]
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name3"
+ ],
+ [
+ "has",
+ "pgf:name3"
+ ]
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "case",
+ [
+ "any",
+ [
+ "is-supported-script",
+ [
+ "get",
+ "name"
+ ]
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "name:en"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "case",
+ [
+ "all",
+ [
+ "!",
+ [
+ "has",
+ "name:fr"
+ ]
+ ],
+ [
+ "has",
+ "name:en"
+ ],
+ [
+ "!",
+ [
+ "has",
+ "script"
+ ]
+ ]
+ ],
+ "",
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "get",
+ "name:en"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {}
+ ]
+ ],
+ [
+ "all",
+ [
+ "any",
+ [
+ "has",
+ "name"
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "any",
+ [
+ "has",
+ "name2"
+ ],
+ [
+ "has",
+ "pgf:name2"
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name3"
+ ],
+ [
+ "has",
+ "pgf:name3"
+ ]
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "all",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "has",
+ "script2"
+ ]
+ ],
+ [
+ "format",
+ [
+ "get",
+ "name:fr"
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "case",
+ [
+ "has",
+ "script2"
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "all",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "has",
+ "script2"
+ ],
+ [
+ "has",
+ "script3"
+ ]
+ ],
+ [
+ "format",
+ [
+ "get",
+ "name:fr"
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "case",
+ [
+ "!",
+ [
+ "has",
+ "script"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "!",
+ [
+ "has",
+ "script2"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ]
+ ]
+ ]
+ ],
+ "text-font": [
+ "Noto Sans Regular"
+ ],
+ "text-max-width": 7,
+ "text-letter-spacing": 0.1,
+ "text-padding": [
+ "interpolate",
+ [
+ "linear"
+ ],
+ [
+ "zoom"
+ ],
+ 5,
+ 2,
+ 8,
+ 4,
+ 12,
+ 18,
+ 15,
+ 20
+ ],
+ "text-size": [
+ "interpolate",
+ [
+ "exponential",
+ 1.2
+ ],
+ [
+ "zoom"
+ ],
+ 11,
+ 8,
+ 14,
+ 14,
+ 18,
+ 24
+ ],
+ "text-transform": "uppercase"
+ },
+ "paint": {
+ "text-color": "#8f8f8f",
+ "text-halo-color": "#e0e0e0",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "places_locality",
+ "type": "symbol",
+ "source": "protomaps",
+ "source-layer": "places",
+ "filter": [
+ "==",
+ "kind",
+ "locality"
+ ],
+ "layout": {
+ "icon-image": [
+ "step",
+ [
+ "zoom"
+ ],
+ "townspot",
+ 8,
+ ""
+ ],
+ "icon-size": 0.7,
+ "text-field": [
+ "case",
+ [
+ "all",
+ [
+ "any",
+ [
+ "has",
+ "name"
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name2"
+ ],
+ [
+ "has",
+ "pgf:name2"
+ ]
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name3"
+ ],
+ [
+ "has",
+ "pgf:name3"
+ ]
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "case",
+ [
+ "any",
+ [
+ "is-supported-script",
+ [
+ "get",
+ "name"
+ ]
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "name:en"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "case",
+ [
+ "all",
+ [
+ "!",
+ [
+ "has",
+ "name:fr"
+ ]
+ ],
+ [
+ "has",
+ "name:en"
+ ],
+ [
+ "!",
+ [
+ "has",
+ "script"
+ ]
+ ]
+ ],
+ "",
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "get",
+ "name:en"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {}
+ ]
+ ],
+ [
+ "all",
+ [
+ "any",
+ [
+ "has",
+ "name"
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "any",
+ [
+ "has",
+ "name2"
+ ],
+ [
+ "has",
+ "pgf:name2"
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name3"
+ ],
+ [
+ "has",
+ "pgf:name3"
+ ]
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "all",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "has",
+ "script2"
+ ]
+ ],
+ [
+ "format",
+ [
+ "get",
+ "name:fr"
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "case",
+ [
+ "has",
+ "script2"
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "all",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "has",
+ "script2"
+ ],
+ [
+ "has",
+ "script3"
+ ]
+ ],
+ [
+ "format",
+ [
+ "get",
+ "name:fr"
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "case",
+ [
+ "!",
+ [
+ "has",
+ "script"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "!",
+ [
+ "has",
+ "script2"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ]
+ ]
+ ]
+ ],
+ "text-font": [
+ "case",
+ [
+ "<=",
+ [
+ "get",
+ "min_zoom"
+ ],
+ 5
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Medium"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ],
+ "text-padding": [
+ "interpolate",
+ [
+ "linear"
+ ],
+ [
+ "zoom"
+ ],
+ 5,
+ 3,
+ 8,
+ 7,
+ 12,
+ 11
+ ],
+ "text-size": [
+ "interpolate",
+ [
+ "linear"
+ ],
+ [
+ "zoom"
+ ],
+ 2,
+ [
+ "case",
+ [
+ "<",
+ [
+ "get",
+ "population_rank"
+ ],
+ 13
+ ],
+ 8,
+ [
+ ">=",
+ [
+ "get",
+ "population_rank"
+ ],
+ 13
+ ],
+ 13,
+ 0
+ ],
+ 4,
+ [
+ "case",
+ [
+ "<",
+ [
+ "get",
+ "population_rank"
+ ],
+ 13
+ ],
+ 10,
+ [
+ ">=",
+ [
+ "get",
+ "population_rank"
+ ],
+ 13
+ ],
+ 15,
+ 0
+ ],
+ 6,
+ [
+ "case",
+ [
+ "<",
+ [
+ "get",
+ "population_rank"
+ ],
+ 12
+ ],
+ 11,
+ [
+ ">=",
+ [
+ "get",
+ "population_rank"
+ ],
+ 12
+ ],
+ 17,
+ 0
+ ],
+ 8,
+ [
+ "case",
+ [
+ "<",
+ [
+ "get",
+ "population_rank"
+ ],
+ 11
+ ],
+ 11,
+ [
+ ">=",
+ [
+ "get",
+ "population_rank"
+ ],
+ 11
+ ],
+ 18,
+ 0
+ ],
+ 10,
+ [
+ "case",
+ [
+ "<",
+ [
+ "get",
+ "population_rank"
+ ],
+ 9
+ ],
+ 12,
+ [
+ ">=",
+ [
+ "get",
+ "population_rank"
+ ],
+ 9
+ ],
+ 20,
+ 0
+ ],
+ 15,
+ [
+ "case",
+ [
+ "<",
+ [
+ "get",
+ "population_rank"
+ ],
+ 8
+ ],
+ 12,
+ [
+ ">=",
+ [
+ "get",
+ "population_rank"
+ ],
+ 8
+ ],
+ 22,
+ 0
+ ]
+ ],
+ "icon-padding": [
+ "interpolate",
+ [
+ "linear"
+ ],
+ [
+ "zoom"
+ ],
+ 0,
+ 0,
+ 8,
+ 4,
+ 10,
+ 8,
+ 12,
+ 6,
+ 22,
+ 2
+ ],
+ "text-justify": "auto",
+ "text-anchor": [
+ "step",
+ [
+ "zoom"
+ ],
+ "left",
+ 8,
+ "center"
+ ],
+ "text-radial-offset": 0.4
+ },
+ "paint": {
+ "text-color": "#5c5c5c",
+ "text-halo-color": "#e0e0e0",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "places_region",
+ "type": "symbol",
+ "source": "protomaps",
+ "source-layer": "places",
+ "filter": [
+ "==",
+ "kind",
+ "region"
+ ],
+ "layout": {
+ "symbol-sort-key": [
+ "get",
+ "min_zoom"
+ ],
+ "text-field": [
+ "step",
+ [
+ "zoom"
+ ],
+ [
+ "get",
+ "name:short"
+ ],
+ 6,
+ [
+ "case",
+ [
+ "all",
+ [
+ "any",
+ [
+ "has",
+ "name"
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name2"
+ ],
+ [
+ "has",
+ "pgf:name2"
+ ]
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name3"
+ ],
+ [
+ "has",
+ "pgf:name3"
+ ]
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "case",
+ [
+ "any",
+ [
+ "is-supported-script",
+ [
+ "get",
+ "name"
+ ]
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "name:en"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "case",
+ [
+ "all",
+ [
+ "!",
+ [
+ "has",
+ "name:fr"
+ ]
+ ],
+ [
+ "has",
+ "name:en"
+ ],
+ [
+ "!",
+ [
+ "has",
+ "script"
+ ]
+ ]
+ ],
+ "",
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "get",
+ "name:en"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {}
+ ]
+ ],
+ [
+ "all",
+ [
+ "any",
+ [
+ "has",
+ "name"
+ ],
+ [
+ "has",
+ "pgf:name"
+ ]
+ ],
+ [
+ "any",
+ [
+ "has",
+ "name2"
+ ],
+ [
+ "has",
+ "pgf:name2"
+ ]
+ ],
+ [
+ "!",
+ [
+ "any",
+ [
+ "has",
+ "name3"
+ ],
+ [
+ "has",
+ "pgf:name3"
+ ]
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "all",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "has",
+ "script2"
+ ]
+ ],
+ [
+ "format",
+ [
+ "get",
+ "name:fr"
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "case",
+ [
+ "has",
+ "script2"
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ]
+ ]
+ ],
+ [
+ "case",
+ [
+ "all",
+ [
+ "has",
+ "script"
+ ],
+ [
+ "has",
+ "script2"
+ ],
+ [
+ "has",
+ "script3"
+ ]
+ ],
+ [
+ "format",
+ [
+ "get",
+ "name:fr"
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "case",
+ [
+ "!",
+ [
+ "has",
+ "script"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "!",
+ [
+ "has",
+ "script2"
+ ]
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script3"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ],
+ [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "pgf:name3"
+ ],
+ [
+ "get",
+ "name3"
+ ]
+ ],
+ {},
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name"
+ ],
+ [
+ "get",
+ "name"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ },
+ "\n",
+ {},
+ [
+ "coalesce",
+ [
+ "get",
+ "pgf:name2"
+ ],
+ [
+ "get",
+ "name2"
+ ]
+ ],
+ {
+ "text-font": [
+ "case",
+ [
+ "==",
+ [
+ "get",
+ "script2"
+ ],
+ "Devanagari"
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Devanagari Regular v1"
+ ]
+ ],
+ [
+ "literal",
+ [
+ "Noto Sans Regular"
+ ]
+ ]
+ ]
+ }
+ ]
+ ]
+ ]
+ ]
+ ],
+ "text-font": [
+ "Noto Sans Regular"
+ ],
+ "text-size": [
+ "interpolate",
+ [
+ "linear"
+ ],
+ [
+ "zoom"
+ ],
+ 3,
+ 11,
+ 7,
+ 16
+ ],
+ "text-radial-offset": 0.2,
+ "text-anchor": "center",
+ "text-transform": "uppercase"
+ },
+ "paint": {
+ "text-color": "#b3b3b3",
+ "text-halo-color": "#e0e0e0",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "places_country",
+ "type": "symbol",
+ "source": "protomaps",
+ "source-layer": "places",
+ "filter": [
+ "==",
+ "kind",
+ "country"
+ ],
+ "layout": {
+ "symbol-sort-key": [
+ "get",
+ "min_zoom"
+ ],
+ "text-field": [
+ "format",
+ [
+ "coalesce",
+ [
+ "get",
+ "name:fr"
+ ],
+ [
+ "get",
+ "name:en"
+ ]
+ ],
+ {}
+ ],
+ "text-font": [
+ "Noto Sans Medium"
+ ],
+ "text-size": [
+ "interpolate",
+ [
+ "linear"
+ ],
+ [
+ "zoom"
+ ],
+ 2,
+ [
+ "case",
+ [
+ "<",
+ [
+ "get",
+ "population_rank"
+ ],
+ 10
+ ],
+ 8,
+ [
+ ">=",
+ [
+ "get",
+ "population_rank"
+ ],
+ 10
+ ],
+ 12,
+ 0
+ ],
+ 6,
+ [
+ "case",
+ [
+ "<",
+ [
+ "get",
+ "population_rank"
+ ],
+ 8
+ ],
+ 10,
+ [
+ ">=",
+ [
+ "get",
+ "population_rank"
+ ],
+ 8
+ ],
+ 18,
+ 0
+ ],
+ 8,
+ [
+ "case",
+ [
+ "<",
+ [
+ "get",
+ "population_rank"
+ ],
+ 7
+ ],
+ 11,
+ [
+ ">=",
+ [
+ "get",
+ "population_rank"
+ ],
+ 7
+ ],
+ 20,
+ 0
+ ]
+ ],
+ "icon-padding": [
+ "interpolate",
+ [
+ "linear"
+ ],
+ [
+ "zoom"
+ ],
+ 0,
+ 2,
+ 14,
+ 2,
+ 16,
+ 20,
+ 17,
+ 2,
+ 22,
+ 2
+ ],
+ "text-transform": "uppercase"
+ },
+ "paint": {
+ "text-color": "#a3a3a3",
+ "text-halo-color": "#e2dfda",
+ "text-halo-width": 1
+ }
+ }
+ ],
+ "sprite": "https://protomaps.github.io/basemaps-assets/sprites/v4/light",
+ "glyphs": "https://protomaps.github.io/basemaps-assets/fonts/{fontstack}/{range}.pbf"
+}
diff --git a/themes/mms43/assets/css/main.css b/themes/mms43/assets/css/main.css
index 3877a75..67c6e98 100644
--- a/themes/mms43/assets/css/main.css
+++ b/themes/mms43/assets/css/main.css
@@ -403,6 +403,11 @@ main {
outline: 2px solid var(--color-primary);
}
+.form-group input.input-error {
+ outline: 2px solid #e53935;
+ background-color: #ffebee;
+}
+
.swap-btn {
display: flex;
align-items: center;
@@ -741,7 +746,7 @@ main {
.conducteur-hero {
height: 380px;
background-size: cover;
- background-position: center;
+ background-position: top;
background-repeat: no-repeat;
border-radius: 0 0 35px 35px;
}
@@ -1358,6 +1363,43 @@ main {
line-height: 1.5;
}
+/* Messages de formulaire */
+.contact-form-message {
+ padding: 1rem 1.5rem;
+ border-radius: 10px;
+ margin-bottom: 1.5rem;
+ text-align: center;
+ font-size: 14px;
+ line-height: 1.5;
+}
+
+.contact-form-success {
+ background-color: #d4edda;
+ color: #155724;
+ border: 1px solid #c3e6cb;
+}
+
+.contact-form-error {
+ background-color: #f8d7da;
+ color: #721c24;
+ border: 1px solid #f5c6cb;
+}
+
+.contact-form-submit:disabled {
+ opacity: 0.7;
+ cursor: not-allowed;
+}
+
+.contact-form input:disabled,
+.contact-form textarea:disabled {
+ background-color: #f5f5f5;
+ cursor: not-allowed;
+}
+
+[x-cloak] {
+ display: none !important;
+}
+
/* Multicheckboxes */
.contact-form-checkboxes {
text-align: left;
@@ -2084,3 +2126,799 @@ a {
font-size: 16px;
}
}
+
+/* Autocomplete */
+.autocomplete-container {
+ position: relative;
+}
+
+.autocomplete-results {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ right: 0;
+ background: var(--color-white);
+ border-radius: 10px;
+ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
+ max-height: 200px;
+ overflow-y: auto;
+ z-index: 100;
+ list-style: none;
+ margin-top: 4px;
+}
+
+.autocomplete-results li {
+ padding: 0.75rem 1rem;
+ cursor: pointer;
+ font-size: 14px;
+ color: var(--color-text);
+ border-bottom: 1px solid #eee;
+}
+
+.autocomplete-results li:last-child {
+ border-bottom: none;
+}
+
+.autocomplete-results li:hover {
+ background-color: #f5f5f5;
+}
+
+[x-cloak] {
+ display: none !important;
+}
+
+/* Page Recherche */
+.page-recherche {
+ padding: 2rem;
+}
+
+.page-recherche .search-block {
+ margin-top: 0;
+ padding-top: 1rem;
+ padding-bottom: 1rem;
+ height: auto;
+}
+
+/* Search Results */
+.search-results-container {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ gap: 2rem;
+ max-width: 1328px;
+ margin: 2rem auto 0;
+ padding: 0 2rem;
+ align-items: start;
+}
+
+.search-results-accordions {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+}
+
+.result-accordion {
+ background-color: var(--color-secondary);
+ border-radius: 15px;
+ overflow: hidden;
+}
+
+.accordion-header {
+ display: flex;
+ align-items: center;
+ width: 100%;
+ padding: 1rem 1.25rem;
+ background: transparent;
+ border: none;
+ cursor: pointer;
+ font-family: var(--font-family);
+}
+
+.accordion-title {
+ flex: 1;
+ text-align: left;
+ font-size: 16px;
+ font-weight: 600;
+ color: var(--color-white);
+}
+
+.accordion-badge {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ min-width: 28px;
+ height: 28px;
+ padding: 0 0.5rem;
+ background-color: var(--color-highlight);
+ color: var(--color-white);
+ font-size: 14px;
+ font-weight: 700;
+ border-radius: 14px;
+ margin-right: 0.75rem;
+}
+
+.accordion-arrow {
+ width: 24px;
+ height: 24px;
+ filter: brightness(0) invert(1);
+ transition: transform 0.3s ease;
+ transform: rotate(180deg);
+}
+
+.accordion-arrow.open {
+ transform: rotate(0deg);
+}
+
+.accordion-content {
+ background-color: var(--color-white);
+}
+
+.accordion-inner {
+ padding: 1rem 1.25rem;
+}
+
+.no-result-text {
+ color: var(--color-text);
+ font-size: 14px;
+ font-style: italic;
+ margin: 0;
+ text-align: center;
+}
+
+.accordion-cta {
+ text-align: center;
+ margin: 1.5rem 1.5rem 0 1.5rem;
+}
+
+.accordion-cta p {
+ font-size: 16px;
+ font-weight: 600;
+ color: #000;
+ margin: 0 0 0.5rem 0;
+}
+
+.accordion-cta-phone {
+ display: inline-block;
+ font-size: 22px;
+ font-weight: 700;
+ color: #000;
+ text-decoration: none;
+}
+
+.accordion-cta-phone:hover {
+ text-decoration: underline;
+}
+
+/* Transport solidaire result */
+.solidarity-result {
+ text-align: center;
+}
+
+.solidarity-result p {
+ margin: 0;
+ font-size: 16px;
+ color: var(--color-text);
+}
+
+.solidarity-result .solidarity-count {
+ font-size: 24px;
+ font-weight: 700;
+ color: #000;
+ margin: 0.5rem 0;
+}
+
+/* Local Solutions */
+.local-solutions-list {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+}
+
+.local-solution-item {
+ background-color: #f9fafb;
+ border-radius: 10px;
+ padding: 1rem;
+ cursor: pointer;
+ transition: all 0.2s;
+ border: 2px solid transparent;
+}
+
+.local-solution-item:hover {
+ background-color: #f3f4f6;
+}
+
+.local-solution-item.active {
+ border-color: var(--color-highlight);
+ background-color: #fef3e6;
+}
+
+.local-solution-title {
+ font-size: 16px;
+ font-weight: 700;
+ color: #000;
+ margin: 0 0 0.5rem 0;
+}
+
+.local-solution-description {
+ font-size: 14px;
+ color: var(--color-text);
+ margin: 0 0 0.75rem 0;
+ line-height: 1.4;
+}
+
+.local-solution-link {
+ display: inline-block;
+ font-size: 14px;
+ font-weight: 600;
+ color: var(--color-highlight);
+ text-decoration: underline;
+}
+
+.local-solution-link:hover {
+ opacity: 0.8;
+}
+
+.local-solutions-text {
+ font-size: 15px;
+ color: var(--color-text);
+ text-align: center;
+ margin: 1.5rem 0 0 0;
+ line-height: 1.5;
+}
+
+/* Search Results Map */
+.search-results-map {
+ min-height: 400px;
+ max-height: 600px;
+ height: 600px;
+ border-radius: 15px;
+ overflow: hidden;
+ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
+ position: sticky;
+ top: calc(var(--header-height) + 2rem);
+}
+
+.search-results-map #map {
+ width: 100%;
+ height: 100%;
+}
+
+.carpool-route-info {
+ position: absolute;
+ bottom: 1rem;
+ left: 50%;
+ transform: translateX(-50%);
+ background-color: rgba(0, 0, 0, 0.75);
+ color: #fff;
+ padding: 0.75rem 1.25rem;
+ border-radius: 8px;
+ font-size: 14px;
+ font-weight: 500;
+ z-index: 10;
+}
+
+/* Map Markers */
+.map-marker {
+ width: 36px;
+ height: 36px;
+ border-radius: 10px;
+ border: 2px solid var(--color-white);
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ cursor: pointer;
+ transition: transform 0.2s ease;
+}
+
+.map-marker:hover {
+ transform: scale(1.1);
+}
+
+.map-marker-departure {
+ background-color: var(--color-secondary);
+}
+
+.map-marker-arrival {
+ background-color: var(--color-highlight);
+}
+
+/* MapLibre Popup Styling */
+.maplibregl-popup-content {
+ padding: 12px 16px;
+ border-radius: 10px;
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
+ font-family: var(--font-family);
+ font-size: 14px;
+}
+
+.maplibregl-popup-close-button {
+ font-size: 18px;
+ padding: 4px 8px;
+ color: #666;
+}
+
+.maplibregl-popup-close-button:hover {
+ color: var(--color-text);
+ background: transparent;
+}
+
+/* Transit Journeys */
+.transit-journeys {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+}
+
+.transit-journey {
+ background-color: #f9fafb;
+ border-radius: 10px;
+ padding: 1rem;
+ cursor: pointer;
+ transition: box-shadow 0.2s, border-color 0.2s;
+ border: 2px solid transparent;
+}
+
+.transit-journey:hover {
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
+}
+
+.transit-journey.active {
+ border-color: var(--color-primary);
+ box-shadow: 0 2px 8px rgba(40, 57, 89, 0.2);
+}
+
+.journey-header {
+ display: flex;
+ flex-direction: column;
+ gap: 0.25rem;
+}
+
+.journey-date {
+ font-size: 14px;
+ color: var(--color-text);
+ text-transform: capitalize;
+}
+
+.journey-times {
+ display: flex;
+ align-items: center;
+ gap: 0.375rem;
+}
+
+.journey-time {
+ font-size: 22px;
+ font-weight: 700;
+ color: var(--color-text);
+}
+
+.journey-arrow {
+ width: 18px;
+ height: 18px;
+}
+
+.journey-duration {
+ margin-left: auto;
+ font-size: 12px;
+ font-weight: 600;
+ color: var(--color-white);
+ background-color: var(--color-secondary);
+ padding: 0.2rem 0.5rem;
+ border-radius: 12px;
+}
+
+.journey-separator {
+ height: 1px;
+ background-color: #e5e7eb;
+ margin: 0.75rem 0;
+}
+
+.journey-legs {
+ display: flex;
+ flex-direction: column;
+ gap: 0;
+ position: relative;
+}
+
+.journey-leg {
+ display: flex;
+ gap: 0.75rem;
+ align-items: flex-start;
+ position: relative;
+ padding-bottom: 0.75rem;
+}
+
+.journey-leg:last-child {
+ padding-bottom: 0;
+}
+
+/* Ligne de connexion verticale entre les icônes */
+.journey-leg:not(:last-child)::after {
+ content: '';
+ position: absolute;
+ left: 18px;
+ top: 36px;
+ bottom: 0;
+ width: 2px;
+ background-color: var(--color-secondary);
+ transform: translateX(-50%);
+}
+
+.leg-icon {
+ flex-shrink: 0;
+ width: 36px;
+ height: 36px;
+ border-radius: 8px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background-color: var(--color-primary);
+ position: relative;
+ z-index: 1;
+}
+
+.leg-icon img {
+ width: 20px;
+ height: 20px;
+ filter: brightness(0) invert(1);
+}
+
+.leg-icon svg {
+ color: white;
+}
+
+.leg-details {
+ flex: 1;
+ min-width: 0;
+}
+
+.leg-line {
+ font-size: 15px;
+ font-weight: 700;
+ color: var(--color-text);
+ margin: 0;
+}
+
+.leg-line strong {
+ color: var(--color-primary);
+}
+
+.leg-text {
+ font-size: 13px;
+ color: #6b7280;
+ margin: 0 0 0.125rem;
+}
+
+.leg-text strong {
+ color: var(--color-text);
+ font-weight: 500;
+}
+
+.leg-duration {
+ font-size: 12px;
+ color: #9ca3af;
+}
+
+.leg-operator {
+ font-size: 12px;
+ color: #6b7280;
+ margin: 0;
+}
+
+.leg-direction {
+ font-size: 14px;
+ font-weight: 600;
+ color: var(--color-text);
+ margin: 0.25rem 0 0.5rem;
+}
+
+.leg-timeline {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ gap: 0;
+ margin-top: 0.5rem;
+ position: relative;
+ padding-left: 10px;
+}
+
+.leg-stop {
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+}
+
+.leg-stop-dot {
+ width: 10px;
+ height: 10px;
+ border-radius: 50%;
+ flex-shrink: 0;
+}
+
+.leg-stop-departure .leg-stop-dot {
+ background-color: #79C970;
+}
+
+.leg-stop-arrival .leg-stop-dot {
+ background-color: #F70004;
+}
+
+.leg-stop-time {
+ font-size: 12px;
+ font-weight: 600;
+ color: var(--color-text);
+ min-width: 40px;
+}
+
+.leg-stop-name {
+ font-size: 12px;
+ color: var(--color-text);
+}
+
+.leg-timeline-arrow {
+ width: 14px;
+ height: 14px;
+ margin-left: -2px;
+ transform: rotate(90deg);
+}
+
+/* Carpool List */
+.carpool-list {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+}
+
+.carpool-item {
+ background-color: #f9fafb;
+ border-radius: 10px;
+ padding: 1rem;
+ cursor: pointer;
+ transition: all 0.2s;
+ border: 2px solid transparent;
+}
+
+.carpool-item:hover {
+ background-color: #f3f4f6;
+}
+
+.carpool-item.active {
+ border-color: var(--color-secondary);
+ background-color: #e6f7f6;
+}
+
+.carpool-preview {
+ margin-bottom: 0.75rem;
+}
+
+.carpool-header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-bottom: 0.25rem;
+}
+
+.carpool-driver {
+ font-size: 15px;
+ font-weight: 700;
+ color: var(--color-text);
+}
+
+.carpool-price {
+ font-size: 16px;
+ font-weight: 700;
+ color: var(--color-primary);
+}
+
+.carpool-date {
+ font-size: 13px;
+ color: #6b7280;
+ margin-bottom: 0.75rem;
+}
+
+.carpool-route {
+ display: flex;
+ flex-direction: column;
+ gap: 0.5rem;
+}
+
+.carpool-place {
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+ font-size: 14px;
+ color: var(--color-text);
+ margin: 0;
+}
+
+.carpool-dot {
+ width: 10px;
+ height: 10px;
+ border-radius: 50%;
+ flex-shrink: 0;
+}
+
+.carpool-dot-departure {
+ background-color: var(--color-secondary);
+}
+
+.carpool-dot-arrival {
+ background-color: var(--color-highlight);
+}
+
+.carpool-link-container {
+ text-align: center;
+ margin-top: 1rem;
+}
+
+.carpool-operator-link {
+ color: var(--color-highlight);
+ font-size: 14px;
+ font-weight: 600;
+ text-decoration: underline;
+ transition: opacity 0.2s;
+}
+
+.carpool-operator-link:hover {
+ opacity: 0.8;
+}
+
+/* Mobile map container - hidden by default on desktop */
+.mobile-map-container {
+ display: none;
+}
+
+.mobile-map-container #mobile-map {
+ width: 100%;
+ height: 100%;
+}
+
+/* Compact search summary - hidden by default on desktop */
+.compact-search-summary {
+ display: none;
+}
+
+/* Responsive */
+@media (max-width: 1024px) {
+ /* Hide search form on mobile when search was performed */
+ .hide-on-mobile-searched {
+ display: none;
+ }
+
+ /* Page recherche with results - no padding */
+ .page-recherche.has-results {
+ padding: 0;
+ }
+
+ /* Mobile map - full width, no margin, after header */
+ .mobile-map-container {
+ display: block;
+ width: 100%;
+ height: 500px;
+ margin: 0;
+ position: relative;
+ }
+
+ .mobile-map-container #mobile-map {
+ width: 100%;
+ height: 100%;
+ }
+
+ /* Hide desktop map on mobile */
+ .search-results-map {
+ display: none;
+ }
+
+ /* Compact search summary */
+ .compact-search-summary {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ background-color: var(--color-secondary);
+ padding: 1rem 1.25rem;
+ margin-top: -1.5rem;
+ border-radius: 20px 20px 0 0;
+ position: relative;
+ z-index: 10;
+ }
+
+ .compact-search-content {
+ flex: 1;
+ text-decoration: none;
+ color: #fff;
+ }
+
+ .compact-search-route {
+ display: flex;
+ align-items: center;
+ gap: 0.25rem;
+ font-size: 13px;
+ font-weight: 500;
+ margin-bottom: 0.25rem;
+ }
+
+ .compact-search-place {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ max-width: 120px;
+ font-weight: 700;
+ }
+
+ .compact-search-arrow {
+ width: 16px;
+ height: 16px;
+ flex-shrink: 0;
+ filter: brightness(0) invert(1);
+ }
+
+ .compact-search-date {
+ font-size: 12px;
+ opacity: 0.9;
+ }
+
+ .compact-search-icon {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-shrink: 0;
+ margin-left: 1rem;
+ }
+
+ .compact-search-icon img {
+ width: 24px;
+ height: 24px;
+ filter: brightness(0) invert(1);
+ }
+
+ /* Search results container adjustments */
+ .search-results-container {
+ grid-template-columns: 1fr;
+ padding: 0 1rem;
+ margin-top: 0;
+ }
+
+ .search-results-accordions {
+ padding-top: 1rem;
+ }
+}
+
+@media (max-width: 600px) {
+ .search-results-container {
+ gap: 1rem;
+ padding: 0 0.75rem;
+ }
+
+ .accordion-header {
+ padding: 0.875rem 1rem;
+ }
+
+ .accordion-title {
+ font-size: 14px;
+ }
+
+ .accordion-badge {
+ min-width: 24px;
+ height: 24px;
+ font-size: 12px;
+ }
+
+ .compact-search-summary {
+ padding: 0.875rem 1rem;
+ }
+
+ .compact-search-route {
+ font-size: 12px;
+ }
+
+ .compact-search-place {
+ max-width: 100px;
+ }
+
+ .compact-search-date {
+ font-size: 12px;
+ }
+
+ .mobile-map-container {
+ height: 400px;
+ }
+}
diff --git a/themes/mms43/layouts/_partials/head/js.html b/themes/mms43/layouts/_partials/head/js.html
index 16ffbed..625abcd 100644
--- a/themes/mms43/layouts/_partials/head/js.html
+++ b/themes/mms43/layouts/_partials/head/js.html
@@ -1,3 +1,13 @@
+
+
+
+
+
+
+
+
+
+
{{- with resources.Get "js/main.js" }}
{{- $opts := dict
"minify" (not hugo.IsDevelopment)
diff --git a/themes/mms43/layouts/_partials/search-block.html b/themes/mms43/layouts/_partials/search-block.html
new file mode 100644
index 0000000..c8ad04a
--- /dev/null
+++ b/themes/mms43/layouts/_partials/search-block.html
@@ -0,0 +1,214 @@
+{{/*
+ Partial: search-block
+
+ Paramètres:
+ - showTitle: bool (afficher le titre, défaut: true)
+ - action: string (URL de soumission du formulaire)
+ - method: string (méthode du formulaire, défaut: GET)
+*/}}
+
+{{ $showTitle := default true .showTitle }}
+{{ $action := .action }}
+{{ $method := default "GET" .method }}
+
+{{ $iconLocation := resources.Get "images/picto/location_on_24dp_1F1F1F_FILL0_wght400_GRAD0_opsz24.svg" }}
+{{ $iconCalendar := resources.Get "images/picto/calendar_today_24dp_1F1F1F_FILL0_wght400_GRAD0_opsz24.svg" }}
+{{ $iconSchedule := resources.Get "images/picto/schedule_24dp_1F1F1F_FILL0_wght400_GRAD0_opsz24.svg" }}
+{{ $iconSearch := resources.Get "images/picto/search_24dp_1F1F1F_FILL0_wght400_GRAD0_opsz24.svg" }}
+{{ $iconSwap := resources.Get "images/picto/sync_alt_24dp_1F1F1F_FILL0_wght400_GRAD0_opsz24.svg" }}
+
+{{ site.Params.search.title }}
+ {{ end }}
+
+
+
Marche à pieds
++ + +
++ Direction +
+Aucun transport en commun disponible pour ce trajet.
+ + {{ with .Params.contactCTA.transit }} +{{ . }}
+ {{ site.Params.phone }} +Aucun covoiturage disponible pour ce trajet.
+ + {{ with .Params.contactCTA.carpool }} +{{ . }}
+ {{ site.Params.phone }} +Nous avons trouvé
+ +disponible pour faire le trajet que vous recherchez
+Aucun transport solidaire disponible pour ce trajet.
+ + {{ with .Params.contactCTA.solidarity }} +{{ . }}
+ {{ site.Params.phone }} +Nous avons trouvé
+ +disponible
+Aucun véhicule disponible pour ce trajet.
+ + {{ with .Params.contactCTA.vehicles }} +{{ . }}
+ {{ site.Params.phone }} +Aucune solution complémentaire disponible pour ce trajet.
+ + {{ with .Params.localSolutionsText }} +{{ . }}
+ {{ end }} + {{ with .Params.contactCTA.localSolutions }} +{{ . }}
+ {{ site.Params.phone }} +