@mapbox/mapbox-gl-style-spec 14.15.0-beta.1 → 14.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/deref.ts +3 -0
  2. package/diff.ts +63 -0
  3. package/dist/index.cjs +743 -65
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.d.ts +85 -6
  6. package/dist/index.es.js +743 -65
  7. package/dist/index.es.js.map +1 -1
  8. package/expression/compound_expression.ts +4 -0
  9. package/expression/definitions/assertion.ts +7 -0
  10. package/expression/definitions/case.ts +2 -1
  11. package/expression/definitions/coalesce.ts +4 -0
  12. package/expression/definitions/coercion.ts +12 -0
  13. package/expression/definitions/collator.ts +8 -5
  14. package/expression/definitions/comparison.ts +12 -5
  15. package/expression/definitions/config.ts +12 -0
  16. package/expression/definitions/distance.ts +13 -2
  17. package/expression/definitions/format.ts +10 -0
  18. package/expression/definitions/image.ts +3 -0
  19. package/expression/definitions/in.ts +5 -0
  20. package/expression/definitions/index.ts +62 -10
  21. package/expression/definitions/index_of.ts +6 -0
  22. package/expression/definitions/interpolate.ts +5 -1
  23. package/expression/definitions/length.ts +2 -0
  24. package/expression/definitions/let.ts +1 -0
  25. package/expression/definitions/match.ts +5 -0
  26. package/expression/definitions/number_format.ts +7 -0
  27. package/expression/definitions/slice.ts +4 -0
  28. package/expression/definitions/within.ts +1 -0
  29. package/expression/index.ts +28 -19
  30. package/expression/parsing_context.ts +2 -0
  31. package/expression/types/image_variant.ts +3 -0
  32. package/expression/types.ts +1 -2
  33. package/expression/values.ts +1 -0
  34. package/feature_filter/convert.ts +9 -1
  35. package/feature_filter/index.ts +41 -1
  36. package/format.ts +5 -0
  37. package/function/convert.ts +5 -0
  38. package/function/index.ts +79 -25
  39. package/group_by_layout.ts +4 -5
  40. package/migrate/v8.ts +42 -3
  41. package/migrate/v9.ts +5 -0
  42. package/migrate.ts +1 -0
  43. package/package.json +1 -1
  44. package/read_style.ts +2 -0
  45. package/reference/v8.json +457 -12
  46. package/rollup.config.js +1 -0
  47. package/test.js +4 -0
  48. package/types.ts +74 -5
  49. package/util/color.ts +21 -26
  50. package/util/geometry_util.ts +4 -0
  51. package/validate/validate.ts +1 -0
  52. package/validate/validate_appearance.ts +101 -0
  53. package/validate/validate_array.ts +1 -0
  54. package/validate/validate_expression.ts +48 -3
  55. package/validate/validate_filter.ts +5 -3
  56. package/validate/validate_fog.ts +6 -0
  57. package/validate/validate_function.ts +2 -0
  58. package/validate/validate_iconset.ts +1 -0
  59. package/validate/validate_import.ts +2 -2
  60. package/validate/validate_layer.ts +37 -4
  61. package/validate/validate_light.ts +6 -0
  62. package/validate/validate_lights.ts +9 -0
  63. package/validate/validate_model.ts +1 -2
  64. package/validate/validate_number.ts +2 -0
  65. package/validate/validate_object.ts +7 -0
  66. package/validate/validate_projection.ts +2 -0
  67. package/validate/validate_property.ts +15 -4
  68. package/validate/validate_rain.ts +5 -0
  69. package/validate/validate_snow.ts +5 -0
  70. package/validate/validate_source.ts +12 -0
  71. package/validate/validate_style.ts +1 -0
  72. package/validate/validate_terrain.ts +6 -0
  73. package/validate_mapbox_api_supported.ts +1 -0
  74. package/visit.ts +2 -0
  75. package/util/extend.ts +0 -9
package/reference/v8.json CHANGED
@@ -1315,6 +1315,108 @@
1315
1315
  }
1316
1316
  }
1317
1317
  },
1318
+ "modelNodeOverride": {
1319
+ "orientation": {
1320
+ "type": "array",
1321
+ "value": "number",
1322
+ "length": 3,
1323
+ "default": [0, 0, 0],
1324
+ "period": 360,
1325
+ "units": "degrees",
1326
+ "doc": "Override the orientation of the model node in euler angles [x, y, z]."
1327
+ }
1328
+ },
1329
+ "modelNodeOverrides": {
1330
+ "*": {
1331
+ "type": "modelNodeOverride",
1332
+ "doc": "An object defining model node properties to override. Object key is the node name as defined in the model."
1333
+ }
1334
+ },
1335
+ "modelMaterialOverride": {
1336
+ "model-color": {
1337
+ "type": "color",
1338
+ "doc": "Override the tint color of the material."
1339
+ },
1340
+ "model-color-mix-intensity": {
1341
+ "type": "number",
1342
+ "doc": "Override the intensity of model-color (on a scale from 0 to 1) in color mix with original 3D model's colors."
1343
+ },
1344
+ "model-opacity": {
1345
+ "type": "number",
1346
+ "doc": "Override the opacity of the material."
1347
+ },
1348
+ "model-emissive-strength": {
1349
+ "type": "number",
1350
+ "units": "intensity",
1351
+ "doc": "Override strength of the emission of material."
1352
+ }
1353
+ },
1354
+ "modelMaterialOverrides": {
1355
+ "*": {
1356
+ "type": "modelMaterialOverride",
1357
+ "doc": "An object defining material properties to override. Object key is the material name as defined in the model."
1358
+ }
1359
+ },
1360
+ "modelSourceModel": {
1361
+ "uri": {
1362
+ "type": "string",
1363
+ "required": true,
1364
+ "doc": "A URL to a model resource. Supported protocols are `http:`, `https:`, and `mapbox://<Model ID>`."
1365
+ },
1366
+ "position": {
1367
+ "type": "array",
1368
+ "value": "number",
1369
+ "length": 2,
1370
+ "required": false,
1371
+ "default": [0,0],
1372
+ "minimum": [-180, -90],
1373
+ "maximum": [180, 90],
1374
+ "doc": "Position of the model in longitude and latitude [lng, lat]."
1375
+ },
1376
+ "orientation": {
1377
+ "type": "array",
1378
+ "value": "number",
1379
+ "length": 3,
1380
+ "required": false,
1381
+ "default": [0,0,0],
1382
+ "period": 360,
1383
+ "units": "degrees",
1384
+ "doc": "Orientation of the model in euler angles [x, y, z]."
1385
+ },
1386
+ "nodeOverrides": {
1387
+ "type": "modelNodeOverrides",
1388
+ "required": false,
1389
+ "doc": "A collection of node overrides."
1390
+ },
1391
+ "materialOverrides": {
1392
+ "type": "modelMaterialOverrides",
1393
+ "required": false,
1394
+ "doc": "A collection of material overrides."
1395
+ },
1396
+ "nodeOverrideNames": {
1397
+ "type": "array",
1398
+ "value": "string",
1399
+ "doc" : "An array of one or more model node names whose transform will be overridden from model layer paint properties.",
1400
+ "required": false
1401
+ },
1402
+ "materialOverrideNames": {
1403
+ "type": "array",
1404
+ "value": "string",
1405
+ "doc" : "An array of one or more model material names whose properties will be overridden from model layer paint properties.",
1406
+ "required": false
1407
+ },
1408
+ "featureProperties": {
1409
+ "type": "*",
1410
+ "doc": "An object defining custom properties of the model. Properties are accessible as feature properties in expressions.",
1411
+ "required": false
1412
+ }
1413
+ },
1414
+ "modelSourceModels": {
1415
+ "*": {
1416
+ "type": "modelSourceModel",
1417
+ "doc": "A 3D model and its properties."
1418
+ }
1419
+ },
1318
1420
  "source_model" : {
1319
1421
  "type": {
1320
1422
  "required": true,
@@ -1342,7 +1444,11 @@
1342
1444
  "tiles": {
1343
1445
  "type": "array",
1344
1446
  "value": "string",
1345
- "doc": "An array of one or more tile source URLs, as in the TileJSON spec."
1447
+ "doc": "An array of one or more tile source URLs, as in the TileJSON spec. Requires `batched-model` source type."
1448
+ },
1449
+ "models": {
1450
+ "type": "modelSourceModels",
1451
+ "doc": "Defines properties of 3D models in collection. Requires `model` source type."
1346
1452
  }
1347
1453
  },
1348
1454
  "layer": {
@@ -1417,6 +1523,9 @@
1417
1523
  "building": {
1418
1524
  "doc": "A procedural 3D building.",
1419
1525
  "sdk-support": {
1526
+ "js": "3.16.0",
1527
+ "android": "11.16.0",
1528
+ "ios": "11.16.0"
1420
1529
  },
1421
1530
  "experimental": true,
1422
1531
  "private": true
@@ -1564,12 +1673,25 @@
1564
1673
  },
1565
1674
  "appearance": {
1566
1675
  "condition": {
1567
- "type": "expression",
1568
- "doc": "A boolean expression that determines when this appearance should be applied."
1676
+ "type": "boolean",
1677
+ "doc": "A boolean expression that determines when this appearance should be applied.",
1678
+ "expression": {
1679
+ "interpolated": false,
1680
+ "parameters": [
1681
+ "zoom",
1682
+ "pitch",
1683
+ "feature",
1684
+ "feature-state",
1685
+ "measure-light",
1686
+ "distance-from-center"
1687
+ ]
1688
+ },
1689
+ "property-type": "data-driven"
1569
1690
  },
1570
1691
  "name": {
1571
1692
  "type": "string",
1572
- "doc": "Optional name for this appearance. Non-empty names should be unique within a layer."
1693
+ "doc": "Optional name for this appearance. Non-empty names should be unique within a layer.",
1694
+ "property-type": "constant"
1573
1695
  },
1574
1696
  "properties": {
1575
1697
  "type": "*",
@@ -2051,6 +2173,9 @@
2051
2173
  "doc": "Whether this layer is displayed.",
2052
2174
  "sdk-support": {
2053
2175
  "basic functionality": {
2176
+ "js": "3.16.0",
2177
+ "android": "11.16.0",
2178
+ "ios": "11.16.0"
2054
2179
  }
2055
2180
  },
2056
2181
  "expression": {
@@ -2066,8 +2191,14 @@
2066
2191
  "private": true,
2067
2192
  "sdk-support": {
2068
2193
  "basic functionality": {
2194
+ "js": "3.16.0",
2195
+ "android": "11.16.0",
2196
+ "ios": "11.16.0"
2069
2197
  },
2070
2198
  "data-driven styling": {
2199
+ "js": "3.16.0",
2200
+ "android": "11.16.0",
2201
+ "ios": "11.16.0"
2071
2202
  }
2072
2203
  },
2073
2204
  "expression": {
@@ -2087,8 +2218,46 @@
2087
2218
  "experimental": true,
2088
2219
  "property-type": "data-driven",
2089
2220
  "sdk-support": {
2090
- "basic functionality": {},
2091
- "data-driven styling": {}
2221
+ "basic functionality": {
2222
+ "js": "3.16.0",
2223
+ "android": "11.16.0",
2224
+ "ios": "11.16.0"
2225
+ },
2226
+ "data-driven styling": {
2227
+ "js": "3.16.0",
2228
+ "android": "11.16.0",
2229
+ "ios": "11.16.0"
2230
+ }
2231
+ },
2232
+ "expression": {
2233
+ "interpolated": false,
2234
+ "parameters": [
2235
+ "feature"
2236
+ ]
2237
+ },
2238
+ "requires": [
2239
+ "building-facade"
2240
+ ]
2241
+ },
2242
+ "building-facade-unit-width": {
2243
+ "type": "number",
2244
+ "minimum": 1.0,
2245
+ "maximum": 20.0,
2246
+ "default": 3.1,
2247
+ "doc": "Width of a floor. Think of this as measure how wide each unit should be. This effectively determines the number of units per each floor. Note that this does not affect the ground level facades (i.e. number of windows).",
2248
+ "experimental": true,
2249
+ "property-type": "data-driven",
2250
+ "sdk-support": {
2251
+ "basic functionality": {
2252
+ "js": "3.16.0",
2253
+ "android": "11.16.0",
2254
+ "ios": "11.16.0"
2255
+ },
2256
+ "data-driven styling": {
2257
+ "js": "3.16.0",
2258
+ "android": "11.16.0",
2259
+ "ios": "11.16.0"
2260
+ }
2092
2261
  },
2093
2262
  "expression": {
2094
2263
  "interpolated": false,
@@ -2107,12 +2276,20 @@
2107
2276
  "minimum": 0.1,
2108
2277
  "maximum": 1.0,
2109
2278
  "default": [0.9, 0.9],
2110
- "doc": "Given as fractions, specifies the percentage of floor area covered by windows when building-facade is enabled",
2279
+ "doc": "Given as fractions, specifies the percentage of unit area covered by windows when building-facade is enabled. Note that the area of a unit is ultimately determined by `building-facade-unit-width` and `building-facade-floors`.",
2111
2280
  "experimental": true,
2112
2281
  "property-type": "data-driven",
2113
2282
  "sdk-support": {
2114
- "basic functionality": {},
2115
- "data-driven styling": {}
2283
+ "basic functionality": {
2284
+ "js": "3.16.0",
2285
+ "android": "11.16.0",
2286
+ "ios": "11.16.0"
2287
+ },
2288
+ "data-driven styling": {
2289
+ "js": "3.16.0",
2290
+ "android": "11.16.0",
2291
+ "ios": "11.16.0"
2292
+ }
2116
2293
  },
2117
2294
  "expression": {
2118
2295
  "interpolated": false,
@@ -2155,8 +2332,14 @@
2155
2332
  "private": true,
2156
2333
  "sdk-support": {
2157
2334
  "basic functionality": {
2335
+ "js": "3.16.0",
2336
+ "android": "11.16.0",
2337
+ "ios": "11.16.0"
2158
2338
  },
2159
2339
  "data-driven styling": {
2340
+ "js": "3.16.0",
2341
+ "android": "11.16.0",
2342
+ "ios": "11.16.0"
2160
2343
  }
2161
2344
  },
2162
2345
  "expression": {
@@ -2178,8 +2361,14 @@
2178
2361
  "private": true,
2179
2362
  "sdk-support": {
2180
2363
  "basic functionality": {
2364
+ "js": "3.16.0",
2365
+ "android": "11.16.0",
2366
+ "ios": "11.16.0"
2181
2367
  },
2182
2368
  "data-driven styling": {
2369
+ "js": "3.16.0",
2370
+ "android": "11.16.0",
2371
+ "ios": "11.16.0"
2183
2372
  }
2184
2373
  },
2185
2374
  "expression": {
@@ -2201,14 +2390,114 @@
2201
2390
  "private": true,
2202
2391
  "sdk-support": {
2203
2392
  "basic functionality": {
2393
+ "js": "3.16.0",
2394
+ "android": "11.16.0",
2395
+ "ios": "11.16.0"
2204
2396
  },
2205
2397
  "data-driven styling": {
2398
+ "js": "3.16.0",
2399
+ "android": "11.16.0",
2400
+ "ios": "11.16.0"
2206
2401
  }
2207
2402
  },
2208
2403
  "expression": {
2209
2404
  "interpolated": false
2210
2405
  },
2211
2406
  "property-type": "data-driven"
2407
+ },
2408
+ "building-flood-light-wall-radius": {
2409
+ "property-type": "data-driven",
2410
+ "type": "number",
2411
+ "experimental": true,
2412
+ "units": "meters",
2413
+ "default": 0,
2414
+ "minimum": 0,
2415
+ "doc": "The extent of the flood light effect on the walls of the buildings in meters.",
2416
+ "requires": [
2417
+ "lights"
2418
+ ],
2419
+ "transition": true,
2420
+ "expression": {
2421
+ "interpolated": true,
2422
+ "parameters": [
2423
+ "feature",
2424
+ "feature-state"
2425
+ ]
2426
+ },
2427
+ "sdk-support": {
2428
+ "basic functionality": {
2429
+ "js": "3.16.0",
2430
+ "android": "11.16.0",
2431
+ "ios": "11.16.0"
2432
+ },
2433
+ "data-driven styling": {
2434
+ "js": "3.16.0",
2435
+ "android": "11.16.0",
2436
+ "ios": "11.16.0"
2437
+ }
2438
+ }
2439
+ },
2440
+ "building-flood-light-ground-radius": {
2441
+ "property-type": "data-driven",
2442
+ "type": "number",
2443
+ "experimental": true,
2444
+ "units": "meters",
2445
+ "default": 0,
2446
+ "doc": "The extent of the flood light effect on the ground beneath the buildings in meters.",
2447
+ "requires": [
2448
+ "lights"
2449
+ ],
2450
+ "transition": true,
2451
+ "expression": {
2452
+ "interpolated": true,
2453
+ "parameters": [
2454
+ "feature",
2455
+ "feature-state"
2456
+ ]
2457
+ },
2458
+ "sdk-support": {
2459
+ "basic functionality": {
2460
+ "js": "3.16.0",
2461
+ "android": "11.16.0",
2462
+ "ios": "11.16.0"
2463
+ },
2464
+ "data-driven styling": {
2465
+ "js": "3.16.0",
2466
+ "android": "11.16.0",
2467
+ "ios": "11.16.0"
2468
+ }
2469
+ }
2470
+ },
2471
+ "building-flip-roof-orientation": {
2472
+ "property-type": "data-driven",
2473
+ "type": "boolean",
2474
+ "experimental": true,
2475
+ "units": "meters",
2476
+ "default": false,
2477
+ "doc": "Flips the orientation of the roofs for the buildings. This only affects simple geometries. Namely buildings whose footprints form a quadrilateral. By default (false), the roof ridge takes the direction of the longer edge of the quadrilateral.",
2478
+ "transition": true,
2479
+ "requires": [
2480
+ "building-roof-shape"
2481
+ ],
2482
+ "expression": {
2483
+ "interpolated": true,
2484
+ "parameters": [
2485
+ "feature",
2486
+ "feature-state"
2487
+ ]
2488
+ },
2489
+ "sdk-support": {
2490
+ "basic functionality": {
2491
+ "js": "3.16.0",
2492
+ "android": "11.16.0",
2493
+ "ios": "11.16.0"
2494
+ },
2495
+ "data-driven styling": {
2496
+ "js": "3.16.0",
2497
+ "android": "11.16.0",
2498
+ "ios": "11.16.0"
2499
+ }
2500
+ }
2212
2501
  }
2213
2502
  },
2214
2503
  "layout_line": {
@@ -2691,6 +2980,11 @@
2691
2980
  "ios": "11.9.0"
2692
2981
  }
2693
2982
  },
2983
+ "requires": [
2984
+ {
2985
+ "symbol-z-elevate": true
2986
+ }
2987
+ ],
2694
2988
  "expression": {
2695
2989
  "interpolated": false,
2696
2990
  "parameters": [
@@ -7608,6 +7902,9 @@
7608
7902
  "private": true,
7609
7903
  "sdk-support": {
7610
7904
  "basic functionality": {
7905
+ "js": "3.16.0",
7906
+ "android": "11.16.0",
7907
+ "ios": "11.16.0"
7611
7908
  }
7612
7909
  },
7613
7910
  "expression": {
@@ -7635,6 +7932,9 @@
7635
7932
  "doc": "Controls the intensity of ambient occlusion when shading concave angles between walls and roof crevices and windows.",
7636
7933
  "sdk-support": {
7637
7934
  "basic functionality": {
7935
+ "js": "3.16.0",
7936
+ "android": "11.16.0",
7937
+ "ios": "11.16.0"
7638
7938
  }
7639
7939
  }
7640
7940
  },
@@ -7656,6 +7956,9 @@
7656
7956
  "doc": "Controls the intensity of shading near ground",
7657
7957
  "sdk-support": {
7658
7958
  "basic functionality": {
7959
+ "js": "3.16.0",
7960
+ "android": "11.16.0",
7961
+ "ios": "11.16.0"
7659
7962
  }
7660
7963
  }
7661
7964
  },
@@ -7676,6 +7979,9 @@
7676
7979
  "doc": "The extent of the ambient occlusion effect on the ground beneath the procedural buildings in meters.",
7677
7980
  "sdk-support": {
7678
7981
  "basic functionality": {
7982
+ "js": "3.16.0",
7983
+ "android": "11.16.0",
7984
+ "ios": "11.16.0"
7679
7985
  }
7680
7986
  }
7681
7987
  },
@@ -7697,6 +8003,9 @@
7697
8003
  },
7698
8004
  "sdk-support": {
7699
8005
  "basic functionality": {
8006
+ "js": "3.16.0",
8007
+ "android": "11.16.0",
8008
+ "ios": "11.16.0"
7700
8009
  }
7701
8010
  }
7702
8011
  },
@@ -7717,6 +8026,9 @@
7717
8026
  },
7718
8027
  "sdk-support": {
7719
8028
  "basic functionality": {
8029
+ "js": "3.16.0",
8030
+ "android": "11.16.0",
8031
+ "ios": "11.16.0"
7720
8032
  }
7721
8033
  }
7722
8034
  },
@@ -7728,7 +8040,10 @@
7728
8040
  "experimental": true,
7729
8041
  "private": true,
7730
8042
  "sdk-support": {
7731
- "basic functionality": {
8043
+ "basic functionality": {
8044
+ "js": "3.16.0",
8045
+ "android": "11.16.0",
8046
+ "ios": "11.16.0"
7732
8047
  }
7733
8048
  },
7734
8049
  "property-type": "data-constant"
@@ -7743,8 +8058,14 @@
7743
8058
  "transition": false,
7744
8059
  "sdk-support": {
7745
8060
  "basic functionality": {
8061
+ "js": "3.16.0",
8062
+ "android": "11.16.0",
8063
+ "ios": "11.16.0"
7746
8064
  },
7747
8065
  "data-driven styling": {
8066
+ "js": "3.16.0",
8067
+ "android": "11.16.0",
8068
+ "ios": "11.16.0"
7748
8069
  }
7749
8070
  },
7750
8071
  "expression": {
@@ -7768,8 +8089,14 @@
7768
8089
  "private": true,
7769
8090
  "sdk-support": {
7770
8091
  "basic functionality": {
8092
+ "js": "3.16.0",
8093
+ "android": "11.16.0",
8094
+ "ios": "11.16.0"
7771
8095
  },
7772
8096
  "data-driven styling": {
8097
+ "js": "3.16.0",
8098
+ "android": "11.16.0",
8099
+ "ios": "11.16.0"
7773
8100
  }
7774
8101
  },
7775
8102
  "expression": {
@@ -7791,7 +8118,11 @@
7791
8118
  "experimental": true,
7792
8119
  "property-type": "data-constant",
7793
8120
  "sdk-support": {
7794
- "basic functionality": {}
8121
+ "basic functionality": {
8122
+ "js": "3.16.0",
8123
+ "android": "11.16.0",
8124
+ "ios": "11.16.0"
8125
+ }
7795
8126
  },
7796
8127
  "expression": {
7797
8128
  "interpolated": true,
@@ -7812,9 +8143,92 @@
7812
8143
  "interpolated": false
7813
8144
  },
7814
8145
  "sdk-support": {
7815
- "basic functionality": {}
8146
+ "basic functionality": {
8147
+ "js": "3.16.0",
8148
+ "android": "11.16.0",
8149
+ "ios": "11.16.0"
8150
+ }
7816
8151
  },
7817
8152
  "property-type": "data-constant"
8153
+ },
8154
+ "building-flood-light-color": {
8155
+ "property-type": "data-constant",
8156
+ "type": "color",
8157
+ "experimental": true,
8158
+ "default": "#ffffff",
8159
+ "doc": "The color of the flood light effect on the walls of the buildings.",
8160
+ "requires": [
8161
+ "lights"
8162
+ ],
8163
+ "use-theme": true,
8164
+ "transition": true,
8165
+ "expression": {
8166
+ "interpolated": true,
8167
+ "parameters": [
8168
+ "zoom",
8169
+ "measure-light"
8170
+ ]
8171
+ },
8172
+ "sdk-support": {
8173
+ "basic functionality": {
8174
+ "js": "3.16.0",
8175
+ "android": "11.16.0",
8176
+ "ios": "11.16.0"
8177
+ }
8178
+ }
8179
+ },
8180
+ "building-flood-light-intensity": {
8181
+ "property-type": "data-constant",
8182
+ "type": "number",
8183
+ "experimental": true,
8184
+ "default": 0.0,
8185
+ "minimum": 0.0,
8186
+ "maximum": 1.0,
8187
+ "doc": "The intensity of the flood light color.",
8188
+ "requires": [
8189
+ "lights"
8190
+ ],
8191
+ "transition": true,
8192
+ "expression": {
8193
+ "interpolated": true,
8194
+ "parameters": [
8195
+ "zoom",
8196
+ "measure-light"
8197
+ ]
8198
+ },
8199
+ "sdk-support": {
8200
+ "basic functionality": {
8201
+ "js": "3.16.0",
8202
+ "android": "11.16.0",
8203
+ "ios": "11.16.0"
8204
+ }
8205
+ }
8206
+ },
8207
+ "building-flood-light-ground-attenuation": {
8208
+ "property-type": "data-constant",
8209
+ "type": "number",
8210
+ "experimental": true,
8211
+ "default": 0.69,
8212
+ "minimum": 0.0,
8213
+ "maximum": 1.0,
8214
+ "doc": "Provides a control to futher fine-tune the look of the flood light on the ground beneath the buildings. Lower values give the effect a more solid look while higher values make it smoother.",
8215
+ "requires": [
8216
+ "lights"
8217
+ ],
8218
+ "transition": true,
8219
+ "expression": {
8220
+ "interpolated": true,
8221
+ "parameters": [
8222
+ "zoom"
8223
+ ]
8224
+ },
8225
+ "sdk-support": {
8226
+ "basic functionality": {
8227
+ "js": "3.16.0",
8228
+ "android": "11.16.0",
8229
+ "ios": "11.16.0"
8230
+ }
8231
+ }
7818
8232
  }
7819
8233
  },
7820
8234
  "paint_line": {
@@ -9576,6 +9990,11 @@
9576
9990
  "ios": "11.7.0"
9577
9991
  }
9578
9992
  },
9993
+ "requires": [
9994
+ {
9995
+ "symbol-z-elevate": true
9996
+ }
9997
+ ],
9579
9998
  "expression": {
9580
9999
  "interpolated": true,
9581
10000
  "parameters": [
@@ -10940,6 +11359,32 @@
10940
11359
  "js": "3.5.0"
10941
11360
  }
10942
11361
  }
11362
+ },
11363
+ "model-elevation-reference": {
11364
+ "type": "enum",
11365
+ "doc": "Selects the base of the model. Some modes might require precomputed elevation data in the tileset.",
11366
+ "values": {
11367
+ "sea": {
11368
+ "doc": "Elevated rendering is enabled. Use this mode to elevate models relative to the sea level."
11369
+ },
11370
+ "ground": {
11371
+ "doc": "Elevated rendering is enabled. Use this mode to elevate models relative to the ground's height below them."
11372
+ },
11373
+ "hd-road-markup": {
11374
+ "doc": "Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."
11375
+ }
11376
+ },
11377
+ "default": "ground",
11378
+ "transition": false,
11379
+ "expression": {
11380
+ "interpolated": false
11381
+ },
11382
+ "property-type": "data-constant",
11383
+ "experimental": true,
11384
+ "sdk-support": {
11385
+ "basic functionality": {
11386
+ }
11387
+ }
10943
11388
  }
10944
11389
  },
10945
11390
  "transition": {
package/rollup.config.js CHANGED
@@ -31,6 +31,7 @@ const config = [{
31
31
  }),
32
32
  esbuild({tsconfig: `${__dirname}/../../tsconfig.json`}),
33
33
  json(),
34
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
34
35
  unassert({include: ['*.js', '**/*.js', '*.ts', '**/*.ts']}),
35
36
  resolve({
36
37
  browser: true,
package/test.js CHANGED
@@ -4,6 +4,7 @@ import fs from 'fs';
4
4
  import {execSync} from 'child_process';
5
5
  import {createRequire} from 'module';
6
6
 
7
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
7
8
  const packageJson = JSON.parse(fs.readFileSync('./package.json').toString());
8
9
 
9
10
  process.on('unhandledRejection', (/** @type {Error} */ error) => {
@@ -17,7 +18,9 @@ const require = createRequire(import.meta.url);
17
18
  const stylePath = require.resolve('mapbox-gl-styles/styles/basic-v9.json');
18
19
 
19
20
  try {
21
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
20
22
  for (const bin in packageJson.bin) {
23
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
21
24
  const script = packageJson.bin[bin];
22
25
  const command = [script, stylePath].join(' ');
23
26
 
@@ -25,6 +28,7 @@ try {
25
28
  execSync(command).toString();
26
29
  }
27
30
  } catch (error) {
31
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
28
32
  console.log(error.message);
29
33
  process.exit(1);
30
34
  }