@mapbox/mapbox-gl-style-spec 14.20.0 → 14.21.0-rc.1

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.
package/dist/index.cjs CHANGED
@@ -7439,6 +7439,45 @@
7439
7439
  },
7440
7440
  "property-type": "data-constant"
7441
7441
  },
7442
+ "building-front-cutoff": {
7443
+ type: "array",
7444
+ "private": true,
7445
+ experimental: true,
7446
+ value: "number",
7447
+ "property-type": "data-constant",
7448
+ transition: false,
7449
+ expression: {
7450
+ interpolated: true,
7451
+ parameters: [
7452
+ "zoom",
7453
+ "pitch"
7454
+ ]
7455
+ },
7456
+ length: 3,
7457
+ "default": [
7458
+ 0,
7459
+ 0,
7460
+ 1
7461
+ ],
7462
+ minimum: [
7463
+ 0,
7464
+ 0,
7465
+ 0
7466
+ ],
7467
+ maximum: [
7468
+ 1,
7469
+ 1,
7470
+ 1
7471
+ ],
7472
+ doc: "An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled.",
7473
+ "sdk-support": {
7474
+ "basic functionality": {
7475
+ js: "3.21.0",
7476
+ android: "11.21.0",
7477
+ ios: "11.21.0"
7478
+ }
7479
+ }
7480
+ },
7442
7481
  "building-flood-light-color": {
7443
7482
  "property-type": "data-constant",
7444
7483
  type: "color",
@@ -8116,6 +8155,36 @@
8116
8155
  },
8117
8156
  transition: true,
8118
8157
  "property-type": "data-constant"
8158
+ },
8159
+ "line-blend-mode": {
8160
+ type: "enum",
8161
+ values: {
8162
+ "default": {
8163
+ doc: "Normal non-blended rendering mode."
8164
+ },
8165
+ multiply: {
8166
+ doc: "Line features are composited using multiply blending."
8167
+ },
8168
+ additive: {
8169
+ doc: "Line features are composited using additive density accumulation with tone mapping."
8170
+ }
8171
+ },
8172
+ doc: "Controls the blend mode used for rendering line features.",
8173
+ "default": "default",
8174
+ experimental: true,
8175
+ "private": true,
8176
+ "sdk-support": {
8177
+ "basic functionality": {
8178
+ js: "3.21.0"
8179
+ }
8180
+ },
8181
+ expression: {
8182
+ interpolated: false,
8183
+ parameters: [
8184
+ "zoom"
8185
+ ]
8186
+ },
8187
+ "property-type": "data-constant"
8119
8188
  }
8120
8189
  };
8121
8190
  var paint_circle = {
@@ -8641,6 +8710,7 @@
8641
8710
  "measure-light"
8642
8711
  ]
8643
8712
  },
8713
+ appearance: true,
8644
8714
  "property-type": "data-driven"
8645
8715
  },
8646
8716
  "icon-occlusion-opacity": {
@@ -8674,6 +8744,7 @@
8674
8744
  "measure-light"
8675
8745
  ]
8676
8746
  },
8747
+ appearance: true,
8677
8748
  "property-type": "data-driven"
8678
8749
  },
8679
8750
  "icon-emissive-strength": {
@@ -8706,6 +8777,7 @@
8706
8777
  "feature-state"
8707
8778
  ]
8708
8779
  },
8780
+ appearance: true,
8709
8781
  "property-type": "data-driven"
8710
8782
  },
8711
8783
  "text-emissive-strength": {
@@ -8738,6 +8810,7 @@
8738
8810
  "feature-state"
8739
8811
  ]
8740
8812
  },
8813
+ appearance: true,
8741
8814
  "property-type": "data-driven"
8742
8815
  },
8743
8816
  "icon-color": {
@@ -8770,6 +8843,7 @@
8770
8843
  "measure-light"
8771
8844
  ]
8772
8845
  },
8846
+ appearance: true,
8773
8847
  "property-type": "data-driven"
8774
8848
  },
8775
8849
  "icon-halo-color": {
@@ -8802,6 +8876,7 @@
8802
8876
  "measure-light"
8803
8877
  ]
8804
8878
  },
8879
+ appearance: true,
8805
8880
  "property-type": "data-driven"
8806
8881
  },
8807
8882
  "icon-halo-width": {
@@ -8835,6 +8910,7 @@
8835
8910
  "measure-light"
8836
8911
  ]
8837
8912
  },
8913
+ appearance: true,
8838
8914
  "property-type": "data-driven"
8839
8915
  },
8840
8916
  "icon-halo-blur": {
@@ -8868,6 +8944,7 @@
8868
8944
  "measure-light"
8869
8945
  ]
8870
8946
  },
8947
+ appearance: true,
8871
8948
  "property-type": "data-driven"
8872
8949
  },
8873
8950
  "icon-translate": {
@@ -8879,6 +8956,7 @@
8879
8956
  0
8880
8957
  ],
8881
8958
  transition: true,
8959
+ appearance: true,
8882
8960
  units: "pixels",
8883
8961
  doc: "Distance that the icon's anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.",
8884
8962
  requires: [
@@ -8986,6 +9064,7 @@
8986
9064
  "measure-light"
8987
9065
  ]
8988
9066
  },
9067
+ appearance: true,
8989
9068
  "property-type": "data-driven"
8990
9069
  },
8991
9070
  "text-occlusion-opacity": {
@@ -9019,6 +9098,7 @@
9019
9098
  "measure-light"
9020
9099
  ]
9021
9100
  },
9101
+ appearance: true,
9022
9102
  "property-type": "data-driven"
9023
9103
  },
9024
9104
  "text-color": {
@@ -9052,6 +9132,7 @@
9052
9132
  "measure-light"
9053
9133
  ]
9054
9134
  },
9135
+ appearance: true,
9055
9136
  "property-type": "data-driven"
9056
9137
  },
9057
9138
  "text-halo-color": {
@@ -9084,6 +9165,7 @@
9084
9165
  "measure-light"
9085
9166
  ]
9086
9167
  },
9168
+ appearance: true,
9087
9169
  "property-type": "data-driven"
9088
9170
  },
9089
9171
  "text-halo-width": {
@@ -9117,6 +9199,7 @@
9117
9199
  "measure-light"
9118
9200
  ]
9119
9201
  },
9202
+ appearance: true,
9120
9203
  "property-type": "data-driven"
9121
9204
  },
9122
9205
  "text-halo-blur": {
@@ -9150,6 +9233,7 @@
9150
9233
  "measure-light"
9151
9234
  ]
9152
9235
  },
9236
+ appearance: true,
9153
9237
  "property-type": "data-driven"
9154
9238
  },
9155
9239
  "text-translate": {
@@ -9161,6 +9245,7 @@
9161
9245
  0
9162
9246
  ],
9163
9247
  transition: true,
9248
+ appearance: true,
9164
9249
  units: "pixels",
9165
9250
  doc: "Distance that the text's anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.",
9166
9251
  requires: [
@@ -9295,6 +9380,7 @@
9295
9380
  minimum: 0,
9296
9381
  transition: true,
9297
9382
  experimental: true,
9383
+ appearance: true,
9298
9384
  "sdk-support": {
9299
9385
  "basic functionality": {
9300
9386
  js: "3.7.0",
@@ -10875,6 +10961,22 @@
10875
10961
  interpolated: false
10876
10962
  },
10877
10963
  "property-type": "constant"
10964
+ },
10965
+ "source-max-zoom": {
10966
+ type: "number",
10967
+ minimum: 0,
10968
+ maximum: 24,
10969
+ "private": true,
10970
+ experimental: true,
10971
+ doc: "The maximum zoom level at which to load and parse source tiles for this layer. When set, tiles are never loaded or re-parsed above this zoom level. At higher zoom levels, the renderer reuses tiles from this zoom level without creating overscaled variants. This reduces the number of tiles parsed and prevents tile-border artifacts for layers like fill-extrusion.",
10972
+ "sdk-support": {
10973
+ "basic functionality": {
10974
+ js: "3.21.0",
10975
+ android: "11.21.0",
10976
+ ios: "11.21.0"
10977
+ }
10978
+ },
10979
+ "property-type": "constant"
10878
10980
  }
10879
10981
  },
10880
10982
  layout_building: layout_building,
@@ -11655,6 +11757,45 @@
11655
11757
  },
11656
11758
  "property-type": "data-constant"
11657
11759
  },
11760
+ "fill-extrusion-front-cutoff": {
11761
+ type: "array",
11762
+ "private": true,
11763
+ experimental: true,
11764
+ value: "number",
11765
+ "property-type": "data-constant",
11766
+ transition: false,
11767
+ expression: {
11768
+ interpolated: true,
11769
+ parameters: [
11770
+ "zoom",
11771
+ "pitch"
11772
+ ]
11773
+ },
11774
+ length: 3,
11775
+ "default": [
11776
+ 0,
11777
+ 0,
11778
+ 1
11779
+ ],
11780
+ minimum: [
11781
+ 0,
11782
+ 0,
11783
+ 0
11784
+ ],
11785
+ maximum: [
11786
+ 1,
11787
+ 1,
11788
+ 1
11789
+ ],
11790
+ doc: "An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled.",
11791
+ "sdk-support": {
11792
+ "basic functionality": {
11793
+ js: "3.21.0",
11794
+ android: "11.21.0",
11795
+ ios: "11.21.0"
11796
+ }
11797
+ }
11798
+ },
11658
11799
  "fill-extrusion-emissive-strength": {
11659
11800
  type: "number",
11660
11801
  "default": 0,
@@ -14728,8 +14869,7 @@
14728
14869
  let argParseFailed = false;
14729
14870
  for (let i = 1; i < args.length; i++) {
14730
14871
  const arg = args[i];
14731
- const expectedType = Array.isArray(params) ? params[i - 1] : // @ts-expect-error - TS2339 - Property 'type' does not exist on type 'Varargs | Evaluate'.
14732
- params.type;
14872
+ const expectedType = Array.isArray(params) ? params[i - 1] : params.type;
14733
14873
  const parsed = signatureContext.parse(arg, 1 + parsedArgs.length, expectedType);
14734
14874
  if (!parsed) {
14735
14875
  argParseFailed = true;
@@ -14794,11 +14934,15 @@
14794
14934
  this.diacriticSensitive = diacriticSensitive;
14795
14935
  }
14796
14936
  static parse(args, context) {
14797
- if (args.length !== 2)
14798
- return context.error(`Expected one argument.`);
14937
+ if (args.length !== 2) {
14938
+ context.error(`Expected one argument.`);
14939
+ return null;
14940
+ }
14799
14941
  const options = args[1];
14800
- if (typeof options !== 'object' || Array.isArray(options))
14801
- return context.error(`Collator options argument must be an object.`);
14942
+ if (typeof options !== 'object' || Array.isArray(options)) {
14943
+ context.error(`Collator options argument must be an object.`);
14944
+ return null;
14945
+ }
14802
14946
  const caseSensitive = options['case-sensitive'] === void 0 ? context.parse(false, 1, BooleanType) : context.parseObjectValue(options['case-sensitive'], 1, 'case-sensitive', BooleanType);
14803
14947
  if (!caseSensitive)
14804
14948
  return null;
@@ -17479,7 +17623,8 @@
17479
17623
  }
17480
17624
  static parse(args, context) {
17481
17625
  if (args.length < 2) {
17482
- return context.error('Expectected at least one argument.');
17626
+ context.error('Expectected at least one argument.');
17627
+ return null;
17483
17628
  }
17484
17629
  let outputType = null;
17485
17630
  const expectedType = context.expectedType;
@@ -17696,7 +17841,8 @@
17696
17841
  }
17697
17842
  static parse(args, context) {
17698
17843
  if (args.length !== 3) {
17699
- return context.error(`Expected 2 arguments, but found ${ args.length - 1 } instead.`);
17844
+ context.error(`Expected 2 arguments, but found ${ args.length - 1 } instead.`);
17845
+ return null;
17700
17846
  }
17701
17847
  const needle = context.parse(args[1], 1, ValueType);
17702
17848
  const haystack = context.parse(args[2], 2, ValueType);
@@ -17709,7 +17855,8 @@
17709
17855
  NullType,
17710
17856
  ValueType
17711
17857
  ])) {
17712
- return context.error(`Expected first argument to be of type boolean, string, number or null, but found ${ toString$1(needle.type) } instead`);
17858
+ context.error(`Expected first argument to be of type boolean, string, number or null, but found ${ toString$1(needle.type) } instead`);
17859
+ return null;
17713
17860
  }
17714
17861
  return new In(needle, haystack);
17715
17862
  }
@@ -17759,7 +17906,8 @@
17759
17906
  }
17760
17907
  static parse(args, context) {
17761
17908
  if (args.length <= 2 || args.length >= 5) {
17762
- return context.error(`Expected 3 or 4 arguments, but found ${ args.length - 1 } instead.`);
17909
+ context.error(`Expected 3 or 4 arguments, but found ${ args.length - 1 } instead.`);
17910
+ return null;
17763
17911
  }
17764
17912
  const needle = context.parse(args[1], 1, ValueType);
17765
17913
  const haystack = context.parse(args[2], 2, ValueType);
@@ -17772,7 +17920,8 @@
17772
17920
  NullType,
17773
17921
  ValueType
17774
17922
  ])) {
17775
- return context.error(`Expected first argument to be of type boolean, string, number or null, but found ${ toString$1(needle.type) } instead`);
17923
+ context.error(`Expected first argument to be of type boolean, string, number or null, but found ${ toString$1(needle.type) } instead`);
17924
+ return null;
17776
17925
  }
17777
17926
  if (args.length === 4) {
17778
17927
  const fromIndex = context.parse(args[3], 3, NumberType);
@@ -17955,10 +18104,14 @@
17955
18104
  this.otherwise = otherwise;
17956
18105
  }
17957
18106
  static parse(args, context) {
17958
- if (args.length < 4)
17959
- return context.error(`Expected at least 3 arguments, but found only ${ args.length - 1 }.`);
17960
- if (args.length % 2 !== 0)
17961
- return context.error(`Expected an odd number of arguments.`);
18107
+ if (args.length < 4) {
18108
+ context.error(`Expected at least 3 arguments, but found only ${ args.length - 1 }.`);
18109
+ return null;
18110
+ }
18111
+ if (args.length % 2 !== 0) {
18112
+ context.error(`Expected an odd number of arguments.`);
18113
+ return null;
18114
+ }
17962
18115
  let outputType;
17963
18116
  if (context.expectedType && context.expectedType.kind !== 'value') {
17964
18117
  outputType = context.expectedType;
@@ -18019,7 +18172,8 @@
18019
18172
  }
18020
18173
  static parse(args, context) {
18021
18174
  if (args.length <= 2 || args.length >= 5) {
18022
- return context.error(`Expected 3 or 4 arguments, but found ${ args.length - 1 } instead.`);
18175
+ context.error(`Expected 3 or 4 arguments, but found ${ args.length - 1 } instead.`);
18176
+ return null;
18023
18177
  }
18024
18178
  const input = context.parse(args[1], 1, ValueType);
18025
18179
  const beginIndex = context.parse(args[2], 2, NumberType);
@@ -18030,7 +18184,8 @@
18030
18184
  StringType,
18031
18185
  ValueType
18032
18186
  ])) {
18033
- return context.error(`Expected first argument to be of type array or string, but found ${ toString$1(input.type) } instead`);
18187
+ context.error(`Expected first argument to be of type array or string, but found ${ toString$1(input.type) } instead`);
18188
+ return null;
18034
18189
  }
18035
18190
  if (args.length === 4) {
18036
18191
  const endIndex = context.parse(args[3], 3, NumberType);
@@ -18374,13 +18529,17 @@
18374
18529
  this.input = input;
18375
18530
  }
18376
18531
  static parse(args, context) {
18377
- if (args.length !== 2)
18378
- return context.error(`Expected 1 argument, but found ${ args.length - 1 } instead.`);
18532
+ if (args.length !== 2) {
18533
+ context.error(`Expected 1 argument, but found ${ args.length - 1 } instead.`);
18534
+ return null;
18535
+ }
18379
18536
  const input = context.parse(args[1], 1);
18380
18537
  if (!input)
18381
18538
  return null;
18382
- if (input.type.kind !== 'array' && input.type.kind !== 'string' && input.type.kind !== 'value')
18383
- return context.error(`Expected argument of type string or array, but found ${ toString$1(input.type) } instead.`);
18539
+ if (input.type.kind !== 'array' && input.type.kind !== 'string' && input.type.kind !== 'value') {
18540
+ context.error(`Expected argument of type string or array, but found ${ toString$1(input.type) } instead.`);
18541
+ return null;
18542
+ }
18384
18543
  return new Length(input);
18385
18544
  }
18386
18545
  evaluate(ctx) {
@@ -20199,9 +20358,7 @@ ${ JSON.stringify(filterExp, null, 2) }
20199
20358
  op === '==' ? convertComparisonOp$1(filter[1], filter[2], '==') : // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
20200
20359
  op === '!=' ? convertNegation(convertComparisonOp$1(filter[1], filter[2], '==')) : op === '<' || op === '>' || op === '<=' || // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
20201
20360
  op === '>=' ? convertComparisonOp$1(filter[1], filter[2], op) : // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
20202
- op === 'any' ? convertDisjunctionOp(filter.slice(1)) : // @ts-expect-error - TS2769 - No overload matches this call.
20203
- op === 'all' ? ['all'].concat(filter.slice(1).map(convertFilter$1)) : // @ts-expect-error - TS2769 - No overload matches this call.
20204
- op === 'none' ? ['all'].concat(filter.slice(1).map(convertFilter$1).map(convertNegation)) : // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
20361
+ op === 'any' ? convertDisjunctionOp(filter.slice(1)) : op === 'all' ? ['all'].concat(filter.slice(1).map(convertFilter$1)) : op === 'none' ? ['all'].concat(filter.slice(1).map(convertFilter$1).map(convertNegation)) : // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
20205
20362
  op === 'in' ? convertInOp$1(filter[1], filter.slice(2)) : // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
20206
20363
  op === '!in' ? convertNegation(convertInOp$1(filter[1], filter.slice(2))) : // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
20207
20364
  op === 'has' ? convertHasOp$1(filter[1]) : // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
@@ -22260,6 +22417,7 @@ Use an identity property function instead: ${ example }.`)];
22260
22417
  expression.value.forEach(err => {
22261
22418
  errors2.push(new ValidationError(`${ key }${ err.key }`, null, `${ err.message }`));
22262
22419
  });
22420
+ return errors2;
22263
22421
  }
22264
22422
  const parsed = expression.value.expression;
22265
22423
  const onlyFeatureDependent = isGlobalPropertyConstant(parsed, [