@mapbox/mapbox-gl-style-spec 14.8.0-beta.1 → 14.9.0-beta.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/types.ts CHANGED
@@ -88,8 +88,20 @@ export type StyleSpecification = {
88
88
  "lights"?: Array<LightsSpecification>,
89
89
  "terrain"?: TerrainSpecification | null | undefined,
90
90
  "fog"?: FogSpecification,
91
+ /**
92
+ * @experimental This property is experimental and subject to change in future versions.
93
+ */
94
+ "snow"?: SnowSpecification,
95
+ /**
96
+ * @experimental This property is experimental and subject to change in future versions.
97
+ */
98
+ "rain"?: RainSpecification,
91
99
  "camera"?: CameraSpecification,
92
100
  "color-theme"?: ColorThemeSpecification,
101
+ /**
102
+ * @experimental This property is experimental and subject to change in future versions.
103
+ */
104
+ "indoor"?: IndoorSpecification,
93
105
  "imports"?: Array<ImportSpecification>,
94
106
  "schema"?: SchemaSpecification,
95
107
  "sources": SourcesSpecification,
@@ -119,6 +131,7 @@ export type LightSpecification = {
119
131
  "position-transition"?: TransitionSpecification,
120
132
  "color"?: PropertyValueSpecification<ColorSpecification>,
121
133
  "color-transition"?: TransitionSpecification,
134
+ "color-use-theme"?: PropertyValueSpecification<string>,
122
135
  "intensity"?: PropertyValueSpecification<number>,
123
136
  "intensity-transition"?: TransitionSpecification
124
137
  }
@@ -134,10 +147,13 @@ export type FogSpecification = {
134
147
  "range-transition"?: TransitionSpecification,
135
148
  "color"?: PropertyValueSpecification<ColorSpecification>,
136
149
  "color-transition"?: TransitionSpecification,
150
+ "color-use-theme"?: PropertyValueSpecification<string>,
137
151
  "high-color"?: PropertyValueSpecification<ColorSpecification>,
138
152
  "high-color-transition"?: TransitionSpecification,
153
+ "high-color-use-theme"?: PropertyValueSpecification<string>,
139
154
  "space-color"?: PropertyValueSpecification<ColorSpecification>,
140
155
  "space-color-transition"?: TransitionSpecification,
156
+ "space-color-use-theme"?: PropertyValueSpecification<string>,
141
157
  "horizon-blend"?: PropertyValueSpecification<number>,
142
158
  "horizon-blend-transition"?: TransitionSpecification,
143
159
  "star-intensity"?: PropertyValueSpecification<number>,
@@ -146,6 +162,54 @@ export type FogSpecification = {
146
162
  "vertical-range-transition"?: TransitionSpecification
147
163
  }
148
164
 
165
+ export type SnowSpecification = {
166
+ "density"?: PropertyValueSpecification<number>,
167
+ "density-transition"?: TransitionSpecification,
168
+ "intensity"?: PropertyValueSpecification<number>,
169
+ "intensity-transition"?: TransitionSpecification,
170
+ "color"?: PropertyValueSpecification<ColorSpecification>,
171
+ "color-transition"?: TransitionSpecification,
172
+ "color-use-theme"?: PropertyValueSpecification<string>,
173
+ "opacity"?: PropertyValueSpecification<number>,
174
+ "opacity-transition"?: TransitionSpecification,
175
+ "vignette"?: PropertyValueSpecification<number>,
176
+ "vignette-transition"?: TransitionSpecification,
177
+ "vignette-color"?: PropertyValueSpecification<ColorSpecification>,
178
+ "vignette-color-transition"?: TransitionSpecification,
179
+ "vignette-color-use-theme"?: PropertyValueSpecification<string>,
180
+ "center-thinning"?: PropertyValueSpecification<number>,
181
+ "center-thinning-transition"?: TransitionSpecification,
182
+ "direction"?: PropertyValueSpecification<[number, number]>,
183
+ "direction-transition"?: TransitionSpecification,
184
+ "flake-size"?: PropertyValueSpecification<number>,
185
+ "flake-size-transition"?: TransitionSpecification
186
+ }
187
+
188
+ export type RainSpecification = {
189
+ "density"?: PropertyValueSpecification<number>,
190
+ "density-transition"?: TransitionSpecification,
191
+ "intensity"?: PropertyValueSpecification<number>,
192
+ "intensity-transition"?: TransitionSpecification,
193
+ "color"?: PropertyValueSpecification<ColorSpecification>,
194
+ "color-transition"?: TransitionSpecification,
195
+ "color-use-theme"?: PropertyValueSpecification<string>,
196
+ "opacity"?: PropertyValueSpecification<number>,
197
+ "opacity-transition"?: TransitionSpecification,
198
+ "vignette"?: PropertyValueSpecification<number>,
199
+ "vignette-transition"?: TransitionSpecification,
200
+ "vignette-color"?: PropertyValueSpecification<ColorSpecification>,
201
+ "vignette-color-transition"?: TransitionSpecification,
202
+ "vignette-color-use-theme"?: PropertyValueSpecification<string>,
203
+ "center-thinning"?: PropertyValueSpecification<number>,
204
+ "center-thinning-transition"?: TransitionSpecification,
205
+ "direction"?: PropertyValueSpecification<[number, number]>,
206
+ "direction-transition"?: TransitionSpecification,
207
+ "droplet-size"?: PropertyValueSpecification<[number, number]>,
208
+ "droplet-size-transition"?: TransitionSpecification,
209
+ "distortion-strength"?: PropertyValueSpecification<number>,
210
+ "distortion-strength-transition"?: TransitionSpecification
211
+ }
212
+
149
213
  export type CameraSpecification = {
150
214
  "camera-projection"?: PropertyValueSpecification<"perspective" | "orthographic">,
151
215
  "camera-projection-transition"?: TransitionSpecification
@@ -165,7 +229,19 @@ export type ImportSpecification = {
165
229
  "id": string,
166
230
  "url": string,
167
231
  "config"?: ConfigSpecification,
168
- "data"?: StyleSpecification
232
+ "data"?: StyleSpecification,
233
+ "color-theme"?: ColorThemeSpecification | null | undefined
234
+ }
235
+
236
+ export type IndoorSpecification = {
237
+ /**
238
+ * @experimental This property is experimental and subject to change in future versions.
239
+ */
240
+ "floorplanFeaturesetId"?: ExpressionSpecification,
241
+ /**
242
+ * @experimental This property is experimental and subject to change in future versions.
243
+ */
244
+ "buildingFeaturesetId"?: ExpressionSpecification
169
245
  }
170
246
 
171
247
  export type ConfigSpecification = {
@@ -333,6 +409,7 @@ export type AmbientLightSpecification = {
333
409
  "properties"?: {
334
410
  "color"?: PropertyValueSpecification<ColorSpecification>,
335
411
  "color-transition"?: TransitionSpecification,
412
+ "color-use-theme"?: PropertyValueSpecification<string>,
336
413
  "intensity"?: PropertyValueSpecification<number>,
337
414
  "intensity-transition"?: TransitionSpecification
338
415
  },
@@ -346,9 +423,14 @@ export type DirectionalLightSpecification = {
346
423
  "direction-transition"?: TransitionSpecification,
347
424
  "color"?: PropertyValueSpecification<ColorSpecification>,
348
425
  "color-transition"?: TransitionSpecification,
426
+ "color-use-theme"?: PropertyValueSpecification<string>,
349
427
  "intensity"?: PropertyValueSpecification<number>,
350
428
  "intensity-transition"?: TransitionSpecification,
351
429
  "cast-shadows"?: boolean,
430
+ /**
431
+ * @experimental This property is experimental and subject to change in future versions.
432
+ */
433
+ "shadow-quality"?: PropertyValueSpecification<number>,
352
434
  "shadow-intensity"?: PropertyValueSpecification<number>,
353
435
  "shadow-intensity-transition"?: TransitionSpecification
354
436
  },
@@ -363,6 +445,7 @@ export type FlatLightSpecification = {
363
445
  "position-transition"?: TransitionSpecification,
364
446
  "color"?: PropertyValueSpecification<ColorSpecification>,
365
447
  "color-transition"?: TransitionSpecification,
448
+ "color-use-theme"?: PropertyValueSpecification<string>,
366
449
  "intensity"?: PropertyValueSpecification<number>,
367
450
  "intensity-transition"?: TransitionSpecification
368
451
  },
@@ -386,7 +469,11 @@ export type FillLayerSpecification = {
386
469
  "filter"?: FilterSpecification,
387
470
  "layout"?: {
388
471
  "fill-sort-key"?: DataDrivenPropertyValueSpecification<number>,
389
- "visibility"?: "visible" | "none" | ExpressionSpecification
472
+ "visibility"?: "visible" | "none" | ExpressionSpecification,
473
+ /**
474
+ * @experimental This property is experimental and subject to change in future versions.
475
+ */
476
+ "fill-elevation-reference"?: "none" | "hd-road-base" | "hd-road-markup" | ExpressionSpecification
390
477
  },
391
478
  "paint"?: {
392
479
  "fill-antialias"?: PropertyValueSpecification<boolean>,
@@ -394,8 +481,10 @@ export type FillLayerSpecification = {
394
481
  "fill-opacity-transition"?: TransitionSpecification,
395
482
  "fill-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
396
483
  "fill-color-transition"?: TransitionSpecification,
484
+ "fill-color-use-theme"?: PropertyValueSpecification<string>,
397
485
  "fill-outline-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
398
486
  "fill-outline-color-transition"?: TransitionSpecification,
487
+ "fill-outline-color-use-theme"?: PropertyValueSpecification<string>,
399
488
  "fill-translate"?: PropertyValueSpecification<[number, number]>,
400
489
  "fill-translate-transition"?: TransitionSpecification,
401
490
  "fill-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">,
@@ -445,13 +534,18 @@ export type LineLayerSpecification = {
445
534
  * @experimental This property is experimental and subject to change in future versions.
446
535
  */
447
536
  "line-cross-slope"?: ExpressionSpecification,
448
- "visibility"?: "visible" | "none" | ExpressionSpecification
537
+ "visibility"?: "visible" | "none" | ExpressionSpecification,
538
+ /**
539
+ * @experimental This property is experimental and subject to change in future versions.
540
+ */
541
+ "line-width-unit"?: PropertyValueSpecification<"pixels" | "meters">
449
542
  },
450
543
  "paint"?: {
451
544
  "line-opacity"?: DataDrivenPropertyValueSpecification<number>,
452
545
  "line-opacity-transition"?: TransitionSpecification,
453
546
  "line-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
454
547
  "line-color-transition"?: TransitionSpecification,
548
+ "line-color-use-theme"?: PropertyValueSpecification<string>,
455
549
  "line-translate"?: PropertyValueSpecification<[number, number]>,
456
550
  "line-translate-transition"?: TransitionSpecification,
457
551
  "line-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">,
@@ -466,6 +560,7 @@ export type LineLayerSpecification = {
466
560
  "line-dasharray"?: DataDrivenPropertyValueSpecification<Array<number>>,
467
561
  "line-pattern"?: DataDrivenPropertyValueSpecification<ResolvedImageSpecification>,
468
562
  "line-gradient"?: ExpressionSpecification,
563
+ "line-gradient-use-theme"?: PropertyValueSpecification<string>,
469
564
  "line-trim-offset"?: [number, number],
470
565
  /**
471
566
  * @experimental This property is experimental and subject to change in future versions.
@@ -473,12 +568,14 @@ export type LineLayerSpecification = {
473
568
  "line-trim-fade-range"?: PropertyValueSpecification<[number, number]>,
474
569
  "line-trim-color"?: PropertyValueSpecification<ColorSpecification>,
475
570
  "line-trim-color-transition"?: TransitionSpecification,
571
+ "line-trim-color-use-theme"?: PropertyValueSpecification<string>,
476
572
  "line-emissive-strength"?: PropertyValueSpecification<number>,
477
573
  "line-emissive-strength-transition"?: TransitionSpecification,
478
574
  "line-border-width"?: DataDrivenPropertyValueSpecification<number>,
479
575
  "line-border-width-transition"?: TransitionSpecification,
480
576
  "line-border-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
481
577
  "line-border-color-transition"?: TransitionSpecification,
578
+ "line-border-color-use-theme"?: PropertyValueSpecification<string>,
482
579
  "line-occlusion-opacity"?: PropertyValueSpecification<number>,
483
580
  "line-occlusion-opacity-transition"?: TransitionSpecification
484
581
  }
@@ -511,6 +608,10 @@ export type SymbolLayerSpecification = {
511
608
  "symbol-sort-key"?: DataDrivenPropertyValueSpecification<number>,
512
609
  "symbol-z-order"?: PropertyValueSpecification<"auto" | "viewport-y" | "source">,
513
610
  "symbol-z-elevate"?: PropertyValueSpecification<boolean>,
611
+ /**
612
+ * @experimental This property is experimental and subject to change in future versions.
613
+ */
614
+ "symbol-elevation-reference"?: PropertyValueSpecification<"sea" | "ground" | "hd-road-markup">,
514
615
  "icon-allow-overlap"?: PropertyValueSpecification<boolean>,
515
616
  "icon-ignore-placement"?: PropertyValueSpecification<boolean>,
516
617
  "icon-optional"?: PropertyValueSpecification<boolean>,
@@ -568,8 +669,10 @@ export type SymbolLayerSpecification = {
568
669
  "text-emissive-strength-transition"?: TransitionSpecification,
569
670
  "icon-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
570
671
  "icon-color-transition"?: TransitionSpecification,
672
+ "icon-color-use-theme"?: PropertyValueSpecification<string>,
571
673
  "icon-halo-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
572
674
  "icon-halo-color-transition"?: TransitionSpecification,
675
+ "icon-halo-color-use-theme"?: PropertyValueSpecification<string>,
573
676
  "icon-halo-width"?: DataDrivenPropertyValueSpecification<number>,
574
677
  "icon-halo-width-transition"?: TransitionSpecification,
575
678
  "icon-halo-blur"?: DataDrivenPropertyValueSpecification<number>,
@@ -585,8 +688,10 @@ export type SymbolLayerSpecification = {
585
688
  "text-occlusion-opacity-transition"?: TransitionSpecification,
586
689
  "text-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
587
690
  "text-color-transition"?: TransitionSpecification,
691
+ "text-color-use-theme"?: PropertyValueSpecification<string>,
588
692
  "text-halo-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
589
693
  "text-halo-color-transition"?: TransitionSpecification,
694
+ "text-halo-color-use-theme"?: PropertyValueSpecification<string>,
590
695
  "text-halo-width"?: DataDrivenPropertyValueSpecification<number>,
591
696
  "text-halo-width-transition"?: TransitionSpecification,
592
697
  "text-halo-blur"?: DataDrivenPropertyValueSpecification<number>,
@@ -599,11 +704,7 @@ export type SymbolLayerSpecification = {
599
704
  "icon-color-brightness-min"?: ExpressionSpecification,
600
705
  "icon-color-brightness-max"?: ExpressionSpecification,
601
706
  "symbol-z-offset"?: DataDrivenPropertyValueSpecification<number>,
602
- "symbol-z-offset-transition"?: TransitionSpecification,
603
- /**
604
- * @experimental This property is experimental and subject to change in future versions.
605
- */
606
- "symbol-elevation-reference"?: PropertyValueSpecification<"sea" | "ground">
707
+ "symbol-z-offset-transition"?: TransitionSpecification
607
708
  }
608
709
  }
609
710
 
@@ -636,6 +737,7 @@ export type CircleLayerSpecification = {
636
737
  "circle-radius-transition"?: TransitionSpecification,
637
738
  "circle-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
638
739
  "circle-color-transition"?: TransitionSpecification,
740
+ "circle-color-use-theme"?: PropertyValueSpecification<string>,
639
741
  "circle-blur"?: DataDrivenPropertyValueSpecification<number>,
640
742
  "circle-blur-transition"?: TransitionSpecification,
641
743
  "circle-opacity"?: DataDrivenPropertyValueSpecification<number>,
@@ -649,6 +751,7 @@ export type CircleLayerSpecification = {
649
751
  "circle-stroke-width-transition"?: TransitionSpecification,
650
752
  "circle-stroke-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
651
753
  "circle-stroke-color-transition"?: TransitionSpecification,
754
+ "circle-stroke-color-use-theme"?: PropertyValueSpecification<string>,
652
755
  "circle-stroke-opacity"?: DataDrivenPropertyValueSpecification<number>,
653
756
  "circle-stroke-opacity-transition"?: TransitionSpecification,
654
757
  "circle-emissive-strength"?: PropertyValueSpecification<number>,
@@ -686,6 +789,7 @@ export type HeatmapLayerSpecification = {
686
789
  "heatmap-intensity"?: PropertyValueSpecification<number>,
687
790
  "heatmap-intensity-transition"?: TransitionSpecification,
688
791
  "heatmap-color"?: ExpressionSpecification,
792
+ "heatmap-color-use-theme"?: PropertyValueSpecification<string>,
689
793
  "heatmap-opacity"?: PropertyValueSpecification<number>,
690
794
  "heatmap-opacity-transition"?: TransitionSpecification
691
795
  }
@@ -723,6 +827,7 @@ export type FillExtrusionLayerSpecification = {
723
827
  "fill-extrusion-opacity-transition"?: TransitionSpecification,
724
828
  "fill-extrusion-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
725
829
  "fill-extrusion-color-transition"?: TransitionSpecification,
830
+ "fill-extrusion-color-use-theme"?: PropertyValueSpecification<string>,
726
831
  "fill-extrusion-translate"?: PropertyValueSpecification<[number, number]>,
727
832
  "fill-extrusion-translate-transition"?: TransitionSpecification,
728
833
  "fill-extrusion-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">,
@@ -752,6 +857,7 @@ export type FillExtrusionLayerSpecification = {
752
857
  "fill-extrusion-ambient-occlusion-ground-attenuation-transition"?: TransitionSpecification,
753
858
  "fill-extrusion-flood-light-color"?: PropertyValueSpecification<ColorSpecification>,
754
859
  "fill-extrusion-flood-light-color-transition"?: TransitionSpecification,
860
+ "fill-extrusion-flood-light-color-use-theme"?: PropertyValueSpecification<string>,
755
861
  "fill-extrusion-flood-light-intensity"?: PropertyValueSpecification<number>,
756
862
  "fill-extrusion-flood-light-intensity-transition"?: TransitionSpecification,
757
863
  "fill-extrusion-flood-light-wall-radius"?: DataDrivenPropertyValueSpecification<number>,
@@ -802,6 +908,7 @@ export type RasterLayerSpecification = {
802
908
  "raster-opacity"?: PropertyValueSpecification<number>,
803
909
  "raster-opacity-transition"?: TransitionSpecification,
804
910
  "raster-color"?: ExpressionSpecification,
911
+ "raster-color-use-theme"?: PropertyValueSpecification<string>,
805
912
  "raster-color-mix"?: PropertyValueSpecification<[number, number, number, number]>,
806
913
  "raster-color-mix-transition"?: TransitionSpecification,
807
914
  "raster-color-range"?: PropertyValueSpecification<[number, number]>,
@@ -856,6 +963,7 @@ export type RasterParticleLayerSpecification = {
856
963
  "raster-particle-array-band"?: string,
857
964
  "raster-particle-count"?: number,
858
965
  "raster-particle-color"?: ExpressionSpecification,
966
+ "raster-particle-color-use-theme"?: PropertyValueSpecification<string>,
859
967
  "raster-particle-max-speed"?: number,
860
968
  "raster-particle-speed-factor"?: PropertyValueSpecification<number>,
861
969
  "raster-particle-speed-factor-transition"?: TransitionSpecification,
@@ -897,10 +1005,13 @@ export type HillshadeLayerSpecification = {
897
1005
  "hillshade-exaggeration-transition"?: TransitionSpecification,
898
1006
  "hillshade-shadow-color"?: PropertyValueSpecification<ColorSpecification>,
899
1007
  "hillshade-shadow-color-transition"?: TransitionSpecification,
1008
+ "hillshade-shadow-color-use-theme"?: PropertyValueSpecification<string>,
900
1009
  "hillshade-highlight-color"?: PropertyValueSpecification<ColorSpecification>,
901
1010
  "hillshade-highlight-color-transition"?: TransitionSpecification,
1011
+ "hillshade-highlight-color-use-theme"?: PropertyValueSpecification<string>,
902
1012
  "hillshade-accent-color"?: PropertyValueSpecification<ColorSpecification>,
903
1013
  "hillshade-accent-color-transition"?: TransitionSpecification,
1014
+ "hillshade-accent-color-use-theme"?: PropertyValueSpecification<string>,
904
1015
  "hillshade-emissive-strength"?: PropertyValueSpecification<number>,
905
1016
  "hillshade-emissive-strength-transition"?: TransitionSpecification
906
1017
  }
@@ -931,7 +1042,7 @@ export type ModelLayerSpecification = {
931
1042
  "model-id"?: DataDrivenPropertyValueSpecification<string>
932
1043
  },
933
1044
  "paint"?: {
934
- "model-opacity"?: PropertyValueSpecification<number>,
1045
+ "model-opacity"?: DataDrivenPropertyValueSpecification<number>,
935
1046
  "model-opacity-transition"?: TransitionSpecification,
936
1047
  "model-rotation"?: DataDrivenPropertyValueSpecification<[number, number, number]>,
937
1048
  "model-rotation-transition"?: TransitionSpecification,
@@ -941,6 +1052,7 @@ export type ModelLayerSpecification = {
941
1052
  "model-translation-transition"?: TransitionSpecification,
942
1053
  "model-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
943
1054
  "model-color-transition"?: TransitionSpecification,
1055
+ "model-color-use-theme"?: PropertyValueSpecification<string>,
944
1056
  "model-color-mix-intensity"?: DataDrivenPropertyValueSpecification<number>,
945
1057
  "model-color-mix-intensity-transition"?: TransitionSpecification,
946
1058
  "model-type"?: "common-3d" | "location-indicator",
@@ -983,9 +1095,13 @@ export type BackgroundLayerSpecification = {
983
1095
  "visibility"?: "visible" | "none" | ExpressionSpecification
984
1096
  },
985
1097
  "paint"?: {
1098
+ /**
1099
+ * @experimental This property is experimental and subject to change in future versions.
1100
+ */
986
1101
  "background-pitch-alignment"?: "map" | "viewport" | ExpressionSpecification,
987
1102
  "background-color"?: PropertyValueSpecification<ColorSpecification>,
988
1103
  "background-color-transition"?: TransitionSpecification,
1104
+ "background-color-use-theme"?: PropertyValueSpecification<string>,
989
1105
  "background-pattern"?: PropertyValueSpecification<ResolvedImageSpecification>,
990
1106
  "background-opacity"?: PropertyValueSpecification<number>,
991
1107
  "background-opacity-transition"?: TransitionSpecification,
@@ -1024,8 +1140,11 @@ export type SkyLayerSpecification = {
1024
1140
  "sky-gradient-center"?: PropertyValueSpecification<[number, number]>,
1025
1141
  "sky-gradient-radius"?: PropertyValueSpecification<number>,
1026
1142
  "sky-gradient"?: ExpressionSpecification,
1143
+ "sky-gradient-use-theme"?: PropertyValueSpecification<string>,
1027
1144
  "sky-atmosphere-halo-color"?: ColorSpecification,
1145
+ "sky-atmosphere-halo-color-use-theme"?: PropertyValueSpecification<string>,
1028
1146
  "sky-atmosphere-color"?: ColorSpecification,
1147
+ "sky-atmosphere-color-use-theme"?: PropertyValueSpecification<string>,
1029
1148
  "sky-opacity"?: PropertyValueSpecification<number>,
1030
1149
  "sky-opacity-transition"?: TransitionSpecification
1031
1150
  }
package/util/color.ts CHANGED
@@ -73,7 +73,7 @@ class Color {
73
73
  * var translucentGreen = new Color.parse('rgba(26, 207, 26, .73)');
74
74
  * translucentGreen.toString(); // = "rgba(26,207,26,0.73)"
75
75
  */
76
- toString(): string {
76
+ toStringPremultipliedAlpha(): string {
77
77
  const [r, g, b, a] = this.a === 0 ? [0, 0, 0, 0] : [
78
78
  this.r * 255 / this.a,
79
79
  this.g * 255 / this.a,
@@ -83,10 +83,24 @@ class Color {
83
83
  return `rgba(${Math.round(r)},${Math.round(g)},${Math.round(b)},${a})`;
84
84
  }
85
85
 
86
+ toString(): string {
87
+ const [r, g, b, a] = [
88
+ this.r,
89
+ this.g,
90
+ this.b,
91
+ this.a
92
+ ];
93
+ return `rgba(${Math.round(r * 255)},${Math.round(g * 255)},${Math.round(b * 255)},${a})`;
94
+ }
95
+
86
96
  toRenderColor(lut: LUT | null): RenderColor {
87
97
  const {r, g, b, a} = this;
88
98
  return new RenderColor(lut, r, g, b, a);
89
99
  }
100
+
101
+ clone(): Color {
102
+ return new Color(this.r, this.g, this.b, this.a);
103
+ }
90
104
  }
91
105
 
92
106
  /**
@@ -179,6 +193,53 @@ export class RenderColor {
179
193
  ];
180
194
  }
181
195
 
196
+ /**
197
+ * Returns an HSLA array of values representing the color, unpremultiplied by A.
198
+ *
199
+ * @returns An array of HSLA color values.
200
+ */
201
+ toHslaArray(): [number, number, number, number] {
202
+ if (this.a === 0) {
203
+ return [0, 0, 0, 0];
204
+ }
205
+ const {r, g, b, a} = this;
206
+
207
+ const red = Math.min(Math.max(r / a, 0.0), 1.0);
208
+ const green = Math.min(Math.max(g / a, 0.0), 1.0);
209
+ const blue = Math.min(Math.max(b / a, 0.0), 1.0);
210
+
211
+ const min = Math.min(red, green, blue);
212
+ const max = Math.max(red, green, blue);
213
+
214
+ const l = (min + max) / 2;
215
+
216
+ if (min === max) {
217
+ return [0, 0, l * 100, a];
218
+ }
219
+
220
+ const delta = max - min;
221
+
222
+ const s = l > 0.5 ? delta / (2 - max - min) : delta / (max + min);
223
+
224
+ let h = 0;
225
+ if (max === red) {
226
+ h = (green - blue) / delta + (green < blue ? 6 : 0);
227
+ } else if (max === green) {
228
+ h = (blue - red) / delta + 2;
229
+ } else if (max === blue) {
230
+ h = (red - green) / delta + 4;
231
+ }
232
+
233
+ h *= 60;
234
+
235
+ return [
236
+ Math.min(Math.max(h, 0), 360),
237
+ Math.min(Math.max(s * 100, 0), 100),
238
+ Math.min(Math.max(l * 100, 0), 100),
239
+ a
240
+ ];
241
+ }
242
+
182
243
  /**
183
244
  * Returns a RGBA array of float values representing the color, unpremultiplied by A.
184
245
  *
@@ -21,6 +21,10 @@ export function supportsZoomExpression(spec: StylePropertySpecification): boolea
21
21
  return expressionHasParameter(spec.expression, 'zoom');
22
22
  }
23
23
 
24
+ export function supportsLineProgressExpression(spec: StylePropertySpecification): boolean {
25
+ return expressionHasParameter(spec.expression, 'line-progress');
26
+ }
27
+
24
28
  export function supportsInterpolation(spec: StylePropertySpecification): boolean {
25
29
  return !!spec.expression && spec.expression.interpolated;
26
30
  }
@@ -21,8 +21,17 @@ export default function validateFog(options: ValidationOptions): Array<Validatio
21
21
 
22
22
  for (const key in fog) {
23
23
  const transitionMatch = key.match(/^(.*)-transition$/);
24
+ const useThemeMatch = key.match(/^(.*)-use-theme$/);
24
25
 
25
- if (transitionMatch && fogSpec[transitionMatch[1]] && fogSpec[transitionMatch[1]].transition) {
26
+ if (useThemeMatch && fogSpec[useThemeMatch[1]]) {
27
+ errors = errors.concat(validate({
28
+ key,
29
+ value: fog[key],
30
+ valueSpec: {type:'string'},
31
+ style,
32
+ styleSpec
33
+ }));
34
+ } else if (transitionMatch && fogSpec[transitionMatch[1]] && fogSpec[transitionMatch[1]].transition) {
26
35
  errors = errors.concat(validate({
27
36
  key,
28
37
  value: fog[key],
@@ -184,7 +184,7 @@ export default function validateFunction(options: ValidationOptions): any {
184
184
  }
185
185
 
186
186
  if (functionType === 'categorical' && type === 'number' && (typeof value !== 'number' || !isFinite(value) || Math.floor(value) !== value)) {
187
- return [new ValidationError(options.key, reportValue, `integer expected, found ${String(value)}`)];
187
+ return [new ValidationError(options.key, reportValue, `integer expected, found ${String(value as number)}`)];
188
188
  }
189
189
 
190
190
  if (functionType !== 'categorical' && type === 'number' && typeof value === 'number' && typeof previousStopDomainValue === 'number' && previousStopDomainValue !== undefined && value < previousStopDomainValue) {
@@ -22,8 +22,17 @@ export default function validateLight(options: ValidationOptions): Array<Validat
22
22
 
23
23
  for (const key in light) {
24
24
  const transitionMatch = key.match(/^(.*)-transition$/);
25
+ const useThemeMatch = key.match(/^(.*)-use-theme$/);
25
26
 
26
- if (transitionMatch && lightSpec[transitionMatch[1]] && lightSpec[transitionMatch[1]].transition) {
27
+ if (useThemeMatch && lightSpec[useThemeMatch[1]]) {
28
+ errors = errors.concat(validate({
29
+ key,
30
+ value: light[key],
31
+ valueSpec: {type:'string'},
32
+ style,
33
+ styleSpec
34
+ }));
35
+ } else if (transitionMatch && lightSpec[transitionMatch[1]] && lightSpec[transitionMatch[1]].transition) {
27
36
  errors = errors.concat(validate({
28
37
  key,
29
38
  value: light[key],
@@ -78,7 +78,17 @@ export default function validateLights(options: Options): Array<ValidationError>
78
78
  }
79
79
  } else {
80
80
  const transitionMatch = key.match(/^(.*)-transition$/);
81
- if (transitionMatch && lightSpec[transitionMatch[1]] && lightSpec[transitionMatch[1]].transition) {
81
+ const useThemeMatch = key.match(/^(.*)-use-theme$/);
82
+
83
+ if (useThemeMatch && lightSpec[useThemeMatch[1]]) {
84
+ errors = errors.concat(validate({
85
+ key,
86
+ value: light[key],
87
+ valueSpec: {type:'string'},
88
+ style,
89
+ styleSpec
90
+ }));
91
+ } else if (transitionMatch && lightSpec[transitionMatch[1]] && lightSpec[transitionMatch[1]].transition) {
82
92
  errors = errors.concat(validate({
83
93
  key,
84
94
  value: light[key],
@@ -26,6 +26,17 @@ export default function validateProperty(options: PropertyValidationOptions, pro
26
26
 
27
27
  if (!layerSpec) return [];
28
28
 
29
+ const useThemeMatch = propertyKey.match(/^(.*)-use-theme$/);
30
+ if (propertyType === 'paint' && useThemeMatch && layerSpec[useThemeMatch[1]]) {
31
+ return validate({
32
+ key,
33
+ value,
34
+ valueSpec: {type:'string'},
35
+ style,
36
+ styleSpec
37
+ });
38
+ }
39
+
29
40
  const transitionMatch = propertyKey.match(/^(.*)-transition$/);
30
41
  if (propertyType === 'paint' && transitionMatch && layerSpec[transitionMatch[1]] && layerSpec[transitionMatch[1]].transition) {
31
42
  return validate({
@@ -0,0 +1,47 @@
1
+ import {default as ValidationError, ValidationWarning} from '../error/validation_error';
2
+ import validate from './validate';
3
+ import getType from '../util/get_type';
4
+
5
+ import type {ValidationOptions} from './validate';
6
+
7
+ export default function validateRain(options: ValidationOptions): Array<ValidationError> {
8
+ const rain = options.value;
9
+ const style = options.style;
10
+ const styleSpec = options.styleSpec;
11
+ const rainSpec = styleSpec.rain;
12
+ let errors = [];
13
+
14
+ const rootType = getType(rain);
15
+ if (rain === undefined) {
16
+ return errors;
17
+ } else if (rootType !== 'object') {
18
+ errors = errors.concat([new ValidationError('rain', rain, `object expected, ${rootType} found`)]);
19
+ return errors;
20
+ }
21
+
22
+ for (const key in rain) {
23
+ const transitionMatch = key.match(/^(.*)-transition$/);
24
+
25
+ if (transitionMatch && rainSpec[transitionMatch[1]] && rainSpec[transitionMatch[1]].transition) {
26
+ errors = errors.concat(validate({
27
+ key,
28
+ value: rain[key],
29
+ valueSpec: styleSpec.transition,
30
+ style,
31
+ styleSpec
32
+ }));
33
+ } else if (rainSpec[key]) {
34
+ errors = errors.concat(validate({
35
+ key,
36
+ value: rain[key],
37
+ valueSpec: rainSpec[key],
38
+ style,
39
+ styleSpec
40
+ }));
41
+ } else {
42
+ errors = errors.concat([new ValidationWarning(key, rain[key], `unknown property "${key}"`)]);
43
+ }
44
+ }
45
+
46
+ return errors;
47
+ }
@@ -0,0 +1,47 @@
1
+ import {default as ValidationError, ValidationWarning} from '../error/validation_error';
2
+ import validate from './validate';
3
+ import getType from '../util/get_type';
4
+
5
+ import type {ValidationOptions} from './validate';
6
+
7
+ export default function validateSnow(options: ValidationOptions): Array<ValidationError> {
8
+ const snow = options.value;
9
+ const style = options.style;
10
+ const styleSpec = options.styleSpec;
11
+ const snowSpec = styleSpec.snow;
12
+ let errors = [];
13
+
14
+ const rootType = getType(snow);
15
+ if (snow === undefined) {
16
+ return errors;
17
+ } else if (rootType !== 'object') {
18
+ errors = errors.concat([new ValidationError('snow', snow, `object expected, ${rootType} found`)]);
19
+ return errors;
20
+ }
21
+
22
+ for (const key in snow) {
23
+ const transitionMatch = key.match(/^(.*)-transition$/);
24
+
25
+ if (transitionMatch && snowSpec[transitionMatch[1]] && snowSpec[transitionMatch[1]].transition) {
26
+ errors = errors.concat(validate({
27
+ key,
28
+ value: snow[key],
29
+ valueSpec: styleSpec.transition,
30
+ style,
31
+ styleSpec
32
+ }));
33
+ } else if (snowSpec[key]) {
34
+ errors = errors.concat(validate({
35
+ key,
36
+ value: snow[key],
37
+ valueSpec: snowSpec[key],
38
+ style,
39
+ styleSpec
40
+ }));
41
+ } else {
42
+ errors = errors.concat([new ValidationWarning(key, snow[key], `unknown property "${key}"`)]);
43
+ }
44
+ }
45
+
46
+ return errors;
47
+ }