@mapbox/mapbox-gl-style-spec 14.4.0-beta.1 → 14.5.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.
Files changed (142) hide show
  1. package/bin/gl-style-composite.js +0 -5
  2. package/bin/gl-style-format.js +0 -5
  3. package/bin/gl-style-migrate.js +0 -5
  4. package/bin/gl-style-validate.js +0 -5
  5. package/{composite.js → composite.ts} +1 -1
  6. package/data/{extent.js → extent.ts} +0 -2
  7. package/{deref.js → deref.ts} +7 -9
  8. package/{diff.js → diff.ts} +44 -21
  9. package/dist/index.cjs +800 -1357
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.d.ts +1726 -0
  12. package/dist/index.es.js +800 -1357
  13. package/dist/index.es.js.map +1 -1
  14. package/{empty.js → empty.ts} +1 -2
  15. package/error/{parsing_error.js → parsing_error.ts} +0 -2
  16. package/error/{validation_error.js → validation_error.ts} +5 -5
  17. package/expression/{compound_expression.js → compound_expression.ts} +29 -19
  18. package/expression/definitions/{assertion.js → assertion.ts} +16 -13
  19. package/expression/definitions/{at.js → at.ts} +12 -13
  20. package/expression/definitions/{case.js → case.ts} +12 -11
  21. package/expression/definitions/{coalesce.js → coalesce.ts} +11 -11
  22. package/expression/definitions/{coercion.js → coercion.ts} +21 -20
  23. package/expression/definitions/{collator.js → collator.ts} +11 -11
  24. package/expression/definitions/{comparison.js → comparison.ts} +30 -24
  25. package/expression/definitions/{config.js → config.ts} +16 -16
  26. package/expression/definitions/{distance.js → distance.ts} +60 -52
  27. package/expression/definitions/{format.js → format.ts} +26 -15
  28. package/expression/definitions/{image.js → image.ts} +12 -12
  29. package/expression/definitions/{in.js → in.ts} +22 -13
  30. package/expression/definitions/{index.js → index.ts} +70 -83
  31. package/expression/definitions/{index_of.js → index_of.ts} +24 -15
  32. package/expression/definitions/{interpolate.js → interpolate.ts} +44 -25
  33. package/expression/definitions/{length.js → length.ts} +11 -10
  34. package/expression/definitions/{let.js → let.ts} +10 -7
  35. package/expression/definitions/{literal.js → literal.ts} +11 -12
  36. package/expression/definitions/{match.js → match.ts} +25 -15
  37. package/expression/definitions/{number_format.js → number_format.ts} +10 -10
  38. package/expression/definitions/{slice.js → slice.ts} +23 -15
  39. package/expression/definitions/{step.js → step.ts} +14 -12
  40. package/expression/definitions/{var.js → var.ts} +5 -7
  41. package/expression/definitions/{within.js → within.ts} +41 -29
  42. package/expression/{evaluation_context.js → evaluation_context.ts} +26 -23
  43. package/expression/expression.ts +29 -0
  44. package/expression/{index.js → index.ts} +208 -110
  45. package/expression/{is_constant.js → is_constant.ts} +5 -7
  46. package/expression/{parsing_context.js → parsing_context.ts} +47 -34
  47. package/expression/{parsing_error.js → parsing_error.ts} +0 -2
  48. package/expression/{runtime_error.js → runtime_error.ts} +0 -2
  49. package/expression/{scope.js → scope.ts} +5 -5
  50. package/expression/{stops.js → stops.ts} +2 -4
  51. package/expression/types/{collator.js → collator.ts} +1 -3
  52. package/expression/types/{formatted.js → formatted.ts} +8 -7
  53. package/expression/types/{resolved_image.js → resolved_image.ts} +5 -7
  54. package/expression/{types.js → types.ts} +53 -45
  55. package/expression/{values.js → values.ts} +12 -12
  56. package/feature_filter/{convert.js → convert.ts} +19 -18
  57. package/feature_filter/{index.js → index.ts} +33 -18
  58. package/{format.js → format.ts} +3 -3
  59. package/function/{convert.js → convert.ts} +36 -25
  60. package/function/{index.js → index.ts} +12 -12
  61. package/{group_by_layout.js → group_by_layout.ts} +11 -8
  62. package/migrate/{expressions.js → expressions.ts} +8 -14
  63. package/migrate/{v8.js → v8.ts} +2 -2
  64. package/migrate/{v9.js → v9.ts} +2 -2
  65. package/{migrate.js → migrate.ts} +3 -3
  66. package/package.json +20 -18
  67. package/{read_style.js → read_style.ts} +5 -4
  68. package/reference/latest.ts +5 -0
  69. package/reference/v8.json +224 -1
  70. package/rollup.config.js +6 -23
  71. package/{style-spec.js → style-spec.ts} +28 -30
  72. package/test.js +3 -2
  73. package/types/config_options.ts +13 -0
  74. package/types/lut.ts +7 -0
  75. package/types/tile_id.ts +5 -0
  76. package/{types.js → types.ts} +636 -183
  77. package/util/{color.js → color.ts} +89 -3
  78. package/util/{color_spaces.js → color_spaces.ts} +12 -14
  79. package/util/{deep_equal.js → deep_equal.ts} +1 -3
  80. package/util/{extend.js → extend.ts} +1 -3
  81. package/util/{geometry_util.js → geometry_util.ts} +23 -11
  82. package/util/{get_type.js → get_type.ts} +1 -3
  83. package/util/{interpolate.js → interpolate.ts} +1 -3
  84. package/util/{properties.js → properties.ts} +5 -4
  85. package/util/{random.js → random.ts} +0 -2
  86. package/util/{ref_properties.js → ref_properties.ts} +0 -1
  87. package/util/{result.js → result.ts} +7 -5
  88. package/util/{unbundle_jsonlint.js → unbundle_jsonlint.ts} +5 -5
  89. package/validate/{validate.js → validate.ts} +33 -35
  90. package/validate/{validate_array.js → validate_array.ts} +5 -7
  91. package/validate/{validate_boolean.js → validate_boolean.ts} +3 -5
  92. package/validate/{validate_color.js → validate_color.ts} +3 -5
  93. package/validate/{validate_enum.js → validate_enum.ts} +4 -5
  94. package/validate/{validate_expression.js → validate_expression.ts} +7 -9
  95. package/validate/{validate_filter.js → validate_filter.ts} +16 -12
  96. package/validate/{validate_fog.js → validate_fog.ts} +4 -6
  97. package/validate/validate_formatted.ts +13 -0
  98. package/validate/{validate_function.js → validate_function.ts} +14 -16
  99. package/validate/{validate_glyphs_url.js → validate_glyphs_url.ts} +3 -5
  100. package/validate/validate_image.ts +13 -0
  101. package/validate/{validate_import.js → validate_import.ts} +6 -8
  102. package/validate/{validate_layer.js → validate_layer.ts} +17 -15
  103. package/validate/{validate_layout_property.js → validate_layout_property.ts} +3 -5
  104. package/validate/{validate_light.js → validate_light.ts} +4 -6
  105. package/validate/{validate_lights.js → validate_lights.ts} +7 -9
  106. package/validate/{validate_model.js → validate_model.ts} +4 -6
  107. package/validate/{validate_number.js → validate_number.ts} +4 -6
  108. package/validate/{validate_object.js → validate_object.ts} +5 -8
  109. package/validate/{validate_paint_property.js → validate_paint_property.ts} +3 -5
  110. package/validate/{validate_projection.js → validate_projection.ts} +4 -6
  111. package/validate/{validate_property.js → validate_property.ts} +15 -15
  112. package/validate/{validate_source.js → validate_source.ts} +16 -13
  113. package/validate/validate_string.ts +16 -0
  114. package/validate/validate_style.ts +33 -0
  115. package/validate/{validate_terrain.js → validate_terrain.ts} +5 -7
  116. package/{validate_mapbox_api_supported.js → validate_mapbox_api_supported.ts} +22 -18
  117. package/{validate_style.min.js → validate_style.min.ts} +20 -21
  118. package/{validate_style.js → validate_style.ts} +9 -9
  119. package/{visit.js → visit.ts} +22 -17
  120. package/.eslintrc +0 -10
  121. package/expression/expression.js +0 -28
  122. package/flow-typed/cheap-ruler.js +0 -25
  123. package/flow-typed/geojson.js +0 -44
  124. package/flow-typed/gl-matrix.js +0 -119
  125. package/flow-typed/gl.js +0 -5
  126. package/flow-typed/intl.js +0 -58
  127. package/flow-typed/kdbush.js +0 -9
  128. package/flow-typed/mapbox-gl-supported.js +0 -16
  129. package/flow-typed/mapbox-unitbezier.js +0 -14
  130. package/flow-typed/offscreen-canvas.js +0 -9
  131. package/flow-typed/pbf.js +0 -26
  132. package/flow-typed/point-geometry.js +0 -46
  133. package/flow-typed/potpack.js +0 -13
  134. package/flow-typed/tiny-sdf.js +0 -31
  135. package/flow-typed/tracked_parameters_proxy.js +0 -82
  136. package/flow-typed/vector-tile.js +0 -49
  137. package/flow-typed/webgl2.js +0 -41
  138. package/reference/latest.js +0 -7
  139. package/validate/validate_formatted.js +0 -15
  140. package/validate/validate_image.js +0 -15
  141. package/validate/validate_string.js +0 -18
  142. package/validate/validate_style.js +0 -29
@@ -1,5 +1,4 @@
1
- // @flow
2
- // Generated code; do not edit. Edit build/generate-flow-typed-style-spec.js instead.
1
+ // Generated code; do not edit. Edit build/generate-typed-style-spec.ts instead.
3
2
  /* eslint-disable */
4
3
 
5
4
  export type ColorSpecification = string;
@@ -19,7 +18,7 @@ export type FilterSpecification =
19
18
  | ['>=', string, string | number | boolean]
20
19
  | ['<', string, string | number | boolean]
21
20
  | ['<=', string, string | number | boolean]
22
- | Array<string | FilterSpecification>; // Can't type in, !in, all, any, none -- https://github.com/facebook/flow/issues/2443
21
+ | Array<string | FilterSpecification>;
23
22
 
24
23
  export type TransitionSpecification = {
25
24
  duration?: number,
@@ -29,21 +28,21 @@ export type TransitionSpecification = {
29
28
  // Note: doesn't capture interpolatable vs. non-interpolatable types.
30
29
 
31
30
  export type CameraFunctionSpecification<T> =
32
- | {| type: 'exponential', stops: Array<[number, T]> |}
33
- | {| type: 'interval', stops: Array<[number, T]> |};
31
+ | { type: 'exponential', stops: Array<[number, T]> }
32
+ | { type: 'interval', stops: Array<[number, T]> };
34
33
 
35
34
  export type SourceFunctionSpecification<T> =
36
- | {| type: 'exponential', stops: Array<[number, T]>, property: string, default?: T |}
37
- | {| type: 'interval', stops: Array<[number, T]>, property: string, default?: T |}
38
- | {| type: 'categorical', stops: Array<[string | number | boolean, T]>, property: string, default?: T |}
39
- | {| type: 'identity', property: string, default?: T |};
35
+ | { type: 'exponential', stops: Array<[number, T]>, property: string, default?: T }
36
+ | { type: 'interval', stops: Array<[number, T]>, property: string, default?: T }
37
+ | { type: 'categorical', stops: Array<[string | number | boolean, T]>, property: string, default?: T }
38
+ | { type: 'identity', property: string, default?: T };
40
39
 
41
40
  export type CompositeFunctionSpecification<T> =
42
- | {| type: 'exponential', stops: Array<[{zoom: number, value: number}, T]>, property: string, default?: T |}
43
- | {| type: 'interval', stops: Array<[{zoom: number, value: number}, T]>, property: string, default?: T |}
44
- | {| type: 'categorical', stops: Array<[{zoom: number, value: string | number | boolean}, T]>, property: string, default?: T |};
41
+ | { type: 'exponential', stops: Array<[{zoom: number, value: number}, T]>, property: string, default?: T }
42
+ | { type: 'interval', stops: Array<[{zoom: number, value: number}, T]>, property: string, default?: T }
43
+ | { type: 'categorical', stops: Array<[{zoom: number, value: string | number | boolean}, T]>, property: string, default?: T };
45
44
 
46
- export type ExpressionSpecification = Array<mixed>;
45
+ export type ExpressionSpecification = [string, ...any[]];
47
46
 
48
47
  export type PropertyValueSpecification<T> =
49
48
  | T
@@ -57,20 +56,21 @@ export type DataDrivenPropertyValueSpecification<T> =
57
56
  | CompositeFunctionSpecification<T>
58
57
  | ExpressionSpecification;
59
58
 
60
- export type StyleSpecification = {|
59
+ export type StyleSpecification = {
61
60
  "version": 8,
62
61
  "fragment"?: boolean,
63
62
  "name"?: string,
64
- "metadata"?: mixed,
63
+ "metadata"?: unknown,
65
64
  "center"?: Array<number>,
66
65
  "zoom"?: number,
67
66
  "bearing"?: number,
68
67
  "pitch"?: number,
69
68
  "light"?: LightSpecification,
70
69
  "lights"?: Array<LightsSpecification>,
71
- "terrain"?: ?TerrainSpecification,
70
+ "terrain"?: TerrainSpecification | null | undefined,
72
71
  "fog"?: FogSpecification,
73
72
  "camera"?: CameraSpecification,
73
+ "color-theme"?: ColorThemeSpecification,
74
74
  "imports"?: Array<ImportSpecification>,
75
75
  "schema"?: SchemaSpecification,
76
76
  "sources": SourcesSpecification,
@@ -80,7 +80,7 @@ export type StyleSpecification = {|
80
80
  "projection"?: ProjectionSpecification,
81
81
  "layers": Array<LayerSpecification>,
82
82
  "models"?: ModelsSpecification
83
- |}
83
+ }
84
84
 
85
85
  export type SourcesSpecification = {
86
86
  [_: string]: SourceSpecification
@@ -90,63 +90,79 @@ export type ModelsSpecification = {
90
90
  [_: string]: ModelSpecification
91
91
  }
92
92
 
93
- export type LightSpecification = {|
93
+ export type LightSpecification = {
94
94
  "anchor"?: PropertyValueSpecification<"map" | "viewport">,
95
95
  "position"?: PropertyValueSpecification<[number, number, number]>,
96
+ "position-transition"?: TransitionSpecification,
96
97
  "color"?: PropertyValueSpecification<ColorSpecification>,
97
- "intensity"?: PropertyValueSpecification<number>
98
- |}
98
+ "color-transition"?: TransitionSpecification,
99
+ "intensity"?: PropertyValueSpecification<number>,
100
+ "intensity-transition"?: TransitionSpecification
101
+ }
99
102
 
100
- export type TerrainSpecification = {|
103
+ export type TerrainSpecification = {
101
104
  "source": string,
102
- "exaggeration"?: PropertyValueSpecification<number>
103
- |}
105
+ "exaggeration"?: PropertyValueSpecification<number>,
106
+ "exaggeration-transition"?: TransitionSpecification
107
+ }
104
108
 
105
- export type FogSpecification = {|
109
+ export type FogSpecification = {
106
110
  "range"?: PropertyValueSpecification<[number, number]>,
111
+ "range-transition"?: TransitionSpecification,
107
112
  "color"?: PropertyValueSpecification<ColorSpecification>,
113
+ "color-transition"?: TransitionSpecification,
108
114
  "high-color"?: PropertyValueSpecification<ColorSpecification>,
115
+ "high-color-transition"?: TransitionSpecification,
109
116
  "space-color"?: PropertyValueSpecification<ColorSpecification>,
117
+ "space-color-transition"?: TransitionSpecification,
110
118
  "horizon-blend"?: PropertyValueSpecification<number>,
119
+ "horizon-blend-transition"?: TransitionSpecification,
111
120
  "star-intensity"?: PropertyValueSpecification<number>,
112
- "vertical-range"?: PropertyValueSpecification<[number, number]>
113
- |}
121
+ "star-intensity-transition"?: TransitionSpecification,
122
+ "vertical-range"?: PropertyValueSpecification<[number, number]>,
123
+ "vertical-range-transition"?: TransitionSpecification
124
+ }
125
+
126
+ export type CameraSpecification = {
127
+ "camera-projection"?: PropertyValueSpecification<"perspective" | "orthographic">,
128
+ "camera-projection-transition"?: TransitionSpecification
129
+ }
114
130
 
115
- export type CameraSpecification = {|
116
- "camera-projection"?: PropertyValueSpecification<"perspective" | "orthographic">
117
- |}
131
+ export type ColorThemeSpecification = {
132
+ "data"?: ExpressionSpecification
133
+ }
118
134
 
119
- export type ProjectionSpecification = {|
135
+ export type ProjectionSpecification = {
120
136
  "name": "albers" | "equalEarth" | "equirectangular" | "lambertConformalConic" | "mercator" | "naturalEarth" | "winkelTripel" | "globe",
121
137
  "center"?: [number, number],
122
138
  "parallels"?: [number, number]
123
- |}
139
+ }
124
140
 
125
- export type ImportSpecification = {|
141
+ export type ImportSpecification = {
126
142
  "id": string,
127
143
  "url": string,
128
144
  "config"?: ConfigSpecification,
129
145
  "data"?: StyleSpecification
130
- |}
146
+ }
131
147
 
132
148
  export type ConfigSpecification = {
133
- [_: string]: mixed
149
+ [_: string]: unknown
134
150
  }
135
151
 
136
152
  export type SchemaSpecification = {
137
153
  [_: string]: OptionSpecification
138
154
  }
139
155
 
140
- export type OptionSpecification = {|
141
- "default": mixed,
156
+ export type OptionSpecification = {
157
+ "default": ExpressionSpecification,
142
158
  "type"?: "string" | "number" | "boolean" | "color",
143
159
  "array"?: boolean,
144
160
  "minValue"?: number,
145
161
  "maxValue"?: number,
146
162
  "stepValue"?: number,
147
- "values"?: Array<mixed>,
148
- "metadata"?: mixed
149
- |}
163
+ "values"?: Array<unknown>,
164
+ "metadata"?: unknown
165
+ }
150
166
 
151
167
  export type VectorSourceSpecification = {
152
168
  "type": "vector",
@@ -159,7 +175,7 @@ export type VectorSourceSpecification = {
159
175
  "attribution"?: string,
160
176
  "promoteId"?: PromoteIdSpecification,
161
177
  "volatile"?: boolean,
162
- [_: string]: mixed
178
+ [_: string]: unknown
163
179
  }
164
180
 
165
181
  export type RasterSourceSpecification = {
@@ -173,7 +189,7 @@ export type RasterSourceSpecification = {
173
189
  "scheme"?: "xyz" | "tms",
174
190
  "attribution"?: string,
175
191
  "volatile"?: boolean,
176
- [_: string]: mixed
192
+ [_: string]: unknown
177
193
  }
178
194
 
179
195
  export type RasterDEMSourceSpecification = {
@@ -187,9 +203,12 @@ export type RasterDEMSourceSpecification = {
187
203
  "attribution"?: string,
188
204
  "encoding"?: "terrarium" | "mapbox",
189
205
  "volatile"?: boolean,
190
- [_: string]: mixed
206
+ [_: string]: unknown
191
207
  }
192
208
 
209
+ /**
210
+ * @experimental This is experimental and subject to change in future versions.
211
+ */
193
212
  export type RasterArraySourceSpecification = {
194
213
  "type": "raster-array",
195
214
  "url"?: string,
@@ -199,48 +218,49 @@ export type RasterArraySourceSpecification = {
199
218
  "maxzoom"?: number,
200
219
  "tileSize"?: number,
201
220
  "attribution"?: string,
202
- "rasterLayers"?: mixed,
221
+ "rasterLayers"?: unknown,
203
222
  "volatile"?: boolean,
204
- [_: string]: mixed
223
+ [_: string]: unknown
205
224
  }
206
225
 
207
- export type GeoJSONSourceSpecification = {|
226
+ export type GeoJSONSourceSpecification = {
208
227
  "type": "geojson",
209
- "data"?: mixed,
228
+ "data"?: GeoJSON.GeoJSON | string,
210
229
  "maxzoom"?: number,
211
230
  "minzoom"?: number,
212
231
  "attribution"?: string,
213
232
  "buffer"?: number,
214
- "filter"?: mixed,
233
+ "filter"?: unknown,
215
234
  "tolerance"?: number,
216
235
  "cluster"?: boolean,
217
236
  "clusterRadius"?: number,
218
237
  "clusterMaxZoom"?: number,
219
238
  "clusterMinPoints"?: number,
220
- "clusterProperties"?: mixed,
239
+ "clusterProperties"?: unknown,
221
240
  "lineMetrics"?: boolean,
222
241
  "generateId"?: boolean,
223
- "promoteId"?: PromoteIdSpecification
224
- |}
242
+ "promoteId"?: PromoteIdSpecification,
243
+ "dynamic"?: boolean
244
+ }
225
245
 
226
- export type VideoSourceSpecification = {|
246
+ export type VideoSourceSpecification = {
227
247
  "type": "video",
228
248
  "urls": Array<string>,
229
249
  "coordinates": [[number, number], [number, number], [number, number], [number, number]]
230
- |}
250
+ }
231
251
 
232
- export type ImageSourceSpecification = {|
252
+ export type ImageSourceSpecification = {
233
253
  "type": "image",
234
254
  "url"?: string,
235
255
  "coordinates": [[number, number], [number, number], [number, number], [number, number]]
236
- |}
256
+ }
237
257
 
238
- export type ModelSourceSpecification = {|
258
+ export type ModelSourceSpecification = {
239
259
  "type": "model" | "batched-model",
240
260
  "maxzoom"?: number,
241
261
  "minzoom"?: number,
242
262
  "tiles"?: Array<string>
243
- |}
263
+ }
244
264
 
245
265
  export type SourceSpecification =
246
266
  | VectorSourceSpecification
@@ -254,117 +274,167 @@ export type SourceSpecification =
254
274
 
255
275
  export type ModelSpecification = string;
256
276
 
257
- export type AmbientLightSpecification = {|
277
+ export type AmbientLightSpecification = {
258
278
  "id": string,
259
- "properties"?: {|
279
+ "properties"?: {
260
280
  "color"?: PropertyValueSpecification<ColorSpecification>,
261
- "intensity"?: PropertyValueSpecification<number>
262
- |},
281
+ "color-transition"?: TransitionSpecification,
282
+ "intensity"?: PropertyValueSpecification<number>,
283
+ "intensity-transition"?: TransitionSpecification
284
+ },
263
285
  "type": "ambient"
264
- |}
286
+ }
265
287
 
266
- export type DirectionalLightSpecification = {|
288
+ export type DirectionalLightSpecification = {
267
289
  "id": string,
268
- "properties"?: {|
290
+ "properties"?: {
269
291
  "direction"?: PropertyValueSpecification<[number, number]>,
292
+ "direction-transition"?: TransitionSpecification,
270
293
  "color"?: PropertyValueSpecification<ColorSpecification>,
294
+ "color-transition"?: TransitionSpecification,
271
295
  "intensity"?: PropertyValueSpecification<number>,
296
+ "intensity-transition"?: TransitionSpecification,
272
297
  "cast-shadows"?: ExpressionSpecification,
273
- "shadow-intensity"?: PropertyValueSpecification<number>
274
- |},
298
+ "shadow-intensity"?: PropertyValueSpecification<number>,
299
+ "shadow-intensity-transition"?: TransitionSpecification
300
+ },
275
301
  "type": "directional"
276
- |}
302
+ }
277
303
 
278
- export type FlatLightSpecification = {|
304
+ export type FlatLightSpecification = {
279
305
  "id": string,
280
- "properties"?: {|
306
+ "properties"?: {
281
307
  "anchor"?: PropertyValueSpecification<"map" | "viewport">,
282
308
  "position"?: PropertyValueSpecification<[number, number, number]>,
309
+ "position-transition"?: TransitionSpecification,
283
310
  "color"?: PropertyValueSpecification<ColorSpecification>,
284
- "intensity"?: PropertyValueSpecification<number>
285
- |},
311
+ "color-transition"?: TransitionSpecification,
312
+ "intensity"?: PropertyValueSpecification<number>,
313
+ "intensity-transition"?: TransitionSpecification
314
+ },
286
315
  "type": "flat"
287
- |}
316
+ }
288
317
 
289
318
  export type LightsSpecification =
290
319
  | AmbientLightSpecification
291
320
  | DirectionalLightSpecification
292
321
  | FlatLightSpecification;
293
322
 
294
- export type FillLayerSpecification = {|
323
+ export type FillLayerSpecification = {
295
324
  "id": string,
296
325
  "type": "fill",
297
- "metadata"?: mixed,
326
+ "metadata"?: unknown,
298
327
  "source": string,
299
328
  "source-layer"?: string,
300
329
  "slot"?: string,
301
330
  "minzoom"?: number,
302
331
  "maxzoom"?: number,
303
332
  "filter"?: FilterSpecification,
304
- "layout"?: {|
333
+ "layout"?: {
305
334
  "fill-sort-key"?: DataDrivenPropertyValueSpecification<number>,
306
- "visibility"?: ExpressionSpecification
307
- |},
308
- "paint"?: {|
335
+ "visibility"?: "visible" | "none" | ExpressionSpecification
336
+ },
337
+ "paint"?: {
309
338
  "fill-antialias"?: PropertyValueSpecification<boolean>,
310
339
  "fill-opacity"?: DataDrivenPropertyValueSpecification<number>,
340
+ "fill-opacity-transition"?: TransitionSpecification,
311
341
  "fill-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
342
+ "fill-color-transition"?: TransitionSpecification,
312
343
  "fill-outline-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
344
+ "fill-outline-color-transition"?: TransitionSpecification,
313
345
  "fill-translate"?: PropertyValueSpecification<[number, number]>,
346
+ "fill-translate-transition"?: TransitionSpecification,
314
347
  "fill-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">,
315
348
  "fill-pattern"?: DataDrivenPropertyValueSpecification<ResolvedImageSpecification>,
316
- "fill-emissive-strength"?: PropertyValueSpecification<number>
317
- |}
318
- |}
349
+ "fill-emissive-strength"?: PropertyValueSpecification<number>,
350
+ "fill-emissive-strength-transition"?: TransitionSpecification
351
+ }
352
+ }
353
+
354
+ /**
355
+ * @deprecated Use `FillLayerSpecification['layout']` instead.
356
+ */
357
+ export type FillLayout = FillLayerSpecification['layout'];
358
+
359
+ /**
360
+ * @deprecated Use `FillLayerSpecification['paint']` instead.
361
+ */
362
+ export type FillPaint = FillLayerSpecification['paint'];
319
363
 
320
- export type LineLayerSpecification = {|
364
+ export type LineLayerSpecification = {
321
365
  "id": string,
322
366
  "type": "line",
323
- "metadata"?: mixed,
367
+ "metadata"?: unknown,
324
368
  "source": string,
325
369
  "source-layer"?: string,
326
370
  "slot"?: string,
327
371
  "minzoom"?: number,
328
372
  "maxzoom"?: number,
329
373
  "filter"?: FilterSpecification,
330
- "layout"?: {|
374
+ "layout"?: {
331
375
  "line-cap"?: DataDrivenPropertyValueSpecification<"butt" | "round" | "square">,
332
- "line-join"?: DataDrivenPropertyValueSpecification<"bevel" | "round" | "miter">,
376
+ "line-join"?: DataDrivenPropertyValueSpecification<"bevel" | "round" | "miter" | "none">,
333
377
  "line-miter-limit"?: PropertyValueSpecification<number>,
334
378
  "line-round-limit"?: PropertyValueSpecification<number>,
335
379
  "line-sort-key"?: DataDrivenPropertyValueSpecification<number>,
336
- "visibility"?: ExpressionSpecification
337
- |},
338
- "paint"?: {|
380
+ /**
381
+ * @experimental This property is experimental and subject to change in future versions.
382
+ */
383
+ "line-z-offset"?: DataDrivenPropertyValueSpecification<number>,
384
+ "visibility"?: "visible" | "none" | ExpressionSpecification
385
+ },
386
+ "paint"?: {
339
387
  "line-opacity"?: DataDrivenPropertyValueSpecification<number>,
388
+ "line-opacity-transition"?: TransitionSpecification,
340
389
  "line-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
390
+ "line-color-transition"?: TransitionSpecification,
341
391
  "line-translate"?: PropertyValueSpecification<[number, number]>,
392
+ "line-translate-transition"?: TransitionSpecification,
342
393
  "line-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">,
343
394
  "line-width"?: DataDrivenPropertyValueSpecification<number>,
395
+ "line-width-transition"?: TransitionSpecification,
344
396
  "line-gap-width"?: DataDrivenPropertyValueSpecification<number>,
397
+ "line-gap-width-transition"?: TransitionSpecification,
345
398
  "line-offset"?: DataDrivenPropertyValueSpecification<number>,
399
+ "line-offset-transition"?: TransitionSpecification,
346
400
  "line-blur"?: DataDrivenPropertyValueSpecification<number>,
401
+ "line-blur-transition"?: TransitionSpecification,
347
402
  "line-dasharray"?: DataDrivenPropertyValueSpecification<Array<number>>,
348
403
  "line-pattern"?: DataDrivenPropertyValueSpecification<ResolvedImageSpecification>,
349
404
  "line-gradient"?: ExpressionSpecification,
350
405
  "line-trim-offset"?: [number, number],
351
406
  "line-emissive-strength"?: PropertyValueSpecification<number>,
407
+ "line-emissive-strength-transition"?: TransitionSpecification,
352
408
  "line-border-width"?: DataDrivenPropertyValueSpecification<number>,
353
- "line-border-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>
354
- |}
355
- |}
409
+ "line-border-width-transition"?: TransitionSpecification,
410
+ "line-border-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
411
+ "line-border-color-transition"?: TransitionSpecification,
412
+ "line-occlusion-opacity"?: PropertyValueSpecification<number>,
413
+ "line-occlusion-opacity-transition"?: TransitionSpecification
414
+ }
415
+ }
416
+
417
+ /**
418
+ * @deprecated Use `LineLayerSpecification['layout']` instead.
419
+ */
420
+ export type LineLayout = LineLayerSpecification['layout'];
421
+
422
+ /**
423
+ * @deprecated Use `LineLayerSpecification['paint']` instead.
424
+ */
425
+ export type LinePaint = LineLayerSpecification['paint'];
356
426
 
357
- export type SymbolLayerSpecification = {|
427
+ export type SymbolLayerSpecification = {
358
428
  "id": string,
359
429
  "type": "symbol",
360
- "metadata"?: mixed,
430
+ "metadata"?: unknown,
361
431
  "source": string,
362
432
  "source-layer"?: string,
363
433
  "slot"?: string,
364
434
  "minzoom"?: number,
365
435
  "maxzoom"?: number,
366
436
  "filter"?: FilterSpecification,
367
- "layout"?: {|
437
+ "layout"?: {
368
438
  "symbol-placement"?: PropertyValueSpecification<"point" | "line" | "line-center">,
369
439
  "symbol-spacing"?: PropertyValueSpecification<number>,
370
440
  "symbol-avoid-edges"?: PropertyValueSpecification<boolean>,
@@ -407,265 +477,449 @@ export type SymbolLayerSpecification = {|
407
477
  "text-allow-overlap"?: PropertyValueSpecification<boolean>,
408
478
  "text-ignore-placement"?: PropertyValueSpecification<boolean>,
409
479
  "text-optional"?: PropertyValueSpecification<boolean>,
410
- "visibility"?: ExpressionSpecification
411
- |},
412
- "paint"?: {|
480
+ "visibility"?: "visible" | "none" | ExpressionSpecification
481
+ },
482
+ "paint"?: {
413
483
  "icon-opacity"?: DataDrivenPropertyValueSpecification<number>,
484
+ "icon-opacity-transition"?: TransitionSpecification,
485
+ "icon-occlusion-opacity"?: DataDrivenPropertyValueSpecification<number>,
486
+ "icon-occlusion-opacity-transition"?: TransitionSpecification,
414
487
  "icon-emissive-strength"?: DataDrivenPropertyValueSpecification<number>,
488
+ "icon-emissive-strength-transition"?: TransitionSpecification,
415
489
  "text-emissive-strength"?: DataDrivenPropertyValueSpecification<number>,
490
+ "text-emissive-strength-transition"?: TransitionSpecification,
416
491
  "icon-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
492
+ "icon-color-transition"?: TransitionSpecification,
417
493
  "icon-halo-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
494
+ "icon-halo-color-transition"?: TransitionSpecification,
418
495
  "icon-halo-width"?: DataDrivenPropertyValueSpecification<number>,
496
+ "icon-halo-width-transition"?: TransitionSpecification,
419
497
  "icon-halo-blur"?: DataDrivenPropertyValueSpecification<number>,
498
+ "icon-halo-blur-transition"?: TransitionSpecification,
420
499
  "icon-translate"?: PropertyValueSpecification<[number, number]>,
500
+ "icon-translate-transition"?: TransitionSpecification,
421
501
  "icon-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">,
422
502
  "icon-image-cross-fade"?: DataDrivenPropertyValueSpecification<number>,
503
+ "icon-image-cross-fade-transition"?: TransitionSpecification,
423
504
  "text-opacity"?: DataDrivenPropertyValueSpecification<number>,
505
+ "text-opacity-transition"?: TransitionSpecification,
506
+ "text-occlusion-opacity"?: DataDrivenPropertyValueSpecification<number>,
507
+ "text-occlusion-opacity-transition"?: TransitionSpecification,
424
508
  "text-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
509
+ "text-color-transition"?: TransitionSpecification,
425
510
  "text-halo-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
511
+ "text-halo-color-transition"?: TransitionSpecification,
426
512
  "text-halo-width"?: DataDrivenPropertyValueSpecification<number>,
513
+ "text-halo-width-transition"?: TransitionSpecification,
427
514
  "text-halo-blur"?: DataDrivenPropertyValueSpecification<number>,
515
+ "text-halo-blur-transition"?: TransitionSpecification,
428
516
  "text-translate"?: PropertyValueSpecification<[number, number]>,
517
+ "text-translate-transition"?: TransitionSpecification,
429
518
  "text-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">,
430
519
  "icon-color-saturation"?: ExpressionSpecification,
431
520
  "icon-color-contrast"?: ExpressionSpecification,
432
521
  "icon-color-brightness-min"?: ExpressionSpecification,
433
522
  "icon-color-brightness-max"?: ExpressionSpecification
434
- |}
435
- |}
523
+ }
524
+ }
525
+
526
+ /**
527
+ * @deprecated Use `SymbolLayerSpecification['layout']` instead.
528
+ */
529
+ export type SymbolLayout = SymbolLayerSpecification['layout'];
530
+
531
+ /**
532
+ * @deprecated Use `SymbolLayerSpecification['paint']` instead.
533
+ */
534
+ export type SymbolPaint = SymbolLayerSpecification['paint'];
436
535
 
437
- export type CircleLayerSpecification = {|
536
+ export type CircleLayerSpecification = {
438
537
  "id": string,
439
538
  "type": "circle",
440
- "metadata"?: mixed,
539
+ "metadata"?: unknown,
441
540
  "source": string,
442
541
  "source-layer"?: string,
443
542
  "slot"?: string,
444
543
  "minzoom"?: number,
445
544
  "maxzoom"?: number,
446
545
  "filter"?: FilterSpecification,
447
- "layout"?: {|
546
+ "layout"?: {
448
547
  "circle-sort-key"?: DataDrivenPropertyValueSpecification<number>,
449
- "visibility"?: ExpressionSpecification
450
- |},
451
- "paint"?: {|
548
+ "visibility"?: "visible" | "none" | ExpressionSpecification
549
+ },
550
+ "paint"?: {
452
551
  "circle-radius"?: DataDrivenPropertyValueSpecification<number>,
552
+ "circle-radius-transition"?: TransitionSpecification,
453
553
  "circle-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
554
+ "circle-color-transition"?: TransitionSpecification,
454
555
  "circle-blur"?: DataDrivenPropertyValueSpecification<number>,
556
+ "circle-blur-transition"?: TransitionSpecification,
455
557
  "circle-opacity"?: DataDrivenPropertyValueSpecification<number>,
558
+ "circle-opacity-transition"?: TransitionSpecification,
456
559
  "circle-translate"?: PropertyValueSpecification<[number, number]>,
560
+ "circle-translate-transition"?: TransitionSpecification,
457
561
  "circle-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">,
458
562
  "circle-pitch-scale"?: PropertyValueSpecification<"map" | "viewport">,
459
563
  "circle-pitch-alignment"?: PropertyValueSpecification<"map" | "viewport">,
460
564
  "circle-stroke-width"?: DataDrivenPropertyValueSpecification<number>,
565
+ "circle-stroke-width-transition"?: TransitionSpecification,
461
566
  "circle-stroke-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
567
+ "circle-stroke-color-transition"?: TransitionSpecification,
462
568
  "circle-stroke-opacity"?: DataDrivenPropertyValueSpecification<number>,
463
- "circle-emissive-strength"?: PropertyValueSpecification<number>
464
- |}
465
- |}
569
+ "circle-stroke-opacity-transition"?: TransitionSpecification,
570
+ "circle-emissive-strength"?: PropertyValueSpecification<number>,
571
+ "circle-emissive-strength-transition"?: TransitionSpecification
572
+ }
573
+ }
574
+
575
+ /**
576
+ * @deprecated Use `CircleLayerSpecification['layout']` instead.
577
+ */
578
+ export type CircleLayout = CircleLayerSpecification['layout'];
579
+
580
+ /**
581
+ * @deprecated Use `CircleLayerSpecification['paint']` instead.
582
+ */
583
+ export type CirclePaint = CircleLayerSpecification['paint'];
466
584
 
467
- export type HeatmapLayerSpecification = {|
585
+ export type HeatmapLayerSpecification = {
468
586
  "id": string,
469
587
  "type": "heatmap",
470
- "metadata"?: mixed,
588
+ "metadata"?: unknown,
471
589
  "source": string,
472
590
  "source-layer"?: string,
473
591
  "slot"?: string,
474
592
  "minzoom"?: number,
475
593
  "maxzoom"?: number,
476
594
  "filter"?: FilterSpecification,
477
- "layout"?: {|
478
- "visibility"?: ExpressionSpecification
479
- |},
480
- "paint"?: {|
595
+ "layout"?: {
596
+ "visibility"?: "visible" | "none" | ExpressionSpecification
597
+ },
598
+ "paint"?: {
481
599
  "heatmap-radius"?: DataDrivenPropertyValueSpecification<number>,
600
+ "heatmap-radius-transition"?: TransitionSpecification,
482
601
  "heatmap-weight"?: DataDrivenPropertyValueSpecification<number>,
483
602
  "heatmap-intensity"?: PropertyValueSpecification<number>,
603
+ "heatmap-intensity-transition"?: TransitionSpecification,
484
604
  "heatmap-color"?: ExpressionSpecification,
485
- "heatmap-opacity"?: PropertyValueSpecification<number>
486
- |}
487
- |}
605
+ "heatmap-opacity"?: PropertyValueSpecification<number>,
606
+ "heatmap-opacity-transition"?: TransitionSpecification
607
+ }
608
+ }
609
+
610
+ /**
611
+ * @deprecated Use `HeatmapLayerSpecification['layout']` instead.
612
+ */
613
+ export type HeatmapLayout = HeatmapLayerSpecification['layout'];
614
+
615
+ /**
616
+ * @deprecated Use `HeatmapLayerSpecification['paint']` instead.
617
+ */
618
+ export type HeatmapPaint = HeatmapLayerSpecification['paint'];
488
619
 
489
- export type FillExtrusionLayerSpecification = {|
620
+ export type FillExtrusionLayerSpecification = {
490
621
  "id": string,
491
622
  "type": "fill-extrusion",
492
- "metadata"?: mixed,
623
+ "metadata"?: unknown,
493
624
  "source": string,
494
625
  "source-layer"?: string,
495
626
  "slot"?: string,
496
627
  "minzoom"?: number,
497
628
  "maxzoom"?: number,
498
629
  "filter"?: FilterSpecification,
499
- "layout"?: {|
500
- "visibility"?: ExpressionSpecification,
630
+ "layout"?: {
631
+ "visibility"?: "visible" | "none" | ExpressionSpecification,
632
+ /**
633
+ * @experimental This property is experimental and subject to change in future versions.
634
+ */
501
635
  "fill-extrusion-edge-radius"?: ExpressionSpecification
502
- |},
503
- "paint"?: {|
636
+ },
637
+ "paint"?: {
504
638
  "fill-extrusion-opacity"?: PropertyValueSpecification<number>,
639
+ "fill-extrusion-opacity-transition"?: TransitionSpecification,
505
640
  "fill-extrusion-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
641
+ "fill-extrusion-color-transition"?: TransitionSpecification,
506
642
  "fill-extrusion-translate"?: PropertyValueSpecification<[number, number]>,
643
+ "fill-extrusion-translate-transition"?: TransitionSpecification,
507
644
  "fill-extrusion-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">,
508
645
  "fill-extrusion-pattern"?: DataDrivenPropertyValueSpecification<ResolvedImageSpecification>,
509
646
  "fill-extrusion-height"?: DataDrivenPropertyValueSpecification<number>,
647
+ "fill-extrusion-height-transition"?: TransitionSpecification,
510
648
  "fill-extrusion-base"?: DataDrivenPropertyValueSpecification<number>,
649
+ "fill-extrusion-base-transition"?: TransitionSpecification,
511
650
  "fill-extrusion-vertical-gradient"?: PropertyValueSpecification<boolean>,
512
651
  "fill-extrusion-ambient-occlusion-intensity"?: PropertyValueSpecification<number>,
652
+ "fill-extrusion-ambient-occlusion-intensity-transition"?: TransitionSpecification,
513
653
  "fill-extrusion-ambient-occlusion-radius"?: PropertyValueSpecification<number>,
654
+ "fill-extrusion-ambient-occlusion-radius-transition"?: TransitionSpecification,
514
655
  "fill-extrusion-ambient-occlusion-wall-radius"?: PropertyValueSpecification<number>,
656
+ "fill-extrusion-ambient-occlusion-wall-radius-transition"?: TransitionSpecification,
515
657
  "fill-extrusion-ambient-occlusion-ground-radius"?: PropertyValueSpecification<number>,
658
+ "fill-extrusion-ambient-occlusion-ground-radius-transition"?: TransitionSpecification,
516
659
  "fill-extrusion-ambient-occlusion-ground-attenuation"?: PropertyValueSpecification<number>,
660
+ "fill-extrusion-ambient-occlusion-ground-attenuation-transition"?: TransitionSpecification,
517
661
  "fill-extrusion-flood-light-color"?: PropertyValueSpecification<ColorSpecification>,
662
+ "fill-extrusion-flood-light-color-transition"?: TransitionSpecification,
518
663
  "fill-extrusion-flood-light-intensity"?: PropertyValueSpecification<number>,
664
+ "fill-extrusion-flood-light-intensity-transition"?: TransitionSpecification,
519
665
  "fill-extrusion-flood-light-wall-radius"?: DataDrivenPropertyValueSpecification<number>,
666
+ "fill-extrusion-flood-light-wall-radius-transition"?: TransitionSpecification,
520
667
  "fill-extrusion-flood-light-ground-radius"?: DataDrivenPropertyValueSpecification<number>,
668
+ "fill-extrusion-flood-light-ground-radius-transition"?: TransitionSpecification,
521
669
  "fill-extrusion-flood-light-ground-attenuation"?: PropertyValueSpecification<number>,
670
+ "fill-extrusion-flood-light-ground-attenuation-transition"?: TransitionSpecification,
522
671
  "fill-extrusion-vertical-scale"?: PropertyValueSpecification<number>,
672
+ "fill-extrusion-vertical-scale-transition"?: TransitionSpecification,
673
+ /**
674
+ * @experimental This property is experimental and subject to change in future versions.
675
+ */
523
676
  "fill-extrusion-rounded-roof"?: PropertyValueSpecification<boolean>,
524
677
  "fill-extrusion-cutoff-fade-range"?: ExpressionSpecification,
525
- "fill-extrusion-emissive-strength"?: PropertyValueSpecification<number>
526
- |}
527
- |}
678
+ "fill-extrusion-emissive-strength"?: PropertyValueSpecification<number>,
679
+ "fill-extrusion-emissive-strength-transition"?: TransitionSpecification
680
+ }
681
+ }
682
+
683
+ /**
684
+ * @deprecated Use `FillExtrusionLayerSpecification['layout']` instead.
685
+ */
686
+ export type FillExtrusionLayout = FillExtrusionLayerSpecification['layout'];
687
+
688
+ /**
689
+ * @deprecated Use `FillExtrusionLayerSpecification['paint']` instead.
690
+ */
691
+ export type FillExtrusionPaint = FillExtrusionLayerSpecification['paint'];
528
692
 
529
- export type RasterLayerSpecification = {|
693
+ export type RasterLayerSpecification = {
530
694
  "id": string,
531
695
  "type": "raster",
532
- "metadata"?: mixed,
696
+ "metadata"?: unknown,
533
697
  "source": string,
534
698
  "source-layer"?: string,
535
699
  "slot"?: string,
536
700
  "minzoom"?: number,
537
701
  "maxzoom"?: number,
538
702
  "filter"?: FilterSpecification,
539
- "layout"?: {|
540
- "visibility"?: ExpressionSpecification
541
- |},
542
- "paint"?: {|
703
+ "layout"?: {
704
+ "visibility"?: "visible" | "none" | ExpressionSpecification
705
+ },
706
+ "paint"?: {
543
707
  "raster-opacity"?: PropertyValueSpecification<number>,
708
+ "raster-opacity-transition"?: TransitionSpecification,
544
709
  "raster-color"?: ExpressionSpecification,
545
710
  "raster-color-mix"?: PropertyValueSpecification<[number, number, number, number]>,
711
+ "raster-color-mix-transition"?: TransitionSpecification,
546
712
  "raster-color-range"?: PropertyValueSpecification<[number, number]>,
713
+ "raster-color-range-transition"?: TransitionSpecification,
547
714
  "raster-hue-rotate"?: PropertyValueSpecification<number>,
715
+ "raster-hue-rotate-transition"?: TransitionSpecification,
548
716
  "raster-brightness-min"?: PropertyValueSpecification<number>,
717
+ "raster-brightness-min-transition"?: TransitionSpecification,
549
718
  "raster-brightness-max"?: PropertyValueSpecification<number>,
719
+ "raster-brightness-max-transition"?: TransitionSpecification,
550
720
  "raster-saturation"?: PropertyValueSpecification<number>,
721
+ "raster-saturation-transition"?: TransitionSpecification,
551
722
  "raster-contrast"?: PropertyValueSpecification<number>,
723
+ "raster-contrast-transition"?: TransitionSpecification,
552
724
  "raster-resampling"?: PropertyValueSpecification<"linear" | "nearest">,
553
725
  "raster-fade-duration"?: PropertyValueSpecification<number>,
554
726
  "raster-emissive-strength"?: PropertyValueSpecification<number>,
727
+ "raster-emissive-strength-transition"?: TransitionSpecification,
728
+ /**
729
+ * @experimental This property is experimental and subject to change in future versions.
730
+ */
555
731
  "raster-array-band"?: string,
556
- "raster-elevation"?: PropertyValueSpecification<number>
557
- |}
558
- |}
732
+ "raster-elevation"?: PropertyValueSpecification<number>,
733
+ "raster-elevation-transition"?: TransitionSpecification
734
+ }
735
+ }
736
+
737
+ /**
738
+ * @deprecated Use `RasterLayerSpecification['layout']` instead.
739
+ */
740
+ export type RasterLayout = RasterLayerSpecification['layout'];
741
+
742
+ /**
743
+ * @deprecated Use `RasterLayerSpecification['paint']` instead.
744
+ */
745
+ export type RasterPaint = RasterLayerSpecification['paint'];
559
746
 
560
- export type RasterParticleLayerSpecification = {|
747
+ export type RasterParticleLayerSpecification = {
561
748
  "id": string,
562
749
  "type": "raster-particle",
563
- "metadata"?: mixed,
750
+ "metadata"?: unknown,
564
751
  "source": string,
565
752
  "source-layer"?: string,
566
753
  "slot"?: string,
567
754
  "minzoom"?: number,
568
755
  "maxzoom"?: number,
569
756
  "filter"?: FilterSpecification,
570
- "layout"?: {|
571
- "visibility"?: ExpressionSpecification
572
- |},
573
- "paint"?: {|
757
+ "layout"?: {
758
+ "visibility"?: "visible" | "none" | ExpressionSpecification
759
+ },
760
+ "paint"?: {
574
761
  "raster-particle-array-band"?: string,
575
762
  "raster-particle-count"?: number,
576
763
  "raster-particle-color"?: ExpressionSpecification,
577
764
  "raster-particle-max-speed"?: number,
578
765
  "raster-particle-speed-factor"?: PropertyValueSpecification<number>,
766
+ "raster-particle-speed-factor-transition"?: TransitionSpecification,
579
767
  "raster-particle-fade-opacity-factor"?: PropertyValueSpecification<number>,
768
+ "raster-particle-fade-opacity-factor-transition"?: TransitionSpecification,
580
769
  "raster-particle-reset-rate-factor"?: number
581
- |}
582
- |}
770
+ }
771
+ }
772
+
773
+ /**
774
+ * @deprecated Use `RasterParticleLayerSpecification['layout']` instead.
775
+ */
776
+ export type RasterParticleLayout = RasterParticleLayerSpecification['layout'];
777
+
778
+ /**
779
+ * @deprecated Use `RasterParticleLayerSpecification['paint']` instead.
780
+ */
781
+ export type RasterParticlePaint = RasterParticleLayerSpecification['paint'];
583
782
 
584
- export type HillshadeLayerSpecification = {|
783
+ export type HillshadeLayerSpecification = {
585
784
  "id": string,
586
785
  "type": "hillshade",
587
- "metadata"?: mixed,
786
+ "metadata"?: unknown,
588
787
  "source": string,
589
788
  "source-layer"?: string,
590
789
  "slot"?: string,
591
790
  "minzoom"?: number,
592
791
  "maxzoom"?: number,
593
792
  "filter"?: FilterSpecification,
594
- "layout"?: {|
595
- "visibility"?: ExpressionSpecification
596
- |},
597
- "paint"?: {|
793
+ "layout"?: {
794
+ "visibility"?: "visible" | "none" | ExpressionSpecification
795
+ },
796
+ "paint"?: {
598
797
  "hillshade-illumination-direction"?: PropertyValueSpecification<number>,
599
798
  "hillshade-illumination-anchor"?: PropertyValueSpecification<"map" | "viewport">,
600
799
  "hillshade-exaggeration"?: PropertyValueSpecification<number>,
800
+ "hillshade-exaggeration-transition"?: TransitionSpecification,
601
801
  "hillshade-shadow-color"?: PropertyValueSpecification<ColorSpecification>,
802
+ "hillshade-shadow-color-transition"?: TransitionSpecification,
602
803
  "hillshade-highlight-color"?: PropertyValueSpecification<ColorSpecification>,
804
+ "hillshade-highlight-color-transition"?: TransitionSpecification,
603
805
  "hillshade-accent-color"?: PropertyValueSpecification<ColorSpecification>,
604
- "hillshade-emissive-strength"?: PropertyValueSpecification<number>
605
- |}
606
- |}
806
+ "hillshade-accent-color-transition"?: TransitionSpecification,
807
+ "hillshade-emissive-strength"?: PropertyValueSpecification<number>,
808
+ "hillshade-emissive-strength-transition"?: TransitionSpecification
809
+ }
810
+ }
811
+
812
+ /**
813
+ * @deprecated Use `HillshadeLayerSpecification['layout']` instead.
814
+ */
815
+ export type HillshadeLayout = HillshadeLayerSpecification['layout'];
607
816
 
608
- export type ModelLayerSpecification = {|
817
+ /**
818
+ * @deprecated Use `HillshadeLayerSpecification['paint']` instead.
819
+ */
820
+ export type HillshadePaint = HillshadeLayerSpecification['paint'];
821
+
822
+ export type ModelLayerSpecification = {
609
823
  "id": string,
610
824
  "type": "model",
611
- "metadata"?: mixed,
825
+ "metadata"?: unknown,
612
826
  "source": string,
613
827
  "source-layer"?: string,
614
828
  "slot"?: string,
615
829
  "minzoom"?: number,
616
830
  "maxzoom"?: number,
617
831
  "filter"?: FilterSpecification,
618
- "layout"?: {|
619
- "visibility"?: ExpressionSpecification,
832
+ "layout"?: {
833
+ "visibility"?: "visible" | "none" | ExpressionSpecification,
620
834
  "model-id"?: DataDrivenPropertyValueSpecification<string>
621
- |},
622
- "paint"?: {|
835
+ },
836
+ "paint"?: {
623
837
  "model-opacity"?: PropertyValueSpecification<number>,
838
+ "model-opacity-transition"?: TransitionSpecification,
624
839
  "model-rotation"?: DataDrivenPropertyValueSpecification<[number, number, number]>,
840
+ "model-rotation-transition"?: TransitionSpecification,
625
841
  "model-scale"?: DataDrivenPropertyValueSpecification<[number, number, number]>,
842
+ "model-scale-transition"?: TransitionSpecification,
626
843
  "model-translation"?: DataDrivenPropertyValueSpecification<[number, number, number]>,
844
+ "model-translation-transition"?: TransitionSpecification,
627
845
  "model-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
846
+ "model-color-transition"?: TransitionSpecification,
628
847
  "model-color-mix-intensity"?: DataDrivenPropertyValueSpecification<number>,
848
+ "model-color-mix-intensity-transition"?: TransitionSpecification,
629
849
  "model-type"?: "common-3d" | "location-indicator",
630
850
  "model-cast-shadows"?: ExpressionSpecification,
631
851
  "model-receive-shadows"?: ExpressionSpecification,
632
852
  "model-ambient-occlusion-intensity"?: PropertyValueSpecification<number>,
853
+ "model-ambient-occlusion-intensity-transition"?: TransitionSpecification,
633
854
  "model-emissive-strength"?: DataDrivenPropertyValueSpecification<number>,
855
+ "model-emissive-strength-transition"?: TransitionSpecification,
634
856
  "model-roughness"?: DataDrivenPropertyValueSpecification<number>,
857
+ "model-roughness-transition"?: TransitionSpecification,
635
858
  "model-height-based-emissive-strength-multiplier"?: DataDrivenPropertyValueSpecification<[number, number, number, number, number]>,
636
- "model-cutoff-fade-range"?: ExpressionSpecification
637
- |}
638
- |}
859
+ "model-height-based-emissive-strength-multiplier-transition"?: TransitionSpecification,
860
+ "model-cutoff-fade-range"?: ExpressionSpecification,
861
+ "model-front-cutoff"?: PropertyValueSpecification<[number, number, number]>
862
+ }
863
+ }
864
+
865
+ /**
866
+ * @deprecated Use `ModelLayerSpecification['layout']` instead.
867
+ */
868
+ export type ModelLayout = ModelLayerSpecification['layout'];
639
869
 
640
- export type BackgroundLayerSpecification = {|
870
+ /**
871
+ * @deprecated Use `ModelLayerSpecification['paint']` instead.
872
+ */
873
+ export type ModelPaint = ModelLayerSpecification['paint'];
874
+
875
+ export type BackgroundLayerSpecification = {
641
876
  "id": string,
642
877
  "type": "background",
643
- "metadata"?: mixed,
878
+ "metadata"?: unknown,
879
+ "source"?: never,
880
+ "source-layer"?: never,
644
881
  "slot"?: string,
645
882
  "minzoom"?: number,
646
883
  "maxzoom"?: number,
647
- "layout"?: {|
648
- "visibility"?: ExpressionSpecification
649
- |},
650
- "paint"?: {|
884
+ "filter"?: never,
885
+ "layout"?: {
886
+ "visibility"?: "visible" | "none" | ExpressionSpecification
887
+ },
888
+ "paint"?: {
651
889
  "background-color"?: PropertyValueSpecification<ColorSpecification>,
890
+ "background-color-transition"?: TransitionSpecification,
652
891
  "background-pattern"?: PropertyValueSpecification<ResolvedImageSpecification>,
653
892
  "background-opacity"?: PropertyValueSpecification<number>,
654
- "background-emissive-strength"?: PropertyValueSpecification<number>
655
- |}
656
- |}
893
+ "background-opacity-transition"?: TransitionSpecification,
894
+ "background-emissive-strength"?: PropertyValueSpecification<number>,
895
+ "background-emissive-strength-transition"?: TransitionSpecification
896
+ }
897
+ }
898
+
899
+ /**
900
+ * @deprecated Use `BackgroundLayerSpecification['layout']` instead.
901
+ */
902
+ export type BackgroundLayout = BackgroundLayerSpecification['layout'];
657
903
 
658
- export type SkyLayerSpecification = {|
904
+ /**
905
+ * @deprecated Use `BackgroundLayerSpecification['paint']` instead.
906
+ */
907
+ export type BackgroundPaint = BackgroundLayerSpecification['paint'];
908
+
909
+ export type SkyLayerSpecification = {
659
910
  "id": string,
660
911
  "type": "sky",
661
- "metadata"?: mixed,
912
+ "metadata"?: unknown,
913
+ "source"?: never,
914
+ "source-layer"?: never,
662
915
  "slot"?: string,
663
916
  "minzoom"?: number,
664
917
  "maxzoom"?: number,
665
- "layout"?: {|
666
- "visibility"?: ExpressionSpecification
667
- |},
668
- "paint"?: {|
918
+ "filter"?: never,
919
+ "layout"?: {
920
+ "visibility"?: "visible" | "none" | ExpressionSpecification
921
+ },
922
+ "paint"?: {
669
923
  "sky-type"?: PropertyValueSpecification<"gradient" | "atmosphere">,
670
924
  "sky-atmosphere-sun"?: PropertyValueSpecification<[number, number]>,
671
925
  "sky-atmosphere-sun-intensity"?: number,
@@ -674,16 +928,58 @@ export type SkyLayerSpecification = {|
674
928
  "sky-gradient"?: ExpressionSpecification,
675
929
  "sky-atmosphere-halo-color"?: ColorSpecification,
676
930
  "sky-atmosphere-color"?: ColorSpecification,
677
- "sky-opacity"?: PropertyValueSpecification<number>
678
- |}
679
- |}
931
+ "sky-opacity"?: PropertyValueSpecification<number>,
932
+ "sky-opacity-transition"?: TransitionSpecification
933
+ }
934
+ }
935
+
936
+ /**
937
+ * @deprecated Use `SkyLayerSpecification['layout']` instead.
938
+ */
939
+ export type SkyLayout = SkyLayerSpecification['layout'];
680
940
 
681
- export type SlotLayerSpecification = {|
941
+ /**
942
+ * @deprecated Use `SkyLayerSpecification['paint']` instead.
943
+ */
944
+ export type SkyPaint = SkyLayerSpecification['paint'];
945
+
946
+ export type SlotLayerSpecification = {
682
947
  "id": string,
683
948
  "type": "slot",
684
- "metadata"?: mixed,
685
- "slot"?: string
686
- |}
949
+ "metadata"?: unknown,
950
+ "source"?: never,
951
+ "source-layer"?: never,
952
+ "slot"?: string,
953
+ "minzoom"?: never,
954
+ "maxzoom"?: never,
955
+ "filter"?: never,
956
+ "layout"?: never,
957
+ "paint"?: never
958
+ }
959
+
960
+ export type ClipLayerSpecification = {
961
+ "id": string,
962
+ "type": "clip",
963
+ "metadata"?: unknown,
964
+ "source": string,
965
+ "source-layer"?: string,
966
+ "slot"?: string,
967
+ "minzoom"?: number,
968
+ "maxzoom"?: number,
969
+ "filter"?: FilterSpecification,
970
+ "layout"?: {
971
+ /**
972
+ * @experimental This property is experimental and subject to change in future versions.
973
+ */
974
+ "clip-layer-types"?: ExpressionSpecification
975
+ },
976
+ "paint"?: never
977
+ }
978
+
979
+ /**
980
+ * @deprecated Use `ClipLayerSpecification['layout']` instead.
981
+ */
982
+ export type ClipLayout = ClipLayerSpecification['layout'];
687
983
 
688
984
  export type LayerSpecification =
689
985
  | FillLayerSpecification
@@ -698,5 +994,162 @@ export type LayerSpecification =
698
994
  | ModelLayerSpecification
699
995
  | BackgroundLayerSpecification
700
996
  | SkyLayerSpecification
701
- | SlotLayerSpecification;
997
+ | SlotLayerSpecification
998
+ | ClipLayerSpecification;
999
+
1000
+ // Aliases for easier migration from @types/mapbox-gl
1001
+
1002
+ export type Layer = Pick<
1003
+ LayerSpecification,
1004
+ | "id"
1005
+ | "type"
1006
+ | "source"
1007
+ | "source-layer"
1008
+ | "slot"
1009
+ | "filter"
1010
+ | "layout"
1011
+ | "paint"
1012
+ | "minzoom"
1013
+ | "maxzoom"
1014
+ | "metadata"
1015
+ >;
1016
+
1017
+ /**
1018
+ * @deprecated Use `StyleSpecification` instead.
1019
+ */
1020
+ export type Style = StyleSpecification;
1021
+
1022
+ /**
1023
+ * @deprecated Use `LayerSpecification` instead.
1024
+ */
1025
+ export type AnyLayer = LayerSpecification;
1026
+
1027
+ /**
1028
+ * @deprecated Use `FillLayerSpecification` instead.
1029
+ */
1030
+ export type FillLayer = FillLayerSpecification;
1031
+
1032
+ /**
1033
+ * @deprecated Use `LineLayerSpecification` instead.
1034
+ */
1035
+ export type LineLayer = LineLayerSpecification;
1036
+
1037
+ /**
1038
+ * @deprecated Use `SymbolLayerSpecification` instead.
1039
+ */
1040
+ export type SymbolLayer = SymbolLayerSpecification;
1041
+
1042
+ /**
1043
+ * @deprecated Use `CircleLayerSpecification` instead.
1044
+ */
1045
+ export type CircleLayer = CircleLayerSpecification;
1046
+
1047
+ /**
1048
+ * @deprecated Use `HeatmapLayerSpecification` instead.
1049
+ */
1050
+ export type HeatmapLayer = HeatmapLayerSpecification;
1051
+
1052
+ /**
1053
+ * @deprecated Use `FillExtrusionLayerSpecification` instead.
1054
+ */
1055
+ export type FillExtrusionLayer = FillExtrusionLayerSpecification;
1056
+
1057
+ /**
1058
+ * @deprecated Use `RasterLayerSpecification` instead.
1059
+ */
1060
+ export type RasterLayer = RasterLayerSpecification;
1061
+
1062
+ /**
1063
+ * @deprecated Use `RasterParticleLayerSpecification` instead.
1064
+ */
1065
+ export type RasterParticleLayer = RasterParticleLayerSpecification;
1066
+
1067
+ /**
1068
+ * @deprecated Use `HillshadeLayerSpecification` instead.
1069
+ */
1070
+ export type HillshadeLayer = HillshadeLayerSpecification;
1071
+
1072
+ /**
1073
+ * @deprecated Use `ModelLayerSpecification` instead.
1074
+ */
1075
+ export type ModelLayer = ModelLayerSpecification;
1076
+
1077
+ /**
1078
+ * @deprecated Use `BackgroundLayerSpecification` instead.
1079
+ */
1080
+ export type BackgroundLayer = BackgroundLayerSpecification;
1081
+
1082
+ /**
1083
+ * @deprecated Use `SkyLayerSpecification` instead.
1084
+ */
1085
+ export type SkyLayer = SkyLayerSpecification;
1086
+
1087
+ /**
1088
+ * @deprecated Use `SlotLayerSpecification` instead.
1089
+ */
1090
+ export type SlotLayer = SlotLayerSpecification;
1091
+
1092
+ /**
1093
+ * @deprecated Use `ClipLayerSpecification` instead.
1094
+ */
1095
+ export type ClipLayer = ClipLayerSpecification;
1096
+
1097
+ /**
1098
+ * @deprecated
1099
+ */
1100
+ export type AnyLayout =
1101
+ | FillLayout
1102
+ | LineLayout
1103
+ | SymbolLayout
1104
+ | CircleLayout
1105
+ | HeatmapLayout
1106
+ | FillExtrusionLayout
1107
+ | RasterLayout
1108
+ | RasterParticleLayout
1109
+ | HillshadeLayout
1110
+ | ModelLayout
1111
+ | BackgroundLayout
1112
+ | SkyLayout
1113
+ | ClipLayout;
1114
+
1115
+ /**
1116
+ * @deprecated
1117
+ */
1118
+ export type AnyPaint =
1119
+ | FillPaint
1120
+ | LinePaint
1121
+ | SymbolPaint
1122
+ | CirclePaint
1123
+ | HeatmapPaint
1124
+ | FillExtrusionPaint
1125
+ | RasterPaint
1126
+ | RasterParticlePaint
1127
+ | HillshadePaint
1128
+ | ModelPaint
1129
+ | BackgroundPaint
1130
+ | SkyPaint;
1131
+
1132
+ /**
1133
+ * @deprecated Use `ExpressionSpecification` instead.
1134
+ */
1135
+ export type Expression = ExpressionSpecification;
1136
+
1137
+ /**
1138
+ * @deprecated Use `TransitionSpecification` instead.
1139
+ */
1140
+ export type Transition = TransitionSpecification;
1141
+
1142
+ /**
1143
+ * @deprecated Use `SourceSpecification` instead.
1144
+ */
1145
+ export type AnySourceData = SourceSpecification;
1146
+
1147
+ /**
1148
+ * @deprecated Use `SourcesSpecification` instead.
1149
+ */
1150
+ export type Sources = SourcesSpecification;
702
1151
 
1152
+ /**
1153
+ * @deprecated Use `ProjectionSpecification` instead.
1154
+ */
1155
+ export type Projection = ProjectionSpecification;