@maydon_tech/react-native-nitro-maps 0.1.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 (283) hide show
  1. package/LICENSE +20 -0
  2. package/NitroMap.podspec +42 -0
  3. package/README.md +172 -0
  4. package/android/CMakeLists.txt +27 -0
  5. package/android/build.gradle +141 -0
  6. package/android/gradle.properties +5 -0
  7. package/android/src/main/AndroidManifest.xml +3 -0
  8. package/android/src/main/cpp/cpp-adapter.cpp +6 -0
  9. package/android/src/main/java/com/margelo/nitro/nitromap/ClusterIconGenerator.kt +108 -0
  10. package/android/src/main/java/com/margelo/nitro/nitromap/ColorUtils.kt +63 -0
  11. package/android/src/main/java/com/margelo/nitro/nitromap/HybridNitroMap.kt +408 -0
  12. package/android/src/main/java/com/margelo/nitro/nitromap/HybridNitroMapConfig.kt +68 -0
  13. package/android/src/main/java/com/margelo/nitro/nitromap/MarkerIconCache.kt +176 -0
  14. package/android/src/main/java/com/margelo/nitro/nitromap/MarkerIconFactory.kt +252 -0
  15. package/android/src/main/java/com/margelo/nitro/nitromap/NitroMapPackage.kt +33 -0
  16. package/android/src/main/java/com/margelo/nitro/nitromap/clustering/NitroClusterEngine.kt +252 -0
  17. package/android/src/main/java/com/margelo/nitro/nitromap/clustering/QuadTree.kt +195 -0
  18. package/android/src/main/java/com/margelo/nitro/nitromap/providers/GoogleMapProvider.kt +912 -0
  19. package/android/src/main/java/com/margelo/nitro/nitromap/providers/MapProviderInterface.kt +70 -0
  20. package/cpp/ClusterEngine.hpp +411 -0
  21. package/cpp/KDBush.hpp +238 -0
  22. package/cpp/QuadTree.hpp +246 -0
  23. package/ios/Clustering/ClusterEngineWrapper.h +58 -0
  24. package/ios/Clustering/ClusterEngineWrapper.mm +142 -0
  25. package/ios/Clustering/ClusterIconRenderer.swift +80 -0
  26. package/ios/Clustering/NitroClusterEngine.swift +117 -0
  27. package/ios/Clustering/NitroClusterIconGenerator.swift +35 -0
  28. package/ios/MarkerRenderer/MarkerIconFactory.swift +322 -0
  29. package/ios/MarkerRenderer/PriceMarkerRenderer.swift +140 -0
  30. package/ios/NitroMap.swift +332 -0
  31. package/ios/NitroMapConfig/HybridNitroMapConfig.swift +33 -0
  32. package/ios/Providers/GoogleMapDelegate.swift +310 -0
  33. package/ios/Providers/GoogleMapProvider+Camera.swift +164 -0
  34. package/ios/Providers/GoogleMapProvider.swift +924 -0
  35. package/ios/Providers/MapProviderProtocol.swift +78 -0
  36. package/ios/Shared/ClusterConfig+Factory.swift +58 -0
  37. package/ios/Shared/ClusteringManager.swift +211 -0
  38. package/ios/Shared/MapStyleProvider.swift +135 -0
  39. package/ios/Shared/MarkerSelectionHandler.swift +116 -0
  40. package/ios/Utils/ColorValueExtension.swift +54 -0
  41. package/lib/module/components/ImageMarker.js +146 -0
  42. package/lib/module/components/ImageMarker.js.map +1 -0
  43. package/lib/module/components/NitroMap.js +320 -0
  44. package/lib/module/components/NitroMap.js.map +1 -0
  45. package/lib/module/components/PriceMarker.js +165 -0
  46. package/lib/module/components/PriceMarker.js.map +1 -0
  47. package/lib/module/context/NitroMapContext.js +15 -0
  48. package/lib/module/context/NitroMapContext.js.map +1 -0
  49. package/lib/module/hooks/useNitroMarker.js +104 -0
  50. package/lib/module/hooks/useNitroMarker.js.map +1 -0
  51. package/lib/module/index.js +21 -0
  52. package/lib/module/index.js.map +1 -0
  53. package/lib/module/modules/index.js +4 -0
  54. package/lib/module/modules/index.js.map +1 -0
  55. package/lib/module/modules/module.js +30 -0
  56. package/lib/module/modules/module.js.map +1 -0
  57. package/lib/module/package.json +1 -0
  58. package/lib/module/specs/NitroMap.nitro.js +4 -0
  59. package/lib/module/specs/NitroMap.nitro.js.map +1 -0
  60. package/lib/module/specs/NitroMapConfig.nitro.js +4 -0
  61. package/lib/module/specs/NitroMapConfig.nitro.js.map +1 -0
  62. package/lib/module/types/map.js +2 -0
  63. package/lib/module/types/map.js.map +1 -0
  64. package/lib/module/types/marker.js +4 -0
  65. package/lib/module/types/marker.js.map +1 -0
  66. package/lib/module/utils/colors.js +147 -0
  67. package/lib/module/utils/colors.js.map +1 -0
  68. package/lib/typescript/package.json +1 -0
  69. package/lib/typescript/src/components/ImageMarker.d.ts +70 -0
  70. package/lib/typescript/src/components/ImageMarker.d.ts.map +1 -0
  71. package/lib/typescript/src/components/NitroMap.d.ts +14 -0
  72. package/lib/typescript/src/components/NitroMap.d.ts.map +1 -0
  73. package/lib/typescript/src/components/PriceMarker.d.ts +88 -0
  74. package/lib/typescript/src/components/PriceMarker.d.ts.map +1 -0
  75. package/lib/typescript/src/context/NitroMapContext.d.ts +16 -0
  76. package/lib/typescript/src/context/NitroMapContext.d.ts.map +1 -0
  77. package/lib/typescript/src/hooks/useNitroMarker.d.ts +78 -0
  78. package/lib/typescript/src/hooks/useNitroMarker.d.ts.map +1 -0
  79. package/lib/typescript/src/index.d.ts +12 -0
  80. package/lib/typescript/src/index.d.ts.map +1 -0
  81. package/lib/typescript/src/modules/index.d.ts +2 -0
  82. package/lib/typescript/src/modules/index.d.ts.map +1 -0
  83. package/lib/typescript/src/modules/module.d.ts +22 -0
  84. package/lib/typescript/src/modules/module.d.ts.map +1 -0
  85. package/lib/typescript/src/specs/NitroMap.nitro.d.ts +227 -0
  86. package/lib/typescript/src/specs/NitroMap.nitro.d.ts.map +1 -0
  87. package/lib/typescript/src/specs/NitroMapConfig.nitro.d.ts +10 -0
  88. package/lib/typescript/src/specs/NitroMapConfig.nitro.d.ts.map +1 -0
  89. package/lib/typescript/src/types/map.d.ts +154 -0
  90. package/lib/typescript/src/types/map.d.ts.map +1 -0
  91. package/lib/typescript/src/types/marker.d.ts +248 -0
  92. package/lib/typescript/src/types/marker.d.ts.map +1 -0
  93. package/lib/typescript/src/utils/colors.d.ts +82 -0
  94. package/lib/typescript/src/utils/colors.d.ts.map +1 -0
  95. package/nitro.json +21 -0
  96. package/nitrogen/generated/android/c++/JCamera.hpp +74 -0
  97. package/nitrogen/generated/android/c++/JClusterAnimationStyle.hpp +68 -0
  98. package/nitrogen/generated/android/c++/JClusterConfig.hpp +121 -0
  99. package/nitrogen/generated/android/c++/JClusterPressEvent.hpp +86 -0
  100. package/nitrogen/generated/android/c++/JClusterStrategy.hpp +59 -0
  101. package/nitrogen/generated/android/c++/JColorValue.cpp +26 -0
  102. package/nitrogen/generated/android/c++/JColorValue.hpp +70 -0
  103. package/nitrogen/generated/android/c++/JCoordinate.hpp +61 -0
  104. package/nitrogen/generated/android/c++/JEdgePadding.hpp +69 -0
  105. package/nitrogen/generated/android/c++/JFunc_void.hpp +75 -0
  106. package/nitrogen/generated/android/c++/JFunc_void_ClusterPressEvent.hpp +81 -0
  107. package/nitrogen/generated/android/c++/JFunc_void_MapError.hpp +78 -0
  108. package/nitrogen/generated/android/c++/JFunc_void_MapPressEvent.hpp +81 -0
  109. package/nitrogen/generated/android/c++/JFunc_void_MarkerDragEvent.hpp +80 -0
  110. package/nitrogen/generated/android/c++/JFunc_void_MarkerPressEvent.hpp +80 -0
  111. package/nitrogen/generated/android/c++/JFunc_void_RegionChangeEvent.hpp +79 -0
  112. package/nitrogen/generated/android/c++/JHybridNitroMapConfigSpec.cpp +59 -0
  113. package/nitrogen/generated/android/c++/JHybridNitroMapConfigSpec.hpp +66 -0
  114. package/nitrogen/generated/android/c++/JHybridNitroMapSpec.cpp +593 -0
  115. package/nitrogen/generated/android/c++/JHybridNitroMapSpec.hpp +125 -0
  116. package/nitrogen/generated/android/c++/JImageMarkerConfig.hpp +86 -0
  117. package/nitrogen/generated/android/c++/JMapBoundaries.hpp +62 -0
  118. package/nitrogen/generated/android/c++/JMapError.hpp +61 -0
  119. package/nitrogen/generated/android/c++/JMapPressEvent.hpp +64 -0
  120. package/nitrogen/generated/android/c++/JMapProvider.hpp +62 -0
  121. package/nitrogen/generated/android/c++/JMapStyleElement.hpp +87 -0
  122. package/nitrogen/generated/android/c++/JMapStyler.hpp +78 -0
  123. package/nitrogen/generated/android/c++/JMapType.hpp +62 -0
  124. package/nitrogen/generated/android/c++/JMarkerAnimation.hpp +62 -0
  125. package/nitrogen/generated/android/c++/JMarkerColor.hpp +69 -0
  126. package/nitrogen/generated/android/c++/JMarkerConfig.hpp +77 -0
  127. package/nitrogen/generated/android/c++/JMarkerData.hpp +121 -0
  128. package/nitrogen/generated/android/c++/JMarkerDragEvent.hpp +63 -0
  129. package/nitrogen/generated/android/c++/JMarkerPressEvent.hpp +63 -0
  130. package/nitrogen/generated/android/c++/JMarkerStyle.hpp +62 -0
  131. package/nitrogen/generated/android/c++/JPoint.hpp +61 -0
  132. package/nitrogen/generated/android/c++/JPriceMarkerStyle.hpp +102 -0
  133. package/nitrogen/generated/android/c++/JRegion.hpp +69 -0
  134. package/nitrogen/generated/android/c++/JRegionChangeEvent.hpp +62 -0
  135. package/nitrogen/generated/android/c++/JVariant_String_MarkerColor.cpp +26 -0
  136. package/nitrogen/generated/android/c++/JVariant_String_MarkerColor.hpp +70 -0
  137. package/nitrogen/generated/android/c++/views/JHybridNitroMapStateUpdater.cpp +144 -0
  138. package/nitrogen/generated/android/c++/views/JHybridNitroMapStateUpdater.hpp +49 -0
  139. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Camera.kt +50 -0
  140. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/ClusterAnimationStyle.kt +24 -0
  141. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/ClusterConfig.kt +80 -0
  142. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/ClusterPressEvent.kt +44 -0
  143. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/ClusterStrategy.kt +21 -0
  144. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/ColorValue.kt +59 -0
  145. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Coordinate.kt +41 -0
  146. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/EdgePadding.kt +47 -0
  147. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void.kt +80 -0
  148. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_ClusterPressEvent.kt +80 -0
  149. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_MapError.kt +80 -0
  150. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_MapPressEvent.kt +80 -0
  151. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_MarkerDragEvent.kt +80 -0
  152. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_MarkerPressEvent.kt +80 -0
  153. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Func_void_RegionChangeEvent.kt +80 -0
  154. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/HybridNitroMapConfigSpec.kt +61 -0
  155. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/HybridNitroMapSpec.kt +342 -0
  156. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/ImageMarkerConfig.kt +56 -0
  157. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MapBoundaries.kt +41 -0
  158. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MapError.kt +41 -0
  159. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MapPressEvent.kt +41 -0
  160. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MapProvider.kt +22 -0
  161. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MapStyleElement.kt +44 -0
  162. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MapStyler.kt +53 -0
  163. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MapType.kt +22 -0
  164. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerAnimation.kt +22 -0
  165. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerColor.kt +47 -0
  166. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerConfig.kt +44 -0
  167. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerData.kt +71 -0
  168. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerDragEvent.kt +41 -0
  169. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerPressEvent.kt +41 -0
  170. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/MarkerStyle.kt +22 -0
  171. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Point.kt +41 -0
  172. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/PriceMarkerStyle.kt +68 -0
  173. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Region.kt +47 -0
  174. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/RegionChangeEvent.kt +41 -0
  175. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/Variant_String_MarkerColor.kt +59 -0
  176. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/nitromapOnLoad.kt +35 -0
  177. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/views/HybridNitroMapManager.kt +50 -0
  178. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitromap/views/HybridNitroMapStateUpdater.kt +23 -0
  179. package/nitrogen/generated/android/nitromap+autolinking.cmake +87 -0
  180. package/nitrogen/generated/android/nitromap+autolinking.gradle +27 -0
  181. package/nitrogen/generated/android/nitromapOnLoad.cpp +70 -0
  182. package/nitrogen/generated/android/nitromapOnLoad.hpp +25 -0
  183. package/nitrogen/generated/ios/NitroMap+autolinking.rb +60 -0
  184. package/nitrogen/generated/ios/NitroMap-Swift-Cxx-Bridge.cpp +130 -0
  185. package/nitrogen/generated/ios/NitroMap-Swift-Cxx-Bridge.hpp +793 -0
  186. package/nitrogen/generated/ios/NitroMap-Swift-Cxx-Umbrella.hpp +132 -0
  187. package/nitrogen/generated/ios/NitroMapAutolinking.mm +41 -0
  188. package/nitrogen/generated/ios/NitroMapAutolinking.swift +40 -0
  189. package/nitrogen/generated/ios/c++/HybridNitroMapConfigSpecSwift.cpp +11 -0
  190. package/nitrogen/generated/ios/c++/HybridNitroMapConfigSpecSwift.hpp +84 -0
  191. package/nitrogen/generated/ios/c++/HybridNitroMapSpecSwift.cpp +11 -0
  192. package/nitrogen/generated/ios/c++/HybridNitroMapSpecSwift.hpp +410 -0
  193. package/nitrogen/generated/ios/c++/views/HybridNitroMapComponent.mm +206 -0
  194. package/nitrogen/generated/ios/swift/Camera.swift +80 -0
  195. package/nitrogen/generated/ios/swift/ClusterAnimationStyle.swift +52 -0
  196. package/nitrogen/generated/ios/swift/ClusterConfig.swift +268 -0
  197. package/nitrogen/generated/ios/swift/ClusterPressEvent.swift +70 -0
  198. package/nitrogen/generated/ios/swift/ClusterStrategy.swift +40 -0
  199. package/nitrogen/generated/ios/swift/ColorValue.swift +18 -0
  200. package/nitrogen/generated/ios/swift/Coordinate.swift +47 -0
  201. package/nitrogen/generated/ios/swift/EdgePadding.swift +69 -0
  202. package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
  203. package/nitrogen/generated/ios/swift/Func_void_Camera.swift +47 -0
  204. package/nitrogen/generated/ios/swift/Func_void_ClusterPressEvent.swift +47 -0
  205. package/nitrogen/generated/ios/swift/Func_void_MapBoundaries.swift +47 -0
  206. package/nitrogen/generated/ios/swift/Func_void_MapError.swift +47 -0
  207. package/nitrogen/generated/ios/swift/Func_void_MapPressEvent.swift +47 -0
  208. package/nitrogen/generated/ios/swift/Func_void_MarkerDragEvent.swift +47 -0
  209. package/nitrogen/generated/ios/swift/Func_void_MarkerPressEvent.swift +47 -0
  210. package/nitrogen/generated/ios/swift/Func_void_RegionChangeEvent.swift +47 -0
  211. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
  212. package/nitrogen/generated/ios/swift/HybridNitroMapConfigSpec.swift +57 -0
  213. package/nitrogen/generated/ios/swift/HybridNitroMapConfigSpec_cxx.swift +142 -0
  214. package/nitrogen/generated/ios/swift/HybridNitroMapSpec.swift +93 -0
  215. package/nitrogen/generated/ios/swift/HybridNitroMapSpec_cxx.swift +953 -0
  216. package/nitrogen/generated/ios/swift/ImageMarkerConfig.swift +166 -0
  217. package/nitrogen/generated/ios/swift/MapBoundaries.swift +47 -0
  218. package/nitrogen/generated/ios/swift/MapError.swift +47 -0
  219. package/nitrogen/generated/ios/swift/MapPressEvent.swift +47 -0
  220. package/nitrogen/generated/ios/swift/MapProvider.swift +44 -0
  221. package/nitrogen/generated/ios/swift/MapStyleElement.swift +108 -0
  222. package/nitrogen/generated/ios/swift/MapStyler.swift +177 -0
  223. package/nitrogen/generated/ios/swift/MapType.swift +44 -0
  224. package/nitrogen/generated/ios/swift/MarkerAnimation.swift +44 -0
  225. package/nitrogen/generated/ios/swift/MarkerColor.swift +69 -0
  226. package/nitrogen/generated/ios/swift/MarkerConfig.swift +82 -0
  227. package/nitrogen/generated/ios/swift/MarkerData.swift +195 -0
  228. package/nitrogen/generated/ios/swift/MarkerDragEvent.swift +47 -0
  229. package/nitrogen/generated/ios/swift/MarkerPressEvent.swift +47 -0
  230. package/nitrogen/generated/ios/swift/MarkerStyle.swift +44 -0
  231. package/nitrogen/generated/ios/swift/Point.swift +47 -0
  232. package/nitrogen/generated/ios/swift/PriceMarkerStyle.swift +374 -0
  233. package/nitrogen/generated/ios/swift/Region.swift +69 -0
  234. package/nitrogen/generated/ios/swift/RegionChangeEvent.swift +47 -0
  235. package/nitrogen/generated/ios/swift/Variant_String_MarkerColor.swift +18 -0
  236. package/nitrogen/generated/shared/c++/Camera.hpp +92 -0
  237. package/nitrogen/generated/shared/c++/ClusterAnimationStyle.hpp +88 -0
  238. package/nitrogen/generated/shared/c++/ClusterConfig.hpp +140 -0
  239. package/nitrogen/generated/shared/c++/ClusterPressEvent.hpp +86 -0
  240. package/nitrogen/generated/shared/c++/ClusterStrategy.hpp +76 -0
  241. package/nitrogen/generated/shared/c++/Coordinate.hpp +79 -0
  242. package/nitrogen/generated/shared/c++/EdgePadding.hpp +87 -0
  243. package/nitrogen/generated/shared/c++/HybridNitroMapConfigSpec.cpp +22 -0
  244. package/nitrogen/generated/shared/c++/HybridNitroMapConfigSpec.hpp +65 -0
  245. package/nitrogen/generated/shared/c++/HybridNitroMapSpec.cpp +82 -0
  246. package/nitrogen/generated/shared/c++/HybridNitroMapSpec.hpp +173 -0
  247. package/nitrogen/generated/shared/c++/ImageMarkerConfig.hpp +103 -0
  248. package/nitrogen/generated/shared/c++/MapBoundaries.hpp +80 -0
  249. package/nitrogen/generated/shared/c++/MapError.hpp +79 -0
  250. package/nitrogen/generated/shared/c++/MapPressEvent.hpp +83 -0
  251. package/nitrogen/generated/shared/c++/MapProvider.hpp +80 -0
  252. package/nitrogen/generated/shared/c++/MapStyleElement.hpp +87 -0
  253. package/nitrogen/generated/shared/c++/MapStyler.hpp +96 -0
  254. package/nitrogen/generated/shared/c++/MapType.hpp +80 -0
  255. package/nitrogen/generated/shared/c++/MarkerAnimation.hpp +80 -0
  256. package/nitrogen/generated/shared/c++/MarkerColor.hpp +87 -0
  257. package/nitrogen/generated/shared/c++/MarkerConfig.hpp +91 -0
  258. package/nitrogen/generated/shared/c++/MarkerData.hpp +131 -0
  259. package/nitrogen/generated/shared/c++/MarkerDragEvent.hpp +81 -0
  260. package/nitrogen/generated/shared/c++/MarkerPressEvent.hpp +81 -0
  261. package/nitrogen/generated/shared/c++/MarkerStyle.hpp +80 -0
  262. package/nitrogen/generated/shared/c++/Point.hpp +79 -0
  263. package/nitrogen/generated/shared/c++/PriceMarkerStyle.hpp +119 -0
  264. package/nitrogen/generated/shared/c++/Region.hpp +87 -0
  265. package/nitrogen/generated/shared/c++/RegionChangeEvent.hpp +80 -0
  266. package/nitrogen/generated/shared/c++/views/HybridNitroMapComponent.cpp +351 -0
  267. package/nitrogen/generated/shared/c++/views/HybridNitroMapComponent.hpp +141 -0
  268. package/nitrogen/generated/shared/json/NitroMapConfig.json +32 -0
  269. package/package.json +176 -0
  270. package/react-native.config.js +16 -0
  271. package/src/components/ImageMarker.tsx +254 -0
  272. package/src/components/NitroMap.tsx +433 -0
  273. package/src/components/PriceMarker.tsx +311 -0
  274. package/src/context/NitroMapContext.tsx +33 -0
  275. package/src/hooks/useNitroMarker.ts +198 -0
  276. package/src/index.tsx +62 -0
  277. package/src/modules/index.ts +6 -0
  278. package/src/modules/module.ts +45 -0
  279. package/src/specs/NitroMap.nitro.ts +292 -0
  280. package/src/specs/NitroMapConfig.nitro.ts +8 -0
  281. package/src/types/map.ts +166 -0
  282. package/src/types/marker.ts +267 -0
  283. package/src/utils/colors.ts +159 -0
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ // src/components/NitroMapContext.tsx
4
+ import { createContext } from 'react';
5
+
6
+ // Marker event handlers
7
+
8
+ // Context value type
9
+
10
+ // Create context with null default
11
+ export const NitroMapContext = /*#__PURE__*/createContext(null);
12
+
13
+ // Provider display name for debugging
14
+ NitroMapContext.displayName = 'NitroMapContext';
15
+ //# sourceMappingURL=NitroMapContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","NitroMapContext","displayName"],"sourceRoot":"../../../src","sources":["context/NitroMapContext.tsx"],"mappings":";;AAAA;AACA,SAASA,aAAa,QAAQ,OAAO;;AAIrC;;AAQA;;AAeA;AACA,OAAO,MAAMC,eAAe,gBAAGD,aAAa,CAA8B,IAAI,CAAC;;AAE/E;AACAC,eAAe,CAACC,WAAW,GAAG,iBAAiB","ignoreList":[]}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+
3
+ // src/hooks/useNitroMarker.ts
4
+ import { useContext, useEffect, useRef, useCallback } from 'react';
5
+ import { NitroMapContext } from "../context/NitroMapContext.js";
6
+
7
+ /**
8
+ * Base marker data structure for internal use
9
+ */
10
+
11
+ /**
12
+ * Props shared by all marker components
13
+ */
14
+
15
+ // ID generator
16
+ let markerIdCounter = 0;
17
+ const generateMarkerId = prefix => `${prefix}_${++markerIdCounter}_${Date.now()}`;
18
+
19
+ /**
20
+ * Hook options for useNitroMarker
21
+ */
22
+
23
+ /**
24
+ * Shared hook for all marker components
25
+ * Handles ID generation, context registration, and marker lifecycle
26
+ */
27
+ export function useNitroMarker({
28
+ idPrefix,
29
+ providedId,
30
+ handlers,
31
+ buildMarkerData
32
+ }) {
33
+ // Generate stable ID
34
+ const markerId = useRef(providedId || generateMarkerId(idPrefix)).current;
35
+
36
+ // Get map context
37
+ const mapContext = useContext(NitroMapContext);
38
+
39
+ // Track if marker has been added
40
+ const isAddedRef = useRef(false);
41
+
42
+ // ============ Register Event Handlers ============
43
+ useEffect(() => {
44
+ if (!mapContext) {
45
+ console.warn(`${idPrefix} must be used inside NitroMap`);
46
+ return;
47
+ }
48
+
49
+ // Register handlers
50
+ mapContext.registerMarkerHandler(markerId, handlers);
51
+
52
+ // Cleanup on unmount
53
+ return () => {
54
+ mapContext.unregisterMarkerHandler(markerId);
55
+ };
56
+ // We intentionally depend on individual handler properties instead of the handlers object
57
+ // eslint-disable-next-line react-hooks/exhaustive-deps
58
+ }, [markerId, mapContext, handlers.onPress, handlers.onDragStart, handlers.onDrag, handlers.onDragEnd, idPrefix]);
59
+
60
+ // ============ Add Marker on Mount, Remove on Unmount ============
61
+ // NOTE: mapContext is a ref object, so we must track mapContext.mapRef separately
62
+ const mapRef = mapContext?.mapRef;
63
+ useEffect(() => {
64
+ if (!mapRef) {
65
+ return;
66
+ }
67
+
68
+ // Add marker on mount
69
+ mapRef.addMarker(buildMarkerData(markerId));
70
+ isAddedRef.current = true;
71
+
72
+ // Remove marker only on unmount
73
+ return () => {
74
+ mapRef?.removeMarker(markerId);
75
+ isAddedRef.current = false;
76
+ };
77
+ // eslint-disable-next-line react-hooks/exhaustive-deps
78
+ }, [mapRef, markerId]); // mapRef is now properly tracked
79
+
80
+ // ============ Update Marker when props change ============
81
+ useEffect(() => {
82
+ // Skip if not yet added or no map ref
83
+ if (!isAddedRef.current || !mapContext?.mapRef) {
84
+ return;
85
+ }
86
+
87
+ // Update marker with new data
88
+ mapContext.mapRef.updateMarker(buildMarkerData(markerId));
89
+ }, [mapContext, buildMarkerData, markerId]);
90
+ return markerId;
91
+ }
92
+
93
+ /**
94
+ * Create stable handlers object that won't cause unnecessary re-renders
95
+ */
96
+ export function useMarkerHandlers(onPress, onDragStart, onDrag, onDragEnd) {
97
+ return useCallback(() => ({
98
+ onPress,
99
+ onDragStart,
100
+ onDrag,
101
+ onDragEnd
102
+ }), [onPress, onDragStart, onDrag, onDragEnd])();
103
+ }
104
+ //# sourceMappingURL=useNitroMarker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useContext","useEffect","useRef","useCallback","NitroMapContext","markerIdCounter","generateMarkerId","prefix","Date","now","useNitroMarker","idPrefix","providedId","handlers","buildMarkerData","markerId","current","mapContext","isAddedRef","console","warn","registerMarkerHandler","unregisterMarkerHandler","onPress","onDragStart","onDrag","onDragEnd","mapRef","addMarker","removeMarker","updateMarker","useMarkerHandlers"],"sourceRoot":"../../../src","sources":["hooks/useNitroMarker.ts"],"mappings":";;AAAA;AACA,SAASA,UAAU,EAAEC,SAAS,EAAEC,MAAM,EAAEC,WAAW,QAAQ,OAAO;AAClE,SACEC,eAAe,QAEV,+BAA4B;;AAInC;AACA;AACA;;AAgBA;AACA;AACA;;AAgDA;AACA,IAAIC,eAAe,GAAG,CAAC;AACvB,MAAMC,gBAAgB,GAAIC,MAAc,IACtC,GAAGA,MAAM,IAAI,EAAEF,eAAe,IAAIG,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE;;AAEhD;AACA;AACA;;AAeA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAC;EAC7BC,QAAQ;EACRC,UAAU;EACVC,QAAQ;EACRC;AACqB,CAAC,EAAU;EAChC;EACA,MAAMC,QAAQ,GAAGb,MAAM,CAACU,UAAU,IAAIN,gBAAgB,CAACK,QAAQ,CAAC,CAAC,CAACK,OAAO;;EAEzE;EACA,MAAMC,UAAU,GAAGjB,UAAU,CAACI,eAAe,CAAC;;EAE9C;EACA,MAAMc,UAAU,GAAGhB,MAAM,CAAC,KAAK,CAAC;;EAEhC;EACAD,SAAS,CAAC,MAAM;IACd,IAAI,CAACgB,UAAU,EAAE;MACfE,OAAO,CAACC,IAAI,CAAC,GAAGT,QAAQ,+BAA+B,CAAC;MACxD;IACF;;IAEA;IACAM,UAAU,CAACI,qBAAqB,CAACN,QAAQ,EAAEF,QAAQ,CAAC;;IAEpD;IACA,OAAO,MAAM;MACXI,UAAU,CAACK,uBAAuB,CAACP,QAAQ,CAAC;IAC9C,CAAC;IACD;IACA;EACF,CAAC,EAAE,CACDA,QAAQ,EACRE,UAAU,EACVJ,QAAQ,CAACU,OAAO,EAChBV,QAAQ,CAACW,WAAW,EACpBX,QAAQ,CAACY,MAAM,EACfZ,QAAQ,CAACa,SAAS,EAClBf,QAAQ,CACT,CAAC;;EAEF;EACA;EACA,MAAMgB,MAAM,GAAGV,UAAU,EAAEU,MAAM;EAEjC1B,SAAS,CAAC,MAAM;IACd,IAAI,CAAC0B,MAAM,EAAE;MACX;IACF;;IAEA;IACAA,MAAM,CAACC,SAAS,CAACd,eAAe,CAACC,QAAQ,CAAC,CAAC;IAC3CG,UAAU,CAACF,OAAO,GAAG,IAAI;;IAEzB;IACA,OAAO,MAAM;MACXW,MAAM,EAAEE,YAAY,CAACd,QAAQ,CAAC;MAC9BG,UAAU,CAACF,OAAO,GAAG,KAAK;IAC5B,CAAC;IACD;EACF,CAAC,EAAE,CAACW,MAAM,EAAEZ,QAAQ,CAAC,CAAC,CAAC,CAAC;;EAExB;EACAd,SAAS,CAAC,MAAM;IACd;IACA,IAAI,CAACiB,UAAU,CAACF,OAAO,IAAI,CAACC,UAAU,EAAEU,MAAM,EAAE;MAC9C;IACF;;IAEA;IACAV,UAAU,CAACU,MAAM,CAACG,YAAY,CAAChB,eAAe,CAACC,QAAQ,CAAC,CAAC;EAC3D,CAAC,EAAE,CAACE,UAAU,EAAEH,eAAe,EAAEC,QAAQ,CAAC,CAAC;EAE3C,OAAOA,QAAQ;AACjB;;AAEA;AACA;AACA;AACA,OAAO,SAASgB,iBAAiBA,CAC/BR,OAAoB,EACpBC,WAA8C,EAC9CC,MAAyC,EACzCC,SAA4C,EAC5B;EAChB,OAAOvB,WAAW,CAChB,OAAO;IACLoB,OAAO;IACPC,WAAW;IACXC,MAAM;IACNC;EACF,CAAC,CAAC,EACF,CAACH,OAAO,EAAEC,WAAW,EAAEC,MAAM,EAAEC,SAAS,CAC1C,CAAC,CAAC,CAAC;AACL","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ // src/index.ts
4
+
5
+ // ============ Components ============
6
+ export { NitroMap, default } from "./components/NitroMap.js";
7
+
8
+ // New specialized marker components
9
+ export { PriceMarker } from "./components/PriceMarker.js";
10
+ export { ImageMarker } from "./components/ImageMarker.js";
11
+
12
+ // ============ Types ============
13
+
14
+ export { NitroMapInitialize, IsNitroMapInitialized, getDefaultProvider } from "./modules/index.js";
15
+
16
+ // Marker component props
17
+
18
+ // ============ Utilities ============
19
+ // Color helpers - use these to create colors for markers and clusters
20
+ export { rgb, hex, Colors } from "./utils/colors.js";
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NitroMap","default","PriceMarker","ImageMarker","NitroMapInitialize","IsNitroMapInitialized","getDefaultProvider","rgb","hex","Colors"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA;;AAEA;AACA,SAASA,QAAQ,EAAEC,OAAO,QAAQ,0BAAuB;;AAEzD;AACA,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,WAAW,QAAQ,6BAA0B;;AAEtD;;AAqCA,SACEC,kBAAkB,EAClBC,qBAAqB,EACrBC,kBAAkB,QAEb,oBAAW;;AAElB;;AAKA;AACA;AACA,SAASC,GAAG,EAAEC,GAAG,EAAEC,MAAM,QAAQ,mBAAgB","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { NitroMapInitialize, IsNitroMapInitialized, getDefaultProvider } from "./module.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NitroMapInitialize","IsNitroMapInitialized","getDefaultProvider"],"sourceRoot":"../../../src","sources":["modules/index.ts"],"mappings":";;AAAA,SACEA,kBAAkB,EAClBC,qBAAqB,EACrBC,kBAAkB,QAEb,aAAU","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ import { NitroModules } from 'react-native-nitro-modules';
4
+ const NitroMapConfig = NitroModules.createHybridObject('NitroMapConfig');
5
+
6
+ // Store the default provider set during initialization
7
+ let defaultProvider = 'google';
8
+
9
+ /**
10
+ * Configuration for NitroMap initialization.
11
+ */
12
+
13
+ /**
14
+ * Initialize the NitroMap SDK. Must be called before rendering <NitroMap>.
15
+ *
16
+ * @example
17
+ * NitroMapInitialize({ provider: 'google', googleApiKey: 'YOUR_KEY' });
18
+ */
19
+ export function NitroMapInitialize(config) {
20
+ const apiKey = config.provider === 'yandex' ? config.yandexApiKey ?? '' : config.googleApiKey ?? '';
21
+ defaultProvider = config.provider;
22
+ NitroMapConfig.NitroMapInitialize(apiKey, config.provider);
23
+ }
24
+ export function IsNitroMapInitialized() {
25
+ return NitroMapConfig.IsNitroMapInitialized();
26
+ }
27
+ export function getDefaultProvider() {
28
+ return defaultProvider;
29
+ }
30
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NitroModules","NitroMapConfig","createHybridObject","defaultProvider","NitroMapInitialize","config","apiKey","provider","yandexApiKey","googleApiKey","IsNitroMapInitialized","getDefaultProvider"],"sourceRoot":"../../../src","sources":["modules/module.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAIzD,MAAMC,cAAc,GAClBD,YAAY,CAACE,kBAAkB,CAAiB,gBAAgB,CAAC;;AAEnE;AACA,IAAIC,eAA4B,GAAG,QAAQ;;AAE3C;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAACC,MAA0B,EAAQ;EACnE,MAAMC,MAAM,GACVD,MAAM,CAACE,QAAQ,KAAK,QAAQ,GACxBF,MAAM,CAACG,YAAY,IAAI,EAAE,GACzBH,MAAM,CAACI,YAAY,IAAI,EAAE;EAE/BN,eAAe,GAAGE,MAAM,CAACE,QAAQ;EACjCN,cAAc,CAACG,kBAAkB,CAACE,MAAM,EAAED,MAAM,CAACE,QAAQ,CAAC;AAC5D;AAEA,OAAO,SAASG,qBAAqBA,CAAA,EAAY;EAC/C,OAAOT,cAAc,CAACS,qBAAqB,CAAC,CAAC;AAC/C;AAEA,OAAO,SAASC,kBAAkBA,CAAA,EAAgB;EAChD,OAAOR,eAAe;AACxB","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=NitroMap.nitro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/NitroMap.nitro.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=NitroMapConfig.nitro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/NitroMapConfig.nitro.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/map.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=marker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/marker.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+
3
+ // ============ Color Helpers ============
4
+
5
+ /**
6
+ * Color value that can be either a MarkerColor object or a hex string
7
+ * Hex strings can be in formats: "#RRGGBB", "RRGGBB", "#RGB", or "RGB"
8
+ * @example
9
+ * ```ts
10
+ * const color1: ColorValue = "#FF0000"; // Hex string
11
+ * const color2: ColorValue = "#F00"; // Short hex
12
+ * const color3: ColorValue = { r: 255, g: 0, b: 0, a: 255 }; // MarkerColor
13
+ * ```
14
+ */
15
+
16
+ /**
17
+ * Parse a ColorValue into a MarkerColor object
18
+ * Handles both hex strings and MarkerColor objects
19
+ * @param color - Color value (hex string or MarkerColor)
20
+ * @param defaultAlpha - Default alpha value (0-255) for hex strings
21
+ * @returns MarkerColor object
22
+ * @internal
23
+ */
24
+ export const parseColor = (color, defaultAlpha = 255) => {
25
+ if (color === undefined) {
26
+ return undefined;
27
+ }
28
+
29
+ // If it's already a MarkerColor object, return as-is
30
+ if (typeof color === 'object' && 'r' in color && 'g' in color && 'b' in color) {
31
+ return {
32
+ r: color.r,
33
+ g: color.g,
34
+ b: color.b,
35
+ a: color.a ?? defaultAlpha
36
+ };
37
+ }
38
+
39
+ // It's a string - parse as hex
40
+ if (typeof color === 'string') {
41
+ return hex(color, defaultAlpha);
42
+ }
43
+ return undefined;
44
+ };
45
+
46
+ /**
47
+ * Parse a ColorValue with a fallback default color
48
+ * @param color - Color value (hex string or MarkerColor)
49
+ * @param fallback - Fallback MarkerColor if parsing fails
50
+ * @returns MarkerColor object
51
+ * @internal
52
+ */
53
+ export const parseColorWithFallback = (color, fallback) => {
54
+ const parsed = parseColor(color);
55
+ return parsed ?? fallback;
56
+ };
57
+
58
+ /**
59
+ * Create a MarkerColor from RGB values
60
+ * @param r - Red component (0-255)
61
+ * @param g - Green component (0-255)
62
+ * @param b - Blue component (0-255)
63
+ * @param a - Alpha/opacity (0-255, default: 255)
64
+ * @returns MarkerColor object
65
+ * @example
66
+ * ```ts
67
+ * const customRed = rgb(255, 0, 0);
68
+ * const semiTransparent = rgb(0, 0, 255, 128);
69
+ * ```
70
+ */
71
+ export const rgb = (r, g, b, a = 255) => ({
72
+ r,
73
+ g,
74
+ b,
75
+ a
76
+ });
77
+
78
+ /**
79
+ * Create a MarkerColor from a hex string
80
+ * @param hexStr - Hex color string (e.g., "#FF0000", "FF0000", "#F00", or "F00")
81
+ * @param alpha - Alpha/opacity (0-255, default: 255)
82
+ * @returns MarkerColor object
83
+ * @example
84
+ * ```ts
85
+ * const red = hex("#FF0000");
86
+ * const shortRed = hex("#F00");
87
+ * const semiTransparentBlue = hex("#0000FF", 128);
88
+ * ```
89
+ */
90
+ export const hex = (hexStr, alpha = 255) => {
91
+ // Try 6-char hex first (#RRGGBB or RRGGBB)
92
+ const result6 = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexStr);
93
+ if (result6) {
94
+ return {
95
+ r: parseInt(result6[1], 16),
96
+ g: parseInt(result6[2], 16),
97
+ b: parseInt(result6[3], 16),
98
+ a: alpha
99
+ };
100
+ }
101
+
102
+ // Try 3-char hex (#RGB or RGB)
103
+ const result3 = /^#?([a-f\d])([a-f\d])([a-f\d])$/i.exec(hexStr);
104
+ if (result3) {
105
+ return {
106
+ r: parseInt(result3[1] + result3[1], 16),
107
+ g: parseInt(result3[2] + result3[2], 16),
108
+ b: parseInt(result3[3] + result3[3], 16),
109
+ a: alpha
110
+ };
111
+ }
112
+
113
+ // Fallback to black
114
+ return {
115
+ r: 0,
116
+ g: 0,
117
+ b: 0,
118
+ a: alpha
119
+ };
120
+ };
121
+
122
+ /**
123
+ * Preset colors for convenience
124
+ * @example
125
+ * ```ts
126
+ * <NitroMarker backgroundColor={Colors.red} />
127
+ * ```
128
+ */
129
+ export const Colors = {
130
+ /** White (255, 255, 255) */
131
+ white: rgb(255, 255, 255),
132
+ /** Black (0, 0, 0) */
133
+ black: rgb(0, 0, 0),
134
+ /** iOS system red (255, 59, 48) */
135
+ red: rgb(255, 59, 48),
136
+ /** iOS system blue (0, 122, 255) */
137
+ blue: rgb(0, 122, 255),
138
+ /** Material green (76, 175, 80) */
139
+ green: rgb(76, 175, 80),
140
+ /** iOS system orange (255, 149, 0) */
141
+ orange: rgb(255, 149, 0),
142
+ /** Dark gray (51, 51, 51) */
143
+ gray: rgb(51, 51, 51),
144
+ /** Light gray (240, 240, 240) */
145
+ lightGray: rgb(240, 240, 240)
146
+ };
147
+ //# sourceMappingURL=colors.js.map
@@ -0,0 +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":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,70 @@
1
+ import { type CommonMarkerProps } from '../hooks/useNitroMarker';
2
+ import { type ColorValue } from '../utils/colors';
3
+ /**
4
+ * Props for the ImageMarker component
5
+ */
6
+ export interface ImageMarkerProps extends CommonMarkerProps {
7
+ /**
8
+ * URL of the image to display
9
+ * Either imageUrl or imageBase64 is required
10
+ */
11
+ imageUrl?: string;
12
+ /**
13
+ * Base64-encoded image data (alternative to imageUrl)
14
+ * Either imageUrl or imageBase64 is required
15
+ */
16
+ imageBase64?: string;
17
+ /**
18
+ * Image width in pixels
19
+ * @default 50
20
+ */
21
+ width?: number;
22
+ /**
23
+ * Image height in pixels
24
+ * @default 50
25
+ */
26
+ height?: number;
27
+ /**
28
+ * Corner radius in pixels
29
+ * @default 8
30
+ */
31
+ cornerRadius?: number;
32
+ /**
33
+ * Border thickness in pixels
34
+ * @default 0
35
+ */
36
+ borderWidth?: number;
37
+ /**
38
+ * Border color (hex string like "#FF0000" or MarkerColor object)
39
+ */
40
+ borderColor?: ColorValue;
41
+ }
42
+ /**
43
+ * ImageMarker - Display images as map markers
44
+ *
45
+ * @example With URL
46
+ * ```tsx
47
+ * <ImageMarker
48
+ * coordinate={{ latitude: 41.29, longitude: 69.24 }}
49
+ * imageUrl="https://example.com/image.jpg"
50
+ * width={60}
51
+ * height={60}
52
+ * />
53
+ * ```
54
+ *
55
+ * @example With Base64 and styling
56
+ * ```tsx
57
+ * <ImageMarker
58
+ * coordinate={{ latitude: 41.30, longitude: 69.25 }}
59
+ * imageBase64={base64Data}
60
+ * width={50}
61
+ * height={50}
62
+ * cornerRadius={25}
63
+ * borderWidth={2}
64
+ * borderColor={Colors.white}
65
+ * />
66
+ * ```
67
+ */
68
+ export declare const ImageMarker: import("react").NamedExoticComponent<ImageMarkerProps>;
69
+ export default ImageMarker;
70
+ //# sourceMappingURL=ImageMarker.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+ import type { NitroMapMethods, NitroMapProps as NitroMapPropsSpec } from '../specs/NitroMap.nitro';
4
+ export * from '../specs/NitroMap.nitro';
5
+ export * from '../context/NitroMapContext';
6
+ export interface NitroMapProps extends Omit<NitroMapPropsSpec, 'style' | 'hybridRef'> {
7
+ style?: StyleProp<ViewStyle>;
8
+ children?: React.ReactNode;
9
+ }
10
+ export type NitroMapRef = NitroMapMethods;
11
+ declare const NitroMap: React.NamedExoticComponent<NitroMapProps & React.RefAttributes<NitroMapMethods>>;
12
+ export { NitroMap };
13
+ export default NitroMap;
14
+ //# sourceMappingURL=NitroMap.d.ts.map
@@ -0,0 +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;AAgX1C,QAAA,MAAM,QAAQ,kFAAwC,CAAC;AAQvD,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,88 @@
1
+ import { type CommonMarkerProps } from '../hooks/useNitroMarker';
2
+ import { type ColorValue } from '../utils/colors';
3
+ /**
4
+ * Props for the PriceMarker component
5
+ */
6
+ export interface PriceMarkerProps extends CommonMarkerProps {
7
+ /**
8
+ * Price text to display (e.g., "9M", "150K")
9
+ * @required
10
+ */
11
+ price: string;
12
+ /**
13
+ * Currency code to display (e.g., "UZS", "USD")
14
+ * If provided, uses the full price marker style with currency
15
+ */
16
+ currency?: string;
17
+ /**
18
+ * Whether the marker is in selected state
19
+ * Changes background and text colors when true
20
+ * @default false
21
+ */
22
+ selected?: boolean;
23
+ /**
24
+ * Background color of the marker (hex string like "#FF0000" or MarkerColor object)
25
+ * @default Colors.white
26
+ */
27
+ backgroundColor?: ColorValue;
28
+ /**
29
+ * Text color of the marker (hex string like "#FF0000" or MarkerColor object)
30
+ * @default Colors.black
31
+ */
32
+ textColor?: ColorValue;
33
+ /**
34
+ * Font size in pixels
35
+ * @default 14
36
+ */
37
+ fontSize?: number;
38
+ /**
39
+ * Corner radius in pixels (only for simple price style)
40
+ * @default 8
41
+ */
42
+ cornerRadius?: number;
43
+ /**
44
+ * Background color when marker is selected (hex string like "#FF0000" or MarkerColor object)
45
+ */
46
+ selectedBackgroundColor?: ColorValue;
47
+ /**
48
+ * Text color when marker is selected (hex string like "#FF0000" or MarkerColor object)
49
+ */
50
+ selectedTextColor?: ColorValue;
51
+ /**
52
+ * Horizontal padding in pixels
53
+ */
54
+ paddingHorizontal?: number;
55
+ /**
56
+ * Vertical padding in pixels
57
+ */
58
+ paddingVertical?: number;
59
+ /**
60
+ * Shadow opacity (0-1)
61
+ */
62
+ shadowOpacity?: number;
63
+ }
64
+ /**
65
+ * PriceMarker - Display price tags on the map
66
+ *
67
+ * @example Simple price tag
68
+ * ```tsx
69
+ * <PriceMarker
70
+ * coordinate={{ latitude: 41.29, longitude: 69.24 }}
71
+ * price="150K"
72
+ * />
73
+ * ```
74
+ *
75
+ * @example Full price marker with currency
76
+ * ```tsx
77
+ * <PriceMarker
78
+ * coordinate={{ latitude: 41.30, longitude: 69.25 }}
79
+ * price="9M"
80
+ * currency="UZS"
81
+ * selected={isSelected}
82
+ * onPress={() => setSelected(true)}
83
+ * />
84
+ * ```
85
+ */
86
+ export declare const PriceMarker: import("react").NamedExoticComponent<PriceMarkerProps>;
87
+ export default PriceMarker;
88
+ //# sourceMappingURL=PriceMarker.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,16 @@
1
+ import type { NitroMapMethods } from '../specs/NitroMap.nitro';
2
+ import type { Coordinate } from '../types/map';
3
+ export interface MarkerHandlers {
4
+ onPress?: () => void;
5
+ onDragStart?: (coordinate: Coordinate) => void;
6
+ onDrag?: (coordinate: Coordinate) => void;
7
+ onDragEnd?: (coordinate: Coordinate) => void;
8
+ }
9
+ export interface NitroMapContextValue {
10
+ mapRef: NitroMapMethods | null;
11
+ registerMarkerHandler: (markerId: string, handlers: MarkerHandlers) => void;
12
+ unregisterMarkerHandler: (markerId: string) => void;
13
+ getMarkerHandler: (markerId: string) => MarkerHandlers | undefined;
14
+ }
15
+ export declare const NitroMapContext: import("react").Context<NitroMapContextValue | null>;
16
+ //# sourceMappingURL=NitroMapContext.d.ts.map
@@ -0,0 +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"}