{"_id":"@accron/react-native-mapbox-delivery","_rev":"5-1d2a87ac864582bb22ea4e0521a24f45","name":"@accron/react-native-mapbox-delivery","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"@accron/react-native-mapbox-delivery","version":"0.1.0","keywords":["react-native","ios","android","mapbox","navigation","delivery","turbo-module"],"author":{"name":"Accron Revolutions","email":"support@accronautobot.com"},"license":"MIT","_id":"@accron/react-native-mapbox-delivery@0.1.0","maintainers":[{"name":"accron","email":"support@accronautobot.com"}],"homepage":"https://github.com/accron/react-native-mapbox-delivery#readme","bugs":{"url":"https://github.com/accron/react-native-mapbox-delivery/issues"},"dist":{"shasum":"979a317c8aebf5f1208d1b141b04b1cb423feb65","tarball":"https://registry.npmjs.org/@accron/react-native-mapbox-delivery/-/react-native-mapbox-delivery-0.1.0.tgz","fileCount":30,"integrity":"sha512-WsE+6/fs3IqSMbi/manQJNPEiA8W2enx8xuEtd8Tx0hQQDnilr6s0+/pah8CUJgxCaFnqG3UvGK8MNKg+oEHmg==","signatures":[{"sig":"MEUCID7L5Jog7PtbksnpFGX1tO8q9nDSVRhTyAsE3B2esdKrAiEA6NmQtMyruAqIupMFDLPqqO9ktAeBOtwJsSbGXQuJ7OQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":163462},"main":"lib/commonjs/index","types":"lib/typescript/index.d.ts","module":"lib/module/index","source":"src/index","engines":{"node":">= 18.0.0"},"scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build","example":"yarn --cwd example","prepare":"bob build","release":"release-it","bootstrap":"yarn example && yarn install && yarn example pods","typescript":"tsc --noEmit"},"_npmUser":{"name":"accron","email":"support@accronautobot.com"},"repository":{"url":"git+https://github.com/accron/react-native-mapbox-delivery.git","type":"git"},"_npmVersion":"11.6.2","description":"Turbo Native Module for Mapbox with delivery-specific features","directories":{},"resolutions":{"@types/react":"19.0.0"},"_nodeVersion":"25.1.0","react-native":"src/index","codegenConfig":{"name":"RNMapboxDeliverySpec","type":"all","jsSrcsDir":"src"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.0.0","eslint":"^8.4.1","del-cli":"^5.0.0","prettier":"^2.0.5","typescript":"^5.0.2","@types/react":"^19.0.0","react-native":"0.78.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","react-native-builder-bob":"^0.18.3","@react-native-community/eslint-config":"^3.0.2"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-mapbox-delivery_0.1.0_1763453948084_0.8480397942872826","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":["commonjs","module",["typescript",{"project":"tsconfig.build.json"}]]}},"0.1.1":{"name":"@accron/react-native-mapbox-delivery","version":"0.1.1","keywords":["react-native","ios","android","mapbox","navigation","delivery","turbo-module"],"author":{"name":"Accron Revolutions","email":"support@accronautobot.com"},"license":"MIT","_id":"@accron/react-native-mapbox-delivery@0.1.1","maintainers":[{"name":"accron","email":"support@accronautobot.com"}],"homepage":"https://github.com/accron/react-native-mapbox-delivery#readme","bugs":{"url":"https://github.com/accron/react-native-mapbox-delivery/issues"},"dist":{"shasum":"60b397373cc103f6dae17350249c6087dc2c0664","tarball":"https://registry.npmjs.org/@accron/react-native-mapbox-delivery/-/react-native-mapbox-delivery-0.1.1.tgz","fileCount":30,"integrity":"sha512-O8USH7Mgx8WTq4Eo2nErk6eBfter44c4FnhIMcMmp2P31Vl5mhtV+9Zdx0APDIT7Wrh9/tAWEcuntERDyw3wCg==","signatures":[{"sig":"MEYCIQC5tblAC6+n0AT1ICSpb2zgf4BtjU48miallCOJpVRRpgIhAIU4U5ijcN1JZYym+NKoPK2Z6000cl2csvWIiQBw+sh5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":164403},"main":"lib/commonjs/index","types":"lib/typescript/index.d.ts","module":"lib/module/index","source":"src/index","engines":{"node":">= 18.0.0"},"gitHead":"c8acd69ad6705c76998677a0849fc783e043be47","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build","example":"yarn --cwd example","prepare":"bob build","release":"release-it","bootstrap":"yarn example && yarn install && yarn example pods","typescript":"tsc --noEmit"},"_npmUser":{"name":"accron","email":"support@accronautobot.com"},"repository":{"url":"git+https://github.com/accron/react-native-mapbox-delivery.git","type":"git"},"_npmVersion":"11.6.2","description":"Turbo Native Module for Mapbox with delivery-specific features","directories":{},"resolutions":{"@types/react":"19.0.0"},"_nodeVersion":"25.1.0","react-native":"src/index","codegenConfig":{"name":"RNMapboxDeliverySpec","type":"all","jsSrcsDir":"src"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.0.0","eslint":"^8.4.1","del-cli":"^5.0.0","prettier":"^2.0.5","typescript":"^5.0.2","@types/react":"^19.0.0","react-native":"0.78.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","react-native-builder-bob":"^0.18.3","@react-native-community/eslint-config":"^3.0.2"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-mapbox-delivery_0.1.1_1763461379396_0.7431909094603562","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":["commonjs","module",["typescript",{"project":"tsconfig.build.json"}]]}},"0.1.2":{"name":"@accron/react-native-mapbox-delivery","version":"0.1.2","keywords":["react-native","ios","android","mapbox","navigation","delivery","turbo-module"],"author":{"name":"Accron Revolutions","email":"support@accronautobot.com"},"license":"MIT","_id":"@accron/react-native-mapbox-delivery@0.1.2","maintainers":[{"name":"accron","email":"support@accronautobot.com"}],"homepage":"https://github.com/accron/react-native-mapbox-delivery#readme","bugs":{"url":"https://github.com/accron/react-native-mapbox-delivery/issues"},"dist":{"shasum":"f36cbf6c483bb059acb849143793dfdd57f9c785","tarball":"https://registry.npmjs.org/@accron/react-native-mapbox-delivery/-/react-native-mapbox-delivery-0.1.2.tgz","fileCount":30,"integrity":"sha512-aij7sYnLn1d0hZvXdtu6ATPW8nqc9HEdjAhdveEljljawUo1dE+NQkHC69P0e5oyMCQ0chVPHWASHb19W9Lsuw==","signatures":[{"sig":"MEQCIF3FDmEa3IoJADZUMQ9z7cKa+XaHHhX9pmzJIiQsn03WAiBdObFtkS39BPIRR/x7rYrauqez/n1ZkmIF+nPShMEdow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":168192},"main":"lib/commonjs/index","types":"lib/typescript/index.d.ts","module":"lib/module/index","source":"src/index","engines":{"node":">= 18.0.0"},"gitHead":"c8acd69ad6705c76998677a0849fc783e043be47","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build","example":"yarn --cwd example","prepare":"bob build","release":"release-it","bootstrap":"yarn example && yarn install && yarn example pods","typescript":"tsc --noEmit"},"_npmUser":{"name":"accron","email":"support@accronautobot.com"},"repository":{"url":"git+https://github.com/accron/react-native-mapbox-delivery.git","type":"git"},"_npmVersion":"11.6.2","description":"Turbo Native Module for Mapbox with delivery-specific features","directories":{},"resolutions":{"@types/react":"19.0.0"},"_nodeVersion":"25.1.0","react-native":"src/index","codegenConfig":{"name":"RNMapboxDeliverySpec","type":"all","jsSrcsDir":"src"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.0.0","eslint":"^8.4.1","del-cli":"^5.0.0","prettier":"^2.0.5","typescript":"^5.0.2","@types/react":"^19.0.0","react-native":"0.78.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","react-native-builder-bob":"^0.18.3","@react-native-community/eslint-config":"^3.0.2"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-mapbox-delivery_0.1.2_1763462617704_0.890134913078561","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":["commonjs","module",["typescript",{"project":"tsconfig.build.json"}]]}},"0.1.3":{"name":"@accron/react-native-mapbox-delivery","version":"0.1.3","keywords":["react-native","ios","android","mapbox","navigation","delivery","turbo-module"],"author":{"name":"Accron Revolutions","email":"support@accronautobot.com"},"license":"MIT","_id":"@accron/react-native-mapbox-delivery@0.1.3","maintainers":[{"name":"accron","email":"support@accronautobot.com"}],"homepage":"https://github.com/accron/react-native-mapbox-delivery#readme","bugs":{"url":"https://github.com/accron/react-native-mapbox-delivery/issues"},"dist":{"shasum":"07644441cb459e69466d2d081ca450cdaf34f11c","tarball":"https://registry.npmjs.org/@accron/react-native-mapbox-delivery/-/react-native-mapbox-delivery-0.1.3.tgz","fileCount":30,"integrity":"sha512-tWfBBFPr1Mr3/A6wZMHoeGy30iEfQ4ROKL3SgsDlXVIAVuao9dVq1nNyJOCBlb6ntKiW9LGRpO5LXtsM+yJ7VQ==","signatures":[{"sig":"MEQCIBBh4KzEEHJ/8J2mleEXa1ToSIgklXPJBN8m8HMroU2zAiBrEhdCe66Oar5NMtvBLcOQ5tX+LsSjr5rWDVpYDUUslA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":170900},"main":"lib/commonjs/index","types":"lib/typescript/index.d.ts","module":"lib/module/index","source":"src/index","engines":{"node":">= 18.0.0"},"gitHead":"c8acd69ad6705c76998677a0849fc783e043be47","scripts":{"lint":"eslint \"**/*.{js,ts,tsx}\"","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build","example":"yarn --cwd example","prepare":"bob build","release":"release-it","bootstrap":"yarn example && yarn install && yarn example pods","typescript":"tsc --noEmit"},"_npmUser":{"name":"accron","email":"support@accronautobot.com"},"repository":{"url":"git+https://github.com/accron/react-native-mapbox-delivery.git","type":"git"},"_npmVersion":"11.6.2","description":"Turbo Native Module for Mapbox with delivery-specific features","directories":{},"resolutions":{"@types/react":"19.0.0"},"_nodeVersion":"25.1.0","react-native":"src/index","codegenConfig":{"name":"RNMapboxDeliverySpec","type":"all","jsSrcsDir":"src"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.0.0","eslint":"^8.4.1","del-cli":"^5.0.0","prettier":"^2.0.5","typescript":"^5.0.2","@types/react":"^19.0.0","react-native":"0.78.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","react-native-builder-bob":"^0.18.3","@react-native-community/eslint-config":"^3.0.2"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/react-native-mapbox-delivery_0.1.3_1763463311631_0.6457627801976495","host":"s3://npm-registry-packages-npm-production"},"react-native-builder-bob":{"output":"lib","source":"src","targets":["commonjs","module",["typescript",{"project":"tsconfig.build.json"}]]}},"0.1.4":{"name":"@accron/react-native-mapbox-delivery","version":"0.1.4","description":"Turbo Native Module for Mapbox with delivery-specific features","main":"lib/commonjs/index","module":"lib/module/index","types":"lib/typescript/index.d.ts","react-native":"src/index","source":"src/index","scripts":{"typescript":"tsc --noEmit","lint":"eslint \"**/*.{js,ts,tsx}\"","prepare":"bob build","release":"release-it","example":"yarn --cwd example","bootstrap":"yarn example && yarn install && yarn example pods","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build"},"keywords":["react-native","ios","android","mapbox","navigation","delivery","turbo-module"],"repository":{"type":"git","url":"git+https://github.com/accron/react-native-mapbox-delivery.git"},"author":{"name":"Accron Revolutions","email":"support@accronautobot.com"},"license":"MIT","bugs":{"url":"https://github.com/accron/react-native-mapbox-delivery/issues"},"homepage":"https://github.com/accron/react-native-mapbox-delivery#readme","publishConfig":{"registry":"https://registry.npmjs.org/"},"devDependencies":{"@react-native-community/eslint-config":"^3.0.2","@types/react":"^19.0.0","del-cli":"^5.0.0","eslint":"^8.4.1","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","prettier":"^2.0.5","react":"^19.0.0","react-native":"0.78.2","react-native-builder-bob":"^0.18.3","typescript":"^5.0.2"},"resolutions":{"@types/react":"19.0.0"},"peerDependencies":{"react":"*","react-native":"*"},"engines":{"node":">= 18.0.0"},"codegenConfig":{"name":"RNMapboxDeliverySpec","type":"all","jsSrcsDir":"src"},"react-native-builder-bob":{"source":"src","output":"lib","targets":["commonjs","module",["typescript",{"project":"tsconfig.build.json"}]]},"gitHead":"c8acd69ad6705c76998677a0849fc783e043be47","_id":"@accron/react-native-mapbox-delivery@0.1.4","_nodeVersion":"25.1.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-ysrNoZuBWi3caPJHY+ieSeMVEVf1zYKOIFrvqwmJvvfCqoujbyGEHemqOFkNacYt+t7YLV8m7vz5o11LZxL6qg==","shasum":"3930edf71b33c2c2c69014ca3d1a93c62e6f1cf0","tarball":"https://registry.npmjs.org/@accron/react-native-mapbox-delivery/-/react-native-mapbox-delivery-0.1.4.tgz","fileCount":31,"unpackedSize":171254,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEHvNoX9yH3jYS11DaoJwedp5659ppxFe3jMTBt8BwA2AiAuCe9PXR6/9aiGIeieahs1YUltLeID+D6kDHh21+kcRA=="}]},"_npmUser":{"name":"accron","email":"support@accronautobot.com"},"directories":{},"maintainers":[{"name":"accron","email":"support@accronautobot.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-native-mapbox-delivery_0.1.4_1763464764315_0.5740407903889473"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-18T08:19:07.969Z","modified":"2025-11-18T11:19:24.673Z","0.1.0":"2025-11-18T08:19:08.292Z","0.1.1":"2025-11-18T10:22:59.596Z","0.1.2":"2025-11-18T10:43:37.887Z","0.1.3":"2025-11-18T10:55:11.818Z","0.1.4":"2025-11-18T11:19:24.506Z"},"bugs":{"url":"https://github.com/accron/react-native-mapbox-delivery/issues"},"author":{"name":"Accron Revolutions","email":"support@accronautobot.com"},"license":"MIT","homepage":"https://github.com/accron/react-native-mapbox-delivery#readme","keywords":["react-native","ios","android","mapbox","navigation","delivery","turbo-module"],"repository":{"type":"git","url":"git+https://github.com/accron/react-native-mapbox-delivery.git"},"description":"Turbo Native Module for Mapbox with delivery-specific features","maintainers":[{"name":"accron","email":"support@accronautobot.com"}],"readme":"# @accron/react-native-mapbox-delivery\n\nA high-performance Turbo Native Module for React Native 0.78+ that combines Mapbox mapping and navigation features specifically designed for delivery applications.\n\n## Features\n\n### ✅ Phase 1 - Core (Implemented)\n- 🗺️ Interactive Mapbox map view with Fabric support\n- 📍 Multiple marker management (driver, pickup, dropoff, restaurant, customer)\n- 🛣️ Route drawing and calculation\n- 📏 Camera controls and animations\n- 🎨 Custom map styles\n- 📱 Native performance with Turbo Modules\n\n### 🚧 Phase 2 - Essential (Coming Soon)\n- Real-time location tracking\n- Geofencing support\n- Route optimization\n- Turn-by-turn navigation\n\n### 📅 Phase 3 - Navigation (Planned)\n- Voice instructions\n- Route deviation detection\n- ETA calculations\n\n### 🔮 Phase 4 - Delivery Features (Future)\n- Multi-stop routing\n- Live driver tracking\n- Delivery zones visualization\n\n## Installation\n\n```bash\nnpm install @accron/react-native-mapbox-delivery\n# or\nyarn add @accron/react-native-mapbox-delivery\n```\n\n## Setup\n\n### Prerequisites\n\n1. React Native 0.78 or higher\n2. Mapbox account and access token\n3. Mapbox secret token for SDK downloads\n\n### Android Setup\n\n1. **Add Mapbox Downloads Token**\n\nCreate or edit `android/gradle.properties`:\n\n```properties\nMAPBOX_DOWNLOADS_TOKEN=sk.YOUR_SECRET_TOKEN_HERE\n```\n\n2. **Add Mapbox Access Token**\n\nIn `android/app/src/main/AndroidManifest.xml`:\n\n```xml\n<application>\n    <!-- Add this meta-data -->\n    <meta-data\n        android:name=\"MAPBOX_ACCESS_TOKEN\"\n        android:value=\"pk.YOUR_PUBLIC_TOKEN_HERE\" />\n</application>\n```\n\n3. **Add Permissions**\n\nIn `android/app/src/main/AndroidManifest.xml`:\n\n```xml\n<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\" />\n<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\" />\n<uses-permission android:name=\"android.permission.ACCESS_BACKGROUND_LOCATION\" />\n<uses-permission android:name=\"android.permission.INTERNET\" />\n```\n\n4. **Enable New Architecture (Optional but Recommended)**\n\nIn `android/gradle.properties`:\n\n```properties\nnewArchEnabled=true\n```\n\n### iOS Setup\n\n1. **Install Pods**\n\n```bash\ncd ios && pod install\n```\n\n2. **Add Mapbox Token**\n\nIn `ios/YourApp/Info.plist`:\n\n```xml\n<key>MBXAccessToken</key>\n<string>pk.YOUR_PUBLIC_TOKEN_HERE</string>\n```\n\n3. **Add Location Permissions**\n\nIn `ios/YourApp/Info.plist`:\n\n```xml\n<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>\n<string>This app needs location access for delivery tracking</string>\n<key>NSLocationWhenInUseUsageDescription</key>\n<string>This app needs location access to show your position on the map</string>\n```\n\n4. **Configure .netrc for Mapbox Downloads**\n\nCreate `~/.netrc` file:\n\n```\nmachine api.mapbox.com\nlogin mapbox\npassword sk.YOUR_SECRET_TOKEN_HERE\n```\n\n## Usage\n\n### Basic Map Implementation\n\n```tsx\nimport React, { useRef, useEffect } from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport MapboxDelivery, { MapboxDeliveryView, MapViewRef } from '@accron/react-native-mapbox-delivery';\n\nconst DeliveryMap = () => {\n  const mapRef = useRef<MapViewRef>(null);\n\n  useEffect(() => {\n    // Initialize Mapbox with your access token\n    MapboxDelivery.initialize('pk.YOUR_PUBLIC_TOKEN_HERE');\n  }, []);\n\n  const handleMapReady = () => {\n    console.log('Map is ready!');\n    \n    // Add markers\n    MapboxDelivery.addMarker({\n      id: 'driver-1',\n      coordinate: [79.8612, 6.9271], // [longitude, latitude]\n      title: 'Driver',\n      type: 'driver'\n    });\n\n    MapboxDelivery.addMarker({\n      id: 'restaurant-1',\n      coordinate: [79.8532, 6.9315],\n      title: 'Pizza Place',\n      type: 'restaurant'\n    });\n\n    MapboxDelivery.addMarker({\n      id: 'customer-1',\n      coordinate: [79.8689, 6.9180],\n      title: 'Customer',\n      type: 'customer'\n    });\n  };\n\n  return (\n    <View style={styles.container}>\n      <MapboxDeliveryView\n        ref={mapRef}\n        style={styles.map}\n        accessToken=\"pk.YOUR_PUBLIC_TOKEN_HERE\"\n        styleURL=\"mapbox://styles/mapbox/streets-v12\"\n        centerCoordinate={[79.8612, 6.9271]} // Kandy, Sri Lanka\n        zoomLevel={13}\n        showUserLocation={true}\n        onMapReady={handleMapReady}\n        onMarkerPress={(event) => {\n          console.log('Marker pressed:', event.nativeEvent.id);\n        }}\n      />\n    </View>\n  );\n};\n\nconst styles = StyleSheet.create({\n  container: {\n    flex: 1,\n  },\n  map: {\n    flex: 1,\n  },\n});\n\nexport default DeliveryMap;\n```\n\n### Delivery Route Example\n\n```tsx\nimport React, { useState } from 'react';\nimport { Button, View } from 'react-native';\nimport MapboxDelivery from '@accron/react-native-mapbox-delivery';\n\nconst DeliveryRoute = () => {\n  const [routeInfo, setRouteInfo] = useState(null);\n\n  const calculateDeliveryRoute = async () => {\n    // Calculate route from restaurant to customer\n    const route = await MapboxDelivery.calculateRoute({\n      origin: [79.8532, 6.9315], // Restaurant\n      destination: [79.8689, 6.9180], // Customer\n      waypoints: [], // Add pickup points if needed\n      profile: 'driving-traffic'\n    });\n\n    setRouteInfo({\n      distance: (route.distance / 1000).toFixed(2), // Convert to km\n      duration: Math.ceil(route.duration / 60), // Convert to minutes\n    });\n\n    // Draw the route on the map\n    await MapboxDelivery.drawRoute({\n      id: 'delivery-route',\n      coordinates: route.coordinates,\n      color: '#4264fb',\n      width: 5\n    });\n  };\n\n  const startDelivery = async () => {\n    // Start navigation (simulator mode for testing)\n    await MapboxDelivery.startNavigation({\n      origin: [79.8532, 6.9315],\n      destination: [79.8689, 6.9180],\n      simulateRoute: true // Set to false for real navigation\n    });\n\n    // Listen to route progress\n    MapboxDelivery.onRouteProgress((progress) => {\n      console.log('Distance remaining:', progress.distanceRemaining);\n      console.log('Duration remaining:', progress.durationRemaining);\n    });\n  };\n\n  return (\n    <View>\n      <Button title=\"Calculate Route\" onPress={calculateDeliveryRoute} />\n      {routeInfo && (\n        <View>\n          <Text>Distance: {routeInfo.distance} km</Text>\n          <Text>ETA: {routeInfo.duration} minutes</Text>\n          <Button title=\"Start Delivery\" onPress={startDelivery} />\n        </View>\n      )}\n    </View>\n  );\n};\n```\n\n### Live Driver Tracking\n\n```tsx\nimport { useEffect } from 'react';\nimport MapboxDelivery from '@accron/react-native-mapbox-delivery';\n\nconst DriverTracking = () => {\n  useEffect(() => {\n    // Start tracking driver location\n    MapboxDelivery.startLocationTracking(5000); // Update every 5 seconds\n\n    // Listen to location updates\n    const subscription = MapboxDelivery.onLocationUpdate((location) => {\n      console.log('Driver location:', location);\n      \n      // Update driver marker position\n      MapboxDelivery.updateMarkerPosition(\n        'driver-1',\n        [location.longitude, location.latitude],\n        true // Animate the update\n      );\n\n      // Send to backend for customer tracking\n      updateDriverLocationOnServer(location);\n    });\n\n    return () => {\n      MapboxDelivery.stopLocationTracking();\n      subscription.remove();\n    };\n  }, []);\n};\n```\n\n### Geofencing for Delivery Zones\n\n```tsx\nconst setupDeliveryZones = async () => {\n  // Add geofence for restaurant pickup zone\n  await MapboxDelivery.addGeofence({\n    id: 'restaurant-zone',\n    center: [79.8532, 6.9315],\n    radius: 50, // 50 meters\n    transitionTypes: 'both'\n  });\n\n  // Add geofence for customer delivery zone\n  await MapboxDelivery.addGeofence({\n    id: 'customer-zone',\n    center: [79.8689, 6.9180],\n    radius: 30, // 30 meters\n    transitionTypes: 'enter'\n  });\n\n  // Listen to geofence events\n  MapboxDelivery.onGeofenceTransition((event) => {\n    if (event.id === 'restaurant-zone' && event.transition === 'enter') {\n      console.log('Driver arrived at restaurant');\n      notifyRestaurant();\n    }\n    \n    if (event.id === 'customer-zone' && event.transition === 'enter') {\n      console.log('Driver approaching customer');\n      notifyCustomer();\n    }\n  });\n};\n```\n\n## API Reference\n\n### Core Methods\n\n| Method | Description | Parameters | Returns |\n|--------|-------------|------------|---------|\n| `initialize(token)` | Initialize Mapbox SDK | `accessToken: string` | `Promise<boolean>` |\n| `setCamera(options)` | Set camera position | `{center, zoom, bearing, pitch, animated}` | `Promise<void>` |\n| `animateToRegion(region)` | Animate to region | `{latitude, longitude, latitudeDelta, longitudeDelta}` | `Promise<void>` |\n\n### Marker Methods\n\n| Method | Description | Parameters | Returns |\n|--------|-------------|------------|---------|\n| `addMarker(marker)` | Add a marker | `{id, coordinate, title, snippet, type}` | `Promise<boolean>` |\n| `updateMarkerPosition(id, coordinate, animated)` | Update marker position | `id: string, coordinate: [lng, lat], animated: boolean` | `Promise<boolean>` |\n| `removeMarker(id)` | Remove a marker | `id: string` | `Promise<boolean>` |\n| `removeAllMarkers()` | Remove all markers | - | `Promise<void>` |\n\n### Route Methods\n\n| Method | Description | Parameters | Returns |\n|--------|-------------|------------|---------|\n| `calculateRoute(options)` | Calculate route | `{origin, destination, waypoints, profile}` | `Promise<RouteInfo>` |\n| `drawRoute(options)` | Draw route on map | `{id, coordinates, color, width}` | `Promise<boolean>` |\n| `clearRoute(id)` | Clear specific route | `id: string` | `Promise<boolean>` |\n| `clearAllRoutes()` | Clear all routes | - | `Promise<void>` |\n\n### Navigation Methods\n\n| Method | Description | Parameters | Returns |\n|--------|-------------|------------|---------|\n| `startNavigation(options)` | Start navigation | `{origin, destination, waypoints, simulateRoute}` | `Promise<boolean>` |\n| `stopNavigation()` | Stop navigation | - | `Promise<void>` |\n\n### Location Methods\n\n| Method | Description | Parameters | Returns |\n|--------|-------------|------------|---------|\n| `getCurrentLocation()` | Get current location | - | `Promise<Location>` |\n| `startLocationTracking(interval)` | Start location tracking | `intervalMs: number` | `Promise<boolean>` |\n| `stopLocationTracking()` | Stop location tracking | - | `Promise<void>` |\n\n### Event Listeners\n\n| Event | Description | Callback Data |\n|-------|-------------|---------------|\n| `onLocationUpdate` | Location updates | `{latitude, longitude, accuracy, heading, speed}` |\n| `onRouteProgress` | Route progress updates | `{distanceRemaining, durationRemaining, fractionTraveled}` |\n| `onMarkerPress` | Marker tap event | `markerId: string` |\n| `onGeofenceTransition` | Geofence entry/exit | `{id, transition: 'enter' \\| 'exit'}` |\n\n## Performance Tips\n\n1. **Use Fabric Components**: The MapView uses Fabric for optimal performance\n2. **Batch Operations**: When adding multiple markers, batch them together\n3. **Optimize Route Updates**: Use appropriate update intervals for live tracking\n4. **Memory Management**: Remove unused markers and routes\n5. **Style Caching**: Reuse map styles when possible\n\n## Troubleshooting\n\n### Common Issues\n\n1. **Module not found**: Ensure you've rebuilt the app after installation\n2. **Map doesn't load**: Check your Mapbox access token\n3. **Location not working**: Verify location permissions are granted\n4. **Build failures**: Ensure Mapbox secret token is properly configured\n\n## Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\n\n## License\n\nMIT\n\n## Support\n\nFor issues and questions:\n- GitHub Issues: [https://github.com/accron/react-native-mapbox-delivery/issues](https://github.com/accron/react-native-mapbox-delivery/issues)\n- Email: info@accron.lk\n\n## Credits\n\nDeveloped by **Accron Revolutions** - Building the future of delivery technology in Sri Lanka 🇱🇰\n\n---\n\nMade with ❤️ by the Accron team\n","readmeFilename":"README.md"}