@maydon_tech/react-native-nitro-maps 0.1.3 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/LICENSE +1 -1
  2. package/NitroMap.podspec +1 -1
  3. package/README.md +82 -9
  4. package/android/CMakeLists.txt +4 -1
  5. package/android/gradle.properties +4 -4
  6. package/android/src/main/cpp/ClusterEngineJNI.cpp +198 -0
  7. package/android/src/main/kotlin/com/margelo/nitro/nitromap/NitroMap.kt +397 -0
  8. package/android/src/main/kotlin/com/margelo/nitro/nitromap/NitroMapConfig.kt +53 -0
  9. package/android/src/main/{java → kotlin}/com/margelo/nitro/nitromap/NitroMapPackage.kt +4 -4
  10. package/android/src/main/kotlin/com/margelo/nitro/nitromap/NitroMapView.kt +73 -0
  11. package/android/src/main/kotlin/com/margelo/nitro/nitromap/UserLocationManager.kt +295 -0
  12. package/android/src/main/kotlin/com/margelo/nitro/nitromap/clustering/ClusterIconRenderer.kt +111 -0
  13. package/android/src/main/kotlin/com/margelo/nitro/nitromap/clustering/ClusteringManager.kt +104 -0
  14. package/android/src/main/kotlin/com/margelo/nitro/nitromap/clustering/NitroClusterEngine.kt +166 -0
  15. package/android/src/main/kotlin/com/margelo/nitro/nitromap/markers/MarkerIconFactory.kt +303 -0
  16. package/android/src/main/kotlin/com/margelo/nitro/nitromap/markers/MarkerSelectionHandler.kt +72 -0
  17. package/android/src/main/kotlin/com/margelo/nitro/nitromap/markers/PriceMarkerRenderer.kt +159 -0
  18. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/MapProviderFactory.kt +24 -0
  19. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/MapProviderInterface.kt +128 -0
  20. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapDelegate.kt +317 -0
  21. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapProvider+Clustering.kt +524 -0
  22. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapProvider+Markers.kt +358 -0
  23. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapProvider+Overlays.kt +272 -0
  24. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapProvider+UserLocation.kt +296 -0
  25. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/GoogleMapProvider.kt +815 -0
  26. package/android/src/main/kotlin/com/margelo/nitro/nitromap/providers/google/MarkerTagData.kt +19 -0
  27. package/ios/Clustering/ClusterIconRenderer.swift +3 -3
  28. package/ios/Location/NitroLocationManager.swift +116 -0
  29. package/ios/MarkerRenderer/MarkerIconFactory.swift +1 -3
  30. package/ios/MarkerRenderer/PriceMarkerRenderer.swift +10 -6
  31. package/ios/NitroMap.swift +279 -13
  32. package/ios/NitroMapConfig/NitroMapConfig.swift +45 -0
  33. package/ios/Providers/{GoogleMapDelegate.swift → Google/GoogleMapDelegate.swift} +48 -23
  34. package/ios/Providers/Google/GoogleMapProvider+Camera.swift +180 -0
  35. package/ios/Providers/Google/GoogleMapProvider+Clustering.swift +541 -0
  36. package/ios/Providers/Google/GoogleMapProvider+Markers.swift +270 -0
  37. package/ios/Providers/Google/GoogleMapProvider+Overlays.swift +245 -0
  38. package/ios/Providers/Google/GoogleMapProvider+UserLocation.swift +180 -0
  39. package/ios/Providers/Google/GoogleMapProvider.swift +342 -0
  40. package/ios/Providers/MapProviderFactory.swift +17 -0
  41. package/ios/Providers/MapProviderProtocol.swift +48 -1
  42. package/ios/Shared/ClusterConfig+Factory.swift +2 -2
  43. package/ios/Shared/MapStyleProvider.swift +6 -4
  44. package/ios/Shared/MarkerSelectionHandler.swift +4 -1
  45. package/ios/Utils/ColorValueExtension.swift +46 -67
  46. package/lib/module/components/ImageMarker.js +39 -29
  47. package/lib/module/components/ImageMarker.js.map +1 -1
  48. package/lib/module/components/Marker.js +118 -0
  49. package/lib/module/components/Marker.js.map +1 -0
  50. package/lib/module/components/NitroCircle.js +92 -0
  51. package/lib/module/components/NitroCircle.js.map +1 -0
  52. package/lib/module/components/NitroMap.js +216 -76
  53. package/lib/module/components/NitroMap.js.map +1 -1
  54. package/lib/module/components/NitroPolygon.js +135 -0
  55. package/lib/module/components/NitroPolygon.js.map +1 -0
  56. package/lib/module/components/NitroPolyline.js +115 -0
  57. package/lib/module/components/NitroPolyline.js.map +1 -0
  58. package/lib/module/components/PriceMarker.js +16 -29
  59. package/lib/module/components/PriceMarker.js.map +1 -1
  60. package/lib/module/context/NitroMapContext.js.map +1 -1
  61. package/lib/module/hooks/useNitroCircle.js +18 -0
  62. package/lib/module/hooks/useNitroCircle.js.map +1 -0
  63. package/lib/module/hooks/useNitroMarker.js +26 -9
  64. package/lib/module/hooks/useNitroMarker.js.map +1 -1
  65. package/lib/module/hooks/useNitroOverlay.js +59 -0
  66. package/lib/module/hooks/useNitroOverlay.js.map +1 -0
  67. package/lib/module/hooks/useNitroPolygon.js +18 -0
  68. package/lib/module/hooks/useNitroPolygon.js.map +1 -0
  69. package/lib/module/hooks/useNitroPolyline.js +18 -0
  70. package/lib/module/hooks/useNitroPolyline.js.map +1 -0
  71. package/lib/module/index.js +5 -0
  72. package/lib/module/index.js.map +1 -1
  73. package/lib/module/types/overlay.js +4 -0
  74. package/lib/module/types/overlay.js.map +1 -0
  75. package/lib/module/types/theme.js +4 -0
  76. package/lib/module/types/theme.js.map +1 -0
  77. package/lib/module/utils/colors.js +41 -13
  78. package/lib/module/utils/colors.js.map +1 -1
  79. package/lib/module/utils/validation.js +45 -0
  80. package/lib/module/utils/validation.js.map +1 -0
  81. package/lib/typescript/src/components/ImageMarker.d.ts.map +1 -1
  82. package/lib/typescript/src/components/Marker.d.ts +34 -0
  83. package/lib/typescript/src/components/Marker.d.ts.map +1 -0
  84. package/lib/typescript/src/components/NitroCircle.d.ts +70 -0
  85. package/lib/typescript/src/components/NitroCircle.d.ts.map +1 -0
  86. package/lib/typescript/src/components/NitroMap.d.ts +60 -3
  87. package/lib/typescript/src/components/NitroMap.d.ts.map +1 -1
  88. package/lib/typescript/src/components/NitroPolygon.d.ts +86 -0
  89. package/lib/typescript/src/components/NitroPolygon.d.ts.map +1 -0
  90. package/lib/typescript/src/components/NitroPolyline.d.ts +84 -0
  91. package/lib/typescript/src/components/NitroPolyline.d.ts.map +1 -0
  92. package/lib/typescript/src/components/PriceMarker.d.ts +0 -5
  93. package/lib/typescript/src/components/PriceMarker.d.ts.map +1 -1
  94. package/lib/typescript/src/context/NitroMapContext.d.ts +2 -0
  95. package/lib/typescript/src/context/NitroMapContext.d.ts.map +1 -1
  96. package/lib/typescript/src/hooks/useNitroCircle.d.ts +7 -0
  97. package/lib/typescript/src/hooks/useNitroCircle.d.ts.map +1 -0
  98. package/lib/typescript/src/hooks/useNitroMarker.d.ts +20 -0
  99. package/lib/typescript/src/hooks/useNitroMarker.d.ts.map +1 -1
  100. package/lib/typescript/src/hooks/useNitroOverlay.d.ts +26 -0
  101. package/lib/typescript/src/hooks/useNitroOverlay.d.ts.map +1 -0
  102. package/lib/typescript/src/hooks/useNitroPolygon.d.ts +7 -0
  103. package/lib/typescript/src/hooks/useNitroPolygon.d.ts.map +1 -0
  104. package/lib/typescript/src/hooks/useNitroPolyline.d.ts +7 -0
  105. package/lib/typescript/src/hooks/useNitroPolyline.d.ts.map +1 -0
  106. package/lib/typescript/src/index.d.ts +15 -2
  107. package/lib/typescript/src/index.d.ts.map +1 -1
  108. package/lib/typescript/src/specs/NitroMap.nitro.d.ts +248 -6
  109. package/lib/typescript/src/specs/NitroMap.nitro.d.ts.map +1 -1
  110. package/lib/typescript/src/types/map.d.ts +34 -4
  111. package/lib/typescript/src/types/map.d.ts.map +1 -1
  112. package/lib/typescript/src/types/marker.d.ts +24 -36
  113. package/lib/typescript/src/types/marker.d.ts.map +1 -1
  114. package/lib/typescript/src/types/overlay.d.ts +75 -0
  115. package/lib/typescript/src/types/overlay.d.ts.map +1 -0
  116. package/lib/typescript/src/types/theme.d.ts +93 -0
  117. package/lib/typescript/src/types/theme.d.ts.map +1 -0
  118. package/lib/typescript/src/utils/colors.d.ts +6 -8
  119. package/lib/typescript/src/utils/colors.d.ts.map +1 -1
  120. package/lib/typescript/src/utils/validation.d.ts +12 -0
  121. package/lib/typescript/src/utils/validation.d.ts.map +1 -0
  122. package/nitrogen/generated/android/c++/JCircleData.hpp +94 -0
  123. package/nitrogen/generated/android/c++/JClusterConfig.hpp +5 -7
  124. package/nitrogen/generated/android/c++/JFunc_void_UserLocationChangeEvent.hpp +79 -0
  125. package/nitrogen/generated/android/c++/JFunc_void_UserTrackingMode.hpp +77 -0
  126. package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +76 -0
  127. package/nitrogen/generated/android/c++/JHybridNitroMapSpec.cpp +328 -21
  128. package/nitrogen/generated/android/c++/JHybridNitroMapSpec.hpp +53 -2
  129. package/nitrogen/generated/android/c++/JMarkerAnimation.hpp +3 -6
  130. package/nitrogen/generated/android/c++/JMarkerData.hpp +15 -3
  131. package/nitrogen/generated/android/c++/JPolygonData.hpp +149 -0
  132. package/nitrogen/generated/android/c++/JPolylineData.hpp +113 -0
  133. package/nitrogen/generated/android/c++/JUserLocationChangeEvent.hpp +70 -0
  134. package/nitrogen/generated/android/c++/JUserTrackingMode.hpp +62 -0
  135. package/nitrogen/generated/android/c++/views/JHybridNitroMapStateUpdater.cpp +72 -4
  136. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/CircleData.kt +62 -0
  137. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/ClusterConfig.kt +4 -4
  138. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_UserLocationChangeEvent.kt +80 -0
  139. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_UserTrackingMode.kt +80 -0
  140. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_std__string.kt +80 -0
  141. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/HybridNitroMapSpec.kt +228 -2
  142. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerAnimation.kt +1 -2
  143. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerData.kt +12 -3
  144. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/PolygonData.kt +62 -0
  145. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/PolylineData.kt +62 -0
  146. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/UserLocationChangeEvent.kt +47 -0
  147. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/{ClusterAnimationStyle.kt → UserTrackingMode.kt} +6 -8
  148. package/nitrogen/generated/android/nitromapOnLoad.cpp +6 -0
  149. package/nitrogen/generated/ios/NitroMap-Swift-Cxx-Bridge.cpp +24 -0
  150. package/nitrogen/generated/ios/NitroMap-Swift-Cxx-Bridge.hpp +175 -17
  151. package/nitrogen/generated/ios/NitroMap-Swift-Cxx-Umbrella.hpp +15 -3
  152. package/nitrogen/generated/ios/c++/HybridNitroMapSpecSwift.hpp +249 -16
  153. package/nitrogen/generated/ios/c++/views/HybridNitroMapComponent.mm +90 -5
  154. package/nitrogen/generated/ios/swift/CircleData.swift +143 -0
  155. package/nitrogen/generated/ios/swift/ClusterConfig.swift +22 -15
  156. package/nitrogen/generated/ios/swift/Func_void_UserLocationChangeEvent.swift +47 -0
  157. package/nitrogen/generated/ios/swift/Func_void_UserTrackingMode.swift +47 -0
  158. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +47 -0
  159. package/nitrogen/generated/ios/swift/HybridNitroMapSpec.swift +35 -1
  160. package/nitrogen/generated/ios/swift/HybridNitroMapSpec_cxx.swift +582 -8
  161. package/nitrogen/generated/ios/swift/MarkerAnimation.swift +4 -8
  162. package/nitrogen/generated/ios/swift/MarkerData.swift +54 -2
  163. package/nitrogen/generated/ios/swift/PolygonData.swift +179 -0
  164. package/nitrogen/generated/ios/swift/PolylineData.swift +155 -0
  165. package/nitrogen/generated/ios/swift/UserLocationChangeEvent.swift +69 -0
  166. package/nitrogen/generated/ios/swift/UserTrackingMode.swift +44 -0
  167. package/nitrogen/generated/shared/c++/CircleData.hpp +113 -0
  168. package/nitrogen/generated/shared/c++/ClusterConfig.hpp +5 -8
  169. package/nitrogen/generated/shared/c++/HybridNitroMapSpec.cpp +53 -2
  170. package/nitrogen/generated/shared/c++/HybridNitroMapSpec.hpp +75 -6
  171. package/nitrogen/generated/shared/c++/MarkerAnimation.hpp +4 -8
  172. package/nitrogen/generated/shared/c++/MarkerData.hpp +14 -2
  173. package/nitrogen/generated/shared/c++/PolygonData.hpp +114 -0
  174. package/nitrogen/generated/shared/c++/PolylineData.hpp +114 -0
  175. package/nitrogen/generated/shared/c++/UserLocationChangeEvent.hpp +88 -0
  176. package/nitrogen/generated/shared/c++/UserTrackingMode.hpp +80 -0
  177. package/nitrogen/generated/shared/c++/views/HybridNitroMapComponent.cpp +216 -12
  178. package/nitrogen/generated/shared/c++/views/HybridNitroMapComponent.hpp +23 -1
  179. package/nitrogen/generated/shared/json/NitroMapConfig.json +18 -1
  180. package/package.json +36 -5
  181. package/src/components/ImageMarker.tsx +58 -42
  182. package/src/components/Marker.tsx +161 -0
  183. package/src/components/NitroCircle.tsx +183 -0
  184. package/src/components/NitroMap.tsx +328 -78
  185. package/src/components/NitroPolygon.tsx +229 -0
  186. package/src/components/NitroPolyline.tsx +208 -0
  187. package/src/components/PriceMarker.tsx +23 -48
  188. package/src/context/NitroMapContext.tsx +4 -0
  189. package/src/hooks/useNitroCircle.ts +25 -0
  190. package/src/hooks/useNitroMarker.ts +49 -10
  191. package/src/hooks/useNitroOverlay.ts +68 -0
  192. package/src/hooks/useNitroPolygon.ts +25 -0
  193. package/src/hooks/useNitroPolyline.ts +25 -0
  194. package/src/index.tsx +23 -2
  195. package/src/specs/NitroMap.nitro.ts +294 -5
  196. package/src/types/map.ts +36 -4
  197. package/src/types/marker.ts +24 -44
  198. package/src/types/overlay.ts +77 -0
  199. package/src/types/theme.ts +101 -0
  200. package/src/utils/colors.ts +48 -16
  201. package/src/utils/validation.ts +69 -0
  202. package/android/src/main/java/com/margelo/nitro/nitromap/ClusterIconGenerator.kt +0 -108
  203. package/android/src/main/java/com/margelo/nitro/nitromap/ColorUtils.kt +0 -63
  204. package/android/src/main/java/com/margelo/nitro/nitromap/HybridNitroMap.kt +0 -408
  205. package/android/src/main/java/com/margelo/nitro/nitromap/HybridNitroMapConfig.kt +0 -68
  206. package/android/src/main/java/com/margelo/nitro/nitromap/MarkerIconCache.kt +0 -176
  207. package/android/src/main/java/com/margelo/nitro/nitromap/MarkerIconFactory.kt +0 -252
  208. package/android/src/main/java/com/margelo/nitro/nitromap/clustering/NitroClusterEngine.kt +0 -252
  209. package/android/src/main/java/com/margelo/nitro/nitromap/clustering/QuadTree.kt +0 -195
  210. package/android/src/main/java/com/margelo/nitro/nitromap/providers/GoogleMapProvider.kt +0 -912
  211. package/android/src/main/java/com/margelo/nitro/nitromap/providers/MapProviderInterface.kt +0 -70
  212. package/cpp/QuadTree.hpp +0 -246
  213. package/ios/NitroMapConfig/HybridNitroMapConfig.swift +0 -33
  214. package/ios/Providers/GoogleMapProvider+Camera.swift +0 -164
  215. package/ios/Providers/GoogleMapProvider.swift +0 -924
  216. package/nitrogen/generated/android/c++/JClusterAnimationStyle.hpp +0 -68
  217. package/nitrogen/generated/ios/swift/ClusterAnimationStyle.swift +0 -52
  218. package/nitrogen/generated/shared/c++/ClusterAnimationStyle.hpp +0 -88
@@ -1 +1 @@
1
- {"version":3,"names":["parseColor","color","defaultAlpha","undefined","r","g","b","a","hex","parseColorWithFallback","fallback","parsed","rgb","hexStr","alpha","result6","exec","parseInt","result3","Colors","white","black","red","blue","green","orange","gray","lightGray"],"sourceRoot":"../../../src","sources":["utils/colors.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["parseColor","color","defaultAlpha","undefined","r","g","b","a","hex","rgb","hexStr","alpha","result8","exec","parseInt","result6","result4","result3","__DEV__","console","warn","Colors","white","black","red","blue","green","orange","gray","lightGray","areColorsEqual","ca","cb"],"sourceRoot":"../../../src","sources":["utils/colors.ts"],"mappings":";;AAAA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,UAAU,GAAGA,CACxBC,KAA6B,EAC7BC,YAAoB,GAAG,GAAG,KACE;EAC5B,IAAID,KAAK,KAAKE,SAAS,EAAE;IACvB,OAAOA,SAAS;EAClB;;EAEA;EACA,IACE,OAAOF,KAAK,KAAK,QAAQ,IACzB,GAAG,IAAIA,KAAK,IACZ,GAAG,IAAIA,KAAK,IACZ,GAAG,IAAIA,KAAK,EACZ;IACA,OAAO;MACLG,CAAC,EAAEH,KAAK,CAACG,CAAC;MACVC,CAAC,EAAEJ,KAAK,CAACI,CAAC;MACVC,CAAC,EAAEL,KAAK,CAACK,CAAC;MACVC,CAAC,EAAEN,KAAK,CAACM,CAAC,IAAIL;IAChB,CAAC;EACH;;EAEA;EACA,IAAI,OAAOD,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAOO,GAAG,CAACP,KAAK,EAAEC,YAAY,CAAC;EACjC;EAEA,OAAOC,SAAS;AAClB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMM,GAAG,GAAGA,CACjBL,CAAS,EACTC,CAAS,EACTC,CAAS,EACTC,CAAS,GAAG,GAAG,MACE;EACjBH,CAAC;EACDC,CAAC;EACDC,CAAC;EACDC;AACF,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,GAAG,GAAGA,CAACE,MAAc,EAAEC,KAAa,GAAG,GAAG,KAAkB;EACvE;EACA,MAAMC,OAAO,GAAG,uDAAuD,CAACC,IAAI,CAC1EH,MACF,CAAC;EACD,IAAIE,OAAO,EAAE;IACX,OAAO;MACLR,CAAC,EAAEU,QAAQ,CAACF,OAAO,CAAC,CAAC,CAAC,EAAG,EAAE,CAAC;MAC5BP,CAAC,EAAES,QAAQ,CAACF,OAAO,CAAC,CAAC,CAAC,EAAG,EAAE,CAAC;MAC5BN,CAAC,EAAEQ,QAAQ,CAACF,OAAO,CAAC,CAAC,CAAC,EAAG,EAAE,CAAC;MAC5BL,CAAC,EAAEO,QAAQ,CAACF,OAAO,CAAC,CAAC,CAAC,EAAG,EAAE;IAC7B,CAAC;EACH;;EAEA;EACA,MAAMG,OAAO,GAAG,2CAA2C,CAACF,IAAI,CAACH,MAAM,CAAC;EACxE,IAAIK,OAAO,EAAE;IACX,OAAO;MACLX,CAAC,EAAEU,QAAQ,CAACC,OAAO,CAAC,CAAC,CAAC,EAAG,EAAE,CAAC;MAC5BV,CAAC,EAAES,QAAQ,CAACC,OAAO,CAAC,CAAC,CAAC,EAAG,EAAE,CAAC;MAC5BT,CAAC,EAAEQ,QAAQ,CAACC,OAAO,CAAC,CAAC,CAAC,EAAG,EAAE,CAAC;MAC5BR,CAAC,EAAEI;IACL,CAAC;EACH;;EAEA;EACA,MAAMK,OAAO,GAAG,2CAA2C,CAACH,IAAI,CAACH,MAAM,CAAC;EACxE,IAAIM,OAAO,EAAE;IACX,OAAO;MACLZ,CAAC,EAAEU,QAAQ,CAACE,OAAO,CAAC,CAAC,CAAC,GAAIA,OAAO,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC;MAC1CX,CAAC,EAAES,QAAQ,CAACE,OAAO,CAAC,CAAC,CAAC,GAAIA,OAAO,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC;MAC1CV,CAAC,EAAEQ,QAAQ,CAACE,OAAO,CAAC,CAAC,CAAC,GAAIA,OAAO,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC;MAC1CT,CAAC,EAAEO,QAAQ,CAACE,OAAO,CAAC,CAAC,CAAC,GAAIA,OAAO,CAAC,CAAC,CAAE,EAAE,EAAE;IAC3C,CAAC;EACH;;EAEA;EACA,MAAMC,OAAO,GAAG,kCAAkC,CAACJ,IAAI,CAACH,MAAM,CAAC;EAC/D,IAAIO,OAAO,EAAE;IACX,OAAO;MACLb,CAAC,EAAEU,QAAQ,CAACG,OAAO,CAAC,CAAC,CAAC,GAAIA,OAAO,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC;MAC1CZ,CAAC,EAAES,QAAQ,CAACG,OAAO,CAAC,CAAC,CAAC,GAAIA,OAAO,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC;MAC1CX,CAAC,EAAEQ,QAAQ,CAACG,OAAO,CAAC,CAAC,CAAC,GAAIA,OAAO,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC;MAC1CV,CAAC,EAAEI;IACL,CAAC;EACH;;EAEA;EACA,IAAIO,OAAO,EAAE;IACXC,OAAO,CAACC,IAAI,CACV,oCAAoCV,MAAM,2BAC5C,CAAC;EACH;EACA,OAAO;IAAEN,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAEI;EAAM,CAAC;AACvC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMU,MAAM,GAAG;EACpB;EACAC,KAAK,EAAEb,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACzB;EACAc,KAAK,EAAEd,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;EACnB;EACAe,GAAG,EAAEf,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;EACrB;EACAgB,IAAI,EAAEhB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;EACtB;EACAiB,KAAK,EAAEjB,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;EACvB;EACAkB,MAAM,EAAElB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;EACxB;EACAmB,IAAI,EAAEnB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;EACrB;EACAoB,SAAS,EAAEpB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG;AAC9B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMqB,cAAc,GAAGA,CAC5BvB,CAAyB,EACzBD,CAAyB,KACb;EACZ,IAAIC,CAAC,KAAKD,CAAC,EAAE,OAAO,IAAI;EACxB,IAAI,CAACC,CAAC,IAAI,CAACD,CAAC,EAAE,OAAO,KAAK;EAC1B,IAAI,OAAOC,CAAC,KAAK,OAAOD,CAAC,EAAE,OAAO,KAAK;EACvC,IAAI,OAAOC,CAAC,KAAK,QAAQ,IAAI,OAAOD,CAAC,KAAK,QAAQ,EAAE,OAAOC,CAAC,KAAKD,CAAC;EAClE,MAAMyB,EAAE,GAAGxB,CAAgB;EAC3B,MAAMyB,EAAE,GAAG1B,CAAgB;EAC3B,OAAOyB,EAAE,CAAC3B,CAAC,KAAK4B,EAAE,CAAC5B,CAAC,IAAI2B,EAAE,CAAC1B,CAAC,KAAK2B,EAAE,CAAC3B,CAAC,IAAI0B,EAAE,CAACzB,CAAC,KAAK0B,EAAE,CAAC1B,CAAC,IAAIyB,EAAE,CAACxB,CAAC,KAAKyB,EAAE,CAACzB,CAAC;AACzE,CAAC","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ // src/utils/validation.ts
4
+
5
+ /**
6
+ * Validate a coordinate in __DEV__ mode.
7
+ * Warns on NaN, Infinity, or out-of-range values.
8
+ */
9
+ export function validateCoordinate(coordinate, context) {
10
+ if (!__DEV__) return;
11
+ const {
12
+ latitude,
13
+ longitude
14
+ } = coordinate;
15
+ if (!Number.isFinite(latitude) || !Number.isFinite(longitude)) {
16
+ console.warn(`[NitroMap] Invalid coordinate in ${context}: ` + `latitude=${latitude}, longitude=${longitude}. ` + 'Coordinates must be finite numbers.');
17
+ return;
18
+ }
19
+ if (latitude < -90 || latitude > 90) {
20
+ console.warn(`[NitroMap] Out-of-range latitude in ${context}: ${latitude}. ` + 'Latitude must be between -90 and 90.');
21
+ }
22
+ if (longitude < -180 || longitude > 180) {
23
+ console.warn(`[NitroMap] Out-of-range longitude in ${context}: ${longitude}. ` + 'Longitude must be between -180 and 180.');
24
+ }
25
+ }
26
+
27
+ /**
28
+ * Validate an array of coordinates in __DEV__ mode.
29
+ * Only reports the first invalid coordinate to avoid console spam.
30
+ */
31
+ export function validateCoordinates(coordinates, context) {
32
+ if (!__DEV__) return;
33
+ for (let i = 0; i < coordinates.length; i++) {
34
+ const coord = coordinates[i];
35
+ const {
36
+ latitude,
37
+ longitude
38
+ } = coord;
39
+ if (!Number.isFinite(latitude) || !Number.isFinite(longitude) || latitude < -90 || latitude > 90 || longitude < -180 || longitude > 180) {
40
+ console.warn(`[NitroMap] Invalid coordinate at index ${i} in ${context}: ` + `latitude=${latitude}, longitude=${longitude}.`);
41
+ return; // report first invalid only
42
+ }
43
+ }
44
+ }
45
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["validateCoordinate","coordinate","context","__DEV__","latitude","longitude","Number","isFinite","console","warn","validateCoordinates","coordinates","i","length","coord"],"sourceRoot":"../../../src","sources":["utils/validation.ts"],"mappings":";;AAAA;;AAIA;AACA;AACA;AACA;AACA,OAAO,SAASA,kBAAkBA,CAChCC,UAAsB,EACtBC,OAAe,EACT;EACN,IAAI,CAACC,OAAO,EAAE;EAEd,MAAM;IAAEC,QAAQ;IAAEC;EAAU,CAAC,GAAGJ,UAAU;EAE1C,IAAI,CAACK,MAAM,CAACC,QAAQ,CAACH,QAAQ,CAAC,IAAI,CAACE,MAAM,CAACC,QAAQ,CAACF,SAAS,CAAC,EAAE;IAC7DG,OAAO,CAACC,IAAI,CACV,oCAAoCP,OAAO,IAAI,GAC7C,YAAYE,QAAQ,eAAeC,SAAS,IAAI,GAChD,qCACJ,CAAC;IACD;EACF;EAEA,IAAID,QAAQ,GAAG,CAAC,EAAE,IAAIA,QAAQ,GAAG,EAAE,EAAE;IACnCI,OAAO,CAACC,IAAI,CACV,uCAAuCP,OAAO,KAAKE,QAAQ,IAAI,GAC7D,sCACJ,CAAC;EACH;EAEA,IAAIC,SAAS,GAAG,CAAC,GAAG,IAAIA,SAAS,GAAG,GAAG,EAAE;IACvCG,OAAO,CAACC,IAAI,CACV,wCAAwCP,OAAO,KAAKG,SAAS,IAAI,GAC/D,yCACJ,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASK,mBAAmBA,CACjCC,WAAyB,EACzBT,OAAe,EACT;EACN,IAAI,CAACC,OAAO,EAAE;EAEd,KAAK,IAAIS,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,WAAW,CAACE,MAAM,EAAED,CAAC,EAAE,EAAE;IAC3C,MAAME,KAAK,GAAGH,WAAW,CAACC,CAAC,CAAE;IAC7B,MAAM;MAAER,QAAQ;MAAEC;IAAU,CAAC,GAAGS,KAAK;IACrC,IACE,CAACR,MAAM,CAACC,QAAQ,CAACH,QAAQ,CAAC,IAC1B,CAACE,MAAM,CAACC,QAAQ,CAACF,SAAS,CAAC,IAC3BD,QAAQ,GAAG,CAAC,EAAE,IACdA,QAAQ,GAAG,EAAE,IACbC,SAAS,GAAG,CAAC,GAAG,IAChBA,SAAS,GAAG,GAAG,EACf;MACAG,OAAO,CAACC,IAAI,CACV,0CAA0CG,CAAC,OAAOV,OAAO,IAAI,GAC3D,YAAYE,QAAQ,eAAeC,SAAS,GAChD,CAAC;MACD,OAAO,CAAC;IACV;EACF;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ImageMarker.d.ts","sourceRoot":"","sources":["../../../../src/components/ImageMarker.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,WAAW,CAAC,EAAE,UAAU,CAAC;CAC1B;AAqED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,WAAW,wDAuGP,CAAC;AAElB,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"ImageMarker.d.ts","sourceRoot":"","sources":["../../../../src/components/ImageMarker.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AAiBzB;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,WAAW,CAAC,EAAE,UAAU,CAAC;CAC1B;AAmDD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,WAAW,wDAqHP,CAAC;AAElB,eAAe,WAAW,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { type CommonMarkerProps } from '../hooks/useNitroMarker';
2
+ /**
3
+ * Props for the Marker component (default Google Maps pin)
4
+ */
5
+ export type MarkerProps = CommonMarkerProps;
6
+ declare const arePropsEqual: (prevProps: MarkerProps, nextProps: MarkerProps) => boolean;
7
+ /**
8
+ * Marker - Display the default Google Maps pin on the map
9
+ *
10
+ * The simplest marker component. Uses the standard red Google Maps pin.
11
+ * For custom images, use `<ImageMarker>`. For price tags, use `<PriceMarker>`.
12
+ *
13
+ * @example Basic marker
14
+ * ```tsx
15
+ * <Marker
16
+ * coordinate={{ latitude: 41.29, longitude: 69.24 }}
17
+ * title="Hello World"
18
+ * description="This is a default marker"
19
+ * />
20
+ * ```
21
+ *
22
+ * @example Draggable marker
23
+ * ```tsx
24
+ * <Marker
25
+ * coordinate={{ latitude: 41.30, longitude: 69.25 }}
26
+ * draggable={true}
27
+ * onDragEnd={(coord) => console.log('Dropped at:', coord)}
28
+ * />
29
+ * ```
30
+ */
31
+ export declare const Marker: import("react").NamedExoticComponent<CommonMarkerProps>;
32
+ export { arePropsEqual as areMarkerPropsEqual };
33
+ export default Marker;
34
+ //# sourceMappingURL=Marker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Marker.d.ts","sourceRoot":"","sources":["../../../../src/components/Marker.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AAEjC;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAC;AAG5C,QAAA,MAAM,aAAa,GACjB,WAAW,WAAW,EACtB,WAAW,WAAW,KACrB,OAoCF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,MAAM,yDA8EF,CAAC;AAElB,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,CAAC;AAChD,eAAe,MAAM,CAAC"}
@@ -0,0 +1,70 @@
1
+ import type { Coordinate } from '../types/map';
2
+ import { type ColorValue } from '../utils/colors';
3
+ /**
4
+ * Props for the NitroCircle component
5
+ */
6
+ export interface NitroCircleProps {
7
+ /** Unique identifier for the circle */
8
+ id?: string;
9
+ /**
10
+ * Center coordinate of the circle.
11
+ * @required
12
+ */
13
+ center: Coordinate;
14
+ /**
15
+ * Radius of the circle in meters.
16
+ * @required
17
+ */
18
+ radius: number;
19
+ /**
20
+ * Fill color of the circle (hex string like \"#00000040\" or MarkerColor object).
21
+ * Use 8-char hex for alpha: "#RRGGBBAA"
22
+ * @default MarkerColor { r: 0, g: 0, b: 0, a: 77 } (~30% opacity black)
23
+ */
24
+ fillColor?: ColorValue;
25
+ /**
26
+ * Stroke color of the circle border (hex string or MarkerColor object).
27
+ * @default '#000000'
28
+ */
29
+ strokeColor?: ColorValue;
30
+ /**
31
+ * Stroke width of the circle border in pixels.
32
+ * @default 1
33
+ */
34
+ strokeWidth?: number;
35
+ /**
36
+ * Z-index for controlling overlay stacking order.
37
+ * Higher values render on top.
38
+ * @default 0
39
+ */
40
+ zIndex?: number;
41
+ /**
42
+ * Whether this circle responds to tap events.
43
+ * When true, `onCirclePress` on `<NitroMap>` fires with this circle's ID.
44
+ * @default false
45
+ */
46
+ tappable?: boolean;
47
+ /**
48
+ * Accessibility label read by screen readers (VoiceOver / TalkBack).
49
+ */
50
+ accessibilityLabel?: string;
51
+ }
52
+ declare const arePropsEqual: (prev: NitroCircleProps, next: NitroCircleProps) => boolean;
53
+ /**
54
+ * NitroCircle - Draw a circle overlay on the map
55
+ *
56
+ * @example Basic circle
57
+ * ```tsx
58
+ * <NitroCircle
59
+ * center={{ latitude: 41.31, longitude: 69.26 }}
60
+ * radius={500}
61
+ * fillColor="#4285F440"
62
+ * strokeColor="#4285F4"
63
+ * strokeWidth={2}
64
+ * />
65
+ * ```
66
+ */
67
+ export declare const NitroCircle: import("react").NamedExoticComponent<NitroCircleProps>;
68
+ export { arePropsEqual as areCirclePropsEqual };
69
+ export default NitroCircle;
70
+ //# sourceMappingURL=NitroCircle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NitroCircle.d.ts","sourceRoot":"","sources":["../../../../src/components/NitroCircle.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAGL,KAAK,UAAU,EAEhB,MAAM,iBAAiB,CAAC;AAIzB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,MAAM,EAAE,UAAU,CAAC;IAEnB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,SAAS,CAAC,EAAE,UAAU,CAAC;IAEvB;;;OAGG;IACH,WAAW,CAAC,EAAE,UAAU,CAAC;IAEzB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAWD,QAAA,MAAM,aAAa,GACjB,MAAM,gBAAgB,EACtB,MAAM,gBAAgB,KACrB,OAwBF,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,WAAW,wDAuDV,CAAC;AAEf,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,CAAC;AAChD,eAAe,WAAW,CAAC"}
@@ -1,14 +1,71 @@
1
1
  import React from 'react';
2
2
  import { type StyleProp, type ViewStyle } from 'react-native';
3
3
  import type { NitroMapMethods, NitroMapProps as NitroMapPropsSpec } from '../specs/NitroMap.nitro';
4
+ import type { EdgePadding, MapProvider, MapStyle } from '../types/map';
5
+ import type { ThemeForProvider } from '../types/theme';
4
6
  export * from '../specs/NitroMap.nitro';
5
7
  export * from '../context/NitroMapContext';
6
- export interface NitroMapProps extends Omit<NitroMapPropsSpec, 'style' | 'hybridRef'> {
8
+ export interface NitroMapProps<P extends MapProvider = 'google'> extends Omit<NitroMapPropsSpec, 'style' | 'hybridRef' | 'minZoom' | 'maxZoom' | 'mapPadding' | 'customMapStyle' | 'provider' | 'userLocationImage' | 'userLocationSize'> {
7
9
  style?: StyleProp<ViewStyle>;
8
10
  children?: React.ReactNode;
11
+ /**
12
+ * Map provider to use. Typed as generic `P` so that `theme` narrows
13
+ * to the correct provider-specific type.
14
+ * @default 'google'
15
+ */
16
+ provider?: P;
17
+ /** Minimum zoom level (1 = world). @default 1 */
18
+ minZoom?: number;
19
+ /** Maximum zoom level (22 = building). @default 22 */
20
+ maxZoom?: number;
21
+ /** URL or asset name for custom user location icon. @default '' */
22
+ userLocationImage?: string;
23
+ /** Size of the custom user location icon in points. @default 40 */
24
+ userLocationSize?: number;
25
+ /**
26
+ * Padding around map edges to offset center and controls.
27
+ * Pass a single number for uniform padding on all sides,
28
+ * or an EdgePadding object for per-side control.
29
+ * @default {0,0,0,0}
30
+ */
31
+ mapPadding?: number | EdgePadding;
32
+ /**
33
+ * Provider-aware map theme. The accepted type depends on the `provider` prop:
34
+ * - `'google'` → `GoogleMapTheme` (JSON style array)
35
+ * - `'apple'` → `AppleMapTheme` (configuration object) — Phase 3
36
+ * - `'yandex'` → `YandexMapTheme` (style URI / night mode) — Phase 4
37
+ *
38
+ * @example
39
+ * ```tsx
40
+ * // Google — JSON style array
41
+ * <NitroMap provider="google" theme={[
42
+ * { featureType: 'water', stylers: [{ color: '#0e171d' }] },
43
+ * ]} />
44
+ *
45
+ * // Apple (future) — configuration object
46
+ * <NitroMap provider="apple" theme={{
47
+ * colorScheme: 'dark',
48
+ * emphasisStyle: 'muted',
49
+ * }} />
50
+ * ```
51
+ */
52
+ theme?: ThemeForProvider[P];
53
+ /**
54
+ * @deprecated Use `theme` instead. `customMapStyle` only supports Google Maps
55
+ * JSON format and will be removed in a future version.
56
+ */
57
+ customMapStyle?: MapStyle;
9
58
  }
10
59
  export type NitroMapRef = NitroMapMethods;
11
- declare const NitroMap: React.NamedExoticComponent<NitroMapProps & React.RefAttributes<NitroMapMethods>>;
12
- export { NitroMap };
60
+ declare const areMapPropsEqual: (prevProps: NitroMapProps, nextProps: NitroMapProps) => boolean;
61
+ /**
62
+ * Generic NitroMap component type that preserves provider-aware theme typing.
63
+ */
64
+ interface NitroMapComponent {
65
+ <P extends MapProvider = 'google'>(props: NitroMapProps<P> & React.RefAttributes<NitroMapRef>): React.ReactElement | null;
66
+ displayName?: string;
67
+ }
68
+ declare const NitroMap: NitroMapComponent;
69
+ export { NitroMap, areMapPropsEqual };
13
70
  export default NitroMap;
14
71
  //# sourceMappingURL=NitroMap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NitroMap.d.ts","sourceRoot":"","sources":["../../../../src/components/NitroMap.tsx"],"names":[],"mappings":"AACA,OAAO,KASN,MAAM,OAAO,CAAC;AACf,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAG1E,OAAO,KAAK,EACV,eAAe,EACf,aAAa,IAAI,iBAAiB,EACnC,MAAM,yBAAyB,CAAC;AAiBjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAa3C,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,WAAW,CAAC;IACtD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAGD,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC;AA4X1C,QAAA,MAAM,QAAQ,kFAAwC,CAAC;AAQvD,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"NitroMap.d.ts","sourceRoot":"","sources":["../../../../src/components/NitroMap.tsx"],"names":[],"mappings":"AACA,OAAO,KASN,MAAM,OAAO,CAAC;AACf,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAG1E,OAAO,KAAK,EACV,eAAe,EACf,aAAa,IAAI,iBAAiB,EACnC,MAAM,yBAAyB,CAAC;AAYjC,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAKvD,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAmD3C,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,WAAW,GAAG,QAAQ,CAC7D,SAAQ,IAAI,CACV,iBAAiB,EACf,OAAO,GACP,WAAW,GACX,SAAS,GACT,SAAS,GACT,YAAY,GACZ,gBAAgB,GAChB,UAAU,GACV,mBAAmB,GACnB,kBAAkB,CACrB;IACD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC;IACb,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAElC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAE5B;;;OAGG;IACH,cAAc,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAGD,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC;AA0Y1C,QAAA,MAAM,gBAAgB,GACpB,WAAW,aAAa,EACxB,WAAW,aAAa,KACvB,OA8GF,CAAC;AAQF;;GAEG;AACH,UAAU,iBAAiB;IACzB,CAAC,CAAC,SAAS,WAAW,GAAG,QAAQ,EAC/B,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,GACzD,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD,QAAA,MAAM,QAAQ,EAAkC,iBAAiB,CAAC;AASlE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;AACtC,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,86 @@
1
+ import type { Coordinate } from '../types/map';
2
+ import { type ColorValue } from '../utils/colors';
3
+ /**
4
+ * Props for the NitroPolygon component
5
+ */
6
+ export interface NitroPolygonProps {
7
+ /** Unique identifier for the polygon */
8
+ id?: string;
9
+ /**
10
+ * Array of geographic coordinates that form the polygon boundary.
11
+ * At least 3 coordinates are required to render a visible polygon.
12
+ * The polygon is automatically closed (first and last points are connected).
13
+ * @required
14
+ */
15
+ coordinates: Coordinate[];
16
+ /**
17
+ * Optional array of holes — each hole is an array of coordinates
18
+ * that will be cut out from the polygon fill.
19
+ * @default []
20
+ */
21
+ holes?: Coordinate[][];
22
+ /**
23
+ * Fill color of the polygon (hex string like "#00000040" or MarkerColor object).
24
+ * Use 8-char hex for alpha: "#RRGGBBAA"
25
+ * @default MarkerColor { r: 0, g: 0, b: 0, a: 77 } (~30% opacity black)
26
+ */
27
+ fillColor?: ColorValue;
28
+ /**
29
+ * Stroke color of the polygon border (hex string or MarkerColor object).
30
+ * @default '#000000'
31
+ */
32
+ strokeColor?: ColorValue;
33
+ /**
34
+ * Stroke width of the polygon border in pixels.
35
+ * @default 1
36
+ */
37
+ strokeWidth?: number;
38
+ /**
39
+ * Z-index for controlling overlay stacking order.
40
+ * Higher values render on top.
41
+ * @default 0
42
+ */
43
+ zIndex?: number;
44
+ /**
45
+ * Whether this polygon responds to tap events.
46
+ * When true, `onPolygonPress` on `<NitroMap>` fires with this polygon's ID.
47
+ * @default false
48
+ */
49
+ tappable?: boolean;
50
+ /**
51
+ * Accessibility label read by screen readers (VoiceOver / TalkBack).
52
+ */
53
+ accessibilityLabel?: string;
54
+ }
55
+ declare const arePropsEqual: (prev: NitroPolygonProps, next: NitroPolygonProps) => boolean;
56
+ /**
57
+ * NitroPolygon - Draw a closed polygon shape on the map
58
+ *
59
+ * @example Basic polygon
60
+ * ```tsx
61
+ * <NitroPolygon
62
+ * coordinates={[
63
+ * { latitude: 41.29, longitude: 69.24 },
64
+ * { latitude: 41.31, longitude: 69.28 },
65
+ * { latitude: 41.33, longitude: 69.26 },
66
+ * ]}
67
+ * fillColor="#4285F440"
68
+ * strokeColor="#4285F4"
69
+ * strokeWidth={2}
70
+ * />
71
+ * ```
72
+ *
73
+ * @example Polygon with a hole
74
+ * ```tsx
75
+ * <NitroPolygon
76
+ * coordinates={outerBoundary}
77
+ * holes={[innerHole]}
78
+ * fillColor="#FF000040"
79
+ * strokeColor="#FF0000"
80
+ * />
81
+ * ```
82
+ */
83
+ export declare const NitroPolygon: import("react").NamedExoticComponent<NitroPolygonProps>;
84
+ export { arePropsEqual as arePolygonPropsEqual };
85
+ export default NitroPolygon;
86
+ //# sourceMappingURL=NitroPolygon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NitroPolygon.d.ts","sourceRoot":"","sources":["../../../../src/components/NitroPolygon.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAGL,KAAK,UAAU,EAEhB,MAAM,iBAAiB,CAAC;AAIzB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,wCAAwC;IACxC,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;;;OAKG;IACH,WAAW,EAAE,UAAU,EAAE,CAAC;IAE1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC;IAEvB;;;;OAIG;IACH,SAAS,CAAC,EAAE,UAAU,CAAC;IAEvB;;;OAGG;IACH,WAAW,CAAC,EAAE,UAAU,CAAC;IAEzB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAWD,QAAA,MAAM,aAAa,GACjB,MAAM,iBAAiB,EACvB,MAAM,iBAAiB,KACtB,OA+CF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,YAAY,yDA8DX,CAAC;AAEf,OAAO,EAAE,aAAa,IAAI,oBAAoB,EAAE,CAAC;AACjD,eAAe,YAAY,CAAC"}
@@ -0,0 +1,84 @@
1
+ import type { Coordinate } from '../types/map';
2
+ import { type ColorValue } from '../utils/colors';
3
+ /**
4
+ * Props for the NitroPolyline component
5
+ */
6
+ export interface NitroPolylineProps {
7
+ /** Unique identifier for the polyline */
8
+ id?: string;
9
+ /**
10
+ * Array of geographic coordinates that form the polyline path.
11
+ * At least 2 coordinates are required to render a visible line.
12
+ * @required
13
+ */
14
+ coordinates: Coordinate[];
15
+ /**
16
+ * Stroke color of the polyline (hex string like "#4285F4" or MarkerColor object).
17
+ * @default '#000000'
18
+ */
19
+ strokeColor?: ColorValue;
20
+ /**
21
+ * Stroke width in pixels.
22
+ * @default 1
23
+ */
24
+ strokeWidth?: number;
25
+ /**
26
+ * Whether the line follows Earth's curvature (great circle path).
27
+ * When true, the line curves on the Mercator projection to represent
28
+ * the shortest path on the sphere. Noticeable on long-distance lines.
29
+ * @default false
30
+ */
31
+ geodesic?: boolean;
32
+ /**
33
+ * Whether the line is rendered as dashed.
34
+ * @default false
35
+ */
36
+ dashed?: boolean;
37
+ /**
38
+ * Z-index for controlling overlay stacking order.
39
+ * Higher values render on top.
40
+ * @default 0
41
+ */
42
+ zIndex?: number;
43
+ /**
44
+ * Whether this polyline responds to tap events.
45
+ * When true, `onPolylinePress` on `<NitroMap>` fires with this polyline's ID.
46
+ * @default false
47
+ */
48
+ tappable?: boolean;
49
+ /**
50
+ * Accessibility label read by screen readers (VoiceOver / TalkBack).
51
+ */
52
+ accessibilityLabel?: string;
53
+ }
54
+ declare const arePropsEqual: (prev: NitroPolylineProps, next: NitroPolylineProps) => boolean;
55
+ /**
56
+ * NitroPolyline - Draw a line connecting multiple geographic points on the map
57
+ *
58
+ * @example Basic route line
59
+ * ```tsx
60
+ * <NitroPolyline
61
+ * coordinates={[
62
+ * { latitude: 41.29, longitude: 69.24 },
63
+ * { latitude: 41.31, longitude: 69.28 },
64
+ * ]}
65
+ * strokeColor="#4285F4"
66
+ * strokeWidth={4}
67
+ * />
68
+ * ```
69
+ *
70
+ * @example Geodesic dashed line
71
+ * ```tsx
72
+ * <NitroPolyline
73
+ * coordinates={routeCoordinates}
74
+ * strokeColor="#FF0000"
75
+ * strokeWidth={2}
76
+ * geodesic={true}
77
+ * dashed={true}
78
+ * />
79
+ * ```
80
+ */
81
+ export declare const NitroPolyline: import("react").NamedExoticComponent<NitroPolylineProps>;
82
+ export { arePropsEqual as arePolylinePropsEqual };
83
+ export default NitroPolyline;
84
+ //# sourceMappingURL=NitroPolyline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NitroPolyline.d.ts","sourceRoot":"","sources":["../../../../src/components/NitroPolyline.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAGL,KAAK,UAAU,EAEhB,MAAM,iBAAiB,CAAC;AAIzB;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;;OAIG;IACH,WAAW,EAAE,UAAU,EAAE,CAAC;IAE1B;;;OAGG;IACH,WAAW,CAAC,EAAE,UAAU,CAAC;IAEzB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAUD,QAAA,MAAM,aAAa,GACjB,MAAM,kBAAkB,EACxB,MAAM,kBAAkB,KACvB,OAiCF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,aAAa,0DA2DZ,CAAC;AAEf,OAAO,EAAE,aAAa,IAAI,qBAAqB,EAAE,CAAC;AAClD,eAAe,aAAa,CAAC"}
@@ -35,11 +35,6 @@ export interface PriceMarkerProps extends CommonMarkerProps {
35
35
  * @default 14
36
36
  */
37
37
  fontSize?: number;
38
- /**
39
- * Corner radius in pixels (only for simple price style)
40
- * @default 8
41
- */
42
- cornerRadius?: number;
43
38
  /**
44
39
  * Background color when marker is selected (hex string like "#FF0000" or MarkerColor object)
45
40
  */
@@ -1 +1 @@
1
- {"version":3,"file":"PriceMarker.d.ts","sourceRoot":"","sources":["../../../../src/components/PriceMarker.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;IAE7B;;;OAGG;IACH,SAAS,CAAC,EAAE,UAAU,CAAC;IAEvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,uBAAuB,CAAC,EAAE,UAAU,CAAC;IAErC;;OAEG;IACH,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAE/B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAmFD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,WAAW,wDA2HP,CAAC;AAElB,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"PriceMarker.d.ts","sourceRoot":"","sources":["../../../../src/components/PriceMarker.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAA8B,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;IAE7B;;;OAGG;IACH,SAAS,CAAC,EAAE,UAAU,CAAC;IAEvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,uBAAuB,CAAC,EAAE,UAAU,CAAC;IAErC;;OAEG;IACH,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAE/B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA+DD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,WAAW,wDA4HP,CAAC;AAElB,eAAe,WAAW,CAAC"}
@@ -11,6 +11,8 @@ export interface NitroMapContextValue {
11
11
  registerMarkerHandler: (markerId: string, handlers: MarkerHandlers) => void;
12
12
  unregisterMarkerHandler: (markerId: string) => void;
13
13
  getMarkerHandler: (markerId: string) => MarkerHandlers | undefined;
14
+ trackMarkerId: (markerId: string) => void;
15
+ untrackMarkerId: (markerId: string) => void;
14
16
  }
15
17
  export declare const NitroMapContext: import("react").Context<NitroMapContextValue | null>;
16
18
  //# sourceMappingURL=NitroMapContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NitroMapContext.d.ts","sourceRoot":"","sources":["../../../../src/context/NitroMapContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAC/C,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAC1C,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;CAC9C;AAGD,MAAM,WAAW,oBAAoB;IAEnC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAG/B,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAG5E,uBAAuB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAGpD,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,SAAS,CAAC;CACpE;AAGD,eAAO,MAAM,eAAe,sDAAmD,CAAC"}
1
+ {"version":3,"file":"NitroMapContext.d.ts","sourceRoot":"","sources":["../../../../src/context/NitroMapContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAC/C,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAC1C,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;CAC9C;AAGD,MAAM,WAAW,oBAAoB;IAEnC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAG/B,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAG5E,uBAAuB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAGpD,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,GAAG,SAAS,CAAC;IAGnE,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAGD,eAAO,MAAM,eAAe,sDAAmD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { CircleData } from '../types/overlay';
2
+ /**
3
+ * Hook for circle lifecycle management.
4
+ * Adds circle on mount, updates on prop changes, removes on unmount.
5
+ */
6
+ export declare function useNitroCircle(buildCircleData: () => CircleData): void;
7
+ //# sourceMappingURL=useNitroCircle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNitroCircle.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useNitroCircle.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,eAAe,EAAE,MAAM,UAAU,GAAG,IAAI,CAetE"}
@@ -16,7 +16,10 @@ export interface BaseMarkerData {
16
16
  anchor: Point;
17
17
  clusteringEnabled: boolean;
18
18
  config: MarkerConfig;
19
+ accessibilityLabel?: string;
19
20
  animation: MarkerAnimation;
21
+ animationDuration: number;
22
+ animateOnReappear: boolean;
20
23
  }
21
24
  /**
22
25
  * Props shared by all marker components
@@ -42,8 +45,25 @@ export interface CommonMarkerProps {
42
45
  anchor?: Point;
43
46
  /** Whether this marker should be included in clustering */
44
47
  clusteringEnabled?: boolean;
48
+ /**
49
+ * Accessibility label read by screen readers (VoiceOver / TalkBack).
50
+ * Falls back to `title` if not set.
51
+ */
52
+ accessibilityLabel?: string;
45
53
  /** Animation when marker appears on the map */
46
54
  animation?: MarkerAnimation;
55
+ /**
56
+ * Animation duration in seconds
57
+ * @default 0.3
58
+ */
59
+ animationDuration?: number;
60
+ /**
61
+ * Whether the marker should animate every time it reappears on the map
62
+ * (e.g., emerging from a cluster, scrolling back into viewport).
63
+ * When false, the animation only plays on the initial mount.
64
+ * @default true
65
+ */
66
+ animateOnReappear?: boolean;
47
67
  /** Called when the marker is tapped */
48
68
  onPress?: () => void;
49
69
  /** Called when the marker starts being dragged */
@@ -1 +1 @@
1
- {"version":3,"file":"useNitroMarker.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useNitroMarker.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,KAAK,CAAC;IACd,iBAAiB,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,eAAe,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uCAAuC;IACvC,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,+DAA+D;IAC/D,UAAU,EAAE,UAAU,CAAC;IAEvB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,KAAK,CAAC;IAEf,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,+CAA+C;IAC/C,SAAS,CAAC,EAAE,eAAe,CAAC;IAE5B,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB,kDAAkD;IAClD,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAE/C,4DAA4D;IAC5D,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAE1C,oDAAoD;IACpD,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;CAC9C;AAOD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IAEjB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,qBAAqB;IACrB,QAAQ,EAAE,cAAc,CAAC;IAEzB,+EAA+E;IAC/E,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,CAAC;CACvD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,eAAe,GAChB,EAAE,qBAAqB,GAAG,MAAM,CAqEhC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,CAAC,EAAE,MAAM,IAAI,EACpB,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,EAC9C,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,EACzC,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,GAC3C,cAAc,CAUhB"}
1
+ {"version":3,"file":"useNitroMarker.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useNitroMarker.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAGtD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,KAAK,CAAC;IACd,iBAAiB,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,eAAe,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uCAAuC;IACvC,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,+DAA+D;IAC/D,UAAU,EAAE,UAAU,CAAC;IAEvB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,KAAK,CAAC;IAEf,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,+CAA+C;IAC/C,SAAS,CAAC,EAAE,eAAe,CAAC;IAE5B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB,kDAAkD;IAClD,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAE/C,4DAA4D;IAC5D,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAE1C,oDAAoD;IACpD,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;CAC9C;AAOD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IAEjB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,qBAAqB;IACrB,QAAQ,EAAE,cAAc,CAAC;IAEzB,+EAA+E;IAC/E,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,CAAC;CACvD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,eAAe,GAChB,EAAE,qBAAqB,GAAG,MAAM,CAoFhC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,CAAC,EAAE,MAAM,IAAI,EACpB,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,EAC9C,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,EACzC,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,GAC3C,cAAc,CAUhB"}
@@ -0,0 +1,26 @@
1
+ import type { NitroMapMethods } from '../specs/NitroMap.nitro';
2
+ /**
3
+ * Overlay method names used by the generic hook.
4
+ * Maps each overlay type to its add/update/remove native methods.
5
+ */
6
+ interface OverlayMethods<T extends {
7
+ id: string;
8
+ }> {
9
+ add: (data: T) => void;
10
+ update: (data: T) => void;
11
+ remove: (id: string) => void;
12
+ }
13
+ /**
14
+ * Generic hook for overlay lifecycle management (polyline, polygon, circle).
15
+ * Adds overlay on mount, updates on prop changes, removes on unmount.
16
+ *
17
+ * Eliminates copy-paste between useNitroPolyline/useNitroPolygon/useNitroCircle.
18
+ *
19
+ * @param buildData - Memoized function that builds the overlay data object.
20
+ * @param getMethods - Function that extracts add/update/remove methods from the map ref.
21
+ */
22
+ export declare function useNitroOverlay<T extends {
23
+ id: string;
24
+ }>(buildData: () => T, getMethods: (mapRef: NitroMapMethods) => OverlayMethods<T>): void;
25
+ export {};
26
+ //# sourceMappingURL=useNitroOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNitroOverlay.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useNitroOverlay.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D;;;GAGG;AACH,UAAU,cAAc,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;IAC/C,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IACvB,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC1B,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACtD,SAAS,EAAE,MAAM,CAAC,EAClB,UAAU,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,cAAc,CAAC,CAAC,CAAC,GACzD,IAAI,CAwCN"}
@@ -0,0 +1,7 @@
1
+ import type { PolygonData } from '../types/overlay';
2
+ /**
3
+ * Hook for polygon lifecycle management.
4
+ * Adds polygon on mount, updates on prop changes, removes on unmount.
5
+ */
6
+ export declare function useNitroPolygon(buildPolygonData: () => PolygonData): void;
7
+ //# sourceMappingURL=useNitroPolygon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNitroPolygon.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useNitroPolygon.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,gBAAgB,EAAE,MAAM,WAAW,GAAG,IAAI,CAezE"}
@@ -0,0 +1,7 @@
1
+ import type { PolylineData } from '../types/overlay';
2
+ /**
3
+ * Hook for polyline lifecycle management.
4
+ * Adds polyline on mount, updates on prop changes, removes on unmount.
5
+ */
6
+ export declare function useNitroPolyline(buildPolylineData: () => PolylineData): void;
7
+ //# sourceMappingURL=useNitroPolyline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNitroPolyline.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useNitroPolyline.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,YAAY,GAAG,IAAI,CAe5E"}