@maplibre/maplibre-react-native 10.0.0-alpha.2 → 10.0.0-alpha.21

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 (400) hide show
  1. package/.sonarcloud.properties +1 -1
  2. package/CHANGELOG.md +141 -50
  3. package/CONTRIBUTING.md +10 -9
  4. package/README.md +1 -1
  5. package/android/build.gradle +1 -1
  6. package/android/rctmln/.settings/org.eclipse.buildship.core.prefs +2 -0
  7. package/android/{rctmgl → rctmln}/build.gradle +5 -5
  8. package/android/{rctmgl → rctmln}/src/main/AndroidManifest.xml +1 -1
  9. package/android/rctmln/src/main/java/com/maplibre/rctmln/RCTMLNPackage.java +99 -0
  10. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/AbstractEvent.java +1 -1
  11. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/AbstractEventEmitter.java +2 -2
  12. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/AbstractMapFeature.java +4 -4
  13. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/annotation/MarkerView.java +3 -3
  14. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/annotation/MarkerViewManager.java +12 -10
  15. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLCallout.java → rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNCallout.java} +3 -3
  16. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNCalloutManager.java +22 -0
  17. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerView.java → rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNMarkerView.java} +18 -18
  18. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLMarkerViewManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNMarkerViewManager.java} +10 -10
  19. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLPointAnnotation.java → rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNPointAnnotation.java} +27 -26
  20. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLPointAnnotationManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/annotation/RCTMLNPointAnnotationManager.java} +14 -14
  21. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/camera/CameraStop.java +21 -19
  22. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/camera/CameraUpdateItem.java +12 -12
  23. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/camera/CameraUpdateQueue.java +4 -4
  24. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/RCTMGLCamera.java → rctmln/src/main/java/com/maplibre/rctmln/components/camera/RCTMLNCamera.java} +50 -50
  25. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/camera/RCTMGLCameraManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/camera/RCTMLNCameraManager.java} +19 -19
  26. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/camera/constants/CameraMode.java +1 -1
  27. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/images/RCTMGLImages.java → rctmln/src/main/java/com/maplibre/rctmln/components/images/RCTMLNImages.java} +27 -27
  28. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/images/RCTMGLImagesManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/images/RCTMLNImagesManager.java} +17 -17
  29. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/location/LocationComponentManager.java +25 -16
  30. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/location/RCTMGLNativeUserLocation.java → rctmln/src/main/java/com/maplibre/rctmln/components/location/RCTMLNNativeUserLocation.java} +25 -15
  31. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/location/RCTMGLNativeUserLocationManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/location/RCTMLNNativeUserLocationManager.java} +12 -7
  32. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/mapview/LayerSourceInfo.java +10 -10
  33. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNAndroidTextureMapView.java +16 -0
  34. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNAndroidTextureMapViewManager.java +31 -0
  35. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLMapView.java → rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNMapView.java} +171 -171
  36. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLMapViewManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/mapview/RCTMLNMapViewManager.java} +46 -46
  37. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/mapview/helpers/CameraChangeTracker.java +1 -1
  38. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyle.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyle.java} +12 -12
  39. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleFactory.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleFactory.java} +434 -423
  40. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleFunctionParser.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleFunctionParser.java} +8 -9
  41. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/RCTMGLStyleValue.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/RCTMLNStyleValue.java} +9 -9
  42. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/styles/layers/RCTLayer.java +17 -17
  43. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNBackgroundLayer.java +27 -0
  44. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLBackgroundLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNBackgroundLayerManager.java} +13 -13
  45. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLCircleLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNCircleLayer.java} +10 -10
  46. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLCircleLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNCircleLayerManager.java} +15 -15
  47. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillExtrusionLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillExtrusionLayer.java} +10 -10
  48. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillExtrusionLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillExtrusionLayerManager.java} +16 -16
  49. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillLayer.java} +10 -10
  50. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLFillLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNFillLayerManager.java} +16 -16
  51. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLHeatmapLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNHeatmapLayer.java} +10 -10
  52. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLHeatmapLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNHeatmapLayerManager.java} +15 -15
  53. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLLineLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNLineLayer.java} +10 -10
  54. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLLineLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNLineLayerManager.java} +17 -17
  55. package/android/rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNRasterLayer.java +27 -0
  56. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLRasterLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNRasterLayerManager.java} +13 -13
  57. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLSymbolLayer.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNSymbolLayer.java} +10 -10
  58. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLSymbolLayerManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/layers/RCTMLNSymbolLayerManager.java} +15 -15
  59. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/light/RCTMGLLight.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/light/RCTMLNLight.java} +16 -16
  60. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/light/RCTMGLLightManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/light/RCTMLNLightManager.java} +6 -6
  61. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLImageSource.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNImageSource.java} +7 -7
  62. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLImageSourceManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNImageSourceManager.java} +15 -15
  63. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSource.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNRasterSource.java} +6 -6
  64. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLRasterSourceManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNRasterSourceManager.java} +7 -7
  65. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLShapeSource.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNShapeSource.java} +22 -22
  66. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLShapeSourceManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNShapeSourceManager.java} +35 -35
  67. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSource.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNTileSource.java} +5 -5
  68. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLTileSourceManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNTileSourceManager.java} +4 -4
  69. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSource.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNVectorSource.java} +10 -10
  70. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/sources/RCTMGLVectorSourceManager.java → rctmln/src/main/java/com/maplibre/rctmln/components/styles/sources/RCTMLNVectorSourceManager.java} +12 -12
  71. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/components/styles/sources/RCTSource.java +14 -14
  72. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/AbstractEvent.java +1 -1
  73. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/AndroidCallbackEvent.java +2 -2
  74. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/EventEmitter.java +1 -1
  75. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/FeatureClickEvent.java +8 -8
  76. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/IEvent.java +1 -1
  77. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/ImageMissingEvent.java +3 -3
  78. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/LocationEvent.java +6 -6
  79. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/MapChangeEvent.java +3 -3
  80. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/MapClickEvent.java +5 -5
  81. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/MapUserTrackingModeEvent.java +4 -4
  82. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/OfflineEvent.java +1 -1
  83. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/PointAnnotationClickEvent.java +10 -10
  84. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/PointAnnotationDragEvent.java +10 -10
  85. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/constants/EventKeys.java +1 -1
  86. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/events/constants/EventTypes.java +1 -1
  87. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/http/CustomHeadersInterceptor.java +1 -1
  88. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/location/LocationManager.java +7 -7
  89. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/location/UserLocation.java +2 -2
  90. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/location/UserLocationVerticalAlignment.java +1 -1
  91. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/location/UserTrackingMode.java +4 -4
  92. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/location/UserTrackingState.java +1 -1
  93. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLLocationModule.java → rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNLocationModule.java} +11 -11
  94. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLLogging.java → rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNLogging.java} +7 -7
  95. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLModule.java → rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNModule.java} +30 -30
  96. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLOfflineModule.java → rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNOfflineModule.java} +21 -21
  97. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl/modules/RCTMGLSnapshotModule.java → rctmln/src/main/java/com/maplibre/rctmln/modules/RCTMLNSnapshotModule.java} +14 -14
  98. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/BitmapUtils.java +1 -1
  99. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/ClusterPropertyEntry.java +2 -2
  100. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/ConvertUtils.java +1 -1
  101. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/DownloadMapImageTask.java +6 -6
  102. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/ExpressionParser.java +3 -3
  103. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/GeoJSONUtils.java +14 -14
  104. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/GeoViewport.java +4 -4
  105. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/ImageEntry.java +1 -1
  106. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/ResourceUtils.java +1 -1
  107. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/SimpleEventCallback.java +5 -5
  108. package/android/{rctmgl/src/main/java/com/mapbox/rctmgl → rctmln/src/main/java/com/maplibre/rctmln}/utils/SphericalMercator.java +2 -2
  109. package/android/rctmln/src/main/res/values/strings.xml +3 -0
  110. package/android/settings.gradle +1 -1
  111. package/docs/Annotations.md +1 -1
  112. package/docs/Callout.md +1 -1
  113. package/docs/Camera.md +4 -4
  114. package/docs/CustomHttpHeaders.md +4 -4
  115. package/docs/FillExtrusionLayer.md +19 -0
  116. package/docs/MapView.md +12 -36
  117. package/docs/MarkerView.md +1 -1
  118. package/docs/NativeUserLocation.md +2 -1
  119. package/docs/PointAnnotation.md +2 -2
  120. package/docs/RasterLayer.md +1 -1
  121. package/docs/SymbolLayer.md +7 -5
  122. package/docs/UserLocation.md +13 -4
  123. package/docs/docs.json +79 -52
  124. package/docs/offlineManager.md +246 -0
  125. package/ios/{RCTMGL → RCTMLN}/CameraMode.h +1 -1
  126. package/ios/{RCTMGL → RCTMLN}/CameraMode.m +1 -1
  127. package/ios/{RCTMGL → RCTMLN}/CameraStop.h +4 -4
  128. package/ios/{RCTMGL → RCTMLN}/CameraStop.m +7 -7
  129. package/ios/{RCTMGL → RCTMLN}/CameraUpdateItem.h +3 -3
  130. package/ios/{RCTMGL → RCTMLN}/CameraUpdateItem.m +19 -19
  131. package/ios/{RCTMGL → RCTMLN}/CameraUpdateQueue.h +3 -3
  132. package/ios/{RCTMGL → RCTMLN}/CameraUpdateQueue.m +3 -3
  133. package/ios/{RCTMGL → RCTMLN}/FilterParser.h +1 -1
  134. package/ios/{RCTMGL → RCTMLN}/FilterParser.m +3 -3
  135. package/ios/{RCTMGL/MGLCustomHeaders.h → RCTMLN/MLNCustomHeaders.h} +3 -3
  136. package/ios/{RCTMGL/MGLCustomHeaders.m → RCTMLN/MLNCustomHeaders.m} +11 -11
  137. package/ios/RCTMLN/MLNFaux3DUserLocationAnnotationView.h +23 -0
  138. package/ios/{RCTMGL/MGLFaux3DUserLocationAnnotationView.m → RCTMLN/MLNFaux3DUserLocationAnnotationView.m} +38 -38
  139. package/ios/{RCTMGL/MGLModule.h → RCTMLN/MLNModule.h} +3 -3
  140. package/ios/{RCTMGL/MGLModule.m → RCTMLN/MLNModule.m} +91 -91
  141. package/ios/{RCTMGL/MGLOfflineModule.h → RCTMLN/MLNOfflineModule.h} +4 -4
  142. package/ios/{RCTMGL/MGLOfflineModule.m → RCTMLN/MLNOfflineModule.m} +120 -99
  143. package/ios/{RCTMGL/MGLSnapshotModule.h → RCTMLN/MLNSnapshotModule.h} +3 -3
  144. package/ios/{RCTMGL/MGLSnapshotModule.m → RCTMLN/MLNSnapshotModule.m} +14 -14
  145. package/ios/{RCTMGL/MGLUserLocationHeadingArrowLayer.h → RCTMLN/MLNUserLocationHeadingArrowLayer.h} +4 -4
  146. package/ios/{RCTMGL/MGLUserLocationHeadingArrowLayer.m → RCTMLN/MLNUserLocationHeadingArrowLayer.m} +7 -7
  147. package/ios/RCTMLN/MLNUserLocationHeadingBeamLayer.h +11 -0
  148. package/ios/{RCTMGL/MGLUserLocationHeadingBeamLayer.m → RCTMLN/MLNUserLocationHeadingBeamLayer.m} +10 -10
  149. package/ios/{RCTMGL/MGLUserLocationHeadingIndicator.h → RCTMLN/MLNUserLocationHeadingIndicator.h} +3 -3
  150. package/ios/{RCTMGL → RCTMLN}/RCTConvert+Mapbox.h +1 -1
  151. package/ios/{RCTMGL → RCTMLN}/RCTConvert+Mapbox.m +1 -1
  152. package/ios/{RCTMGL/RCTMGL.h → RCTMLN/RCTMLN.h} +3 -3
  153. package/ios/{RCTMGL/RCTMGL.m → RCTMLN/RCTMLN.m} +4 -4
  154. package/ios/RCTMLN/RCTMLNBackgroundLayer.h +14 -0
  155. package/ios/RCTMLN/RCTMLNBackgroundLayer.m +27 -0
  156. package/ios/{RCTMGL/RCTMGLBackgroundLayerManager.h → RCTMLN/RCTMLNBackgroundLayerManager.h} +3 -3
  157. package/ios/{RCTMGL/RCTMGLBackgroundLayerManager.m → RCTMLN/RCTMLNBackgroundLayerManager.m} +6 -6
  158. package/ios/{RCTMGL/RCTMGLCallout.h → RCTMLN/RCTMLNCallout.h} +4 -4
  159. package/ios/{RCTMGL/RCTMGLCallout.m → RCTMLN/RCTMLNCallout.m} +6 -6
  160. package/ios/{RCTMGL/RCTMGLCalloutManager.h → RCTMLN/RCTMLNCalloutManager.h} +3 -3
  161. package/ios/RCTMLN/RCTMLNCalloutManager.m +21 -0
  162. package/ios/{RCTMGL/RCTMGLCamera.h → RCTMLN/RCTMLNCamera.h} +6 -6
  163. package/ios/{RCTMGL/RCTMGLCamera.m → RCTMLN/RCTMLNCamera.m} +30 -30
  164. package/ios/{RCTMGL/RCTMGLCameraManager.h → RCTMLN/RCTMLNCameraManager.h} +3 -3
  165. package/ios/{RCTMGL/RCTMGLCameraManager.m → RCTMLN/RCTMLNCameraManager.m} +7 -7
  166. package/ios/RCTMLN/RCTMLNCircleLayer.h +13 -0
  167. package/ios/{RCTMGL/RCTMGLCircleLayer.m → RCTMLN/RCTMLNCircleLayer.m} +10 -10
  168. package/ios/{RCTMGL/RCTMGLCircleLayerManager.h → RCTMLN/RCTMLNCircleLayerManager.h} +3 -3
  169. package/ios/{RCTMGL/RCTMGLCircleLayerManager.m → RCTMLN/RCTMLNCircleLayerManager.m} +6 -6
  170. package/ios/{RCTMGL/RCTMGLEvent.h → RCTMLN/RCTMLNEvent.h} +6 -6
  171. package/ios/{RCTMGL/RCTMGLEvent.m → RCTMLN/RCTMLNEvent.m} +8 -8
  172. package/ios/{RCTMGL/RCTMGLEventProtocol.h → RCTMLN/RCTMLNEventProtocol.h} +3 -3
  173. package/ios/{RCTMGL/RCTMGLEventTypes.h → RCTMLN/RCTMLNEventTypes.h} +3 -3
  174. package/ios/{RCTMGL/RCTMGLEventTypes.m → RCTMLN/RCTMLNEventTypes.m} +4 -4
  175. package/ios/RCTMLN/RCTMLNFillExtrusionLayer.h +14 -0
  176. package/ios/{RCTMGL/RCTMGLFillExtrusionLayer.m → RCTMLN/RCTMLNFillExtrusionLayer.m} +10 -10
  177. package/ios/{RCTMGL/RCTMGLFillExtrusionLayerManager.h → RCTMLN/RCTMLNFillExtrusionLayerManager.h} +3 -3
  178. package/ios/{RCTMGL/RCTMGLFillExtrusionLayerManager.m → RCTMLN/RCTMLNFillExtrusionLayerManager.m} +6 -6
  179. package/ios/RCTMLN/RCTMLNFillLayer.h +14 -0
  180. package/ios/{RCTMGL/RCTMGLFillLayer.m → RCTMLN/RCTMLNFillLayer.m} +10 -10
  181. package/ios/{RCTMGL/RCTMGLFillLayerManager.h → RCTMLN/RCTMLNFillLayerManager.h} +3 -3
  182. package/ios/{RCTMGL/RCTMGLFillLayerManager.m → RCTMLN/RCTMLNFillLayerManager.m} +6 -6
  183. package/ios/RCTMLN/RCTMLNHeatmapLayer.h +12 -0
  184. package/ios/RCTMLN/RCTMLNHeatmapLayer.m +30 -0
  185. package/ios/RCTMLN/RCTMLNHeatmapLayerManager.h +12 -0
  186. package/ios/{RCTMGL/RCTMGLHeatmapLayerManager.m → RCTMLN/RCTMLNHeatmapLayerManager.m} +6 -6
  187. package/ios/{RCTMGL/RCTMGLImageQueue.h → RCTMLN/RCTMLNImageQueue.h} +3 -3
  188. package/ios/{RCTMGL/RCTMGLImageQueue.m → RCTMLN/RCTMLNImageQueue.m} +10 -10
  189. package/ios/{RCTMGL/RCTMGLImageQueueOperation.h → RCTMLN/RCTMLNImageQueueOperation.h} +3 -3
  190. package/ios/{RCTMGL/RCTMGLImageQueueOperation.m → RCTMLN/RCTMLNImageQueueOperation.m} +12 -12
  191. package/ios/{RCTMGL/RCTMGLImageSource.h → RCTMLN/RCTMLNImageSource.h} +4 -4
  192. package/ios/{RCTMGL/RCTMGLImageSource.m → RCTMLN/RCTMLNImageSource.m} +11 -11
  193. package/ios/{RCTMGL/RCTMGLImageSourceManager.h → RCTMLN/RCTMLNImageSourceManager.h} +3 -3
  194. package/ios/{RCTMGL/RCTMGLImageSourceManager.m → RCTMLN/RCTMLNImageSourceManager.m} +6 -6
  195. package/ios/{RCTMGL/RCTMGLImages.h → RCTMLN/RCTMLNImages.h} +4 -4
  196. package/ios/{RCTMGL/RCTMGLImages.m → RCTMLN/RCTMLNImages.m} +10 -10
  197. package/ios/RCTMLN/RCTMLNImagesManager.h +5 -0
  198. package/ios/{RCTMGL/RCTMGLImagesManager.m → RCTMLN/RCTMLNImagesManager.m} +4 -4
  199. package/ios/{RCTMGL/RCTMGLLayer.h → RCTMLN/RCTMLNLayer.h} +11 -11
  200. package/ios/{RCTMGL/RCTMGLLayer.m → RCTMLN/RCTMLNLayer.m} +17 -17
  201. package/ios/{RCTMGL/RCTMGLLight.h → RCTMLN/RCTMLNLight.h} +5 -5
  202. package/ios/{RCTMGL/RCTMGLLight.m → RCTMLN/RCTMLNLight.m} +9 -9
  203. package/ios/{RCTMGL/RCTMGLLightManager.h → RCTMLN/RCTMLNLightManager.h} +3 -3
  204. package/ios/{RCTMGL/RCTMGLLightManager.m → RCTMLN/RCTMLNLightManager.m} +6 -6
  205. package/ios/RCTMLN/RCTMLNLineLayer.h +14 -0
  206. package/ios/{RCTMGL/RCTMGLLineLayer.m → RCTMLN/RCTMLNLineLayer.m} +10 -10
  207. package/ios/{RCTMGL/RCTMGLLineLayerManager.h → RCTMLN/RCTMLNLineLayerManager.h} +3 -3
  208. package/ios/{RCTMGL/RCTMGLLineLayerManager.m → RCTMLN/RCTMLNLineLayerManager.m} +6 -6
  209. package/ios/{RCTMGL/RCTMGLLocation.h → RCTMLN/RCTMLNLocation.h} +3 -3
  210. package/ios/{RCTMGL/RCTMGLLocation.m → RCTMLN/RCTMLNLocation.m} +4 -4
  211. package/ios/RCTMLN/RCTMLNLocationManager.h +30 -0
  212. package/ios/{RCTMGL/RCTMGLLocationManager.m → RCTMLN/RCTMLNLocationManager.m} +16 -16
  213. package/ios/RCTMLN/RCTMLNLocationManagerDelegate.h +20 -0
  214. package/ios/{RCTMGL/RCTMGLLocationModule.h → RCTMLN/RCTMLNLocationModule.h} +3 -3
  215. package/ios/{RCTMGL/RCTMGLLocationModule.m → RCTMLN/RCTMLNLocationModule.m} +13 -13
  216. package/ios/RCTMLN/RCTMLNLogging.h +18 -0
  217. package/ios/{RCTMGL/RCTMGLLogging.m → RCTMLN/RCTMLNLogging.m} +29 -29
  218. package/ios/{RCTMGL/RCTMGLMapTouchEvent.h → RCTMLN/RCTMLNMapTouchEvent.h} +10 -10
  219. package/ios/{RCTMGL/RCTMGLMapTouchEvent.m → RCTMLN/RCTMLNMapTouchEvent.m} +18 -18
  220. package/ios/{RCTMGL/RCTMGLMapView.h → RCTMLN/RCTMLNMapView.h} +30 -30
  221. package/ios/{RCTMGL/RCTMGLMapView.m → RCTMLN/RCTMLNMapView.m} +82 -82
  222. package/ios/{RCTMGL/RCTMGLMapViewManager.h → RCTMLN/RCTMLNMapViewManager.h} +4 -4
  223. package/ios/{RCTMGL/RCTMGLMapViewManager.m → RCTMLN/RCTMLNMapViewManager.m} +117 -117
  224. package/ios/{RCTMGL/RCTMGLNativeUserLocation.h → RCTMLN/RCTMLNNativeUserLocation.h} +5 -5
  225. package/ios/{RCTMGL/RCTMGLNativeUserLocation.m → RCTMLN/RCTMLNNativeUserLocation.m} +10 -10
  226. package/ios/RCTMLN/RCTMLNNativeUserLocationManager.h +5 -0
  227. package/ios/RCTMLN/RCTMLNNativeUserLocationManager.m +25 -0
  228. package/ios/{RCTMGL/RCTMGLPointAnnotation.h → RCTMLN/RCTMLNPointAnnotation.h} +8 -8
  229. package/ios/{RCTMGL/RCTMGLPointAnnotation.m → RCTMLN/RCTMLNPointAnnotation.m} +21 -21
  230. package/ios/{RCTMGL/RCTMGLPointAnnotationManager.h → RCTMLN/RCTMLNPointAnnotationManager.h} +3 -3
  231. package/ios/{RCTMGL/RCTMGLPointAnnotationManager.m → RCTMLN/RCTMLNPointAnnotationManager.m} +6 -6
  232. package/ios/RCTMLN/RCTMLNRasterLayer.h +14 -0
  233. package/ios/RCTMLN/RCTMLNRasterLayer.m +30 -0
  234. package/ios/{RCTMGL/RCTMGLRasterLayerManager.h → RCTMLN/RCTMLNRasterLayerManager.h} +3 -3
  235. package/ios/{RCTMGL/RCTMGLRasterLayerManager.m → RCTMLN/RCTMLNRasterLayerManager.m} +6 -6
  236. package/ios/{RCTMGL/RCTMGLRasterSource.h → RCTMLN/RCTMLNRasterSource.h} +5 -5
  237. package/ios/{RCTMGL/RCTMGLRasterSource.m → RCTMLN/RCTMLNRasterSource.m} +11 -11
  238. package/ios/{RCTMGL/RCTMGLRasterSourceManager.h → RCTMLN/RCTMLNRasterSourceManager.h} +3 -3
  239. package/ios/{RCTMGL/RCTMGLRasterSourceManager.m → RCTMLN/RCTMLNRasterSourceManager.m} +6 -6
  240. package/ios/{RCTMGL/RCTMGLShapeSource.h → RCTMLN/RCTMLNShapeSource.h} +10 -10
  241. package/ios/{RCTMGL/RCTMGLShapeSource.m → RCTMLN/RCTMLNShapeSource.m} +50 -50
  242. package/ios/{RCTMGL/RCTMGLShapeSourceManager.h → RCTMLN/RCTMLNShapeSourceManager.h} +3 -3
  243. package/ios/{RCTMGL/RCTMGLShapeSourceManager.m → RCTMLN/RCTMLNShapeSourceManager.m} +25 -25
  244. package/ios/{RCTMGL/RCTMGLSource.h → RCTMLN/RCTMLNSource.h} +8 -8
  245. package/ios/{RCTMGL/RCTMGLSource.m → RCTMLN/RCTMLNSource.m} +15 -15
  246. package/ios/RCTMLN/RCTMLNStyle.h +223 -0
  247. package/ios/{RCTMGL/RCTMGLStyle.m → RCTMLN/RCTMLNStyle.m} +352 -345
  248. package/ios/{RCTMGL/RCTMGLStyleValue.h → RCTMLN/RCTMLNStyleValue.h} +7 -7
  249. package/ios/{RCTMGL/RCTMGLStyleValue.m → RCTMLN/RCTMLNStyleValue.m} +24 -24
  250. package/ios/{RCTMGL/RCTMGLSymbolLayer.h → RCTMLN/RCTMLNSymbolLayer.h} +4 -4
  251. package/ios/{RCTMGL/RCTMGLSymbolLayer.m → RCTMLN/RCTMLNSymbolLayer.m} +12 -12
  252. package/ios/{RCTMGL/RCTMGLSymbolLayerManager.h → RCTMLN/RCTMLNSymbolLayerManager.h} +3 -3
  253. package/ios/{RCTMGL/RCTMGLSymbolLayerManager.m → RCTMLN/RCTMLNSymbolLayerManager.m} +6 -6
  254. package/ios/{RCTMGL/RCTMGLTileSource.h → RCTMLN/RCTMLNTileSource.h} +6 -6
  255. package/ios/RCTMLN/RCTMLNTileSource.m +31 -0
  256. package/ios/RCTMLN/RCTMLNUserLocation.h +15 -0
  257. package/ios/{RCTMGL/RCTMGLUserLocation.m → RCTMLN/RCTMLNUserLocation.m} +8 -8
  258. package/ios/{RCTMGL/RCTMGLUtils.h → RCTMLN/RCTMLNUtils.h} +7 -7
  259. package/ios/{RCTMGL/RCTMGLUtils.m → RCTMLN/RCTMLNUtils.m} +20 -20
  260. package/ios/{RCTMGL/RCTMGLVectorLayer.h → RCTMLN/RCTMLNVectorLayer.h} +4 -4
  261. package/ios/{RCTMGL/RCTMGLVectorLayer.m → RCTMLN/RCTMLNVectorLayer.m} +7 -7
  262. package/ios/{RCTMGL/RCTMGLVectorSource.h → RCTMLN/RCTMLNVectorSource.h} +6 -6
  263. package/ios/{RCTMGL/RCTMGLVectorSource.m → RCTMLN/RCTMLNVectorSource.m} +9 -9
  264. package/ios/{RCTMGL/RCTMGLVectorSourceManager.h → RCTMLN/RCTMLNVectorSourceManager.h} +3 -3
  265. package/ios/{RCTMGL/RCTMGLVectorSourceManager.m → RCTMLN/RCTMLNVectorSourceManager.m} +11 -11
  266. package/ios/{RCTMGL → RCTMLN}/RNMBImageUtils.h +1 -1
  267. package/ios/{RCTMGL → RCTMLN}/RNMBImageUtils.m +2 -2
  268. package/ios/{RCTMGL → RCTMLN}/ViewManager.h +3 -3
  269. package/ios/{RCTMGL → RCTMLN}/ViewManager.m +4 -4
  270. package/ios/RCTMLN.xcodeproj/project.pbxproj +775 -0
  271. package/ios/install.md +6 -7
  272. package/javascript/{MGLModule.ts → MLNModule.ts} +4 -4
  273. package/javascript/Maplibre.ts +44 -39
  274. package/javascript/components/BackgroundLayer.tsx +34 -27
  275. package/javascript/components/Callout.tsx +59 -59
  276. package/javascript/components/Camera.tsx +436 -493
  277. package/javascript/components/CircleLayer.tsx +35 -28
  278. package/javascript/components/FillExtrusionLayer.tsx +29 -29
  279. package/javascript/components/FillLayer.tsx +28 -25
  280. package/javascript/components/HeadingIndicator.tsx +8 -8
  281. package/javascript/components/HeatmapLayer.tsx +28 -26
  282. package/javascript/components/ImageSource.tsx +31 -38
  283. package/javascript/components/Images.tsx +54 -54
  284. package/javascript/components/Light.tsx +25 -52
  285. package/javascript/components/LineLayer.tsx +29 -26
  286. package/javascript/components/MapView.tsx +635 -580
  287. package/javascript/components/MarkerView.tsx +34 -49
  288. package/javascript/components/NativeUserLocation.tsx +12 -10
  289. package/javascript/components/PointAnnotation.tsx +121 -97
  290. package/javascript/components/RasterLayer.tsx +28 -25
  291. package/javascript/components/RasterSource.tsx +45 -48
  292. package/javascript/components/ShapeSource.tsx +300 -250
  293. package/javascript/components/Style.tsx +69 -59
  294. package/javascript/components/SymbolLayer.tsx +41 -35
  295. package/javascript/components/UserLocation.tsx +189 -168
  296. package/javascript/components/VectorSource.tsx +139 -128
  297. package/javascript/components/annotations/Annotation.tsx +119 -89
  298. package/javascript/hooks/useAbstractLayer.ts +127 -0
  299. package/javascript/hooks/useAbstractSource.ts +34 -0
  300. package/javascript/hooks/useNativeBridge.ts +125 -0
  301. package/javascript/hooks/useNativeRef.ts +13 -0
  302. package/javascript/hooks/useOnce.ts +12 -0
  303. package/javascript/index.ts +2 -2
  304. package/javascript/modules/location/locationManager.ts +6 -6
  305. package/javascript/modules/offline/OfflineCreatePackOptions.ts +5 -5
  306. package/javascript/modules/offline/OfflinePack.ts +5 -5
  307. package/javascript/modules/offline/offlineManager.ts +13 -14
  308. package/javascript/modules/snapshot/SnapshotOptions.ts +5 -5
  309. package/javascript/modules/snapshot/snapshotManager.ts +3 -3
  310. package/javascript/requestAndroidLocationPermissions.ts +3 -3
  311. package/javascript/types/OnPressEvent.ts +1 -1
  312. package/javascript/types/index.ts +6 -2
  313. package/javascript/utils/BridgeValue.ts +20 -20
  314. package/javascript/utils/Logger.ts +17 -17
  315. package/javascript/utils/MaplibreStyles.d.ts +399 -393
  316. package/javascript/utils/StyleValue.ts +12 -12
  317. package/javascript/utils/animated/AbstractAnimatedCoordinates.ts +6 -6
  318. package/javascript/utils/animated/Animated.ts +38 -16
  319. package/javascript/utils/animated/AnimatedCoordinatesArray.ts +7 -11
  320. package/javascript/utils/animated/AnimatedExtractCoordinateFromArray.ts +3 -3
  321. package/javascript/utils/animated/AnimatedPoint.ts +7 -7
  322. package/javascript/utils/animated/AnimatedRouteCoordinatesArray.ts +16 -20
  323. package/javascript/utils/animated/AnimatedShape.ts +16 -16
  324. package/javascript/utils/deprecation.ts +6 -3
  325. package/javascript/utils/filterUtils.ts +1 -1
  326. package/javascript/utils/geoUtils.ts +8 -8
  327. package/javascript/utils/index.ts +14 -14
  328. package/javascript/utils/styleMap.ts +19 -18
  329. package/maplibre-react-native.podspec +8 -8
  330. package/package.json +58 -39
  331. package/plugin/build/withMapLibre.d.ts +2 -2
  332. package/plugin/build/withMapLibre.js +33 -34
  333. package/react-native.config.js +1 -1
  334. package/scripts/autogenHelpers/globals.js +11 -10
  335. package/scripts/autogenerate.js +24 -17
  336. package/scripts/templates/{RCTMGLStyle.h.ejs → RCTMLNStyle.h.ejs} +8 -8
  337. package/scripts/templates/{RCTMGLStyle.m.ejs → RCTMLNStyle.m.ejs} +10 -10
  338. package/scripts/templates/{RCTMGLStyleFactory.java.ejs → RCTMLNStyleFactory.java.ejs} +24 -24
  339. package/setup-jest.js +4 -10
  340. package/style-spec/v8.json +1248 -655
  341. package/tsconfig.json +0 -1
  342. package/.eslintignore +0 -3
  343. package/.eslintrc.js +0 -166
  344. package/.prettierrc.js +0 -7
  345. package/.yarn/plugins/@yarnpkg/plugin-typescript.cjs +0 -9
  346. package/.yarn/sdks/eslint/bin/eslint.js +0 -20
  347. package/.yarn/sdks/eslint/lib/api.js +0 -20
  348. package/.yarn/sdks/eslint/package.json +0 -6
  349. package/.yarn/sdks/integrations.yml +0 -5
  350. package/.yarn/sdks/prettier/index.js +0 -20
  351. package/.yarn/sdks/prettier/package.json +0 -6
  352. package/.yarn/sdks/typescript/bin/tsc +0 -20
  353. package/.yarn/sdks/typescript/bin/tsserver +0 -20
  354. package/.yarn/sdks/typescript/lib/tsc.js +0 -20
  355. package/.yarn/sdks/typescript/lib/tsserver.js +0 -225
  356. package/.yarn/sdks/typescript/lib/tsserverlibrary.js +0 -225
  357. package/.yarn/sdks/typescript/lib/typescript.js +0 -20
  358. package/.yarn/sdks/typescript/package.json +0 -6
  359. package/android/rctmgl/.settings/org.eclipse.buildship.core.prefs +0 -2
  360. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/RCTMGLPackage.java +0 -99
  361. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/annotation/RCTMGLCalloutManager.java +0 -22
  362. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapView.java +0 -16
  363. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/mapview/RCTMGLAndroidTextureMapViewManager.java +0 -31
  364. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLBackgroundLayer.java +0 -27
  365. package/android/rctmgl/src/main/java/com/mapbox/rctmgl/components/styles/layers/RCTMGLRasterLayer.java +0 -27
  366. package/android/rctmgl/src/main/res/values/strings.xml +0 -3
  367. package/ios/RCTMGL/MGLFaux3DUserLocationAnnotationView.h +0 -23
  368. package/ios/RCTMGL/MGLUserLocationHeadingBeamLayer.h +0 -11
  369. package/ios/RCTMGL/RCTMGLBackgroundLayer.h +0 -14
  370. package/ios/RCTMGL/RCTMGLBackgroundLayer.m +0 -27
  371. package/ios/RCTMGL/RCTMGLCalloutManager.m +0 -21
  372. package/ios/RCTMGL/RCTMGLCircleLayer.h +0 -13
  373. package/ios/RCTMGL/RCTMGLFillExtrusionLayer.h +0 -14
  374. package/ios/RCTMGL/RCTMGLFillLayer.h +0 -14
  375. package/ios/RCTMGL/RCTMGLHeatmapLayer.h +0 -12
  376. package/ios/RCTMGL/RCTMGLHeatmapLayer.m +0 -30
  377. package/ios/RCTMGL/RCTMGLHeatmapLayerManager.h +0 -12
  378. package/ios/RCTMGL/RCTMGLImagesManager.h +0 -5
  379. package/ios/RCTMGL/RCTMGLLineLayer.h +0 -14
  380. package/ios/RCTMGL/RCTMGLLocationManager.h +0 -30
  381. package/ios/RCTMGL/RCTMGLLocationManagerDelegate.h +0 -20
  382. package/ios/RCTMGL/RCTMGLLogging.h +0 -18
  383. package/ios/RCTMGL/RCTMGLNativeUserLocationManager.h +0 -5
  384. package/ios/RCTMGL/RCTMGLNativeUserLocationManager.m +0 -25
  385. package/ios/RCTMGL/RCTMGLRasterLayer.h +0 -14
  386. package/ios/RCTMGL/RCTMGLRasterLayer.m +0 -30
  387. package/ios/RCTMGL/RCTMGLStyle.h +0 -222
  388. package/ios/RCTMGL/RCTMGLTileSource.m +0 -31
  389. package/ios/RCTMGL/RCTMGLUserLocation.h +0 -15
  390. package/ios/RCTMGL.xcodeproj/project.pbxproj +0 -775
  391. package/javascript/@types/assets.d.ts +0 -4
  392. package/javascript/components/AbstractLayer.tsx +0 -107
  393. package/javascript/components/AbstractSource.tsx +0 -27
  394. package/javascript/components/NativeBridgeComponent.tsx +0 -117
  395. /package/android/{rctmgl → rctmln}/proguard-rules.pro +0 -0
  396. /package/android/{rctmgl → rctmln}/src/main/res/drawable/empty.xml +0 -0
  397. /package/android/{rctmgl → rctmln}/src/main/res/drawable/empty_drawable.png +0 -0
  398. /package/android/{rctmgl → rctmln}/src/main/res/drawable-xxhdpi/red_marker.png +0 -0
  399. /package/android/{rctmgl → rctmln}/src/main/res/layout/annotation.xml +0 -0
  400. /package/ios/{RCTMGL → RCTMLN}/index.d.ts +0 -0
@@ -17,7 +17,13 @@
17
17
  },
18
18
  "metadata": {
19
19
  "type": "*",
20
- "doc": "Arbitrary properties useful to track with the stylesheet, but do not influence rendering. Properties should be prefixed to avoid collisions, like 'mapbox:'."
20
+ "doc": "Arbitrary properties useful to track with the stylesheet, but do not influence rendering. Properties should be prefixed to avoid collisions, like 'maplibre:'.",
21
+ "example": {
22
+ "styleeditor:slimmode": true,
23
+ "styleeditor:comment": "Style generated 1677776383",
24
+ "styleeditor:version": "3.14.159265",
25
+ "example:object": { "String": "one", "Number": 2, "Boolean": false }
26
+ }
21
27
  },
22
28
  "center": {
23
29
  "type": "array",
@@ -57,6 +63,32 @@
57
63
  "intensity": 0.4
58
64
  }
59
65
  },
66
+ "sky": {
67
+ "type": "sky",
68
+ "doc": "The map's sky configuration. **Note:** this definition is still experimental and is under development in maplibre-gl-js.",
69
+ "example": {
70
+ "sky-color": "#199EF3",
71
+ "sky-horizon-blend": 0.5,
72
+ "horizon-color": "#ffffff",
73
+ "horizon-fog-blend": 0.5,
74
+ "fog-color": "#0000ff",
75
+ "fog-ground-blend": 0.5,
76
+ "atmosphere-blend": ["interpolate",
77
+ ["linear"],
78
+ ["zoom"],
79
+ 0,1,
80
+ 10,1,
81
+ 12,0
82
+ ]
83
+ }
84
+ },
85
+ "projection": {
86
+ "type": "projection",
87
+ "doc": "The projection configuration. **Note:** this definition is still experimental and is under development in maplibre-gl-js.",
88
+ "example": {
89
+ "type": "globe"
90
+ }
91
+ },
60
92
  "terrain": {
61
93
  "type": "terrain",
62
94
  "doc": "The terrain configuration.",
@@ -68,22 +100,41 @@
68
100
  "sources": {
69
101
  "required": true,
70
102
  "type": "sources",
71
- "doc": "Data source specifications.",
103
+ "doc": "Sources state which data the map should display. Specify the type of source with the `type` property. Adding a source isn't enough to make data appear on the map because sources don't contain styling details like color or width. Layers refer to a source and give it a visual representation. This makes it possible to style the same source in different ways, like differentiating between types of roads in a highways layer.\n\nTiled sources (vector and raster) must specify their details according to the [TileJSON specification](https://github.com/mapbox/tilejson-spec).",
72
104
  "example": {
73
105
  "maplibre-demotiles": {
74
106
  "type": "vector",
75
107
  "url": "https://demotiles.maplibre.org/tiles/tiles.json"
108
+ },
109
+ "maplibre-tilejson": {
110
+ "type": "vector",
111
+ "url": "http://api.example.com/tilejson.json"
112
+ },
113
+ "maplibre-streets": {
114
+ "type": "vector",
115
+ "tiles": [
116
+ "http://a.example.com/tiles/{z}/{x}/{y}.pbf",
117
+ "http://b.example.com/tiles/{z}/{x}/{y}.pbf"
118
+ ],
119
+ "maxzoom": 14
120
+ },
121
+ "wms-imagery": {
122
+ "type": "raster",
123
+ "tiles": [
124
+ "http://a.example.com/wms?bbox={bbox-epsg-3857}&format=image/png&service=WMS&version=1.1.1&request=GetMap&srs=EPSG:3857&width=256&height=256&layers=example"
125
+ ],
126
+ "tileSize": 256
76
127
  }
77
128
  }
78
129
  },
79
130
  "sprite": {
80
131
  "type": "sprite",
81
- "doc": "An array of `{id: 'my-sprite', url: 'https://example.com/sprite'} objects. Each object should represent a unique URL to load a sprite from and and a unique ID to use as a prefix when referencing images from that sprite (i.e. 'my-sprite:image'). All the URLs are internally extended to load both .json and .png files. If the `id` field is equal to 'default', the prefix is omitted (just 'image' instead of 'default:image'). All the IDs and URLs must be unique. For backwards compatibility, instead of an array, one can also provide a single string that represent a URL to load the sprite from. The images in this case won't be prefixed.",
82
- "example": "https://api.maptiler.com/maps/openstreetmap/sprite"
132
+ "doc": "An array of `{id: 'my-sprite', url: 'https://example.com/sprite'}` objects. Each object should represent a unique URL to load a sprite from and and a unique ID to use as a prefix when referencing images from that sprite (i.e. 'my-sprite:image'). All the URLs are internally extended to load both .json and .png files. If the `id` field is equal to 'default', the prefix is omitted (just 'image' instead of 'default:image'). All the IDs and URLs must be unique. For backwards compatibility, instead of an array, one can also provide a single string that represent a URL to load the sprite from. The images in this case won't be prefixed.",
133
+ "example": "https://demotiles.maplibre.org/styles/osm-bright-gl-style/sprite"
83
134
  },
84
135
  "glyphs": {
85
136
  "type": "string",
86
- "doc": "A URL template for loading signed-distance-field glyph sets in PBF format. The URL must include `{fontstack}` and `{range}` tokens. This property is required if any layer uses the `text-field` layout property. The URL must be absolute, containing the [scheme, authority and path components](https://en.wikipedia.org/wiki/URL#Syntax).",
137
+ "doc": "A URL template for loading signed-distance-field glyph sets in PBF format. \n\nThe URL must include:\n\n - `{fontstack}` - When requesting glyphs, this token is replaced with a comma separated list of fonts from a font stack specified in the text-font property of a symbol layer. \n\n - `{range}` - When requesting glyphs, this token is replaced with a range of 256 Unicode code points. For example, to load glyphs for the Unicode Basic Latin and Basic Latin-1 Supplement blocks, the range would be 0-255. The actual ranges that are loaded are determined at runtime based on what text needs to be displayed.\n\nThis property is required if any layer uses the `text-field` layout property. The URL must be absolute, containing the [scheme, authority and path components](https://en.wikipedia.org/wiki/URL#Syntax).",
87
138
  "example": "https://demotiles.maplibre.org/font/{fontstack}/{range}.pbf"
88
139
  },
89
140
  "transition": {
@@ -98,15 +149,15 @@
98
149
  "required": true,
99
150
  "type": "array",
100
151
  "value": "layer",
101
- "doc": "Layers will be drawn in the order of this array.",
152
+ "doc": "A style's `layers` property lists all the layers available in that style. The type of layer is specified by the `type` property, and must be one of `background`, `fill`, `line`, `symbol`, `raster`, `circle`, `fill-extrusion`, `heatmap`, `hillshade`.\n\nExcept for layers of the `background` type, each layer needs to refer to a source. Layers take the data that they get from a source, optionally filter features, and then define how those features are styled.",
102
153
  "example": [
103
154
  {
104
- "id": "water",
105
- "source": "mapbox-streets",
106
- "source-layer": "water",
107
- "type": "fill",
155
+ "id": "coastline",
156
+ "source": "maplibre",
157
+ "source-layer": "countries",
158
+ "type": "line",
108
159
  "paint": {
109
- "fill-color": "#00ffff"
160
+ "line-color": "#198EC8"
110
161
  }
111
162
  }
112
163
  ]
@@ -156,7 +207,7 @@
156
207
  180,
157
208
  85.051129
158
209
  ],
159
- "doc": "An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by MapLibre GL."
210
+ "doc": "An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by MapLibre."
160
211
  },
161
212
  "scheme": {
162
213
  "type": "enum",
@@ -196,7 +247,8 @@
196
247
  "sdk-support": {
197
248
  "basic functionality": {
198
249
  "android": "9.3.0",
199
- "ios": "5.10.0"
250
+ "ios": "5.10.0",
251
+ "js": "wontfix"
200
252
  }
201
253
  }
202
254
  },
@@ -235,7 +287,7 @@
235
287
  180,
236
288
  85.051129
237
289
  ],
238
- "doc": "An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by MapLibre GL."
290
+ "doc": "An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by MapLibre."
239
291
  },
240
292
  "minzoom": {
241
293
  "type": "number",
@@ -277,7 +329,8 @@
277
329
  "sdk-support": {
278
330
  "basic functionality": {
279
331
  "android": "9.3.0",
280
- "ios": "5.10.0"
332
+ "ios": "5.10.0",
333
+ "js": "wontfix"
281
334
  }
282
335
  }
283
336
  },
@@ -316,7 +369,7 @@
316
369
  180,
317
370
  85.051129
318
371
  ],
319
- "doc": "An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by MapLibre GL."
372
+ "doc": "An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by MapLibre."
320
373
  },
321
374
  "minzoom": {
322
375
  "type": "number",
@@ -346,11 +399,74 @@
346
399
  },
347
400
  "mapbox": {
348
401
  "doc": "Mapbox Terrain RGB tiles. See https://www.mapbox.com/help/access-elevation-data/#mapbox-terrain-rgb for more info."
402
+ },
403
+ "custom": {
404
+ "doc": "Decodes tiles using the redFactor, blueFactor, greenFactor, baseShift parameters."
349
405
  }
350
406
  },
351
407
  "default": "mapbox",
352
- "doc": "The encoding used by this source. Mapbox Terrain RGB is used by default"
408
+ "doc": "The encoding used by this source. Mapbox Terrain RGB is used by default.",
409
+ "sdk-support": {
410
+ "mapbox, terrarium": {
411
+ "js": "0.43.0",
412
+ "ios": "6.0.0",
413
+ "android": "6.0.0"
414
+ },
415
+ "custom": {
416
+ "js": "3.4.0",
417
+ "ios": "https://github.com/maplibre/maplibre-native/issues/2783",
418
+ "android": "https://github.com/maplibre/maplibre-native/issues/2783"
419
+ }
420
+ }
421
+ },
422
+ "redFactor": {
423
+ "type": "number",
424
+ "default": 1.0,
425
+ "doc": "Value that will be multiplied by the red channel value when decoding. Only used on custom encodings.",
426
+ "sdk-support": {
427
+ "basic functionality": {
428
+ "js": "3.4.0",
429
+ "ios": "https://github.com/maplibre/maplibre-native/issues/2783",
430
+ "android": "https://github.com/maplibre/maplibre-native/issues/2783"
431
+ }
432
+ }
353
433
  },
434
+ "blueFactor": {
435
+ "type": "number",
436
+ "default": 1.0,
437
+ "doc": "Value that will be multiplied by the blue channel value when decoding. Only used on custom encodings.",
438
+ "sdk-support": {
439
+ "basic functionality": {
440
+ "js": "3.4.0",
441
+ "ios": "https://github.com/maplibre/maplibre-native/issues/2783",
442
+ "android": "https://github.com/maplibre/maplibre-native/issues/2783"
443
+ }
444
+ }
445
+ },
446
+ "greenFactor": {
447
+ "type": "number",
448
+ "default": 1.0,
449
+ "doc": "Value that will be multiplied by the green channel value when decoding. Only used on custom encodings.",
450
+ "sdk-support": {
451
+ "basic functionality": {
452
+ "js": "3.4.0",
453
+ "ios": "https://github.com/maplibre/maplibre-native/issues/2358",
454
+ "android": "https://github.com/maplibre/maplibre-native/issues/2783"
455
+ }
456
+ }
457
+ },
458
+ "baseShift": {
459
+ "type": "number",
460
+ "default": 0.0,
461
+ "doc": "Value that will be added to the encoding mix when decoding. Only used on custom encodings.",
462
+ "sdk-support": {
463
+ "basic functionality": {
464
+ "js": "3.4.0",
465
+ "ios": "https://github.com/maplibre/maplibre-native/issues/2783",
466
+ "android": "https://github.com/maplibre/maplibre-native/issues/2783"
467
+ }
468
+ }
469
+ },
354
470
  "volatile": {
355
471
  "type": "boolean",
356
472
  "default": false,
@@ -358,7 +474,8 @@
358
474
  "sdk-support": {
359
475
  "basic functionality": {
360
476
  "android": "9.3.0",
361
- "ios": "5.10.0"
477
+ "ios": "5.10.0",
478
+ "js": "wontfix"
362
479
  }
363
480
  }
364
481
  },
@@ -411,7 +528,7 @@
411
528
  "cluster": {
412
529
  "type": "boolean",
413
530
  "default": false,
414
- "doc": "If the data is a collection of point features, setting this to true clusters the points by radius into groups. Cluster groups become new `Point` features in the source with additional properties:\n * `cluster` Is `true` if the point is a cluster \n * `cluster_id` A unqiue id for the cluster to be used in conjunction with the [cluster inspection methods](https://www.mapbox.com/mapbox-gl-js/api/#geojsonsource#getclusterexpansionzoom)\n * `point_count` Number of original points grouped into this cluster\n * `point_count_abbreviated` An abbreviated point count"
531
+ "doc": "If the data is a collection of point features, setting this to true clusters the points by radius into groups. Cluster groups become new `Point` features in the source with additional properties:\n\n * `cluster` Is `true` if the point is a cluster \n\n * `cluster_id` A unique id for the cluster to be used in conjunction with the [cluster inspection methods](https://maplibre.org/maplibre-gl-js/docs/API/classes/GeoJSONSource/#getclusterexpansionzoom)\n\n * `point_count` Number of original points grouped into this cluster\n\n * `point_count_abbreviated` An abbreviated point count"
415
532
  },
416
533
  "clusterRadius": {
417
534
  "type": "number",
@@ -429,7 +546,7 @@
429
546
  },
430
547
  "clusterProperties": {
431
548
  "type": "*",
432
- "doc": "An object defining custom properties on the generated clusters if clustering is enabled, aggregating values from clustered points. Has the form `{\"property_name\": [operator, map_expression]}`. `operator` is any expression function that accepts at least 2 operands (e.g. `\"+\"` or `\"max\"`) — it accumulates the property value from clusters/points the cluster contains; `map_expression` produces the value of a single point.\n\nExample: `{\"sum\": [\"+\", [\"get\", \"scalerank\"]]}`.\n\nFor more advanced use cases, in place of `operator`, you can use a custom reduce expression that references a special `[\"accumulated\"]` value, e.g.:\n`{\"sum\": [[\"+\", [\"accumulated\"], [\"get\", \"sum\"]], [\"get\", \"scalerank\"]]}`"
549
+ "doc": "An object defining custom properties on the generated clusters if clustering is enabled, aggregating values from clustered points. Has the form `{\"property_name\": [operator, map_expression]}`. `operator` is any expression function that accepts at least 2 operands (e.g. `\"+\"` or `\"max\"`) — it accumulates the property value from clusters/points the cluster contains; `map_expression` produces the value of a single point.\n\nExample: `{\"sum\": [\"+\", [\"get\", \"scalerank\"]]}`.\n\nFor more advanced use cases, in place of `operator`, you can use a custom reduce expression that references a special `[\"accumulated\"]` value, e.g.:\n\n`{\"sum\": [[\"+\", [\"accumulated\"], [\"get\", \"sum\"]], [\"get\", \"scalerank\"]]}`"
433
550
  },
434
551
  "lineMetrics": {
435
552
  "type": "boolean",
@@ -520,8 +637,7 @@
520
637
  "basic functionality": {
521
638
  "js": "0.10.0",
522
639
  "android": "2.0.1",
523
- "ios": "2.0.0",
524
- "macos": "0.1.0"
640
+ "ios": "2.0.0"
525
641
  }
526
642
  }
527
643
  },
@@ -531,8 +647,7 @@
531
647
  "basic functionality": {
532
648
  "js": "0.10.0",
533
649
  "android": "2.0.1",
534
- "ios": "2.0.0",
535
- "macos": "0.1.0"
650
+ "ios": "2.0.0"
536
651
  }
537
652
  }
538
653
  },
@@ -542,8 +657,7 @@
542
657
  "basic functionality": {
543
658
  "js": "0.10.0",
544
659
  "android": "2.0.1",
545
- "ios": "2.0.0",
546
- "macos": "0.1.0"
660
+ "ios": "2.0.0"
547
661
  }
548
662
  }
549
663
  },
@@ -553,8 +667,7 @@
553
667
  "basic functionality": {
554
668
  "js": "0.10.0",
555
669
  "android": "2.0.1",
556
- "ios": "2.0.0",
557
- "macos": "0.1.0"
670
+ "ios": "2.0.0"
558
671
  }
559
672
  }
560
673
  },
@@ -564,8 +677,7 @@
564
677
  "basic functionality": {
565
678
  "js": "0.41.0",
566
679
  "android": "6.0.0",
567
- "ios": "4.0.0",
568
- "macos": "0.7.0"
680
+ "ios": "4.0.0"
569
681
  }
570
682
  }
571
683
  },
@@ -575,8 +687,7 @@
575
687
  "basic functionality": {
576
688
  "js": "0.27.0",
577
689
  "android": "5.1.0",
578
- "ios": "3.6.0",
579
- "macos": "0.5.0"
690
+ "ios": "3.6.0"
580
691
  }
581
692
  }
582
693
  },
@@ -586,19 +697,17 @@
586
697
  "basic functionality": {
587
698
  "js": "0.10.0",
588
699
  "android": "2.0.1",
589
- "ios": "2.0.0",
590
- "macos": "0.1.0"
700
+ "ios": "2.0.0"
591
701
  }
592
702
  }
593
703
  },
594
704
  "hillshade": {
595
- "doc": "Client-side hillshading visualization based on DEM data. Currently, the implementation only supports Mapbox Terrain RGB and Mapzen Terrarium tiles.",
705
+ "doc": "Client-side hillshading visualization based on DEM data. The implementation supports Mapbox Terrain RGB, Mapzen Terrarium tiles and custom encodings.",
596
706
  "sdk-support": {
597
707
  "basic functionality": {
598
708
  "js": "0.43.0",
599
709
  "android": "6.0.0",
600
- "ios": "4.0.0",
601
- "macos": "0.7.0"
710
+ "ios": "4.0.0"
602
711
  }
603
712
  }
604
713
  },
@@ -608,8 +717,7 @@
608
717
  "basic functionality": {
609
718
  "js": "0.10.0",
610
719
  "android": "2.0.1",
611
- "ios": "2.0.0",
612
- "macos": "0.1.0"
720
+ "ios": "2.0.0"
613
721
  }
614
722
  }
615
723
  }
@@ -619,7 +727,10 @@
619
727
  },
620
728
  "metadata": {
621
729
  "type": "*",
622
- "doc": "Arbitrary properties useful to track with the layer, but do not influence rendering. Properties should be prefixed to avoid collisions, like 'mapbox:'."
730
+ "doc": "Arbitrary properties useful to track with the layer, but do not influence rendering. Properties should be prefixed to avoid collisions, like 'maplibre:'.",
731
+ "example": {
732
+ "source:comment": "Hydrology FCCODE 460 - Narrow wash"
733
+ }
623
734
  },
624
735
  "source": {
625
736
  "type": "string",
@@ -682,8 +793,7 @@
682
793
  "basic functionality": {
683
794
  "js": "0.10.0",
684
795
  "android": "2.0.1",
685
- "ios": "2.0.0",
686
- "macos": "0.1.0"
796
+ "ios": "2.0.0"
687
797
  }
688
798
  },
689
799
  "property-type": "constant"
@@ -697,14 +807,12 @@
697
807
  "basic functionality": {
698
808
  "js": "1.2.0",
699
809
  "android": "9.1.0",
700
- "ios": "5.8.0",
701
- "macos": "0.15.0"
810
+ "ios": "5.8.0"
702
811
  },
703
812
  "data-driven styling": {
704
813
  "js": "1.2.0",
705
814
  "android": "9.1.0",
706
- "ios": "5.8.0",
707
- "macos": "0.15.0"
815
+ "ios": "5.8.0"
708
816
  }
709
817
  },
710
818
  "expression": {
@@ -732,8 +840,7 @@
732
840
  "basic functionality": {
733
841
  "js": "0.10.0",
734
842
  "android": "2.0.1",
735
- "ios": "2.0.0",
736
- "macos": "0.1.0"
843
+ "ios": "2.0.0"
737
844
  }
738
845
  },
739
846
  "property-type": "constant"
@@ -747,14 +854,12 @@
747
854
  "basic functionality": {
748
855
  "js": "1.2.0",
749
856
  "android": "9.2.0",
750
- "ios": "5.9.0",
751
- "macos": "0.16.0"
857
+ "ios": "5.9.0"
752
858
  },
753
859
  "data-driven styling": {
754
860
  "js": "1.2.0",
755
861
  "android": "9.2.0",
756
- "ios": "5.9.0",
757
- "macos": "0.16.0"
862
+ "ios": "5.9.0"
758
863
  }
759
864
  },
760
865
  "expression": {
@@ -782,8 +887,7 @@
782
887
  "basic functionality": {
783
888
  "js": "0.10.0",
784
889
  "android": "2.0.1",
785
- "ios": "2.0.0",
786
- "macos": "0.1.0"
890
+ "ios": "2.0.0"
787
891
  }
788
892
  },
789
893
  "property-type": "constant"
@@ -806,8 +910,7 @@
806
910
  "basic functionality": {
807
911
  "js": "0.41.0",
808
912
  "android": "6.0.0",
809
- "ios": "4.0.0",
810
- "macos": "0.7.0"
913
+ "ios": "4.0.0"
811
914
  }
812
915
  },
813
916
  "property-type": "constant"
@@ -830,8 +933,7 @@
830
933
  "basic functionality": {
831
934
  "js": "0.27.0",
832
935
  "android": "5.1.0",
833
- "ios": "3.6.0",
834
- "macos": "0.5.0"
936
+ "ios": "3.6.0"
835
937
  }
836
938
  },
837
939
  "property-type": "constant"
@@ -857,8 +959,7 @@
857
959
  "basic functionality": {
858
960
  "js": "0.10.0",
859
961
  "android": "2.0.1",
860
- "ios": "2.0.0",
861
- "macos": "0.1.0"
962
+ "ios": "2.0.0"
862
963
  }
863
964
  },
864
965
  "expression": {
@@ -888,14 +989,12 @@
888
989
  "basic functionality": {
889
990
  "js": "0.10.0",
890
991
  "android": "2.0.1",
891
- "ios": "2.0.0",
892
- "macos": "0.1.0"
992
+ "ios": "2.0.0"
893
993
  },
894
994
  "data-driven styling": {
895
995
  "js": "0.40.0",
896
996
  "android": "5.2.0",
897
- "ios": "3.7.0",
898
- "macos": "0.6.0"
997
+ "ios": "3.7.0"
899
998
  }
900
999
  },
901
1000
  "expression": {
@@ -920,8 +1019,7 @@
920
1019
  "basic functionality": {
921
1020
  "js": "0.10.0",
922
1021
  "android": "2.0.1",
923
- "ios": "2.0.0",
924
- "macos": "0.1.0"
1022
+ "ios": "2.0.0"
925
1023
  }
926
1024
  },
927
1025
  "expression": {
@@ -945,8 +1043,7 @@
945
1043
  "basic functionality": {
946
1044
  "js": "0.10.0",
947
1045
  "android": "2.0.1",
948
- "ios": "2.0.0",
949
- "macos": "0.1.0"
1046
+ "ios": "2.0.0"
950
1047
  }
951
1048
  },
952
1049
  "expression": {
@@ -964,14 +1061,12 @@
964
1061
  "basic functionality": {
965
1062
  "js": "1.2.0",
966
1063
  "android": "9.1.0",
967
- "ios": "5.8.0",
968
- "macos": "0.15.0"
1064
+ "ios": "5.8.0"
969
1065
  },
970
1066
  "data-driven styling": {
971
1067
  "js": "1.2.0",
972
1068
  "android": "9.1.0",
973
- "ios": "5.8.0",
974
- "macos": "0.15.0"
1069
+ "ios": "5.8.0"
975
1070
  }
976
1071
  },
977
1072
  "expression": {
@@ -999,8 +1094,7 @@
999
1094
  "basic functionality": {
1000
1095
  "js": "0.10.0",
1001
1096
  "android": "2.0.1",
1002
- "ios": "2.0.0",
1003
- "macos": "0.1.0"
1097
+ "ios": "2.0.0"
1004
1098
  }
1005
1099
  },
1006
1100
  "property-type": "constant"
@@ -1026,14 +1120,12 @@
1026
1120
  "basic functionality": {
1027
1121
  "js": "0.10.0",
1028
1122
  "android": "2.0.1",
1029
- "ios": "2.0.0",
1030
- "macos": "0.1.0"
1123
+ "ios": "2.0.0"
1031
1124
  },
1032
1125
  "`line-center` value": {
1033
1126
  "js": "0.47.0",
1034
1127
  "android": "6.4.0",
1035
- "ios": "4.3.0",
1036
- "macos": "0.10.0"
1128
+ "ios": "4.3.0"
1037
1129
  }
1038
1130
  },
1039
1131
  "expression": {
@@ -1059,8 +1151,7 @@
1059
1151
  "basic functionality": {
1060
1152
  "js": "0.10.0",
1061
1153
  "android": "2.0.1",
1062
- "ios": "2.0.0",
1063
- "macos": "0.1.0"
1154
+ "ios": "2.0.0"
1064
1155
  }
1065
1156
  },
1066
1157
  "expression": {
@@ -1079,8 +1170,7 @@
1079
1170
  "basic functionality": {
1080
1171
  "js": "0.10.0",
1081
1172
  "android": "2.0.1",
1082
- "ios": "2.0.0",
1083
- "macos": "0.1.0"
1173
+ "ios": "2.0.0"
1084
1174
  }
1085
1175
  },
1086
1176
  "expression": {
@@ -1098,14 +1188,12 @@
1098
1188
  "basic functionality": {
1099
1189
  "js": "0.53.0",
1100
1190
  "android": "7.4.0",
1101
- "ios": "4.11.0",
1102
- "macos": "0.14.0"
1191
+ "ios": "4.11.0"
1103
1192
  },
1104
1193
  "data-driven styling": {
1105
1194
  "js": "0.53.0",
1106
1195
  "android": "7.4.0",
1107
- "ios": "4.11.0",
1108
- "macos": "0.14.0"
1196
+ "ios": "4.11.0"
1109
1197
  }
1110
1198
  },
1111
1199
  "expression": {
@@ -1136,8 +1224,7 @@
1136
1224
  "basic functionality": {
1137
1225
  "js": "0.49.0",
1138
1226
  "android": "6.6.0",
1139
- "ios": "4.5.0",
1140
- "macos": "0.12.0"
1227
+ "ios": "4.5.0"
1141
1228
  }
1142
1229
  },
1143
1230
  "expression": {
@@ -1162,8 +1249,7 @@
1162
1249
  "basic functionality": {
1163
1250
  "js": "0.10.0",
1164
1251
  "android": "2.0.1",
1165
- "ios": "2.0.0",
1166
- "macos": "0.1.0"
1252
+ "ios": "2.0.0"
1167
1253
  }
1168
1254
  },
1169
1255
  "expression": {
@@ -1193,7 +1279,9 @@
1193
1279
  ],
1194
1280
  "sdk-support": {
1195
1281
  "basic functionality": {
1196
- "js": "2.1.0"
1282
+ "js": "2.1.0",
1283
+ "android": "https://github.com/maplibre/maplibre-native/issues/251",
1284
+ "ios": "https://github.com/maplibre/maplibre-native/issues/251"
1197
1285
  }
1198
1286
  },
1199
1287
  "expression": {
@@ -1215,8 +1303,7 @@
1215
1303
  "basic functionality": {
1216
1304
  "js": "0.10.0",
1217
1305
  "android": "2.0.1",
1218
- "ios": "2.0.0",
1219
- "macos": "0.1.0"
1306
+ "ios": "2.0.0"
1220
1307
  }
1221
1308
  },
1222
1309
  "expression": {
@@ -1239,8 +1326,7 @@
1239
1326
  "basic functionality": {
1240
1327
  "js": "0.10.0",
1241
1328
  "android": "2.0.1",
1242
- "ios": "2.0.0",
1243
- "macos": "0.1.0"
1329
+ "ios": "2.0.0"
1244
1330
  }
1245
1331
  },
1246
1332
  "expression": {
@@ -1273,14 +1359,12 @@
1273
1359
  "basic functionality": {
1274
1360
  "js": "0.10.0",
1275
1361
  "android": "2.0.1",
1276
- "ios": "2.0.0",
1277
- "macos": "0.1.0"
1362
+ "ios": "2.0.0"
1278
1363
  },
1279
1364
  "`auto` value": {
1280
1365
  "js": "0.25.0",
1281
1366
  "android": "4.2.0",
1282
- "ios": "3.4.0",
1283
- "macos": "0.3.0"
1367
+ "ios": "3.4.0"
1284
1368
  }
1285
1369
  },
1286
1370
  "expression": {
@@ -1304,14 +1388,12 @@
1304
1388
  "basic functionality": {
1305
1389
  "js": "0.10.0",
1306
1390
  "android": "2.0.1",
1307
- "ios": "2.0.0",
1308
- "macos": "0.1.0"
1391
+ "ios": "2.0.0"
1309
1392
  },
1310
1393
  "data-driven styling": {
1311
1394
  "js": "0.35.0",
1312
1395
  "android": "5.1.0",
1313
- "ios": "3.6.0",
1314
- "macos": "0.5.0"
1396
+ "ios": "3.6.0"
1315
1397
  }
1316
1398
  },
1317
1399
  "expression": {
@@ -1349,14 +1431,12 @@
1349
1431
  "basic functionality": {
1350
1432
  "js": "0.21.0",
1351
1433
  "android": "4.2.0",
1352
- "ios": "3.4.0",
1353
- "macos": "0.2.1"
1434
+ "ios": "3.4.0"
1354
1435
  },
1355
1436
  "stretchable icons": {
1356
1437
  "js": "1.6.0",
1357
1438
  "android": "9.2.0",
1358
- "ios": "5.8.0",
1359
- "macos": "0.15.0"
1439
+ "ios": "5.8.0"
1360
1440
  }
1361
1441
  },
1362
1442
  "expression": {
@@ -1394,8 +1474,7 @@
1394
1474
  "basic functionality": {
1395
1475
  "js": "0.21.0",
1396
1476
  "android": "4.2.0",
1397
- "ios": "3.4.0",
1398
- "macos": "0.2.1"
1477
+ "ios": "3.4.0"
1399
1478
  }
1400
1479
  },
1401
1480
  "expression": {
@@ -1414,14 +1493,12 @@
1414
1493
  "basic functionality": {
1415
1494
  "js": "0.10.0",
1416
1495
  "android": "2.0.1",
1417
- "ios": "2.0.0",
1418
- "macos": "0.1.0"
1496
+ "ios": "2.0.0"
1419
1497
  },
1420
1498
  "data-driven styling": {
1421
1499
  "js": "0.35.0",
1422
1500
  "android": "5.1.0",
1423
- "ios": "3.6.0",
1424
- "macos": "0.5.0"
1501
+ "ios": "3.6.0"
1425
1502
  }
1426
1503
  },
1427
1504
  "expression": {
@@ -1446,14 +1523,12 @@
1446
1523
  "basic functionality": {
1447
1524
  "js": "0.10.0",
1448
1525
  "android": "2.0.1",
1449
- "ios": "2.0.0",
1450
- "macos": "0.1.0"
1526
+ "ios": "2.0.0"
1451
1527
  },
1452
1528
  "data-driven styling": {
1453
1529
  "js": "0.21.0",
1454
1530
  "android": "5.0.0",
1455
- "ios": "3.5.0",
1456
- "macos": "0.4.0"
1531
+ "ios": "3.5.0"
1457
1532
  }
1458
1533
  },
1459
1534
  "expression": {
@@ -1466,10 +1541,10 @@
1466
1541
  "property-type": "data-driven"
1467
1542
  },
1468
1543
  "icon-padding": {
1469
- "type": "number",
1470
- "default":2,
1544
+ "type": "padding",
1545
+ "default": [2],
1471
1546
  "units": "pixels",
1472
- "doc": "Size of additional area round the icon bounding box used for detecting symbol collisions. Values are declared using CSS margin shorthand syntax: a single value applies to all four sides; two values apply to [top/bottom, left/right]; three values apply to [top, left/right, bottom]; four values apply to [top, right, bottom, left]. For backwards compatibility, a single bare number is accepted, and treated the same as a one-element array - padding applied to all sides.",
1547
+ "doc": "Size of additional area round the icon bounding box used for detecting symbol collisions.",
1473
1548
  "requires": [
1474
1549
  "icon-image"
1475
1550
  ],
@@ -1477,11 +1552,12 @@
1477
1552
  "basic functionality": {
1478
1553
  "js": "0.10.0",
1479
1554
  "android": "2.0.1",
1480
- "ios": "2.0.0",
1481
- "macos": "0.1.0"
1555
+ "ios": "2.0.0"
1482
1556
  },
1483
1557
  "data-driven styling": {
1484
- "js": "2.2.0"
1558
+ "js": "2.2.0",
1559
+ "android": "https://github.com/maplibre/maplibre-native/issues/2754",
1560
+ "ios": "https://github.com/maplibre/maplibre-native/issues/2754"
1485
1561
  }
1486
1562
  },
1487
1563
  "expression": {
@@ -1513,8 +1589,7 @@
1513
1589
  "basic functionality": {
1514
1590
  "js": "0.10.0",
1515
1591
  "android": "2.0.1",
1516
- "ios": "2.0.0",
1517
- "macos": "0.1.0"
1592
+ "ios": "2.0.0"
1518
1593
  }
1519
1594
  },
1520
1595
  "expression": {
@@ -1541,14 +1616,12 @@
1541
1616
  "basic functionality": {
1542
1617
  "js": "0.10.0",
1543
1618
  "android": "2.0.1",
1544
- "ios": "2.0.0",
1545
- "macos": "0.1.0"
1619
+ "ios": "2.0.0"
1546
1620
  },
1547
1621
  "data-driven styling": {
1548
1622
  "js": "0.29.0",
1549
1623
  "android": "5.0.0",
1550
- "ios": "3.5.0",
1551
- "macos": "0.4.0"
1624
+ "ios": "3.5.0"
1552
1625
  }
1553
1626
  },
1554
1627
  "expression": {
@@ -1600,14 +1673,12 @@
1600
1673
  "basic functionality": {
1601
1674
  "js": "0.40.0",
1602
1675
  "android": "5.2.0",
1603
- "ios": "3.7.0",
1604
- "macos": "0.6.0"
1676
+ "ios": "3.7.0"
1605
1677
  },
1606
1678
  "data-driven styling": {
1607
1679
  "js": "0.40.0",
1608
1680
  "android": "5.2.0",
1609
- "ios": "3.7.0",
1610
- "macos": "0.6.0"
1681
+ "ios": "3.7.0"
1611
1682
  }
1612
1683
  },
1613
1684
  "expression": {
@@ -1641,8 +1712,7 @@
1641
1712
  "basic functionality": {
1642
1713
  "js": "0.39.0",
1643
1714
  "android": "5.2.0",
1644
- "ios": "3.7.0",
1645
- "macos": "0.6.0"
1715
+ "ios": "3.7.0"
1646
1716
  }
1647
1717
  },
1648
1718
  "expression": {
@@ -1675,14 +1745,12 @@
1675
1745
  "basic functionality": {
1676
1746
  "js": "0.21.0",
1677
1747
  "android": "4.2.0",
1678
- "ios": "3.4.0",
1679
- "macos": "0.2.1"
1748
+ "ios": "3.4.0"
1680
1749
  },
1681
1750
  "`auto` value": {
1682
1751
  "js": "0.25.0",
1683
1752
  "android": "4.2.0",
1684
- "ios": "3.4.0",
1685
- "macos": "0.3.0"
1753
+ "ios": "3.4.0"
1686
1754
  }
1687
1755
  },
1688
1756
  "expression": {
@@ -1718,17 +1786,17 @@
1718
1786
  "basic functionality": {
1719
1787
  "js": "0.10.0",
1720
1788
  "android": "2.0.1",
1721
- "ios": "2.0.0",
1722
- "macos": "0.1.0"
1789
+ "ios": "2.0.0"
1723
1790
  },
1724
1791
  "`auto` value": {
1725
1792
  "js": "0.25.0",
1726
1793
  "android": "4.2.0",
1727
- "ios": "3.4.0",
1728
- "macos": "0.3.0"
1794
+ "ios": "3.4.0"
1729
1795
  },
1730
1796
  "`viewport-glyph` value": {
1731
- "js": "2.1.8"
1797
+ "js": "2.1.8",
1798
+ "android": "https://github.com/maplibre/maplibre-native/issues/250",
1799
+ "ios": "https://github.com/maplibre/maplibre-native/issues/250"
1732
1800
  }
1733
1801
  },
1734
1802
  "expression": {
@@ -1748,14 +1816,12 @@
1748
1816
  "basic functionality": {
1749
1817
  "js": "0.10.0",
1750
1818
  "android": "2.0.1",
1751
- "ios": "2.0.0",
1752
- "macos": "0.1.0"
1819
+ "ios": "2.0.0"
1753
1820
  },
1754
1821
  "data-driven styling": {
1755
1822
  "js": "0.33.0",
1756
1823
  "android": "5.0.0",
1757
- "ios": "3.5.0",
1758
- "macos": "0.4.0"
1824
+ "ios": "3.5.0"
1759
1825
  }
1760
1826
  },
1761
1827
  "expression": {
@@ -1782,14 +1848,12 @@
1782
1848
  "basic functionality": {
1783
1849
  "js": "0.10.0",
1784
1850
  "android": "2.0.1",
1785
- "ios": "2.0.0",
1786
- "macos": "0.1.0"
1851
+ "ios": "2.0.0"
1787
1852
  },
1788
1853
  "data-driven styling": {
1789
1854
  "js": "0.43.0",
1790
1855
  "android": "6.0.0",
1791
- "ios": "4.0.0",
1792
- "macos": "0.7.0"
1856
+ "ios": "4.0.0"
1793
1857
  }
1794
1858
  },
1795
1859
  "expression": {
@@ -1814,14 +1878,12 @@
1814
1878
  "basic functionality": {
1815
1879
  "js": "0.10.0",
1816
1880
  "android": "2.0.1",
1817
- "ios": "2.0.0",
1818
- "macos": "0.1.0"
1881
+ "ios": "2.0.0"
1819
1882
  },
1820
1883
  "data-driven styling": {
1821
1884
  "js": "0.35.0",
1822
1885
  "android": "5.1.0",
1823
- "ios": "3.6.0",
1824
- "macos": "0.5.0"
1886
+ "ios": "3.6.0"
1825
1887
  }
1826
1888
  },
1827
1889
  "expression": {
@@ -1846,14 +1908,12 @@
1846
1908
  "basic functionality": {
1847
1909
  "js": "0.10.0",
1848
1910
  "android": "2.0.1",
1849
- "ios": "2.0.0",
1850
- "macos": "0.1.0"
1911
+ "ios": "2.0.0"
1851
1912
  },
1852
1913
  "data-driven styling": {
1853
1914
  "js": "0.40.0",
1854
1915
  "android": "5.2.0",
1855
- "ios": "3.7.0",
1856
- "macos": "0.6.0"
1916
+ "ios": "3.7.0"
1857
1917
  }
1858
1918
  },
1859
1919
  "expression": {
@@ -1877,8 +1937,7 @@
1877
1937
  "basic functionality": {
1878
1938
  "js": "0.10.0",
1879
1939
  "android": "2.0.1",
1880
- "ios": "2.0.0",
1881
- "macos": "0.1.0"
1940
+ "ios": "2.0.0"
1882
1941
  }
1883
1942
  },
1884
1943
  "expression": {
@@ -1901,14 +1960,12 @@
1901
1960
  "basic functionality": {
1902
1961
  "js": "0.10.0",
1903
1962
  "android": "2.0.1",
1904
- "ios": "2.0.0",
1905
- "macos": "0.1.0"
1963
+ "ios": "2.0.0"
1906
1964
  },
1907
1965
  "data-driven styling": {
1908
1966
  "js": "0.40.0",
1909
1967
  "android": "5.2.0",
1910
- "ios": "3.7.0",
1911
- "macos": "0.6.0"
1968
+ "ios": "3.7.0"
1912
1969
  }
1913
1970
  },
1914
1971
  "expression": {
@@ -1945,20 +2002,17 @@
1945
2002
  "basic functionality": {
1946
2003
  "js": "0.10.0",
1947
2004
  "android": "2.0.1",
1948
- "ios": "2.0.0",
1949
- "macos": "0.1.0"
2005
+ "ios": "2.0.0"
1950
2006
  },
1951
2007
  "data-driven styling": {
1952
2008
  "js": "0.39.0",
1953
2009
  "android": "5.2.0",
1954
- "ios": "3.7.0",
1955
- "macos": "0.6.0"
2010
+ "ios": "3.7.0"
1956
2011
  },
1957
2012
  "auto": {
1958
2013
  "js": "0.54.0",
1959
2014
  "android": "7.4.0",
1960
- "ios": "4.10.0",
1961
- "macos": "0.14.0"
2015
+ "ios": "4.10.0"
1962
2016
  }
1963
2017
  },
1964
2018
  "expression": {
@@ -1979,14 +2033,12 @@
1979
2033
  "basic functionality": {
1980
2034
  "js": "0.54.0",
1981
2035
  "android": "7.4.0",
1982
- "ios": "4.10.0",
1983
- "macos": "0.14.0"
2036
+ "ios": "4.10.0"
1984
2037
  },
1985
2038
  "data-driven styling": {
1986
2039
  "js": "0.54.0",
1987
2040
  "android": "7.4.0",
1988
- "ios": "4.10.0",
1989
- "macos": "0.14.0"
2041
+ "ios": "4.10.0"
1990
2042
  }
1991
2043
  },
1992
2044
  "requires": [
@@ -2046,8 +2098,7 @@
2046
2098
  "basic functionality": {
2047
2099
  "js": "0.54.0",
2048
2100
  "android": "7.4.0",
2049
- "ios": "4.10.0",
2050
- "macos": "0.14.0"
2101
+ "ios": "4.10.0"
2051
2102
  }
2052
2103
  },
2053
2104
  "expression": {
@@ -2058,6 +2109,38 @@
2058
2109
  },
2059
2110
  "property-type": "data-constant"
2060
2111
  },
2112
+ "text-variable-anchor-offset": {
2113
+ "type": "variableAnchorOffsetCollection",
2114
+ "requires": [
2115
+ "text-field",
2116
+ {
2117
+ "symbol-placement": [
2118
+ "point"
2119
+ ]
2120
+ }
2121
+ ],
2122
+ "doc": "To increase the chance of placing high-priority labels on the map, you can provide an array of `text-anchor` locations, each paired with an offset value. The renderer will attempt to place the label at each location, in order, before moving on to the next location+offset. Use `text-justify: auto` to choose justification based on anchor position. \n\n The length of the array must be even, and must alternate between enum and point entries. i.e., each anchor location must be accompanied by a point, and that point defines the offset when the corresponding anchor location is used. Positive offset values indicate right and down, while negative values indicate left and up. Anchor locations may repeat, allowing the renderer to try multiple offsets to try and place a label using the same anchor. \n\n When present, this property takes precedence over `text-anchor`, `text-variable-anchor`, `text-offset`, and `text-radial-offset`. \n\n ```json \n\n { \"text-variable-anchor-offset\": [\"top\", [0, 4], \"left\", [3,0], \"bottom\", [1, 1]] } \n\n ``` \n\n When the renderer chooses the `top` anchor, `[0, 4]` will be used for `text-offset`; the text will be shifted down by 4 ems. \n\n When the renderer chooses the `left` anchor, `[3, 0]` will be used for `text-offset`; the text will be shifted right by 3 ems.",
2123
+ "sdk-support": {
2124
+ "basic functionality": {
2125
+ "js": "3.3.0",
2126
+ "ios": "https://github.com/maplibre/maplibre-native/issues/2358",
2127
+ "android": "https://github.com/maplibre/maplibre-native/issues/2358"
2128
+ },
2129
+ "data-driven styling": {
2130
+ "js": "3.3.0",
2131
+ "ios": "https://github.com/maplibre/maplibre-native/issues/2358",
2132
+ "android": "https://github.com/maplibre/maplibre-native/issues/2358"
2133
+ }
2134
+ },
2135
+ "expression": {
2136
+ "interpolated": true,
2137
+ "parameters": [
2138
+ "zoom",
2139
+ "feature"
2140
+ ]
2141
+ },
2142
+ "property-type": "data-driven"
2143
+ },
2061
2144
  "text-anchor": {
2062
2145
  "type": "enum",
2063
2146
  "values": {
@@ -2101,14 +2184,12 @@
2101
2184
  "basic functionality": {
2102
2185
  "js": "0.10.0",
2103
2186
  "android": "2.0.1",
2104
- "ios": "2.0.0",
2105
- "macos": "0.1.0"
2187
+ "ios": "2.0.0"
2106
2188
  },
2107
2189
  "data-driven styling": {
2108
2190
  "js": "0.39.0",
2109
2191
  "android": "5.2.0",
2110
- "ios": "3.7.0",
2111
- "macos": "0.6.0"
2192
+ "ios": "3.7.0"
2112
2193
  }
2113
2194
  },
2114
2195
  "expression": {
@@ -2138,8 +2219,7 @@
2138
2219
  "basic functionality": {
2139
2220
  "js": "0.10.0",
2140
2221
  "android": "2.0.1",
2141
- "ios": "2.0.0",
2142
- "macos": "0.1.0"
2222
+ "ios": "2.0.0"
2143
2223
  }
2144
2224
  },
2145
2225
  "expression": {
@@ -2174,8 +2254,7 @@
2174
2254
  "basic functionality": {
2175
2255
  "js": "1.3.0",
2176
2256
  "android": "8.3.0",
2177
- "ios": "5.3.0",
2178
- "macos": "0.15.0"
2257
+ "ios": "5.3.0"
2179
2258
  }
2180
2259
  },
2181
2260
  "expression": {
@@ -2199,14 +2278,12 @@
2199
2278
  "basic functionality": {
2200
2279
  "js": "0.10.0",
2201
2280
  "android": "2.0.1",
2202
- "ios": "2.0.0",
2203
- "macos": "0.1.0"
2281
+ "ios": "2.0.0"
2204
2282
  },
2205
2283
  "data-driven styling": {
2206
2284
  "js": "0.35.0",
2207
2285
  "android": "5.1.0",
2208
- "ios": "3.6.0",
2209
- "macos": "0.5.0"
2286
+ "ios": "3.6.0"
2210
2287
  }
2211
2288
  },
2212
2289
  "expression": {
@@ -2231,8 +2308,7 @@
2231
2308
  "basic functionality": {
2232
2309
  "js": "0.10.0",
2233
2310
  "android": "2.0.1",
2234
- "ios": "2.0.0",
2235
- "macos": "0.1.0"
2311
+ "ios": "2.0.0"
2236
2312
  }
2237
2313
  },
2238
2314
  "expression": {
@@ -2263,8 +2339,7 @@
2263
2339
  "basic functionality": {
2264
2340
  "js": "0.10.0",
2265
2341
  "android": "2.0.1",
2266
- "ios": "2.0.0",
2267
- "macos": "0.1.0"
2342
+ "ios": "2.0.0"
2268
2343
  }
2269
2344
  },
2270
2345
  "expression": {
@@ -2297,14 +2372,12 @@
2297
2372
  "basic functionality": {
2298
2373
  "js": "0.10.0",
2299
2374
  "android": "2.0.1",
2300
- "ios": "2.0.0",
2301
- "macos": "0.1.0"
2375
+ "ios": "2.0.0"
2302
2376
  },
2303
2377
  "data-driven styling": {
2304
2378
  "js": "0.33.0",
2305
2379
  "android": "5.0.0",
2306
- "ios": "3.5.0",
2307
- "macos": "0.4.0"
2380
+ "ios": "3.5.0"
2308
2381
  }
2309
2382
  },
2310
2383
  "expression": {
@@ -2336,14 +2409,12 @@
2336
2409
  "basic functionality": {
2337
2410
  "js": "0.10.0",
2338
2411
  "android": "2.0.1",
2339
- "ios": "2.0.0",
2340
- "macos": "0.1.0"
2412
+ "ios": "2.0.0"
2341
2413
  },
2342
2414
  "data-driven styling": {
2343
2415
  "js": "0.35.0",
2344
2416
  "android": "5.1.0",
2345
- "ios": "3.6.0",
2346
- "macos": "0.5.0"
2417
+ "ios": "3.6.0"
2347
2418
  }
2348
2419
  },
2349
2420
  "expression": {
@@ -2369,8 +2440,7 @@
2369
2440
  "basic functionality": {
2370
2441
  "js": "0.10.0",
2371
2442
  "android": "2.0.1",
2372
- "ios": "2.0.0",
2373
- "macos": "0.1.0"
2443
+ "ios": "2.0.0"
2374
2444
  }
2375
2445
  },
2376
2446
  "expression": {
@@ -2400,7 +2470,9 @@
2400
2470
  ],
2401
2471
  "sdk-support": {
2402
2472
  "basic functionality": {
2403
- "js": "2.1.0"
2473
+ "js": "2.1.0",
2474
+ "android": "https://github.com/maplibre/maplibre-native/issues/251",
2475
+ "ios": "https://github.com/maplibre/maplibre-native/issues/251"
2404
2476
  }
2405
2477
  },
2406
2478
  "expression": {
@@ -2422,8 +2494,7 @@
2422
2494
  "basic functionality": {
2423
2495
  "js": "0.10.0",
2424
2496
  "android": "2.0.1",
2425
- "ios": "2.0.0",
2426
- "macos": "0.1.0"
2497
+ "ios": "2.0.0"
2427
2498
  }
2428
2499
  },
2429
2500
  "expression": {
@@ -2446,8 +2517,7 @@
2446
2517
  "basic functionality": {
2447
2518
  "js": "0.10.0",
2448
2519
  "android": "2.0.1",
2449
- "ios": "2.0.0",
2450
- "macos": "0.1.0"
2520
+ "ios": "2.0.0"
2451
2521
  }
2452
2522
  },
2453
2523
  "expression": {
@@ -2474,8 +2544,7 @@
2474
2544
  "basic functionality": {
2475
2545
  "js": "0.10.0",
2476
2546
  "android": "2.0.1",
2477
- "ios": "2.0.0",
2478
- "macos": "0.1.0"
2547
+ "ios": "2.0.0"
2479
2548
  }
2480
2549
  },
2481
2550
  "property-type": "constant"
@@ -2498,8 +2567,7 @@
2498
2567
  "basic functionality": {
2499
2568
  "js": "0.10.0",
2500
2569
  "android": "2.0.1",
2501
- "ios": "2.0.0",
2502
- "macos": "0.1.0"
2570
+ "ios": "2.0.0"
2503
2571
  }
2504
2572
  },
2505
2573
  "property-type": "constant"
@@ -2522,8 +2590,7 @@
2522
2590
  "basic functionality": {
2523
2591
  "js": "0.43.0",
2524
2592
  "android": "6.0.0",
2525
- "ios": "4.0.0",
2526
- "macos": "0.7.0"
2593
+ "ios": "4.0.0"
2527
2594
  }
2528
2595
  },
2529
2596
  "property-type": "constant"
@@ -2575,9 +2642,6 @@
2575
2642
  },
2576
2643
  "!has": {
2577
2644
  "doc": "`[\"!has\", key]` `feature[key]` does not exist"
2578
- },
2579
- "within": {
2580
- "doc": "`[\"within\", object]` feature geometry is within object geometry"
2581
2645
  }
2582
2646
  },
2583
2647
  "doc": "The filter operator."
@@ -2656,7 +2720,7 @@
2656
2720
  "default": {
2657
2721
  "type": "*",
2658
2722
  "required": false,
2659
- "doc": "A value to serve as a fallback function result when a value isn't otherwise available. It is used in the following circumstances:\n* In categorical functions, when the feature value does not match any of the stop domain values.\n* In property and zoom-and-property functions, when a feature does not contain a value for the specified property.\n* In identity functions, when the feature value is not valid for the style property (for example, if the function is being used for a `circle-color` property but the feature property value is not a string or not a valid color).\n* In interval or exponential property and zoom-and-property functions, when the feature value is not numeric.\nIf no default is provided, the style property's default is used in these circumstances."
2723
+ "doc": "A value to serve as a fallback function result when a value isn't otherwise available. It is used in the following circumstances:\n\n* In categorical functions, when the feature value does not match any of the stop domain values.\n\n* In property and zoom-and-property functions, when a feature does not contain a value for the specified property.\n\n* In identity functions, when the feature value is not valid for the style property (for example, if the function is being used for a `circle-color` property but the feature property value is not a string or not a valid color).\n\n* In interval or exponential property and zoom-and-property functions, when the feature value is not numeric.\n\nIf no default is provided, the style property's default is used in these circumstances."
2660
2724
  }
2661
2725
  },
2662
2726
  "function_stop": {
@@ -2681,1034 +2745,1549 @@
2681
2745
  "type": "enum",
2682
2746
  "values": {
2683
2747
  "let": {
2684
- "doc": "Binds expressions to named variables, which can then be referenced in the result expression using [\"var\", \"variable_name\"].",
2748
+ "doc": "Binds expressions to named variables, which can then be referenced in the result expression using `[\"var\", \"variable_name\"]`.\n\n - [Visualize population density](https://maplibre.org/maplibre-gl-js/docs/examples/visualize-population-density/)",
2749
+ "example": {
2750
+ "syntax": {
2751
+ "method": ["string", "value", "expression"],
2752
+ "result": "value"
2753
+ },
2754
+ "value": ["let", "someNumber", 500, ["interpolate", ["linear"], ["var", "someNumber"], 274, "#edf8e9", 1551, "#006d2c"]]
2755
+ },
2685
2756
  "group": "Variable binding",
2686
2757
  "sdk-support": {
2687
2758
  "basic functionality": {
2688
2759
  "js": "0.41.0",
2689
2760
  "android": "6.0.0",
2690
- "ios": "4.0.0",
2691
- "macos": "0.7.0"
2761
+ "ios": "4.0.0"
2692
2762
  }
2693
2763
  }
2694
2764
  },
2695
2765
  "var": {
2696
- "doc": "References variable bound using \"let\".",
2766
+ "doc": "References variable bound using `let`.\n\n - [Visualize population density](https://maplibre.org/maplibre-gl-js/docs/examples/visualize-population-density/)",
2767
+ "example": {
2768
+ "syntax": {
2769
+ "method": ["string"],
2770
+ "result": "value"
2771
+ },
2772
+ "value": ["var", "density"]
2773
+ },
2697
2774
  "group": "Variable binding",
2698
2775
  "sdk-support": {
2699
2776
  "basic functionality": {
2700
2777
  "js": "0.41.0",
2701
2778
  "android": "6.0.0",
2702
- "ios": "4.0.0",
2703
- "macos": "0.7.0"
2779
+ "ios": "4.0.0"
2704
2780
  }
2705
2781
  }
2706
2782
  },
2707
2783
  "literal": {
2708
- "doc": "Provides a literal array or object value.",
2784
+ "doc": "Provides a literal array or object value.\n\n - [Display and style rich text labels](https://maplibre.org/maplibre-gl-js/docs/examples/display-and-style-rich-text-labels/)",
2785
+ "example": {
2786
+ "syntax": {
2787
+ "method": ["JSON object or array"],
2788
+ "result": "array | object"
2789
+ },
2790
+ "value": ["literal",["DIN Offc Pro Italic", "Arial Unicode MS Regular"]]
2791
+ },
2709
2792
  "group": "Types",
2710
2793
  "sdk-support": {
2711
2794
  "basic functionality": {
2712
2795
  "js": "0.41.0",
2713
2796
  "android": "6.0.0",
2714
- "ios": "4.0.0",
2715
- "macos": "0.7.0"
2797
+ "ios": "4.0.0"
2716
2798
  }
2717
2799
  }
2718
2800
  },
2719
2801
  "array": {
2720
- "doc": "Asserts that the input is an array (optionally with a specific item type and length). If, when the input expression is evaluated, it is not of the asserted type, then this assertion will cause the whole expression to be aborted.",
2802
+ "doc": "Asserts that the input is an array (optionally with a specific item type and length). If, when the input expression is evaluated, it is not of the asserted type, then this assertion will cause the whole expression to be aborted.",
2803
+ "example": {
2804
+ "syntax": {
2805
+ "method": ["value", "string?", "number?"],
2806
+ "result": "array"
2807
+ },
2808
+ "value": ["array", ["literal", ["a", "b", "c"]], "string", 3]
2809
+ },
2721
2810
  "group": "Types",
2722
2811
  "sdk-support": {
2723
2812
  "basic functionality": {
2724
2813
  "js": "0.41.0",
2725
2814
  "android": "6.0.0",
2726
- "ios": "4.0.0",
2727
- "macos": "0.7.0"
2815
+ "ios": "4.0.0"
2728
2816
  }
2729
2817
  }
2730
2818
  },
2731
2819
  "at": {
2732
2820
  "doc": "Retrieves an item from an array.",
2821
+ "example": {
2822
+ "syntax": {
2823
+ "method": ["number", "value"],
2824
+ "result": "value"
2825
+ },
2826
+ "value": ["at", 1, ["literal", ["a", "b", "c"]]]
2827
+ },
2733
2828
  "group": "Lookup",
2734
2829
  "sdk-support": {
2735
2830
  "basic functionality": {
2736
2831
  "js": "0.41.0",
2737
2832
  "android": "6.0.0",
2738
- "ios": "4.0.0",
2739
- "macos": "0.7.0"
2833
+ "ios": "4.0.0"
2740
2834
  }
2741
2835
  }
2742
2836
  },
2743
2837
  "in": {
2744
- "doc": "Determines whether an item exists in an array or a substring exists in a string.",
2838
+ "doc": "Determines whether an item exists in an array or a substring exists in a string.\n\n - [Measure distances](https://maplibre.org/maplibre-gl-js/docs/examples/measure/)",
2839
+ "example": {
2840
+ "syntax": {
2841
+ "method": ["value", "value"],
2842
+ "result": "boolean"
2843
+ },
2844
+ "value": ["in", "$type", "Point"]
2845
+ },
2745
2846
  "group": "Lookup",
2746
2847
  "sdk-support": {
2747
2848
  "basic functionality": {
2748
2849
  "js": "1.6.0",
2749
2850
  "android": "9.1.0",
2750
- "ios": "5.8.0",
2751
- "macos": "0.15.0"
2851
+ "ios": "5.8.0"
2752
2852
  }
2753
2853
  }
2754
2854
  },
2755
2855
  "index-of": {
2756
- "doc": "Returns the first position at which an item can be found in an array or a substring can be found in a string, or `-1` if the input cannot be found. Accepts an optional index from where to begin the search.",
2856
+ "doc": "Returns the first position at which an item can be found in an array or a substring can be found in a string, or `-1` if the input cannot be found. Accepts an optional index from where to begin the search. In a string, a UTF-16 surrogate pair counts as a single position.",
2857
+ "example": {
2858
+ "syntax": {
2859
+ "method": ["value", "value", "number?"],
2860
+ "result": "number"
2861
+ },
2862
+ "value": ["index-of", "foo", ["baz", "bar", "hello", "foo", "world"]]
2863
+ },
2757
2864
  "group": "Lookup",
2758
2865
  "sdk-support": {
2759
2866
  "basic functionality": {
2760
- "js": "1.10.0"
2867
+ "js": "1.10.0",
2868
+ "android": "10.3.0",
2869
+ "ios": "6.0.0"
2761
2870
  }
2762
2871
  }
2763
2872
  },
2764
2873
  "slice": {
2765
- "doc": "Returns an item from an array or a substring from a string from a specified start index, or between a start index and an end index if set. The return value is inclusive of the start index but not of the end index.",
2874
+ "doc": "Returns an item from an array or a substring from a string from a specified start index, or between a start index and an end index if set. The return value is inclusive of the start index but not of the end index. In a string, a UTF-16 surrogate pair counts as a single position.",
2875
+ "example": {
2876
+ "syntax": {
2877
+ "method": ["value", "number", "number?"],
2878
+ "result": "value"
2879
+ },
2880
+ "value": ["slice", ["get", "name"], 0, 3]
2881
+ },
2766
2882
  "group": "Lookup",
2767
2883
  "sdk-support": {
2768
2884
  "basic functionality": {
2769
- "js": "1.10.0"
2885
+ "js": "1.10.0",
2886
+ "android": "10.3.0",
2887
+ "ios": "6.0.0"
2770
2888
  }
2771
2889
  }
2772
2890
  },
2773
2891
  "case": {
2774
- "doc": "Selects the first output whose corresponding test condition evaluates to true, or the fallback value otherwise.",
2892
+ "doc": "Selects the first output whose corresponding test condition evaluates to true, or the fallback value otherwise.\n\n - [Create a hover effect](https://maplibre.org/maplibre-gl-js/docs/examples/hover-styles/)\n\n - [Display HTML clusters with custom properties](https://maplibre.org/maplibre-gl-js/docs/examples/cluster-html/)",
2893
+ "example": {
2894
+ "syntax": {
2895
+ "method": ["value", "value", "...", "fallback: value"],
2896
+ "result": "value"
2897
+ },
2898
+ "value": ["case", ["boolean", ["feature-state", "hover"], false], 1, 0.5 ]
2899
+ },
2775
2900
  "group": "Decision",
2776
2901
  "sdk-support": {
2777
2902
  "basic functionality": {
2778
2903
  "js": "0.41.0",
2779
2904
  "android": "6.0.0",
2780
- "ios": "4.0.0",
2781
- "macos": "0.7.0"
2905
+ "ios": "4.0.0"
2782
2906
  }
2783
2907
  }
2784
2908
  },
2785
2909
  "match": {
2786
- "doc": "Selects the output whose label value matches the input value, or the fallback value if no match is found. The input can be any expression (e.g. `[\"get\", \"building_type\"]`). Each label must be either:\n - a single literal value; or\n - an array of literal values, whose values must be all strings or all numbers (e.g. `[100, 101]` or `[\"c\", \"b\"]`). The input matches if any of the values in the array matches, similar to the `\"in\"` operator.\nEach label must be unique. If the input type does not match the type of the labels, the result will be the fallback value.",
2910
+ "doc": "Selects the output whose label value matches the input value, or the fallback value if no match is found. The input can be any expression (e.g. `[\"get\", \"building_type\"]`). Each label must be either:\n\n - a single literal value; or\n\n - an array of literal values, whose values must be all strings or all numbers (e.g. `[100, 101]` or `[\"c\", \"b\"]`). The input matches if any of the values in the array matches, similar to the `\"in\"` operator.\n\nEach label must be unique. If the input type does not match the type of the labels, the result will be the fallback value.",
2911
+ "example": {
2912
+ "syntax": {
2913
+ "method": ["value", "value", "...", "fallback: value"],
2914
+ "result": "value"
2915
+ },
2916
+ "value": ["match", ["get", "building_type"], "residential", "#f00", "commercial", "#0f0", "#000"]
2917
+ },
2787
2918
  "group": "Decision",
2788
2919
  "sdk-support": {
2789
2920
  "basic functionality": {
2790
2921
  "js": "0.41.0",
2791
2922
  "android": "6.0.0",
2792
- "ios": "4.0.0",
2793
- "macos": "0.7.0"
2923
+ "ios": "4.0.0"
2794
2924
  }
2795
2925
  }
2796
2926
  },
2797
2927
  "coalesce": {
2798
- "doc": "Evaluates each expression in turn until the first non-null value is obtained, and returns that value.",
2928
+ "doc": "Evaluates each expression in turn until the first non-null value is obtained, and returns that value.\n\n - [Use a fallback image](https://maplibre.org/maplibre-gl-js/docs/examples/fallback-image/)",
2929
+ "example": {
2930
+ "syntax": {
2931
+ "method": ["coalesce", "value", "fallback"],
2932
+ "result": "value"
2933
+ },
2934
+ "value": ["coalesce", ["image", ["concat", ["get", "icon"], "_15"]], ["image", "marker_15"] ]
2935
+ },
2799
2936
  "group": "Decision",
2800
2937
  "sdk-support": {
2801
2938
  "basic functionality": {
2802
2939
  "js": "0.41.0",
2803
2940
  "android": "6.0.0",
2804
- "ios": "4.0.0",
2805
- "macos": "0.7.0"
2941
+ "ios": "4.0.0"
2806
2942
  }
2807
2943
  }
2808
2944
  },
2809
2945
  "step": {
2810
- "doc": "Produces discrete, stepped results by evaluating a piecewise-constant function defined by pairs of input and output values (\"stops\"). The `input` may be any numeric expression (e.g., `[\"get\", \"population\"]`). Stop inputs must be numeric literals in strictly ascending order. Returns the output value of the stop just less than the input, or the first output if the input is less than the first stop.",
2946
+ "doc": "Produces discrete, stepped results by evaluating a piecewise-constant function defined by pairs of input and output values (\"stops\"). The `input` may be any numeric expression (e.g., `[\"get\", \"population\"]`). Stop inputs must be numeric literals in strictly ascending order. Returns the output value of the stop just less than the input, or the first output if the input is less than the first stop.\n\n - [Create and style clusters](https://maplibre.org/maplibre-gl-js/docs/examples/cluster/)",
2947
+ "example": {
2948
+ "syntax": {
2949
+ "method": ["step", "number", "number", "number", "..."],
2950
+ "result": "number"
2951
+ },
2952
+ "value": [ "step", ["get", "point_count"], 20, 100, 30, 750, 40]
2953
+ },
2811
2954
  "group": "Ramps, scales, curves",
2812
2955
  "sdk-support": {
2813
2956
  "basic functionality": {
2814
2957
  "js": "0.42.0",
2815
2958
  "android": "6.0.0",
2816
- "ios": "4.0.0",
2817
- "macos": "0.7.0"
2959
+ "ios": "4.0.0"
2818
2960
  }
2819
2961
  }
2820
2962
  },
2821
2963
  "interpolate": {
2822
- "doc": "Produces continuous, smooth results by interpolating between pairs of input and output values (\"stops\"). The `input` may be any numeric expression (e.g., `[\"get\", \"population\"]`). Stop inputs must be numeric literals in strictly ascending order. The output type must be `number`, `array<number>`, or `color`.\n\nInterpolation types:\n- `[\"linear\"]`, or an expression returning one of those types: Interpolates linearly between the pair of stops just less than and just greater than the input.\n- `[\"exponential\", base]`: Interpolates exponentially between the stops just less than and just greater than the input. `base` controls the rate at which the output increases: higher values make the output increase more towards the high end of the range. With values close to 1 the output increases linearly.\n- `[\"cubic-bezier\", x1, y1, x2, y2]`: Interpolates using the cubic bezier curve defined by the given control points.",
2964
+ "doc": "Produces continuous, smooth results by interpolating between pairs of input and output values (\"stops\"). The `input` may be any numeric expression (e.g., `[\"get\", \"population\"]`). Stop inputs must be numeric literals in strictly ascending order. The output type must be `number`, `array<number>`, or `color`.\n\nInterpolation types:\n\n- `[\"linear\"]`, or an expression returning one of those types: Interpolates linearly between the pair of stops just less than and just greater than the input.\n\n- `[\"exponential\", base]`: Interpolates exponentially between the stops just less than and just greater than the input. `base` controls the rate at which the output increases: higher values make the output increase more towards the high end of the range. With values close to 1 the output increases linearly.\n\n- `[\"cubic-bezier\", x1, y1, x2, y2]`: Interpolates using the cubic bezier curve defined by the given control points.\n\n - [Animate map camera around a point](https://maplibre.org/maplibre-gl-js/docs/examples/animate-camera-around-point/)\n\n - [Change building color based on zoom level](https://maplibre.org/maplibre-gl-js/docs/examples/change-building-color-based-on-zoom-level/)\n\n - [Create a heatmap layer](https://maplibre.org/maplibre-gl-js/docs/examples/heatmap-layer/)\n\n - [Visualize population density](https://maplibre.org/maplibre-gl-js/docs/examples/visualize-population-density/)",
2965
+ "example": {
2966
+ "syntax": {
2967
+ "method": ["[\"linear\"] | [\"exponential\", base] | [\"cubic-bezier\", x1, y1, x2, y2]", "number", "number", "number", "..."],
2968
+ "result": "number | array<number> | color"
2969
+ },
2970
+ "value": ["interpolate", ["linear"], ["zoom"], 15, 0, 15.05, ["get", "height"]]
2971
+ },
2823
2972
  "group": "Ramps, scales, curves",
2824
2973
  "sdk-support": {
2825
2974
  "basic functionality": {
2826
2975
  "js": "0.42.0",
2827
2976
  "android": "6.0.0",
2828
- "ios": "4.0.0",
2829
- "macos": "0.7.0"
2977
+ "ios": "4.0.0"
2830
2978
  }
2831
2979
  }
2832
2980
  },
2833
2981
  "interpolate-hcl": {
2834
2982
  "doc": "Produces continuous, smooth results by interpolating between pairs of input and output values (\"stops\"). Works like `interpolate`, but the output type must be `color`, and the interpolation is performed in the Hue-Chroma-Luminance color space.",
2983
+ "example": {
2984
+ "syntax": {
2985
+ "method": ["[\"linear\"] | [\"exponential\", base] | [\"cubic-bezier\", x1, y1, x2, y2]", "number", "number", "number", "..."],
2986
+ "result": "color"
2987
+ },
2988
+ "value": ["interpolate-hcl", ["linear"], ["zoom"], 15, "#f00", 15.05, "#00f"]
2989
+ },
2835
2990
  "group": "Ramps, scales, curves",
2836
2991
  "sdk-support": {
2837
2992
  "basic functionality": {
2838
- "js": "0.49.0"
2993
+ "js": "0.49.0",
2994
+ "ios": "https://github.com/maplibre/maplibre-native/issues/2784",
2995
+ "android": "https://github.com/maplibre/maplibre-native/issues/2784"
2839
2996
  }
2840
2997
  }
2841
2998
  },
2842
2999
  "interpolate-lab": {
2843
3000
  "doc": "Produces continuous, smooth results by interpolating between pairs of input and output values (\"stops\"). Works like `interpolate`, but the output type must be `color`, and the interpolation is performed in the CIELAB color space.",
3001
+ "example": {
3002
+ "syntax": {
3003
+ "method": ["[\"linear\"] | [\"exponential\", base] | [\"cubic-bezier\", x1, y1, x2, y2]", "number", "number", "number", "..."],
3004
+ "result": "color"
3005
+ },
3006
+ "value": ["interpolate-lab", ["linear"], ["zoom"], 15, "#f00", 15.05, "#00f"]
3007
+ },
2844
3008
  "group": "Ramps, scales, curves",
2845
3009
  "sdk-support": {
2846
3010
  "basic functionality": {
2847
- "js": "0.49.0"
3011
+ "js": "0.49.0",
3012
+ "ios": "https://github.com/maplibre/maplibre-native/issues/2784",
3013
+ "android": "https://github.com/maplibre/maplibre-native/issues/2784"
2848
3014
  }
2849
3015
  }
2850
3016
  },
2851
3017
  "ln2": {
2852
3018
  "doc": "Returns mathematical constant ln(2).",
3019
+ "example": {
3020
+ "syntax": {
3021
+ "method": [],
3022
+ "result": "number"
3023
+ },
3024
+ "value": ["ln2"]
3025
+ },
2853
3026
  "group": "Math",
2854
3027
  "sdk-support": {
2855
3028
  "basic functionality": {
2856
3029
  "js": "0.41.0",
2857
3030
  "android": "6.0.0",
2858
- "ios": "4.0.0",
2859
- "macos": "0.7.0"
3031
+ "ios": "4.0.0"
2860
3032
  }
2861
3033
  }
2862
3034
  },
2863
3035
  "pi": {
2864
3036
  "doc": "Returns the mathematical constant pi.",
3037
+ "example": {
3038
+ "syntax": {
3039
+ "method": [],
3040
+ "result": "number"
3041
+ },
3042
+ "value": ["pi"]
3043
+ },
2865
3044
  "group": "Math",
2866
3045
  "sdk-support": {
2867
3046
  "basic functionality": {
2868
3047
  "js": "0.41.0",
2869
3048
  "android": "6.0.0",
2870
- "ios": "4.0.0",
2871
- "macos": "0.7.0"
3049
+ "ios": "4.0.0"
2872
3050
  }
2873
3051
  }
2874
3052
  },
2875
3053
  "e": {
2876
3054
  "doc": "Returns the mathematical constant e.",
3055
+ "example": {
3056
+ "syntax": {
3057
+ "method": [],
3058
+ "result": "number"
3059
+ },
3060
+ "value": ["e"]
3061
+ },
2877
3062
  "group": "Math",
2878
3063
  "sdk-support": {
2879
3064
  "basic functionality": {
2880
3065
  "js": "0.41.0",
2881
3066
  "android": "6.0.0",
2882
- "ios": "4.0.0",
2883
- "macos": "0.7.0"
3067
+ "ios": "4.0.0"
2884
3068
  }
2885
3069
  }
2886
3070
  },
2887
3071
  "typeof": {
2888
3072
  "doc": "Returns a string describing the type of the given value.",
3073
+ "example": {
3074
+ "syntax": {
3075
+ "method": ["value"],
3076
+ "result": "string"
3077
+ },
3078
+ "value": ["typeof", ["get", "name"]]
3079
+ },
2889
3080
  "group": "Types",
2890
3081
  "sdk-support": {
2891
3082
  "basic functionality": {
2892
3083
  "js": "0.41.0",
2893
3084
  "android": "6.0.0",
2894
- "ios": "4.0.0",
2895
- "macos": "0.7.0"
3085
+ "ios": "4.0.0"
2896
3086
  }
2897
3087
  }
2898
3088
  },
2899
3089
  "string": {
2900
3090
  "doc": "Asserts that the input value is a string. If multiple values are provided, each one is evaluated in order until a string is obtained. If none of the inputs are strings, the expression is an error.",
3091
+ "example": {
3092
+ "syntax": {
3093
+ "method": ["value", "fallback: value", "fallback: value", "..."],
3094
+ "result": "string"
3095
+ },
3096
+ "value": ["string", ["get", "name"]]
3097
+ },
2901
3098
  "group": "Types",
2902
3099
  "sdk-support": {
2903
3100
  "basic functionality": {
2904
3101
  "js": "0.41.0",
2905
3102
  "android": "6.0.0",
2906
- "ios": "4.0.0",
2907
- "macos": "0.7.0"
3103
+ "ios": "4.0.0"
2908
3104
  }
2909
3105
  }
2910
3106
  },
2911
3107
  "number": {
2912
3108
  "doc": "Asserts that the input value is a number. If multiple values are provided, each one is evaluated in order until a number is obtained. If none of the inputs are numbers, the expression is an error.",
3109
+ "example": {
3110
+ "syntax": {
3111
+ "method": ["value", "fallback: value", "fallback: value", "..."],
3112
+ "result": "number"
3113
+ },
3114
+ "value": ["number", ["get", "population"]]
3115
+ },
2913
3116
  "group": "Types",
2914
3117
  "sdk-support": {
2915
3118
  "basic functionality": {
2916
3119
  "js": "0.41.0",
2917
3120
  "android": "6.0.0",
2918
- "ios": "4.0.0",
2919
- "macos": "0.7.0"
3121
+ "ios": "4.0.0"
2920
3122
  }
2921
3123
  }
2922
3124
  },
2923
3125
  "boolean": {
2924
- "doc": "Asserts that the input value is a boolean. If multiple values are provided, each one is evaluated in order until a boolean is obtained. If none of the inputs are booleans, the expression is an error.",
3126
+ "doc": "Asserts that the input value is a boolean. If multiple values are provided, each one is evaluated in order until a boolean is obtained. If none of the inputs are booleans, the expression is an error.\n\n - [Create a hover effect](https://maplibre.org/maplibre-gl-js/docs/examples/hover-styles/)",
3127
+ "example": {
3128
+ "syntax": {
3129
+ "method": ["value", "fallback: value", "fallback: value", "..."],
3130
+ "result": "boolean"
3131
+ },
3132
+ "value": ["boolean", ["feature-state", "hover"], false]
3133
+ },
2925
3134
  "group": "Types",
2926
3135
  "sdk-support": {
2927
3136
  "basic functionality": {
2928
3137
  "js": "0.41.0",
2929
3138
  "android": "6.0.0",
2930
- "ios": "4.0.0",
2931
- "macos": "0.7.0"
3139
+ "ios": "4.0.0"
2932
3140
  }
2933
3141
  }
2934
3142
  },
2935
3143
  "object": {
2936
3144
  "doc": "Asserts that the input value is an object. If multiple values are provided, each one is evaluated in order until an object is obtained. If none of the inputs are objects, the expression is an error.",
3145
+ "example": {
3146
+ "syntax": {
3147
+ "method": ["value", "fallback: value", "fallback: value", "..."],
3148
+ "result": "object"
3149
+ },
3150
+ "value": ["object", ["get", "some-property"]]
3151
+ },
2937
3152
  "group": "Types",
2938
3153
  "sdk-support": {
2939
3154
  "basic functionality": {
2940
3155
  "js": "0.41.0",
2941
3156
  "android": "6.0.0",
2942
- "ios": "4.0.0",
2943
- "macos": "0.7.0"
3157
+ "ios": "4.0.0"
2944
3158
  }
2945
3159
  }
2946
3160
  },
2947
3161
  "collator": {
2948
3162
  "doc": "Returns a `collator` for use in locale-dependent comparison operations. The `case-sensitive` and `diacritic-sensitive` options default to `false`. The `locale` argument specifies the IETF language tag of the locale to use. If none is provided, the default locale is used. If the requested locale is not available, the `collator` will use a system-defined fallback locale. Use `resolved-locale` to test the results of locale fallback behavior.",
3163
+ "example": {
3164
+ "syntax": {
3165
+ "method": ["collator", "{ \"case-sensitive\": boolean, \"diacritic-sensitive\": boolean, \"locale\": string }"],
3166
+ "result": "collator"
3167
+ },
3168
+ "value": ["collator", {"case-sensitive": true, "diacritic-sensitive": true, "locale": "fr"}]
3169
+ },
2949
3170
  "group": "Types",
2950
3171
  "sdk-support": {
2951
3172
  "basic functionality": {
2952
3173
  "js": "0.45.0",
2953
3174
  "android": "6.5.0",
2954
- "ios": "4.2.0",
2955
- "macos": "0.9.0"
3175
+ "ios": "4.2.0"
2956
3176
  }
2957
3177
  }
2958
3178
  },
2959
3179
  "format": {
2960
- "doc": "Returns a `formatted` string for displaying mixed-format text in the `text-field` property. The input may contain a string literal or expression, including an [`'image'`](#types-image) expression. Strings may be followed by a style override object that supports the following properties:\n- `\"text-font\"`: Overrides the font stack specified by the root layout property.\n- `\"text-color\"`: Overrides the color specified by the root paint property.\n- `\"font-scale\"`: Applies a scaling factor on `text-size` as specified by the root layout property.",
3180
+ "doc": "Returns a `formatted` string for displaying mixed-format text in the `text-field` property. The input may contain a string literal or expression, including an [`'image'`](#image) expression. Strings may be followed by a style override object that supports the following properties:\n\n- `\"text-font\"`: Overrides the font stack specified by the root layout property.\n\n- `\"text-color\"`: Overrides the color specified by the root paint property.\n\n- `\"font-scale\"`: Applies a scaling factor on `text-size` as specified by the root layout property.\n\n - [Change the case of labels](https://maplibre.org/maplibre-gl-js/docs/examples/change-case-of-labels/)\n\n - [Display and style rich text labels](https://maplibre.org/maplibre-gl-js/docs/examples/display-and-style-rich-text-labels/)",
3181
+ "example": {
3182
+ "syntax": {
3183
+ "method": ["value", "{ \"text-font\": string, \"text-color\": color, \"font-scale\": number }", "..."],
3184
+ "result": "formatted"
3185
+ },
3186
+ "value": ["format", ["upcase", ["get", "FacilityName"]], {"font-scale": 0.8}, "\n\n", {}, ["downcase", ["get", "Comments"]], {"font-scale": 0.6}]
3187
+ },
2961
3188
  "group": "Types",
2962
3189
  "sdk-support": {
2963
3190
  "basic functionality": {
2964
3191
  "js": "0.48.0",
2965
3192
  "android": "6.7.0",
2966
- "ios": "4.6.0",
2967
- "macos": "0.12.0"
3193
+ "ios": "4.6.0"
2968
3194
  },
2969
3195
  "text-font": {
2970
3196
  "js": "0.48.0",
2971
3197
  "android": "6.7.0",
2972
- "ios": "4.6.0",
2973
- "macos": "0.12.0"
3198
+ "ios": "4.6.0"
2974
3199
  },
2975
3200
  "font-scale": {
2976
3201
  "js": "0.48.0",
2977
3202
  "android": "6.7.0",
2978
- "ios": "4.6.0",
2979
- "macos": "0.12.0"
3203
+ "ios": "4.6.0"
2980
3204
  },
2981
3205
  "text-color": {
2982
3206
  "js": "1.3.0",
2983
3207
  "android": "7.3.0",
2984
- "ios": "4.10.0",
2985
- "macos": "0.14.0"
3208
+ "ios": "4.10.0"
2986
3209
  },
2987
3210
  "image": {
2988
3211
  "js": "1.6.0",
2989
3212
  "android": "8.6.0",
2990
- "ios": "5.7.0",
2991
- "macos": "0.15.0"
3213
+ "ios": "5.7.0"
2992
3214
  }
2993
3215
  }
2994
3216
  },
2995
3217
  "image": {
2996
- "doc": "Returns an `image` type for use in `icon-image`, `*-pattern` entries and as a section in the `format` expression. If set, the `image` argument will check that the requested image exists in the style and will return either the resolved image name or `null`, depending on whether or not the image is currently in the style. This validation process is synchronous and requires the image to have been added to the style before requesting it in the `image` argument.",
3218
+ "doc": "Returns an `image` type for use in `icon-image`, `*-pattern` entries and as a section in the `format` expression. If set, the `image` argument will check that the requested image exists in the style and will return either the resolved image name or `null`, depending on whether or not the image is currently in the style. This validation process is synchronous and requires the image to have been added to the style before requesting it in the `image` argument.\n\n - [Use a fallback image](https://maplibre.org/maplibre-gl-js/docs/examples/fallback-image/)",
3219
+ "example": {
3220
+ "syntax": {
3221
+ "method": ["value"],
3222
+ "result": "image"
3223
+ },
3224
+ "value": ["image", "marker_15"]
3225
+ },
2997
3226
  "group": "Types",
2998
3227
  "sdk-support": {
2999
3228
  "basic functionality": {
3000
3229
  "js": "1.4.0",
3001
3230
  "android": "8.6.0",
3002
- "ios": "5.7.0",
3003
- "macos": "0.15.0"
3231
+ "ios": "5.7.0"
3004
3232
  }
3005
3233
  }
3006
3234
  },
3007
3235
  "number-format": {
3008
- "doc": "Converts the input number into a string representation using the providing formatting rules. If set, the `locale` argument specifies the locale to use, as a BCP 47 language tag. If set, the `currency` argument specifies an ISO 4217 code to use for currency-style formatting. If set, the `min-fraction-digits` and `max-fraction-digits` arguments specify the minimum and maximum number of fractional digits to include.",
3236
+ "doc": "Converts the input number into a string representation using the providing formatting rules. If set, the `locale` argument specifies the locale to use, as a BCP 47 language tag. If set, the `currency` argument specifies an ISO 4217 code to use for currency-style formatting. If set, the `min-fraction-digits` and `max-fraction-digits` arguments specify the minimum and maximum number of fractional digits to include.\n\n - [Display HTML clusters with custom properties](https://maplibre.org/maplibre-gl-js/docs/examples/cluster-html/)",
3237
+ "example": {
3238
+ "syntax": {
3239
+ "method": ["number", "{ \"locale\": string, \"currency\": string, \"min-fraction-digits\": number, \"max-fraction-digits\": number }"],
3240
+ "result": "string"
3241
+ },
3242
+ "value": ["number-format", ["get", "mag"], {"min-fraction-digits": 1, "max-fraction-digits": 1}]
3243
+ },
3009
3244
  "group": "Types",
3010
3245
  "sdk-support": {
3011
3246
  "basic functionality": {
3012
- "js": "0.54.0"
3247
+ "js": "0.54.0",
3248
+ "android": "8.4.0",
3249
+ "ios": "supported"
3013
3250
  }
3014
3251
  }
3015
3252
  },
3016
3253
  "to-string": {
3017
- "doc": "Converts the input value to a string. If the input is `null`, the result is `\"\"`. If the input is a boolean, the result is `\"true\"` or `\"false\"`. If the input is a number, it is converted to a string as specified by the [\"NumberToString\" algorithm](https://tc39.github.io/ecma262/#sec-tostring-applied-to-the-number-type) of the ECMAScript Language Specification. If the input is a color, it is converted to a string of the form `\"rgba(r,g,b,a)\"`, where `r`, `g`, and `b` are numerals ranging from 0 to 255, and `a` ranges from 0 to 1. Otherwise, the input is converted to a string in the format specified by the [`JSON.stringify`](https://tc39.github.io/ecma262/#sec-json.stringify) function of the ECMAScript Language Specification.",
3254
+ "doc": "Converts the input value to a string. If the input is `null`, the result is `\"\"`. If the input is a boolean, the result is `\"true\"` or `\"false\"`. If the input is a number, it is converted to a string as specified by the [\"NumberToString\" algorithm](https://tc39.github.io/ecma262/#sec-tostring-applied-to-the-number-type) of the ECMAScript Language Specification. If the input is a color, it is converted to a string of the form `\"rgba(r,g,b,a)\"`, where `r`, `g`, and `b` are numerals ranging from 0 to 255, and `a` ranges from 0 to 1. Otherwise, the input is converted to a string in the format specified by the [`JSON.stringify`](https://tc39.github.io/ecma262/#sec-json.stringify) function of the ECMAScript Language Specification.\n\n - [Create a time slider](https://maplibre.org/maplibre-gl-js/docs/examples/timeline-animation/)",
3255
+ "example": {
3256
+ "syntax": {
3257
+ "method": ["value"],
3258
+ "result": "string"
3259
+ },
3260
+ "value": ["to-string", ["get", "mag"]]
3261
+ },
3018
3262
  "group": "Types",
3019
3263
  "sdk-support": {
3020
3264
  "basic functionality": {
3021
3265
  "js": "0.41.0",
3022
3266
  "android": "6.0.0",
3023
- "ios": "4.0.0",
3024
- "macos": "0.7.0"
3267
+ "ios": "4.0.0"
3025
3268
  }
3026
3269
  }
3027
3270
  },
3028
3271
  "to-number": {
3029
3272
  "doc": "Converts the input value to a number, if possible. If the input is `null` or `false`, the result is 0. If the input is `true`, the result is 1. If the input is a string, it is converted to a number as specified by the [\"ToNumber Applied to the String Type\" algorithm](https://tc39.github.io/ecma262/#sec-tonumber-applied-to-the-string-type) of the ECMAScript Language Specification. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.",
3273
+ "example": {
3274
+ "syntax": {
3275
+ "method": ["value", "fallback: value", "fallback: value", "..."],
3276
+ "result": "number"
3277
+ },
3278
+ "value": ["to-number", "someProperty"]
3279
+ },
3030
3280
  "group": "Types",
3031
3281
  "sdk-support": {
3032
3282
  "basic functionality": {
3033
3283
  "js": "0.41.0",
3034
3284
  "android": "6.0.0",
3035
- "ios": "4.0.0",
3036
- "macos": "0.7.0"
3285
+ "ios": "4.0.0"
3037
3286
  }
3038
3287
  }
3039
3288
  },
3040
3289
  "to-boolean": {
3041
3290
  "doc": "Converts the input value to a boolean. The result is `false` when then input is an empty string, 0, `false`, `null`, or `NaN`; otherwise it is `true`.",
3291
+ "example": {
3292
+ "syntax": {
3293
+ "method": ["value"],
3294
+ "result": "boolean"
3295
+ },
3296
+ "value": ["to-boolean", "someProperty"]
3297
+ },
3042
3298
  "group": "Types",
3043
3299
  "sdk-support": {
3044
3300
  "basic functionality": {
3045
3301
  "js": "0.41.0",
3046
3302
  "android": "6.0.0",
3047
- "ios": "4.0.0",
3048
- "macos": "0.7.0"
3303
+ "ios": "4.0.0"
3049
3304
  }
3050
3305
  }
3051
3306
  },
3052
3307
  "to-rgba": {
3053
3308
  "doc": "Returns a four-element array containing the input color's red, green, blue, and alpha components, in that order.",
3309
+ "example": {
3310
+ "syntax": {
3311
+ "method": ["color"],
3312
+ "result": "array"
3313
+ },
3314
+ "value": ["to-rgba", "#ff0000"]
3315
+ },
3054
3316
  "group": "Color",
3055
3317
  "sdk-support": {
3056
3318
  "basic functionality": {
3057
3319
  "js": "0.41.0",
3058
3320
  "android": "6.0.0",
3059
- "ios": "4.0.0",
3060
- "macos": "0.7.0"
3321
+ "ios": "4.0.0"
3061
3322
  }
3062
3323
  }
3063
3324
  },
3064
3325
  "to-color": {
3065
- "doc": "Converts the input value to a color. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.",
3326
+ "doc": "Converts the input value to a color. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.\n\n - [Visualize population density](https://maplibre.org/maplibre-gl-js/docs/examples/visualize-population-density/)",
3327
+ "example": {
3328
+ "syntax": {
3329
+ "method": ["value", "fallback: value", "fallback: value", "..."],
3330
+ "result": "color"
3331
+ },
3332
+ "value": ["to-color", "#edf8e9"]
3333
+ },
3066
3334
  "group": "Types",
3067
3335
  "sdk-support": {
3068
3336
  "basic functionality": {
3069
3337
  "js": "0.41.0",
3070
3338
  "android": "6.0.0",
3071
- "ios": "4.0.0",
3072
- "macos": "0.7.0"
3339
+ "ios": "4.0.0"
3073
3340
  }
3074
3341
  }
3075
3342
  },
3076
3343
  "rgb": {
3077
3344
  "doc": "Creates a color value from red, green, and blue components, which must range between 0 and 255, and an alpha component of 1. If any component is out of range, the expression is an error.",
3345
+ "example": {
3346
+ "syntax": {
3347
+ "method": ["number", "number", "number"],
3348
+ "result": "color"
3349
+ },
3350
+ "value": ["rgb", 255, 0, 0]
3351
+ },
3078
3352
  "group": "Color",
3079
3353
  "sdk-support": {
3080
3354
  "basic functionality": {
3081
3355
  "js": "0.41.0",
3082
3356
  "android": "6.0.0",
3083
- "ios": "4.0.0",
3084
- "macos": "0.7.0"
3357
+ "ios": "4.0.0"
3085
3358
  }
3086
3359
  }
3087
3360
  },
3088
3361
  "rgba": {
3089
3362
  "doc": "Creates a color value from red, green, blue components, which must range between 0 and 255, and an alpha component which must range between 0 and 1. If any component is out of range, the expression is an error.",
3363
+ "example": {
3364
+ "syntax": {
3365
+ "method": ["number", "number", "number", "number"],
3366
+ "result": "color"
3367
+ },
3368
+ "value": ["rgba", 255, 0, 0, 1]
3369
+ },
3090
3370
  "group": "Color",
3091
3371
  "sdk-support": {
3092
3372
  "basic functionality": {
3093
3373
  "js": "0.41.0",
3094
3374
  "android": "6.0.0",
3095
- "ios": "4.0.0",
3096
- "macos": "0.7.0"
3375
+ "ios": "4.0.0"
3097
3376
  }
3098
3377
  }
3099
3378
  },
3100
3379
  "get": {
3101
- "doc": "Retrieves a property value from the current feature's properties, or from another object if a second argument is provided. Returns null if the requested property is missing.",
3380
+ "doc": "Retrieves a property value from the current feature's properties, or from another object if a second argument is provided. Returns null if the requested property is missing.\n\n - [Change the case of labels](https://maplibre.org/maplibre-gl-js/docs/examples/change-case-of-labels/)\n\n - [Display HTML clusters with custom properties](https://maplibre.org/maplibre-gl-js/docs/examples/cluster-html/)\n\n - [Extrude polygons for 3D indoor mapping](https://maplibre.org/maplibre-gl-js/docs/examples/3d-extrusion-floorplan/)",
3381
+ "example": {
3382
+ "syntax": {
3383
+ "method": ["string"],
3384
+ "result": "value"
3385
+ },
3386
+ "value": ["get", "someProperty"]
3387
+ },
3102
3388
  "group": "Lookup",
3103
3389
  "sdk-support": {
3104
3390
  "basic functionality": {
3105
3391
  "js": "0.41.0",
3106
3392
  "android": "6.0.0",
3107
- "ios": "4.0.0",
3108
- "macos": "0.7.0"
3393
+ "ios": "4.0.0"
3109
3394
  }
3110
3395
  }
3111
3396
  },
3112
3397
  "has": {
3113
- "doc": "Tests for the presence of an property value in the current feature's properties, or from another object if a second argument is provided.",
3398
+ "doc": "Tests for the presence of an property value in the current feature's properties, or from another object if a second argument is provided.\n\n - [Create and style clusters](https://maplibre.org/maplibre-gl-js/docs/examples/cluster/)",
3399
+ "example": {
3400
+ "syntax": {
3401
+ "method": ["string"],
3402
+ "result": "boolean"
3403
+ },
3404
+ "value": ["has", "someProperty"]
3405
+ },
3114
3406
  "group": "Lookup",
3115
3407
  "sdk-support": {
3116
3408
  "basic functionality": {
3117
3409
  "js": "0.41.0",
3118
3410
  "android": "6.0.0",
3119
- "ios": "4.0.0",
3120
- "macos": "0.7.0"
3411
+ "ios": "4.0.0"
3121
3412
  }
3122
3413
  }
3123
3414
  },
3124
3415
  "length": {
3125
- "doc": "Gets the length of an array or string.",
3416
+ "doc": "Gets the length of an array or string. In a string, a UTF-16 surrogate pair counts as a single position.",
3417
+ "example": {
3418
+ "syntax": {
3419
+ "method": ["array"],
3420
+ "result": "number"
3421
+ },
3422
+ "value": ["length", ["get", "myArray"]]
3423
+ },
3126
3424
  "group": "Lookup",
3127
3425
  "sdk-support": {
3128
3426
  "basic functionality": {
3129
3427
  "js": "0.41.0",
3130
3428
  "android": "6.0.0",
3131
- "ios": "4.0.0",
3132
- "macos": "0.7.0"
3429
+ "ios": "4.0.0"
3133
3430
  }
3134
3431
  }
3135
3432
  },
3136
3433
  "properties": {
3137
3434
  "doc": "Gets the feature properties object. Note that in some cases, it may be more efficient to use [\"get\", \"property_name\"] directly.",
3435
+ "example": {
3436
+ "syntax": {
3437
+ "method": [],
3438
+ "result": "value"
3439
+ },
3440
+ "value": ["properties"]
3441
+ },
3138
3442
  "group": "Feature data",
3139
3443
  "sdk-support": {
3140
3444
  "basic functionality": {
3141
3445
  "js": "0.41.0",
3142
3446
  "android": "6.0.0",
3143
- "ios": "4.0.0",
3144
- "macos": "0.7.0"
3447
+ "ios": "4.0.0"
3145
3448
  }
3146
3449
  }
3147
3450
  },
3148
3451
  "feature-state": {
3149
- "doc": "Retrieves a property value from the current feature's state. Returns null if the requested property is not present on the feature's state. A feature's state is not part of the GeoJSON or vector tile data, and must be set programmatically on each feature. When `source.promoteId` is not provided, features are identified by their `id` attribute, which must be an integer or a string that can be cast to an integer. When `source.promoteId` is provided, features are identified by their `promoteId` property, which may be a number, string, or any primitive data type. Note that [\"feature-state\"] can only be used with paint properties that support data-driven styling.",
3452
+ "doc": "Retrieves a property value from the current feature's state. Returns null if the requested property is not present on the feature's state. A feature's state is not part of the GeoJSON or vector tile data, and must be set programmatically on each feature. When `source.promoteId` is not provided, features are identified by their `id` attribute, which must be an integer or a string that can be cast to an integer. When `source.promoteId` is provided, features are identified by their `promoteId` property, which may be a number, string, or any primitive data type. Note that [\"feature-state\"] can only be used with paint properties that support data-driven styling.\n\n - [Create a hover effect](https://maplibre.org/maplibre-gl-js/docs/examples/hover-styles/)",
3453
+ "example": {
3454
+ "syntax": {
3455
+ "method": ["string"],
3456
+ "result": "value"
3457
+ },
3458
+ "value": ["feature-state", "hover"]
3459
+ },
3150
3460
  "group": "Feature data",
3151
3461
  "sdk-support": {
3152
3462
  "basic functionality": {
3153
- "js": "0.46.0"
3463
+ "js": "0.46.0",
3464
+ "ios": "https://github.com/maplibre/maplibre-native/issues/1698",
3465
+ "android": "https://github.com/maplibre/maplibre-native/issues/1698"
3154
3466
  }
3155
3467
  }
3156
3468
  },
3157
3469
  "geometry-type": {
3158
3470
  "doc": "Gets the feature's geometry type: `Point`, `MultiPoint`, `LineString`, `MultiLineString`, `Polygon`, `MultiPolygon`.",
3471
+ "example": {
3472
+ "syntax": {
3473
+ "method": [],
3474
+ "result": "string"
3475
+ },
3476
+ "value": ["==", ["geometry-type"], "Polygon"]
3477
+ },
3159
3478
  "group": "Feature data",
3160
3479
  "sdk-support": {
3161
3480
  "basic functionality": {
3162
3481
  "js": "0.41.0",
3163
3482
  "android": "6.0.0",
3164
- "ios": "4.0.0",
3165
- "macos": "0.7.0"
3483
+ "ios": "4.0.0"
3166
3484
  }
3167
3485
  }
3168
3486
  },
3169
3487
  "id": {
3170
3488
  "doc": "Gets the feature's id, if it has one.",
3489
+ "example": {
3490
+ "syntax": {
3491
+ "method": [],
3492
+ "result": "value"
3493
+ },
3494
+ "value": ["id"]
3495
+ },
3171
3496
  "group": "Feature data",
3172
3497
  "sdk-support": {
3173
3498
  "basic functionality": {
3174
3499
  "js": "0.41.0",
3175
3500
  "android": "6.0.0",
3176
- "ios": "4.0.0",
3177
- "macos": "0.7.0"
3501
+ "ios": "4.0.0"
3178
3502
  }
3179
3503
  }
3180
3504
  },
3181
3505
  "zoom": {
3182
3506
  "doc": "Gets the current zoom level. Note that in style layout and paint properties, [\"zoom\"] may only appear as the input to a top-level \"step\" or \"interpolate\" expression.",
3507
+ "example": {
3508
+ "syntax": {
3509
+ "method": [],
3510
+ "result": "number"
3511
+ },
3512
+ "value": ["interpolate",["linear"],["zoom"],15,0,15.05,["get","height"]]
3513
+ },
3183
3514
  "group": "Zoom",
3184
3515
  "sdk-support": {
3185
3516
  "basic functionality": {
3186
3517
  "js": "0.41.0",
3187
3518
  "android": "6.0.0",
3188
- "ios": "4.0.0",
3189
- "macos": "0.7.0"
3519
+ "ios": "4.0.0"
3190
3520
  }
3191
3521
  }
3192
3522
  },
3193
3523
  "heatmap-density": {
3194
3524
  "doc": "Gets the kernel density estimation of a pixel in a heatmap layer, which is a relative measure of how many data points are crowded around a particular pixel. Can only be used in the `heatmap-color` property.",
3525
+ "example": {
3526
+ "syntax": {
3527
+ "method": [],
3528
+ "result": "number"
3529
+ },
3530
+ "value": ["heatmap-density"]
3531
+ },
3195
3532
  "group": "Heatmap",
3196
3533
  "sdk-support": {
3197
3534
  "basic functionality": {
3198
3535
  "js": "0.41.0",
3199
3536
  "android": "6.0.0",
3200
- "ios": "4.0.0",
3201
- "macos": "0.7.0"
3537
+ "ios": "4.0.0"
3202
3538
  }
3203
3539
  }
3204
3540
  },
3205
3541
  "line-progress": {
3206
3542
  "doc": "Gets the progress along a gradient line. Can only be used in the `line-gradient` property.",
3543
+ "example": {
3544
+ "syntax": {
3545
+ "method": ["number"],
3546
+ "result": "number"
3547
+ },
3548
+ "value": ["line-progress", 0.5]
3549
+ },
3207
3550
  "group": "Feature data",
3208
3551
  "sdk-support": {
3209
3552
  "basic functionality": {
3210
3553
  "js": "0.45.0",
3211
3554
  "android": "6.5.0",
3212
- "ios": "4.6.0",
3213
- "macos": "0.12.0"
3555
+ "ios": "4.6.0"
3214
3556
  }
3215
3557
  }
3216
3558
  },
3217
3559
  "accumulated": {
3218
3560
  "doc": "Gets the value of a cluster property accumulated so far. Can only be used in the `clusterProperties` option of a clustered GeoJSON source.",
3561
+ "example": {
3562
+ "syntax": {
3563
+ "method": ["string"],
3564
+ "result": "value"
3565
+ },
3566
+ "value": ["accumulated", "sum"]
3567
+ },
3219
3568
  "group": "Feature data",
3220
3569
  "sdk-support": {
3221
3570
  "basic functionality": {
3222
- "js": "0.53.0"
3571
+ "js": "0.53.0",
3572
+ "ios": "supported",
3573
+ "android": "supported"
3223
3574
  }
3224
3575
  }
3225
3576
  },
3226
3577
  "+": {
3227
3578
  "doc": "Returns the sum of the inputs.",
3579
+ "example": {
3580
+ "syntax": {
3581
+ "method": ["number", "number", "..."],
3582
+ "result": "number"
3583
+ },
3584
+ "value": ["+", 2, 3]
3585
+ },
3228
3586
  "group": "Math",
3229
3587
  "sdk-support": {
3230
3588
  "basic functionality": {
3231
3589
  "js": "0.41.0",
3232
3590
  "android": "6.0.0",
3233
- "ios": "4.0.0",
3234
- "macos": "0.7.0"
3591
+ "ios": "4.0.0"
3235
3592
  }
3236
3593
  }
3237
3594
  },
3238
3595
  "*": {
3239
3596
  "doc": "Returns the product of the inputs.",
3597
+ "example": {
3598
+ "syntax": {
3599
+ "method": ["number", "number", "..."],
3600
+ "result": "number"
3601
+ },
3602
+ "value": ["*", 2, 3]
3603
+ },
3240
3604
  "group": "Math",
3241
3605
  "sdk-support": {
3242
3606
  "basic functionality": {
3243
3607
  "js": "0.41.0",
3244
3608
  "android": "6.0.0",
3245
- "ios": "4.0.0",
3246
- "macos": "0.7.0"
3609
+ "ios": "4.0.0"
3247
3610
  }
3248
3611
  }
3249
3612
  },
3250
3613
  "-": {
3251
3614
  "doc": "For two inputs, returns the result of subtracting the second input from the first. For a single input, returns the result of subtracting it from 0.",
3615
+ "example": {
3616
+ "syntax": {
3617
+ "method": ["number", "number?"],
3618
+ "result": "number"
3619
+ },
3620
+ "value": ["-", 10]
3621
+ },
3252
3622
  "group": "Math",
3253
3623
  "sdk-support": {
3254
3624
  "basic functionality": {
3255
3625
  "js": "0.41.0",
3256
3626
  "android": "6.0.0",
3257
- "ios": "4.0.0",
3258
- "macos": "0.7.0"
3627
+ "ios": "4.0.0"
3259
3628
  }
3260
3629
  }
3261
3630
  },
3262
3631
  "/": {
3263
- "doc": "Returns the result of floating point division of the first input by the second.",
3632
+ "doc": "Returns the result of floating point division of the first input by the second.\n\n - [Visualize population density](https://maplibre.org/maplibre-gl-js/docs/examples/visualize-population-density/)",
3633
+ "example": {
3634
+ "syntax": {
3635
+ "method": ["number", "number"],
3636
+ "result": "number"
3637
+ },
3638
+ "value": ["/", ["get", "population"], ["get", "sq-km"]]
3639
+ },
3264
3640
  "group": "Math",
3265
3641
  "sdk-support": {
3266
3642
  "basic functionality": {
3267
3643
  "js": "0.41.0",
3268
3644
  "android": "6.0.0",
3269
- "ios": "4.0.0",
3270
- "macos": "0.7.0"
3645
+ "ios": "4.0.0"
3271
3646
  }
3272
3647
  }
3273
3648
  },
3274
3649
  "%": {
3275
3650
  "doc": "Returns the remainder after integer division of the first input by the second.",
3651
+ "example": {
3652
+ "syntax": {
3653
+ "method": ["number", "number"],
3654
+ "result": "number"
3655
+ },
3656
+ "value": ["%", 10, 3]
3657
+ },
3276
3658
  "group": "Math",
3277
3659
  "sdk-support": {
3278
3660
  "basic functionality": {
3279
3661
  "js": "0.41.0",
3280
3662
  "android": "6.0.0",
3281
- "ios": "4.0.0",
3282
- "macos": "0.7.0"
3663
+ "ios": "4.0.0"
3283
3664
  }
3284
3665
  }
3285
3666
  },
3286
3667
  "^": {
3287
3668
  "doc": "Returns the result of raising the first input to the power specified by the second.",
3669
+ "example": {
3670
+ "syntax": {
3671
+ "method": ["number", "number"],
3672
+ "result": "number"
3673
+ },
3674
+ "value": ["^", 2, 3]
3675
+ },
3288
3676
  "group": "Math",
3289
3677
  "sdk-support": {
3290
3678
  "basic functionality": {
3291
3679
  "js": "0.41.0",
3292
3680
  "android": "6.0.0",
3293
- "ios": "4.0.0",
3294
- "macos": "0.7.0"
3681
+ "ios": "4.0.0"
3295
3682
  }
3296
3683
  }
3297
3684
  },
3298
3685
  "sqrt": {
3299
3686
  "doc": "Returns the square root of the input.",
3687
+ "example": {
3688
+ "syntax": {
3689
+ "method": ["number"],
3690
+ "result": "number"
3691
+ },
3692
+ "value": ["sqrt", 9]
3693
+ },
3300
3694
  "group": "Math",
3301
3695
  "sdk-support": {
3302
3696
  "basic functionality": {
3303
3697
  "js": "0.42.0",
3304
3698
  "android": "6.0.0",
3305
- "ios": "4.0.0",
3306
- "macos": "0.7.0"
3699
+ "ios": "4.0.0"
3307
3700
  }
3308
3701
  }
3309
3702
  },
3310
3703
  "log10": {
3311
3704
  "doc": "Returns the base-ten logarithm of the input.",
3705
+ "example": {
3706
+ "syntax": {
3707
+ "method": ["number"],
3708
+ "result": "number"
3709
+ },
3710
+ "value": ["log10", 8]
3711
+ },
3312
3712
  "group": "Math",
3313
3713
  "sdk-support": {
3314
3714
  "basic functionality": {
3315
3715
  "js": "0.41.0",
3316
3716
  "android": "6.0.0",
3317
- "ios": "4.0.0",
3318
- "macos": "0.7.0"
3717
+ "ios": "4.0.0"
3319
3718
  }
3320
3719
  }
3321
3720
  },
3322
3721
  "ln": {
3323
3722
  "doc": "Returns the natural logarithm of the input.",
3723
+ "example": {
3724
+ "syntax": {
3725
+ "method": ["number"],
3726
+ "result": "number"
3727
+ },
3728
+ "value": ["ln", 8]
3729
+ },
3324
3730
  "group": "Math",
3325
3731
  "sdk-support": {
3326
3732
  "basic functionality": {
3327
3733
  "js": "0.41.0",
3328
3734
  "android": "6.0.0",
3329
- "ios": "4.0.0",
3330
- "macos": "0.7.0"
3735
+ "ios": "4.0.0"
3331
3736
  }
3332
3737
  }
3333
3738
  },
3334
3739
  "log2": {
3335
3740
  "doc": "Returns the base-two logarithm of the input.",
3741
+ "example": {
3742
+ "syntax": {
3743
+ "method": ["number"],
3744
+ "result": "number"
3745
+ },
3746
+ "value": ["log2", 8]
3747
+ },
3336
3748
  "group": "Math",
3337
3749
  "sdk-support": {
3338
3750
  "basic functionality": {
3339
3751
  "js": "0.41.0",
3340
3752
  "android": "6.0.0",
3341
- "ios": "4.0.0",
3342
- "macos": "0.7.0"
3753
+ "ios": "4.0.0"
3343
3754
  }
3344
3755
  }
3345
3756
  },
3346
3757
  "sin": {
3347
3758
  "doc": "Returns the sine of the input.",
3759
+ "example": {
3760
+ "syntax": {
3761
+ "method": ["number"],
3762
+ "result": "number"
3763
+ },
3764
+ "value": ["sin", 1]
3765
+ },
3348
3766
  "group": "Math",
3349
3767
  "sdk-support": {
3350
3768
  "basic functionality": {
3351
3769
  "js": "0.41.0",
3352
3770
  "android": "6.0.0",
3353
- "ios": "4.0.0",
3354
- "macos": "0.7.0"
3771
+ "ios": "4.0.0"
3355
3772
  }
3356
3773
  }
3357
3774
  },
3358
3775
  "cos": {
3359
3776
  "doc": "Returns the cosine of the input.",
3777
+ "example": {
3778
+ "syntax": {
3779
+ "method": ["number"],
3780
+ "result": "number"
3781
+ },
3782
+ "value": ["cos", 1]
3783
+ },
3360
3784
  "group": "Math",
3361
3785
  "sdk-support": {
3362
3786
  "basic functionality": {
3363
3787
  "js": "0.41.0",
3364
3788
  "android": "6.0.0",
3365
- "ios": "4.0.0",
3366
- "macos": "0.7.0"
3789
+ "ios": "4.0.0"
3367
3790
  }
3368
3791
  }
3369
3792
  },
3370
3793
  "tan": {
3371
3794
  "doc": "Returns the tangent of the input.",
3795
+ "example": {
3796
+ "syntax": {
3797
+ "method": ["number"],
3798
+ "result": "number"
3799
+ },
3800
+ "value": ["tan", 1]
3801
+ },
3372
3802
  "group": "Math",
3373
3803
  "sdk-support": {
3374
3804
  "basic functionality": {
3375
3805
  "js": "0.41.0",
3376
3806
  "android": "6.0.0",
3377
- "ios": "4.0.0",
3378
- "macos": "0.7.0"
3807
+ "ios": "4.0.0"
3379
3808
  }
3380
3809
  }
3381
3810
  },
3382
3811
  "asin": {
3383
3812
  "doc": "Returns the arcsine of the input.",
3813
+ "example": {
3814
+ "syntax": {
3815
+ "method": ["number"],
3816
+ "result": "number"
3817
+ },
3818
+ "value": ["asin", 1]
3819
+ },
3384
3820
  "group": "Math",
3385
3821
  "sdk-support": {
3386
3822
  "basic functionality": {
3387
3823
  "js": "0.41.0",
3388
3824
  "android": "6.0.0",
3389
- "ios": "4.0.0",
3390
- "macos": "0.7.0"
3825
+ "ios": "4.0.0"
3391
3826
  }
3392
3827
  }
3393
3828
  },
3394
3829
  "acos": {
3395
3830
  "doc": "Returns the arccosine of the input.",
3831
+ "example": {
3832
+ "syntax": {
3833
+ "method": ["number"],
3834
+ "result": "number"
3835
+ },
3836
+ "value": ["acos", 1]
3837
+ },
3396
3838
  "group": "Math",
3397
3839
  "sdk-support": {
3398
3840
  "basic functionality": {
3399
3841
  "js": "0.41.0",
3400
3842
  "android": "6.0.0",
3401
- "ios": "4.0.0",
3402
- "macos": "0.7.0"
3843
+ "ios": "4.0.0"
3403
3844
  }
3404
3845
  }
3405
3846
  },
3406
3847
  "atan": {
3407
3848
  "doc": "Returns the arctangent of the input.",
3849
+ "example": {
3850
+ "syntax": {
3851
+ "method": ["number"],
3852
+ "result": "number"
3853
+ },
3854
+ "value": ["atan", 1]
3855
+ },
3408
3856
  "group": "Math",
3409
3857
  "sdk-support": {
3410
3858
  "basic functionality": {
3411
3859
  "js": "0.41.0",
3412
3860
  "android": "6.0.0",
3413
- "ios": "4.0.0",
3414
- "macos": "0.7.0"
3861
+ "ios": "4.0.0"
3415
3862
  }
3416
3863
  }
3417
3864
  },
3418
3865
  "min": {
3419
3866
  "doc": "Returns the minimum value of the inputs.",
3867
+ "example": {
3868
+ "syntax": {
3869
+ "method": ["number", "number", "..."],
3870
+ "result": "number"
3871
+ },
3872
+ "value": ["min", 1, 2]
3873
+ },
3420
3874
  "group": "Math",
3421
3875
  "sdk-support": {
3422
3876
  "basic functionality": {
3423
3877
  "js": "0.41.0",
3424
3878
  "android": "6.0.0",
3425
- "ios": "4.0.0",
3426
- "macos": "0.7.0"
3879
+ "ios": "4.0.0"
3427
3880
  }
3428
3881
  }
3429
3882
  },
3430
3883
  "max": {
3431
3884
  "doc": "Returns the maximum value of the inputs.",
3885
+ "example": {
3886
+ "syntax": {
3887
+ "method": ["number", "number", "..."],
3888
+ "result": "number"
3889
+ },
3890
+ "value": ["max", 1, 2]
3891
+ },
3432
3892
  "group": "Math",
3433
3893
  "sdk-support": {
3434
3894
  "basic functionality": {
3435
3895
  "js": "0.41.0",
3436
3896
  "android": "6.0.0",
3437
- "ios": "4.0.0",
3438
- "macos": "0.7.0"
3897
+ "ios": "4.0.0"
3439
3898
  }
3440
3899
  }
3441
3900
  },
3442
3901
  "round": {
3443
3902
  "doc": "Rounds the input to the nearest integer. Halfway values are rounded away from zero. For example, `[\"round\", -1.5]` evaluates to -2.",
3903
+ "example": {
3904
+ "syntax": {
3905
+ "method": ["number"],
3906
+ "result": "number"
3907
+ },
3908
+ "value": ["round", 1.5]
3909
+ },
3444
3910
  "group": "Math",
3445
3911
  "sdk-support": {
3446
3912
  "basic functionality": {
3447
3913
  "js": "0.45.0",
3448
3914
  "android": "6.0.0",
3449
- "ios": "4.0.0",
3450
- "macos": "0.7.0"
3915
+ "ios": "4.0.0"
3451
3916
  }
3452
3917
  }
3453
3918
  },
3454
3919
  "abs": {
3455
3920
  "doc": "Returns the absolute value of the input.",
3921
+ "example": {
3922
+ "syntax": {
3923
+ "method": ["number"],
3924
+ "result": "number"
3925
+ },
3926
+ "value": ["abs", -1.5]
3927
+ },
3456
3928
  "group": "Math",
3457
3929
  "sdk-support": {
3458
3930
  "basic functionality": {
3459
3931
  "js": "0.45.0",
3460
3932
  "android": "6.0.0",
3461
- "ios": "4.0.0",
3462
- "macos": "0.7.0"
3933
+ "ios": "4.0.0"
3463
3934
  }
3464
3935
  }
3465
3936
  },
3466
3937
  "ceil": {
3467
3938
  "doc": "Returns the smallest integer that is greater than or equal to the input.",
3939
+ "example": {
3940
+ "syntax": {
3941
+ "method": ["number"],
3942
+ "result": "number"
3943
+ },
3944
+ "value": ["ceil", 1.5]
3945
+ },
3468
3946
  "group": "Math",
3469
3947
  "sdk-support": {
3470
3948
  "basic functionality": {
3471
3949
  "js": "0.45.0",
3472
3950
  "android": "6.0.0",
3473
- "ios": "4.0.0",
3474
- "macos": "0.7.0"
3951
+ "ios": "4.0.0"
3475
3952
  }
3476
3953
  }
3477
3954
  },
3478
3955
  "floor": {
3479
3956
  "doc": "Returns the largest integer that is less than or equal to the input.",
3957
+ "example": {
3958
+ "syntax": {
3959
+ "method": ["number"],
3960
+ "result": "number"
3961
+ },
3962
+ "value": ["floor", 1.5]
3963
+ },
3480
3964
  "group": "Math",
3481
3965
  "sdk-support": {
3482
3966
  "basic functionality": {
3483
3967
  "js": "0.45.0",
3484
3968
  "android": "6.0.0",
3485
- "ios": "4.0.0",
3486
- "macos": "0.7.0"
3969
+ "ios": "4.0.0"
3487
3970
  }
3488
3971
  }
3489
3972
  },
3490
3973
  "distance": {
3491
3974
  "doc": "Returns the shortest distance in meters between the evaluated feature and the input geometry. The input value can be a valid GeoJSON of type `Point`, `MultiPoint`, `LineString`, `MultiLineString`, `Polygon`, `MultiPolygon`, `Feature`, or `FeatureCollection`. Distance values returned may vary in precision due to loss in precision from encoding geometries, particularly below zoom level 13.",
3975
+ "example": {
3976
+ "syntax": {
3977
+ "method": ["GeoJSON geometry"],
3978
+ "result": "number"
3979
+ },
3980
+ "value": ["distance", { "type": "Point", "coordinates": [0, 0]}]
3981
+ },
3492
3982
  "group": "Math",
3493
3983
  "sdk-support": {
3494
3984
  "basic functionality": {
3985
+ "js": "4.2.0",
3495
3986
  "android": "9.2.0",
3496
- "ios": "5.9.0",
3497
- "macos": "0.16.0"
3987
+ "ios": "5.9.0"
3498
3988
  }
3499
3989
  }
3500
3990
  },
3501
3991
  "==": {
3502
- "doc": "Returns `true` if the input values are equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",
3992
+ "doc": "Returns `true` if the input values are equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.\n\n - [Add multiple geometries from one GeoJSON source](https://maplibre.org/maplibre-gl-js/docs/examples/multiple-geometries/)\n\n - [Create a time slider](https://maplibre.org/maplibre-gl-js/docs/examples/timeline-animation/)\n\n - [Display buildings in 3D](https://maplibre.org/maplibre-gl-js/docs/examples/3d-buildings/)\n\n - [Filter symbols by toggling a list](https://maplibre.org/maplibre-gl-js/docs/examples/filter-markers/)",
3993
+ "example": {
3994
+ "syntax": {
3995
+ "method": ["value", "value", "collator?"],
3996
+ "result": "boolean"
3997
+ },
3998
+ "value": ["==", "$type", "Polygon"]
3999
+ },
3503
4000
  "group": "Decision",
3504
4001
  "sdk-support": {
3505
4002
  "basic functionality": {
3506
4003
  "js": "0.41.0",
3507
4004
  "android": "6.0.0",
3508
- "ios": "4.0.0",
3509
- "macos": "0.7.0"
4005
+ "ios": "4.0.0"
3510
4006
  },
3511
4007
  "collator": {
3512
4008
  "js": "0.45.0",
3513
4009
  "android": "6.5.0",
3514
- "ios": "4.2.0",
3515
- "macos": "0.9.0"
4010
+ "ios": "4.2.0"
3516
4011
  }
3517
4012
  }
3518
4013
  },
3519
4014
  "!=": {
3520
- "doc": "Returns `true` if the input values are not equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",
4015
+ "doc": "Returns `true` if the input values are not equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.\n\n - [Display HTML clusters with custom properties](https://maplibre.org/maplibre-gl-js/docs/examples/cluster-html/)",
4016
+ "example": {
4017
+ "syntax": {
4018
+ "method": ["value", "value", "collator?"],
4019
+ "result": "boolean"
4020
+ },
4021
+ "value": ["!=", "cluster", true]
4022
+ },
3521
4023
  "group": "Decision",
3522
4024
  "sdk-support": {
3523
4025
  "basic functionality": {
3524
4026
  "js": "0.41.0",
3525
4027
  "android": "6.0.0",
3526
- "ios": "4.0.0",
3527
- "macos": "0.7.0"
4028
+ "ios": "4.0.0"
3528
4029
  },
3529
4030
  "collator": {
3530
4031
  "js": "0.45.0",
3531
4032
  "android": "6.5.0",
3532
- "ios": "4.2.0",
3533
- "macos": "0.9.0"
4033
+ "ios": "4.2.0"
3534
4034
  }
3535
4035
  }
3536
4036
  },
3537
4037
  ">": {
3538
4038
  "doc": "Returns `true` if the first input is strictly greater than the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",
4039
+ "example": {
4040
+ "syntax": {
4041
+ "method": ["value", "value", "collator?"],
4042
+ "result": "boolean"
4043
+ },
4044
+ "value": [">", ["get", "mag"], 2]
4045
+ },
3539
4046
  "group": "Decision",
3540
4047
  "sdk-support": {
3541
4048
  "basic functionality": {
3542
4049
  "js": "0.41.0",
3543
4050
  "android": "6.0.0",
3544
- "ios": "4.0.0",
3545
- "macos": "0.7.0"
4051
+ "ios": "4.0.0"
3546
4052
  },
3547
4053
  "collator": {
3548
4054
  "js": "0.45.0",
3549
4055
  "android": "6.5.0",
3550
- "ios": "4.2.0",
3551
- "macos": "0.9.0"
4056
+ "ios": "4.2.0"
3552
4057
  }
3553
4058
  }
3554
4059
  },
3555
4060
  "<": {
3556
- "doc": "Returns `true` if the first input is strictly less than the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",
4061
+ "doc": "Returns `true` if the first input is strictly less than the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.\n\n - [Display HTML clusters with custom properties](https://maplibre.org/maplibre-gl-js/docs/examples/cluster-html/)",
4062
+ "example": {
4063
+ "syntax": {
4064
+ "method": ["value", "value", "collator?"],
4065
+ "result": "boolean"
4066
+ },
4067
+ "value": ["<", ["get", "mag"], 2]
4068
+ },
3557
4069
  "group": "Decision",
3558
4070
  "sdk-support": {
3559
4071
  "basic functionality": {
3560
4072
  "js": "0.41.0",
3561
4073
  "android": "6.0.0",
3562
- "ios": "4.0.0",
3563
- "macos": "0.7.0"
4074
+ "ios": "4.0.0"
3564
4075
  },
3565
4076
  "collator": {
3566
4077
  "js": "0.45.0",
3567
4078
  "android": "6.5.0",
3568
- "ios": "4.2.0",
3569
- "macos": "0.9.0"
4079
+ "ios": "4.2.0"
3570
4080
  }
3571
4081
  }
3572
4082
  },
3573
4083
  ">=": {
3574
- "doc": "Returns `true` if the first input is greater than or equal to the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",
4084
+ "doc": "Returns `true` if the first input is greater than or equal to the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.\n\n - [Display HTML clusters with custom properties](https://maplibre.org/maplibre-gl-js/docs/examples/cluster-html/)",
4085
+ "example": {
4086
+ "syntax": {
4087
+ "method": ["value", "value", "collator?"],
4088
+ "result": "boolean"
4089
+ },
4090
+ "value": [">=", ["get", "mag"], 6]
4091
+ },
3575
4092
  "group": "Decision",
3576
4093
  "sdk-support": {
3577
4094
  "basic functionality": {
3578
4095
  "js": "0.41.0",
3579
4096
  "android": "6.0.0",
3580
- "ios": "4.0.0",
3581
- "macos": "0.7.0"
4097
+ "ios": "4.0.0"
3582
4098
  },
3583
4099
  "collator": {
3584
4100
  "js": "0.45.0",
3585
4101
  "android": "6.5.0",
3586
- "ios": "4.2.0",
3587
- "macos": "0.9.0"
4102
+ "ios": "4.2.0"
3588
4103
  }
3589
4104
  }
3590
4105
  },
3591
4106
  "<=": {
3592
4107
  "doc": "Returns `true` if the first input is less than or equal to the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",
4108
+ "example": {
4109
+ "syntax": {
4110
+ "method": ["value", "value", "collator?"],
4111
+ "result": "boolean"
4112
+ },
4113
+ "value": ["<=", ["get", "mag"], 6]
4114
+ },
3593
4115
  "group": "Decision",
3594
4116
  "sdk-support": {
3595
4117
  "basic functionality": {
3596
4118
  "js": "0.41.0",
3597
4119
  "android": "6.0.0",
3598
- "ios": "4.0.0",
3599
- "macos": "0.7.0"
4120
+ "ios": "4.0.0"
3600
4121
  },
3601
4122
  "collator": {
3602
4123
  "js": "0.45.0",
3603
4124
  "android": "6.5.0",
3604
- "ios": "4.2.0",
3605
- "macos": "0.9.0"
4125
+ "ios": "4.2.0"
3606
4126
  }
3607
4127
  }
3608
4128
  },
3609
4129
  "all": {
3610
- "doc": "Returns `true` if all the inputs are `true`, `false` otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to `false`, the result is `false` and no further input expressions are evaluated.",
4130
+ "doc": "Returns `true` if all the inputs are `true`, `false` otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to `false`, the result is `false` and no further input expressions are evaluated.\n\n - [Display HTML clusters with custom properties](https://maplibre.org/maplibre-gl-js/docs/examples/cluster-html/)",
4131
+ "example": {
4132
+ "syntax": {
4133
+ "method": ["boolean", "boolean", "..."],
4134
+ "result": "boolean"
4135
+ },
4136
+ "value": ["all", [">=", ["get", "mag"], 4], ["<", ["get", "mag"], 5]]
4137
+ },
3611
4138
  "group": "Decision",
3612
4139
  "sdk-support": {
3613
4140
  "basic functionality": {
3614
4141
  "js": "0.41.0",
3615
4142
  "android": "6.0.0",
3616
- "ios": "4.0.0",
3617
- "macos": "0.7.0"
4143
+ "ios": "4.0.0"
3618
4144
  }
3619
4145
  }
3620
4146
  },
3621
4147
  "any": {
3622
4148
  "doc": "Returns `true` if any of the inputs are `true`, `false` otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to `true`, the result is `true` and no further input expressions are evaluated.",
4149
+ "example": {
4150
+ "syntax": {
4151
+ "method": ["boolean", "boolean", "..."],
4152
+ "result": "boolean"
4153
+ },
4154
+ "value": ["any", [">=", ["get", "mag"], 4], ["<", ["get", "mag"], 5]]
4155
+ },
3623
4156
  "group": "Decision",
3624
4157
  "sdk-support": {
3625
4158
  "basic functionality": {
3626
4159
  "js": "0.41.0",
3627
4160
  "android": "6.0.0",
3628
- "ios": "4.0.0",
3629
- "macos": "0.7.0"
4161
+ "ios": "4.0.0"
3630
4162
  }
3631
4163
  }
3632
4164
  },
3633
4165
  "!": {
3634
- "doc": "Logical negation. Returns `true` if the input is `false`, and `false` if the input is `true`.",
4166
+ "doc": "Logical negation. Returns `true` if the input is `false`, and `false` if the input is `true`.\n\n - [Create and style clusters](https://maplibre.org/maplibre-gl-js/docs/examples/cluster/)",
4167
+ "example": {
4168
+ "syntax": {
4169
+ "method": ["value", "value", "collator?"],
4170
+ "result": "boolean"
4171
+ },
4172
+ "value": ["!", ["has", "point_count"]]
4173
+ },
3635
4174
  "group": "Decision",
3636
4175
  "sdk-support": {
3637
4176
  "basic functionality": {
3638
4177
  "js": "0.41.0",
3639
4178
  "android": "6.0.0",
3640
- "ios": "4.0.0",
3641
- "macos": "0.7.0"
4179
+ "ios": "4.0.0"
3642
4180
  }
3643
4181
  }
3644
4182
  },
3645
4183
  "within": {
3646
- "doc": "Returns `true` if the evaluated feature is fully contained inside a boundary of the input geometry, `false` otherwise. The input value can be a valid GeoJSON of type `Polygon`, `MultiPolygon`, `Feature`, or `FeatureCollection`. Supported features for evaluation:\n- `Point`: Returns `false` if a point is on the boundary or falls outside the boundary.\n- `LineString`: Returns `false` if any part of a line falls outside the boundary, the line intersects the boundary, or a line's endpoint is on the boundary.",
4184
+ "doc": "Returns `true` if the evaluated feature is fully contained inside a boundary of the input geometry, `false` otherwise. The input value can be a valid GeoJSON of type `Polygon`, `MultiPolygon`, `Feature`, or `FeatureCollection`. Supported features for evaluation:\n\n- `Point`: Returns `false` if a point is on the boundary or falls outside the boundary.\n\n- `LineString`: Returns `false` if any part of a line falls outside the boundary, the line intersects the boundary, or a line's endpoint is on the boundary.",
4185
+ "example": {
4186
+ "syntax": {
4187
+ "method": ["GeoJSON geometry"],
4188
+ "result": "boolean"
4189
+ },
4190
+ "value": ["within", {"type": "Polygon","coordinates": [[[0, 0], [0, 5], [5, 5], [5, 0], [0, 0]]]}]
4191
+ },
3647
4192
  "group": "Decision",
3648
4193
  "sdk-support": {
3649
4194
  "basic functionality": {
3650
4195
  "js": "1.9.0",
3651
4196
  "android": "9.1.0",
3652
- "ios": "5.8.0",
3653
- "macos": "0.15.0"
4197
+ "ios": "5.8.0"
3654
4198
  }
3655
4199
  }
3656
4200
  },
3657
4201
  "is-supported-script": {
3658
4202
  "doc": "Returns `true` if the input string is expected to render legibly. Returns `false` if the input string contains sections that cannot be rendered without potential loss of meaning (e.g. Indic scripts that require complex text shaping, or right-to-left scripts if the the `mapbox-gl-rtl-text` plugin is not in use in MapLibre GL JS).",
4203
+ "example": {
4204
+ "syntax": {
4205
+ "method": ["string"],
4206
+ "result": "boolean"
4207
+ },
4208
+ "value": ["is-supported-script", "दिल्ली"]
4209
+ },
3659
4210
  "group": "String",
3660
4211
  "sdk-support": {
3661
4212
  "basic functionality": {
3662
4213
  "js": "0.45.0",
3663
- "android": "6.6.0"
4214
+ "android": "6.6.0",
4215
+ "ios": "supported"
3664
4216
  }
3665
4217
  }
3666
4218
  },
3667
4219
  "upcase": {
3668
- "doc": "Returns the input string converted to uppercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.",
4220
+ "doc": "Returns the input string converted to uppercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.\n\n - [Change the case of labels](https://maplibre.org/maplibre-gl-js/docs/examples/change-case-of-labels/)",
4221
+ "example": {
4222
+ "syntax": {
4223
+ "method": ["string"],
4224
+ "result": "string"
4225
+ },
4226
+ "value": ["upcase", ["get", "name"]]
4227
+ },
3669
4228
  "group": "String",
3670
4229
  "sdk-support": {
3671
4230
  "basic functionality": {
3672
4231
  "js": "0.41.0",
3673
4232
  "android": "6.0.0",
3674
- "ios": "4.0.0",
3675
- "macos": "0.7.0"
4233
+ "ios": "4.0.0"
3676
4234
  }
3677
4235
  }
3678
4236
  },
3679
4237
  "downcase": {
3680
- "doc": "Returns the input string converted to lowercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.",
4238
+ "doc": "Returns the input string converted to lowercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.\n\n - [Change the case of labels](https://maplibre.org/maplibre-gl-js/docs/examples/change-case-of-labels/)",
4239
+ "example": {
4240
+ "syntax": {
4241
+ "method": ["string"],
4242
+ "result": "string"
4243
+ },
4244
+ "value": ["downcase", ["get", "name"]]
4245
+ },
3681
4246
  "group": "String",
3682
4247
  "sdk-support": {
3683
4248
  "basic functionality": {
3684
4249
  "js": "0.41.0",
3685
4250
  "android": "6.0.0",
3686
- "ios": "4.0.0",
3687
- "macos": "0.7.0"
4251
+ "ios": "4.0.0"
3688
4252
  }
3689
4253
  }
3690
4254
  },
3691
4255
  "concat": {
3692
- "doc": "Returns a `string` consisting of the concatenation of the inputs. Each input is converted to a string as if by `to-string`.",
4256
+ "doc": "Returns a `string` consisting of the concatenation of the inputs. Each input is converted to a string as if by `to-string`.\n\n - [Add a generated icon to the map](https://maplibre.org/maplibre-gl-js/docs/examples/add-image-missing-generated/)\n\n - [Create a time slider](https://maplibre.org/maplibre-gl-js/docs/examples/timeline-animation/)\n\n - [Use a fallback image](https://maplibre.org/maplibre-gl-js/docs/examples/fallback-image/)\n\n - [Variable label placement](https://maplibre.org/maplibre-gl-js/docs/examples/variable-label-placement/)",
4257
+ "example": {
4258
+ "syntax": {
4259
+ "method": ["string", "string", "..."],
4260
+ "result": "string"
4261
+ },
4262
+ "value": ["concat", "square-rgb-", ["get", "color"]]
4263
+ },
3693
4264
  "group": "String",
3694
4265
  "sdk-support": {
3695
4266
  "basic functionality": {
3696
4267
  "js": "0.41.0",
3697
4268
  "android": "6.0.0",
3698
- "ios": "4.0.0",
3699
- "macos": "0.7.0"
4269
+ "ios": "4.0.0"
3700
4270
  }
3701
4271
  }
3702
4272
  },
3703
4273
  "resolved-locale": {
3704
4274
  "doc": "Returns the IETF language tag of the locale being used by the provided `collator`. This can be used to determine the default system locale, or to determine if a requested locale was successfully loaded.",
4275
+ "example": {
4276
+ "syntax": {
4277
+ "method": ["collator"],
4278
+ "result": "string"
4279
+ },
4280
+ "value": ["resolved-locale", [
4281
+ "collator",
4282
+ {"case-sensitive": true, "diacritic-sensitive": false, "locale": "de"}
4283
+ ]]
4284
+ },
3705
4285
  "group": "String",
3706
4286
  "sdk-support": {
3707
4287
  "basic functionality": {
3708
4288
  "js": "0.45.0",
3709
4289
  "android": "6.5.0",
3710
- "ios": "4.2.0",
3711
- "macos": "0.9.0"
4290
+ "ios": "4.2.0"
3712
4291
  }
3713
4292
  }
3714
4293
  }
@@ -3740,8 +4319,7 @@
3740
4319
  "basic functionality": {
3741
4320
  "js": "0.27.0",
3742
4321
  "android": "5.1.0",
3743
- "ios": "3.6.0",
3744
- "macos": "0.5.0"
4322
+ "ios": "3.6.0"
3745
4323
  }
3746
4324
  }
3747
4325
  },
@@ -3772,8 +4350,7 @@
3772
4350
  "basic functionality": {
3773
4351
  "js": "0.27.0",
3774
4352
  "android": "5.1.0",
3775
- "ios": "3.6.0",
3776
- "macos": "0.5.0"
4353
+ "ios": "3.6.0"
3777
4354
  }
3778
4355
  }
3779
4356
  },
@@ -3793,8 +4370,7 @@
3793
4370
  "basic functionality": {
3794
4371
  "js": "0.27.0",
3795
4372
  "android": "5.1.0",
3796
- "ios": "3.6.0",
3797
- "macos": "0.5.0"
4373
+ "ios": "3.6.0"
3798
4374
  }
3799
4375
  }
3800
4376
  },
@@ -3816,12 +4392,112 @@
3816
4392
  "basic functionality": {
3817
4393
  "js": "0.27.0",
3818
4394
  "android": "5.1.0",
3819
- "ios": "3.6.0",
3820
- "macos": "0.5.0"
4395
+ "ios": "3.6.0"
3821
4396
  }
3822
4397
  }
3823
4398
  }
3824
4399
  },
4400
+ "sky": {
4401
+ "sky-color": {
4402
+ "type": "color",
4403
+ "property-type": "data-constant",
4404
+ "default": "#88C6FC",
4405
+ "expression": {
4406
+ "interpolated": true,
4407
+ "parameters": [
4408
+ "zoom"
4409
+ ]
4410
+ },
4411
+ "transition": true,
4412
+ "doc": "The base color for the sky."
4413
+ },
4414
+ "horizon-color": {
4415
+ "type": "color",
4416
+ "property-type": "data-constant",
4417
+ "default": "#ffffff",
4418
+ "expression": {
4419
+ "interpolated": true,
4420
+ "parameters": [
4421
+ "zoom"
4422
+ ]
4423
+ },
4424
+ "transition": true,
4425
+ "doc": "The base color at the horizon."
4426
+ },
4427
+ "fog-color": {
4428
+ "type": "color",
4429
+ "property-type": "data-constant",
4430
+ "default": "#ffffff",
4431
+ "expression": {
4432
+ "interpolated": true,
4433
+ "parameters": [
4434
+ "zoom"
4435
+ ]
4436
+ },
4437
+ "transition": true,
4438
+ "doc": "The base color for the fog. Requires 3D terrain."
4439
+ },
4440
+ "fog-ground-blend": {
4441
+ "type": "number",
4442
+ "property-type": "data-constant",
4443
+ "default": 0.5,
4444
+ "minimum": 0,
4445
+ "maximum": 1,
4446
+ "expression": {
4447
+ "interpolated": true,
4448
+ "parameters": [
4449
+ "zoom"
4450
+ ]
4451
+ },
4452
+ "transition": true,
4453
+ "doc": "How to blend the fog over the 3D terrain. Where 0 is the map center and 1 is the horizon."
4454
+ },
4455
+ "horizon-fog-blend": {
4456
+ "type": "number",
4457
+ "property-type": "data-constant",
4458
+ "default": 0.8,
4459
+ "minimum": 0,
4460
+ "maximum": 1,
4461
+ "expression": {
4462
+ "interpolated": true,
4463
+ "parameters": [
4464
+ "zoom"
4465
+ ]
4466
+ },
4467
+ "transition": true,
4468
+ "doc": "How to blend the fog color and the horizon color. Where 0 is using the horizon color only and 1 is using the fog color only."
4469
+ },
4470
+ "sky-horizon-blend": {
4471
+ "type": "number",
4472
+ "property-type": "data-constant",
4473
+ "default": 0.8,
4474
+ "minimum": 0,
4475
+ "maximum": 1,
4476
+ "expression": {
4477
+ "interpolated": true,
4478
+ "parameters": [
4479
+ "zoom"
4480
+ ]
4481
+ },
4482
+ "transition": true,
4483
+ "doc": "How to blend the the sky color and the horizon color. Where 1 is blending the color at the middle of the sky and 0 is not blending at all and using the sky color only."
4484
+ },
4485
+ "atmosphere-blend": {
4486
+ "type": "number",
4487
+ "property-type": "data-constant",
4488
+ "default": 0.8,
4489
+ "minimum": 0,
4490
+ "maximum": 1,
4491
+ "expression": {
4492
+ "interpolated": true,
4493
+ "parameters": [
4494
+ "zoom"
4495
+ ]
4496
+ },
4497
+ "transition": true,
4498
+ "doc": "How to blend the atmosphere. Where 1 is visible atmosphere and 0 is hidden. It is best to interpolate this expression when using globe projection."
4499
+ }
4500
+ },
3825
4501
  "terrain": {
3826
4502
  "source": {
3827
4503
  "type": "string",
@@ -3829,7 +4505,9 @@
3829
4505
  "required": true,
3830
4506
  "sdk-support": {
3831
4507
  "basic functionality": {
3832
- "js": "2.2.0"
4508
+ "js": "2.2.0",
4509
+ "ios": "https://github.com/maplibre/maplibre-native/issues/252",
4510
+ "android": "https://github.com/maplibre/maplibre-native/issues/252"
3833
4511
  }
3834
4512
  }
3835
4513
  },
@@ -3840,7 +4518,24 @@
3840
4518
  "default": 1.0,
3841
4519
  "sdk-support": {
3842
4520
  "basic functionality": {
3843
- "js": "2.2.0"
4521
+ "js": "2.2.0",
4522
+ "ios": "https://github.com/maplibre/maplibre-native/issues/252",
4523
+ "android": "https://github.com/maplibre/maplibre-native/issues/252"
4524
+ }
4525
+ }
4526
+ }
4527
+ },
4528
+ "projection": {
4529
+ "type": {
4530
+ "type": "enum",
4531
+ "doc": "The projection type.",
4532
+ "default": "mercator",
4533
+ "values": {
4534
+ "mercator": {
4535
+ "doc": "The Mercator projection."
4536
+ },
4537
+ "globe": {
4538
+ "doc": "The globe projection."
3844
4539
  }
3845
4540
  }
3846
4541
  }
@@ -3865,8 +4560,7 @@
3865
4560
  "basic functionality": {
3866
4561
  "js": "0.10.0",
3867
4562
  "android": "2.0.1",
3868
- "ios": "2.0.0",
3869
- "macos": "0.1.0"
4563
+ "ios": "2.0.0"
3870
4564
  }
3871
4565
  },
3872
4566
  "expression": {
@@ -3888,14 +4582,12 @@
3888
4582
  "basic functionality": {
3889
4583
  "js": "0.10.0",
3890
4584
  "android": "2.0.1",
3891
- "ios": "2.0.0",
3892
- "macos": "0.1.0"
4585
+ "ios": "2.0.0"
3893
4586
  },
3894
4587
  "data-driven styling": {
3895
4588
  "js": "0.21.0",
3896
4589
  "android": "5.0.0",
3897
- "ios": "3.5.0",
3898
- "macos": "0.4.0"
4590
+ "ios": "3.5.0"
3899
4591
  }
3900
4592
  },
3901
4593
  "expression": {
@@ -3922,14 +4614,12 @@
3922
4614
  "basic functionality": {
3923
4615
  "js": "0.10.0",
3924
4616
  "android": "2.0.1",
3925
- "ios": "2.0.0",
3926
- "macos": "0.1.0"
4617
+ "ios": "2.0.0"
3927
4618
  },
3928
4619
  "data-driven styling": {
3929
4620
  "js": "0.19.0",
3930
4621
  "android": "5.0.0",
3931
- "ios": "3.5.0",
3932
- "macos": "0.4.0"
4622
+ "ios": "3.5.0"
3933
4623
  }
3934
4624
  },
3935
4625
  "expression": {
@@ -3958,14 +4648,12 @@
3958
4648
  "basic functionality": {
3959
4649
  "js": "0.10.0",
3960
4650
  "android": "2.0.1",
3961
- "ios": "2.0.0",
3962
- "macos": "0.1.0"
4651
+ "ios": "2.0.0"
3963
4652
  },
3964
4653
  "data-driven styling": {
3965
4654
  "js": "0.19.0",
3966
4655
  "android": "5.0.0",
3967
- "ios": "3.5.0",
3968
- "macos": "0.4.0"
4656
+ "ios": "3.5.0"
3969
4657
  }
3970
4658
  },
3971
4659
  "expression": {
@@ -3993,8 +4681,7 @@
3993
4681
  "basic functionality": {
3994
4682
  "js": "0.10.0",
3995
4683
  "android": "2.0.1",
3996
- "ios": "2.0.0",
3997
- "macos": "0.1.0"
4684
+ "ios": "2.0.0"
3998
4685
  }
3999
4686
  },
4000
4687
  "expression": {
@@ -4024,8 +4711,7 @@
4024
4711
  "basic functionality": {
4025
4712
  "js": "0.10.0",
4026
4713
  "android": "2.0.1",
4027
- "ios": "2.0.0",
4028
- "macos": "0.1.0"
4714
+ "ios": "2.0.0"
4029
4715
  }
4030
4716
  },
4031
4717
  "expression": {
@@ -4044,13 +4730,11 @@
4044
4730
  "basic functionality": {
4045
4731
  "js": "0.10.0",
4046
4732
  "android": "2.0.1",
4047
- "ios": "2.0.0",
4048
- "macos": "0.1.0"
4733
+ "ios": "2.0.0"
4049
4734
  },
4050
4735
  "data-driven styling": {
4051
4736
  "js": "0.49.0",
4052
4737
  "android": "6.5.0",
4053
- "macos": "0.11.0",
4054
4738
  "ios": "4.4.0"
4055
4739
  }
4056
4740
  },
@@ -4076,8 +4760,7 @@
4076
4760
  "basic functionality": {
4077
4761
  "js": "0.27.0",
4078
4762
  "android": "5.1.0",
4079
- "ios": "3.6.0",
4080
- "macos": "0.5.0"
4763
+ "ios": "3.6.0"
4081
4764
  }
4082
4765
  },
4083
4766
  "expression": {
@@ -4102,14 +4785,12 @@
4102
4785
  "basic functionality": {
4103
4786
  "js": "0.27.0",
4104
4787
  "android": "5.1.0",
4105
- "ios": "3.6.0",
4106
- "macos": "0.5.0"
4788
+ "ios": "3.6.0"
4107
4789
  },
4108
4790
  "data-driven styling": {
4109
4791
  "js": "0.27.0",
4110
4792
  "android": "5.1.0",
4111
- "ios": "3.6.0",
4112
- "macos": "0.5.0"
4793
+ "ios": "3.6.0"
4113
4794
  }
4114
4795
  },
4115
4796
  "expression": {
@@ -4137,8 +4818,7 @@
4137
4818
  "basic functionality": {
4138
4819
  "js": "0.27.0",
4139
4820
  "android": "5.1.0",
4140
- "ios": "3.6.0",
4141
- "macos": "0.5.0"
4821
+ "ios": "3.6.0"
4142
4822
  }
4143
4823
  },
4144
4824
  "expression": {
@@ -4168,8 +4848,7 @@
4168
4848
  "basic functionality": {
4169
4849
  "js": "0.27.0",
4170
4850
  "android": "5.1.0",
4171
- "ios": "3.6.0",
4172
- "macos": "0.5.0"
4851
+ "ios": "3.6.0"
4173
4852
  }
4174
4853
  },
4175
4854
  "expression": {
@@ -4188,13 +4867,11 @@
4188
4867
  "basic functionality": {
4189
4868
  "js": "0.27.0",
4190
4869
  "android": "5.1.0",
4191
- "ios": "3.6.0",
4192
- "macos": "0.5.0"
4870
+ "ios": "3.6.0"
4193
4871
  },
4194
4872
  "data-driven styling": {
4195
4873
  "js": "0.49.0",
4196
4874
  "android": "6.5.0",
4197
- "macos": "0.11.0",
4198
4875
  "ios": "4.4.0"
4199
4876
  }
4200
4877
  },
@@ -4218,14 +4895,12 @@
4218
4895
  "basic functionality": {
4219
4896
  "js": "0.27.0",
4220
4897
  "android": "5.1.0",
4221
- "ios": "3.6.0",
4222
- "macos": "0.5.0"
4898
+ "ios": "3.6.0"
4223
4899
  },
4224
4900
  "data-driven styling": {
4225
4901
  "js": "0.27.0",
4226
4902
  "android": "5.1.0",
4227
- "ios": "3.6.0",
4228
- "macos": "0.5.0"
4903
+ "ios": "3.6.0"
4229
4904
  }
4230
4905
  },
4231
4906
  "expression": {
@@ -4252,14 +4927,12 @@
4252
4927
  "basic functionality": {
4253
4928
  "js": "0.27.0",
4254
4929
  "android": "5.1.0",
4255
- "ios": "3.6.0",
4256
- "macos": "0.5.0"
4930
+ "ios": "3.6.0"
4257
4931
  },
4258
4932
  "data-driven styling": {
4259
4933
  "js": "0.27.0",
4260
4934
  "android": "5.1.0",
4261
- "ios": "3.6.0",
4262
- "macos": "0.5.0"
4935
+ "ios": "3.6.0"
4263
4936
  }
4264
4937
  },
4265
4938
  "expression": {
@@ -4281,7 +4954,7 @@
4281
4954
  "basic functionality": {
4282
4955
  "js": "0.50.0",
4283
4956
  "ios": "4.7.0",
4284
- "macos": "0.13.0"
4957
+ "android": "7.0.0"
4285
4958
  }
4286
4959
  },
4287
4960
  "expression": {
@@ -4305,14 +4978,12 @@
4305
4978
  "basic functionality": {
4306
4979
  "js": "0.10.0",
4307
4980
  "android": "2.0.1",
4308
- "ios": "2.0.0",
4309
- "macos": "0.1.0"
4981
+ "ios": "2.0.0"
4310
4982
  },
4311
4983
  "data-driven styling": {
4312
4984
  "js": "0.29.0",
4313
4985
  "android": "5.0.0",
4314
- "ios": "3.5.0",
4315
- "macos": "0.4.0"
4986
+ "ios": "3.5.0"
4316
4987
  }
4317
4988
  },
4318
4989
  "expression": {
@@ -4339,14 +5010,12 @@
4339
5010
  "basic functionality": {
4340
5011
  "js": "0.10.0",
4341
5012
  "android": "2.0.1",
4342
- "ios": "2.0.0",
4343
- "macos": "0.1.0"
5013
+ "ios": "2.0.0"
4344
5014
  },
4345
5015
  "data-driven styling": {
4346
5016
  "js": "0.23.0",
4347
5017
  "android": "5.0.0",
4348
- "ios": "3.5.0",
4349
- "macos": "0.4.0"
5018
+ "ios": "3.5.0"
4350
5019
  }
4351
5020
  },
4352
5021
  "expression": {
@@ -4374,8 +5043,7 @@
4374
5043
  "basic functionality": {
4375
5044
  "js": "0.10.0",
4376
5045
  "android": "2.0.1",
4377
- "ios": "2.0.0",
4378
- "macos": "0.1.0"
5046
+ "ios": "2.0.0"
4379
5047
  }
4380
5048
  },
4381
5049
  "expression": {
@@ -4405,8 +5073,7 @@
4405
5073
  "basic functionality": {
4406
5074
  "js": "0.10.0",
4407
5075
  "android": "2.0.1",
4408
- "ios": "2.0.0",
4409
- "macos": "0.1.0"
5076
+ "ios": "2.0.0"
4410
5077
  }
4411
5078
  },
4412
5079
  "expression": {
@@ -4428,14 +5095,12 @@
4428
5095
  "basic functionality": {
4429
5096
  "js": "0.10.0",
4430
5097
  "android": "2.0.1",
4431
- "ios": "2.0.0",
4432
- "macos": "0.1.0"
5098
+ "ios": "2.0.0"
4433
5099
  },
4434
5100
  "data-driven styling": {
4435
5101
  "js": "0.39.0",
4436
5102
  "android": "5.2.0",
4437
- "ios": "3.7.0",
4438
- "macos": "0.6.0"
5103
+ "ios": "3.7.0"
4439
5104
  }
4440
5105
  },
4441
5106
  "expression": {
@@ -4459,14 +5124,12 @@
4459
5124
  "basic functionality": {
4460
5125
  "js": "0.10.0",
4461
5126
  "android": "2.0.1",
4462
- "ios": "2.0.0",
4463
- "macos": "0.1.0"
5127
+ "ios": "2.0.0"
4464
5128
  },
4465
5129
  "data-driven styling": {
4466
5130
  "js": "0.29.0",
4467
5131
  "android": "5.0.0",
4468
- "ios": "3.5.0",
4469
- "macos": "0.4.0"
5132
+ "ios": "3.5.0"
4470
5133
  }
4471
5134
  },
4472
5135
  "expression": {
@@ -4489,14 +5152,12 @@
4489
5152
  "basic functionality": {
4490
5153
  "js": "0.12.1",
4491
5154
  "android": "3.0.0",
4492
- "ios": "3.1.0",
4493
- "macos": "0.1.0"
5155
+ "ios": "3.1.0"
4494
5156
  },
4495
5157
  "data-driven styling": {
4496
5158
  "js": "0.29.0",
4497
5159
  "android": "5.0.0",
4498
- "ios": "3.5.0",
4499
- "macos": "0.4.0"
5160
+ "ios": "3.5.0"
4500
5161
  }
4501
5162
  },
4502
5163
  "expression": {
@@ -4520,14 +5181,12 @@
4520
5181
  "basic functionality": {
4521
5182
  "js": "0.10.0",
4522
5183
  "android": "2.0.1",
4523
- "ios": "2.0.0",
4524
- "macos": "0.1.0"
5184
+ "ios": "2.0.0"
4525
5185
  },
4526
5186
  "data-driven styling": {
4527
5187
  "js": "0.29.0",
4528
5188
  "android": "5.0.0",
4529
- "ios": "3.5.0",
4530
- "macos": "0.4.0"
5189
+ "ios": "3.5.0"
4531
5190
  }
4532
5191
  },
4533
5192
  "expression": {
@@ -4556,10 +5215,13 @@
4556
5215
  "basic functionality": {
4557
5216
  "js": "0.10.0",
4558
5217
  "android": "2.0.1",
4559
- "ios": "2.0.0",
4560
- "macos": "0.1.0"
5218
+ "ios": "2.0.0"
4561
5219
  },
4562
- "data-driven styling": {}
5220
+ "data-driven styling": {
5221
+ "js": "https://github.com/maplibre/maplibre-gl-js/issues/1235",
5222
+ "ios": "https://github.com/maplibre/maplibre-native/issues/744",
5223
+ "android": "https://github.com/maplibre/maplibre-native/issues/744"
5224
+ }
4563
5225
  },
4564
5226
  "expression": {
4565
5227
  "interpolated": false,
@@ -4577,13 +5239,11 @@
4577
5239
  "basic functionality": {
4578
5240
  "js": "0.10.0",
4579
5241
  "android": "2.0.1",
4580
- "ios": "2.0.0",
4581
- "macos": "0.1.0"
5242
+ "ios": "2.0.0"
4582
5243
  },
4583
5244
  "data-driven styling": {
4584
5245
  "js": "0.49.0",
4585
5246
  "android": "6.5.0",
4586
- "macos": "0.11.0",
4587
5247
  "ios": "4.4.0"
4588
5248
  }
4589
5249
  },
@@ -4618,8 +5278,7 @@
4618
5278
  "basic functionality": {
4619
5279
  "js": "0.45.0",
4620
5280
  "android": "6.5.0",
4621
- "ios": "4.4.0",
4622
- "macos": "0.11.0"
5281
+ "ios": "4.4.0"
4623
5282
  },
4624
5283
  "data-driven styling": {}
4625
5284
  },
@@ -4644,14 +5303,12 @@
4644
5303
  "basic functionality": {
4645
5304
  "js": "0.10.0",
4646
5305
  "android": "2.0.1",
4647
- "ios": "2.0.0",
4648
- "macos": "0.1.0"
5306
+ "ios": "2.0.0"
4649
5307
  },
4650
5308
  "data-driven styling": {
4651
5309
  "js": "0.18.0",
4652
5310
  "android": "5.0.0",
4653
- "ios": "3.5.0",
4654
- "macos": "0.4.0"
5311
+ "ios": "3.5.0"
4655
5312
  }
4656
5313
  },
4657
5314
  "expression": {
@@ -4673,14 +5330,12 @@
4673
5330
  "basic functionality": {
4674
5331
  "js": "0.10.0",
4675
5332
  "android": "2.0.1",
4676
- "ios": "2.0.0",
4677
- "macos": "0.1.0"
5333
+ "ios": "2.0.0"
4678
5334
  },
4679
5335
  "data-driven styling": {
4680
5336
  "js": "0.18.0",
4681
5337
  "android": "5.0.0",
4682
- "ios": "3.5.0",
4683
- "macos": "0.4.0"
5338
+ "ios": "3.5.0"
4684
5339
  }
4685
5340
  },
4686
5341
  "expression": {
@@ -4702,14 +5357,12 @@
4702
5357
  "basic functionality": {
4703
5358
  "js": "0.10.0",
4704
5359
  "android": "2.0.1",
4705
- "ios": "2.0.0",
4706
- "macos": "0.1.0"
5360
+ "ios": "2.0.0"
4707
5361
  },
4708
5362
  "data-driven styling": {
4709
5363
  "js": "0.20.0",
4710
5364
  "android": "5.0.0",
4711
- "ios": "3.5.0",
4712
- "macos": "0.4.0"
5365
+ "ios": "3.5.0"
4713
5366
  }
4714
5367
  },
4715
5368
  "expression": {
@@ -4733,14 +5386,12 @@
4733
5386
  "basic functionality": {
4734
5387
  "js": "0.10.0",
4735
5388
  "android": "2.0.1",
4736
- "ios": "2.0.0",
4737
- "macos": "0.1.0"
5389
+ "ios": "2.0.0"
4738
5390
  },
4739
5391
  "data-driven styling": {
4740
5392
  "js": "0.20.0",
4741
5393
  "android": "5.0.0",
4742
- "ios": "3.5.0",
4743
- "macos": "0.4.0"
5394
+ "ios": "3.5.0"
4744
5395
  }
4745
5396
  },
4746
5397
  "expression": {
@@ -4768,8 +5419,7 @@
4768
5419
  "basic functionality": {
4769
5420
  "js": "0.10.0",
4770
5421
  "android": "2.0.1",
4771
- "ios": "2.0.0",
4772
- "macos": "0.1.0"
5422
+ "ios": "2.0.0"
4773
5423
  }
4774
5424
  },
4775
5425
  "expression": {
@@ -4799,8 +5449,7 @@
4799
5449
  "basic functionality": {
4800
5450
  "js": "0.10.0",
4801
5451
  "android": "2.0.1",
4802
- "ios": "2.0.0",
4803
- "macos": "0.1.0"
5452
+ "ios": "2.0.0"
4804
5453
  }
4805
5454
  },
4806
5455
  "expression": {
@@ -4827,8 +5476,7 @@
4827
5476
  "basic functionality": {
4828
5477
  "js": "0.21.0",
4829
5478
  "android": "4.2.0",
4830
- "ios": "3.4.0",
4831
- "macos": "0.2.1"
5479
+ "ios": "3.4.0"
4832
5480
  }
4833
5481
  },
4834
5482
  "expression": {
@@ -4855,8 +5503,7 @@
4855
5503
  "basic functionality": {
4856
5504
  "js": "0.39.0",
4857
5505
  "android": "5.2.0",
4858
- "ios": "3.7.0",
4859
- "macos": "0.6.0"
5506
+ "ios": "3.7.0"
4860
5507
  }
4861
5508
  },
4862
5509
  "expression": {
@@ -4878,14 +5525,12 @@
4878
5525
  "basic functionality": {
4879
5526
  "js": "0.29.0",
4880
5527
  "android": "5.0.0",
4881
- "ios": "3.5.0",
4882
- "macos": "0.4.0"
5528
+ "ios": "3.5.0"
4883
5529
  },
4884
5530
  "data-driven styling": {
4885
5531
  "js": "0.29.0",
4886
5532
  "android": "5.0.0",
4887
- "ios": "3.5.0",
4888
- "macos": "0.4.0"
5533
+ "ios": "3.5.0"
4889
5534
  }
4890
5535
  },
4891
5536
  "expression": {
@@ -4907,14 +5552,12 @@
4907
5552
  "basic functionality": {
4908
5553
  "js": "0.29.0",
4909
5554
  "android": "5.0.0",
4910
- "ios": "3.5.0",
4911
- "macos": "0.4.0"
5555
+ "ios": "3.5.0"
4912
5556
  },
4913
5557
  "data-driven styling": {
4914
5558
  "js": "0.29.0",
4915
5559
  "android": "5.0.0",
4916
- "ios": "3.5.0",
4917
- "macos": "0.4.0"
5560
+ "ios": "3.5.0"
4918
5561
  }
4919
5562
  },
4920
5563
  "expression": {
@@ -4938,14 +5581,12 @@
4938
5581
  "basic functionality": {
4939
5582
  "js": "0.29.0",
4940
5583
  "android": "5.0.0",
4941
- "ios": "3.5.0",
4942
- "macos": "0.4.0"
5584
+ "ios": "3.5.0"
4943
5585
  },
4944
5586
  "data-driven styling": {
4945
5587
  "js": "0.29.0",
4946
5588
  "android": "5.0.0",
4947
- "ios": "3.5.0",
4948
- "macos": "0.4.0"
5589
+ "ios": "3.5.0"
4949
5590
  }
4950
5591
  },
4951
5592
  "expression": {
@@ -4971,14 +5612,12 @@
4971
5612
  "basic functionality": {
4972
5613
  "js": "0.41.0",
4973
5614
  "android": "6.0.0",
4974
- "ios": "4.0.0",
4975
- "macos": "0.7.0"
5615
+ "ios": "4.0.0"
4976
5616
  },
4977
5617
  "data-driven styling": {
4978
5618
  "js": "0.43.0",
4979
5619
  "android": "6.0.0",
4980
- "ios": "4.0.0",
4981
- "macos": "0.7.0"
5620
+ "ios": "4.0.0"
4982
5621
  }
4983
5622
  },
4984
5623
  "expression": {
@@ -5001,14 +5640,12 @@
5001
5640
  "basic functionality": {
5002
5641
  "js": "0.41.0",
5003
5642
  "android": "6.0.0",
5004
- "ios": "4.0.0",
5005
- "macos": "0.7.0"
5643
+ "ios": "4.0.0"
5006
5644
  },
5007
5645
  "data-driven styling": {
5008
5646
  "js": "0.41.0",
5009
5647
  "android": "6.0.0",
5010
- "ios": "4.0.0",
5011
- "macos": "0.7.0"
5648
+ "ios": "4.0.0"
5012
5649
  }
5013
5650
  },
5014
5651
  "expression": {
@@ -5031,8 +5668,7 @@
5031
5668
  "basic functionality": {
5032
5669
  "js": "0.41.0",
5033
5670
  "android": "6.0.0",
5034
- "ios": "4.0.0",
5035
- "macos": "0.7.0"
5671
+ "ios": "4.0.0"
5036
5672
  }
5037
5673
  },
5038
5674
  "expression": {
@@ -5072,8 +5708,7 @@
5072
5708
  "basic functionality": {
5073
5709
  "js": "0.41.0",
5074
5710
  "android": "6.0.0",
5075
- "ios": "4.0.0",
5076
- "macos": "0.7.0"
5711
+ "ios": "4.0.0"
5077
5712
  },
5078
5713
  "data-driven styling": {}
5079
5714
  },
@@ -5096,8 +5731,7 @@
5096
5731
  "basic functionality": {
5097
5732
  "js": "0.41.0",
5098
5733
  "android": "6.0.0",
5099
- "ios": "4.0.0",
5100
- "macos": "0.7.0"
5734
+ "ios": "4.0.0"
5101
5735
  }
5102
5736
  },
5103
5737
  "expression": {
@@ -5124,14 +5758,12 @@
5124
5758
  "basic functionality": {
5125
5759
  "js": "0.10.0",
5126
5760
  "android": "2.0.1",
5127
- "ios": "2.0.0",
5128
- "macos": "0.1.0"
5761
+ "ios": "2.0.0"
5129
5762
  },
5130
5763
  "data-driven styling": {
5131
5764
  "js": "0.33.0",
5132
5765
  "android": "5.0.0",
5133
- "ios": "3.5.0",
5134
- "macos": "0.4.0"
5766
+ "ios": "3.5.0"
5135
5767
  }
5136
5768
  },
5137
5769
  "expression": {
@@ -5148,7 +5780,7 @@
5148
5780
  "type": "color",
5149
5781
  "default": "#000000",
5150
5782
  "transition": true,
5151
- "doc": "The color of the icon. This can only be used with sdf icons.",
5783
+ "doc": "The color of the icon. This can only be used with SDF icons.",
5152
5784
  "requires": [
5153
5785
  "icon-image"
5154
5786
  ],
@@ -5156,14 +5788,12 @@
5156
5788
  "basic functionality": {
5157
5789
  "js": "0.10.0",
5158
5790
  "android": "2.0.1",
5159
- "ios": "2.0.0",
5160
- "macos": "0.1.0"
5791
+ "ios": "2.0.0"
5161
5792
  },
5162
5793
  "data-driven styling": {
5163
5794
  "js": "0.33.0",
5164
5795
  "android": "5.0.0",
5165
- "ios": "3.5.0",
5166
- "macos": "0.4.0"
5796
+ "ios": "3.5.0"
5167
5797
  }
5168
5798
  },
5169
5799
  "expression": {
@@ -5188,14 +5818,12 @@
5188
5818
  "basic functionality": {
5189
5819
  "js": "0.10.0",
5190
5820
  "android": "2.0.1",
5191
- "ios": "2.0.0",
5192
- "macos": "0.1.0"
5821
+ "ios": "2.0.0"
5193
5822
  },
5194
5823
  "data-driven styling": {
5195
5824
  "js": "0.33.0",
5196
5825
  "android": "5.0.0",
5197
- "ios": "3.5.0",
5198
- "macos": "0.4.0"
5826
+ "ios": "3.5.0"
5199
5827
  }
5200
5828
  },
5201
5829
  "expression": {
@@ -5214,7 +5842,7 @@
5214
5842
  "minimum": 0,
5215
5843
  "transition": true,
5216
5844
  "units": "pixels",
5217
- "doc": "Distance of halo to the icon outline.",
5845
+ "doc": "Distance of halo to the icon outline. \n\nThe unit is in pixels only for SDF sprites that were created with a blur radius of 8, multiplied by the display density. I.e., the radius needs to be 16 for `@2x` sprites, etc.",
5218
5846
  "requires": [
5219
5847
  "icon-image"
5220
5848
  ],
@@ -5222,14 +5850,12 @@
5222
5850
  "basic functionality": {
5223
5851
  "js": "0.10.0",
5224
5852
  "android": "2.0.1",
5225
- "ios": "2.0.0",
5226
- "macos": "0.1.0"
5853
+ "ios": "2.0.0"
5227
5854
  },
5228
5855
  "data-driven styling": {
5229
5856
  "js": "0.33.0",
5230
5857
  "android": "5.0.0",
5231
- "ios": "3.5.0",
5232
- "macos": "0.4.0"
5858
+ "ios": "3.5.0"
5233
5859
  }
5234
5860
  },
5235
5861
  "expression": {
@@ -5256,14 +5882,12 @@
5256
5882
  "basic functionality": {
5257
5883
  "js": "0.10.0",
5258
5884
  "android": "2.0.1",
5259
- "ios": "2.0.0",
5260
- "macos": "0.1.0"
5885
+ "ios": "2.0.0"
5261
5886
  },
5262
5887
  "data-driven styling": {
5263
5888
  "js": "0.33.0",
5264
5889
  "android": "5.0.0",
5265
- "ios": "3.5.0",
5266
- "macos": "0.4.0"
5890
+ "ios": "3.5.0"
5267
5891
  }
5268
5892
  },
5269
5893
  "expression": {
@@ -5294,8 +5918,7 @@
5294
5918
  "basic functionality": {
5295
5919
  "js": "0.10.0",
5296
5920
  "android": "2.0.1",
5297
- "ios": "2.0.0",
5298
- "macos": "0.1.0"
5921
+ "ios": "2.0.0"
5299
5922
  }
5300
5923
  },
5301
5924
  "expression": {
@@ -5326,8 +5949,7 @@
5326
5949
  "basic functionality": {
5327
5950
  "js": "0.10.0",
5328
5951
  "android": "2.0.1",
5329
- "ios": "2.0.0",
5330
- "macos": "0.1.0"
5952
+ "ios": "2.0.0"
5331
5953
  }
5332
5954
  },
5333
5955
  "expression": {
@@ -5352,14 +5974,12 @@
5352
5974
  "basic functionality": {
5353
5975
  "js": "0.10.0",
5354
5976
  "android": "2.0.1",
5355
- "ios": "2.0.0",
5356
- "macos": "0.1.0"
5977
+ "ios": "2.0.0"
5357
5978
  },
5358
5979
  "data-driven styling": {
5359
5980
  "js": "0.33.0",
5360
5981
  "android": "5.0.0",
5361
- "ios": "3.5.0",
5362
- "macos": "0.4.0"
5982
+ "ios": "3.5.0"
5363
5983
  }
5364
5984
  },
5365
5985
  "expression": {
@@ -5385,14 +6005,12 @@
5385
6005
  "basic functionality": {
5386
6006
  "js": "0.10.0",
5387
6007
  "android": "2.0.1",
5388
- "ios": "2.0.0",
5389
- "macos": "0.1.0"
6008
+ "ios": "2.0.0"
5390
6009
  },
5391
6010
  "data-driven styling": {
5392
6011
  "js": "0.33.0",
5393
6012
  "android": "5.0.0",
5394
- "ios": "3.5.0",
5395
- "macos": "0.4.0"
6013
+ "ios": "3.5.0"
5396
6014
  }
5397
6015
  },
5398
6016
  "expression": {
@@ -5417,14 +6035,12 @@
5417
6035
  "basic functionality": {
5418
6036
  "js": "0.10.0",
5419
6037
  "android": "2.0.1",
5420
- "ios": "2.0.0",
5421
- "macos": "0.1.0"
6038
+ "ios": "2.0.0"
5422
6039
  },
5423
6040
  "data-driven styling": {
5424
6041
  "js": "0.33.0",
5425
6042
  "android": "5.0.0",
5426
- "ios": "3.5.0",
5427
- "macos": "0.4.0"
6043
+ "ios": "3.5.0"
5428
6044
  }
5429
6045
  },
5430
6046
  "expression": {
@@ -5451,14 +6067,12 @@
5451
6067
  "basic functionality": {
5452
6068
  "js": "0.10.0",
5453
6069
  "android": "2.0.1",
5454
- "ios": "2.0.0",
5455
- "macos": "0.1.0"
6070
+ "ios": "2.0.0"
5456
6071
  },
5457
6072
  "data-driven styling": {
5458
6073
  "js": "0.33.0",
5459
6074
  "android": "5.0.0",
5460
- "ios": "3.5.0",
5461
- "macos": "0.4.0"
6075
+ "ios": "3.5.0"
5462
6076
  }
5463
6077
  },
5464
6078
  "expression": {
@@ -5485,14 +6099,12 @@
5485
6099
  "basic functionality": {
5486
6100
  "js": "0.10.0",
5487
6101
  "android": "2.0.1",
5488
- "ios": "2.0.0",
5489
- "macos": "0.1.0"
6102
+ "ios": "2.0.0"
5490
6103
  },
5491
6104
  "data-driven styling": {
5492
6105
  "js": "0.33.0",
5493
6106
  "android": "5.0.0",
5494
- "ios": "3.5.0",
5495
- "macos": "0.4.0"
6107
+ "ios": "3.5.0"
5496
6108
  }
5497
6109
  },
5498
6110
  "expression": {
@@ -5523,8 +6135,7 @@
5523
6135
  "basic functionality": {
5524
6136
  "js": "0.10.0",
5525
6137
  "android": "2.0.1",
5526
- "ios": "2.0.0",
5527
- "macos": "0.1.0"
6138
+ "ios": "2.0.0"
5528
6139
  }
5529
6140
  },
5530
6141
  "expression": {
@@ -5555,8 +6166,7 @@
5555
6166
  "basic functionality": {
5556
6167
  "js": "0.10.0",
5557
6168
  "android": "2.0.1",
5558
- "ios": "2.0.0",
5559
- "macos": "0.1.0"
6169
+ "ios": "2.0.0"
5560
6170
  }
5561
6171
  },
5562
6172
  "expression": {
@@ -5580,8 +6190,7 @@
5580
6190
  "basic functionality": {
5581
6191
  "js": "0.10.0",
5582
6192
  "android": "2.0.1",
5583
- "ios": "2.0.0",
5584
- "macos": "0.1.0"
6193
+ "ios": "2.0.0"
5585
6194
  }
5586
6195
  },
5587
6196
  "expression": {
@@ -5603,8 +6212,7 @@
5603
6212
  "basic functionality": {
5604
6213
  "js": "0.10.0",
5605
6214
  "android": "2.0.1",
5606
- "ios": "2.0.0",
5607
- "macos": "0.1.0"
6215
+ "ios": "2.0.0"
5608
6216
  }
5609
6217
  },
5610
6218
  "expression": {
@@ -5626,8 +6234,7 @@
5626
6234
  "basic functionality": {
5627
6235
  "js": "0.10.0",
5628
6236
  "android": "2.0.1",
5629
- "ios": "2.0.0",
5630
- "macos": "0.1.0"
6237
+ "ios": "2.0.0"
5631
6238
  }
5632
6239
  },
5633
6240
  "expression": {
@@ -5649,8 +6256,7 @@
5649
6256
  "basic functionality": {
5650
6257
  "js": "0.10.0",
5651
6258
  "android": "2.0.1",
5652
- "ios": "2.0.0",
5653
- "macos": "0.1.0"
6259
+ "ios": "2.0.0"
5654
6260
  }
5655
6261
  },
5656
6262
  "expression": {
@@ -5672,8 +6278,7 @@
5672
6278
  "basic functionality": {
5673
6279
  "js": "0.10.0",
5674
6280
  "android": "2.0.1",
5675
- "ios": "2.0.0",
5676
- "macos": "0.1.0"
6281
+ "ios": "2.0.0"
5677
6282
  }
5678
6283
  },
5679
6284
  "expression": {
@@ -5695,8 +6300,7 @@
5695
6300
  "basic functionality": {
5696
6301
  "js": "0.10.0",
5697
6302
  "android": "2.0.1",
5698
- "ios": "2.0.0",
5699
- "macos": "0.1.0"
6303
+ "ios": "2.0.0"
5700
6304
  }
5701
6305
  },
5702
6306
  "expression": {
@@ -5723,8 +6327,7 @@
5723
6327
  "basic functionality": {
5724
6328
  "js": "0.47.0",
5725
6329
  "android": "6.3.0",
5726
- "ios": "4.2.0",
5727
- "macos": "0.9.0"
6330
+ "ios": "4.2.0"
5728
6331
  }
5729
6332
  },
5730
6333
  "expression": {
@@ -5741,13 +6344,12 @@
5741
6344
  "minimum": 0,
5742
6345
  "transition": false,
5743
6346
  "units": "milliseconds",
5744
- "doc": "Fade duration when a new tile is added.",
6347
+ "doc": "Fade duration when a new tile is added, or when a video is started or its coordinates are updated.",
5745
6348
  "sdk-support": {
5746
6349
  "basic functionality": {
5747
6350
  "js": "0.10.0",
5748
6351
  "android": "2.0.1",
5749
- "ios": "2.0.0",
5750
- "macos": "0.1.0"
6352
+ "ios": "2.0.0"
5751
6353
  }
5752
6354
  },
5753
6355
  "expression": {
@@ -5771,8 +6373,7 @@
5771
6373
  "basic functionality": {
5772
6374
  "js": "0.43.0",
5773
6375
  "android": "6.0.0",
5774
- "ios": "4.0.0",
5775
- "macos": "0.7.0"
6376
+ "ios": "4.0.0"
5776
6377
  }
5777
6378
  },
5778
6379
  "expression": {
@@ -5799,8 +6400,7 @@
5799
6400
  "basic functionality": {
5800
6401
  "js": "0.43.0",
5801
6402
  "android": "6.0.0",
5802
- "ios": "4.0.0",
5803
- "macos": "0.7.0"
6403
+ "ios": "4.0.0"
5804
6404
  }
5805
6405
  },
5806
6406
  "expression": {
@@ -5822,8 +6422,7 @@
5822
6422
  "basic functionality": {
5823
6423
  "js": "0.43.0",
5824
6424
  "android": "6.0.0",
5825
- "ios": "4.0.0",
5826
- "macos": "0.7.0"
6425
+ "ios": "4.0.0"
5827
6426
  }
5828
6427
  },
5829
6428
  "expression": {
@@ -5843,8 +6442,7 @@
5843
6442
  "basic functionality": {
5844
6443
  "js": "0.43.0",
5845
6444
  "android": "6.0.0",
5846
- "ios": "4.0.0",
5847
- "macos": "0.7.0"
6445
+ "ios": "4.0.0"
5848
6446
  }
5849
6447
  },
5850
6448
  "expression": {
@@ -5864,8 +6462,7 @@
5864
6462
  "basic functionality": {
5865
6463
  "js": "0.43.0",
5866
6464
  "android": "6.0.0",
5867
- "ios": "4.0.0",
5868
- "macos": "0.7.0"
6465
+ "ios": "4.0.0"
5869
6466
  }
5870
6467
  },
5871
6468
  "expression": {
@@ -5885,8 +6482,7 @@
5885
6482
  "basic functionality": {
5886
6483
  "js": "0.43.0",
5887
6484
  "android": "6.0.0",
5888
- "ios": "4.0.0",
5889
- "macos": "0.7.0"
6485
+ "ios": "4.0.0"
5890
6486
  }
5891
6487
  },
5892
6488
  "expression": {
@@ -5913,8 +6509,7 @@
5913
6509
  "basic functionality": {
5914
6510
  "js": "0.10.0",
5915
6511
  "android": "2.0.1",
5916
- "ios": "2.0.0",
5917
- "macos": "0.1.0"
6512
+ "ios": "2.0.0"
5918
6513
  }
5919
6514
  },
5920
6515
  "expression": {
@@ -5933,8 +6528,7 @@
5933
6528
  "basic functionality": {
5934
6529
  "js": "0.10.0",
5935
6530
  "android": "2.0.1",
5936
- "ios": "2.0.0",
5937
- "macos": "0.1.0"
6531
+ "ios": "2.0.0"
5938
6532
  },
5939
6533
  "data-driven styling": {}
5940
6534
  },
@@ -5957,8 +6551,7 @@
5957
6551
  "basic functionality": {
5958
6552
  "js": "0.10.0",
5959
6553
  "android": "2.0.1",
5960
- "ios": "2.0.0",
5961
- "macos": "0.1.0"
6554
+ "ios": "2.0.0"
5962
6555
  }
5963
6556
  },
5964
6557
  "expression": {
@@ -6018,4 +6611,4 @@
6018
6611
  "doc": "A name of a feature property to use as ID for feature state."
6019
6612
  }
6020
6613
  }
6021
- }
6614
+ }