/** * @quantaroute/checkout * * DigiPin-powered smart address checkout widget — one import, three platforms. * * ┌─────────────────────────────────────────────────────────────────┐ * │ Platform │ Resolved by │ Map engine │ * │──────────────────│────────────────────────────────────────────── │ * │ Web │ Vite / Webpack / Next.js │ MapLibre GL JS│ * │ iOS / Android │ Metro (Expo / React Native)│ expo-osm-sdk │ * └─────────────────────────────────────────────────────────────────┘ * * Web usage: * import { CheckoutWidget } from '@quantaroute/checkout'; * import '@quantaroute/checkout/style.css'; * * Native usage (Expo / React Native): * import { CheckoutWidget } from '@quantaroute/checkout'; * // No CSS import needed — styles are React Native StyleSheet objects * * @see https://quantaroute.com/docs/checkout */ // ── Main component (default export as well) ─────────────────────────────────── export { default as CheckoutWidget } from './components/CheckoutWidget'; export { default } from './components/CheckoutWidget'; // ── Sub-components (for advanced composition) ───────────────────────────────── export { default as MapPinSelector } from './components/MapPinSelector'; export { default as AddressForm } from './components/AddressForm'; export { default as PhoneStep } from './components/PhoneStep'; export { default as OtpStep } from './components/OtpStep'; export { default as EmailStep } from './components/EmailStep'; export { default as EmailOtpStep } from './components/EmailOtpStep'; export { default as CodAvailabilityBanner } from './components/CodAvailabilityBanner'; export { default as PrepaidNudge } from './components/PrepaidNudge'; export { default as PaymentStep } from './components/PaymentStep'; export { default as SavedAddressStep } from './components/SavedAddressStep'; // ── Core utilities (offline, zero-dependency) ───────────────────────────────── export { getDigiPin, getLatLngFromDigiPin, isValidDigiPin, isWithinIndia, normalizeDigiPinInput, formatDigiPin, isCompleteDigiPinInput, isPotentialDigiPinInput, DIGIPIN_BOUNDS, } from './core/digipin'; // ── API client ──────────────────────────────────────────────────────────────── export { lookupLocation, reverseGeocode, autocompleteAddress, looksLikeDigiPin, couldBeDigiPinInput, validatePincode, pincodeHasDeliveryOffice, } from './core/api'; // ── Checkout backend API ────────────────────────────────────────────────────── export { sendOtp, verifyOtp, sendEmailOtp, verifyEmailOtp, listAddresses, createAddress, deleteAddress, setDefaultAddress, selectAddress, verifyDigipin, checkCodEligibility, scoreAddressRisk, checkServiceability, notifyAddressCompleted, logFunnelEvent, notifySessionAbandoned, fetchSessionOffer, createPaymentOrder, verifyPayment, recordCodPayment, fetchPrepaidNudgeConfig, } from './core/checkout-api'; export type { CheckoutApiConfig, VerifyOtpResult, VerifyEmailOtpResult, SendEmailOtpResult, SavedAddress, SavedAddressPayload, VerifyDigipinPayload, CodEligibilityResult, AddressRiskScore, AddressRiskPayload, AddressRiskLevel, AddressIntervention, AddressConfidenceState, ServiceabilityResult, SessionContextPayload, FunnelEventPayload, SessionOffer, CreatePaymentOrderResult, PrepaidNudgeConfig, } from './core/checkout-api'; export type { AddressComponents, ReverseGeocodeResponse, AutocompleteSuggestion, AutocompleteResponse, PincodeOffice, PincodeValidateData, } from './core/api'; // ── Hooks ───────────────────────────────────────────────────────────────────── export { useGeolocation } from './hooks/useGeolocation'; export { useDigiPin } from './hooks/useDigiPin'; // ── TypeScript types ────────────────────────────────────────────────────────── export { captureUtmFromUrl, hasUtmParams } from './core/utm'; export type { UtmParams } from './core/utm'; export { getWebDeviceContext, detectDeviceType, detectPlatform } from './core/device'; export type { MapRuntime, MapEmbedMode, MapLibreMap, MapLibreMarker, MapMouseEvent, } from './core/map-runtime'; export { DEFAULT_MAP_STYLE_URL, OPENFREEMAP_POSITRON_STYLE_URL, getExternalMapRuntime, waitForExternalMapRuntime, } from './core/map-runtime'; export type { CheckoutWidgetProps, CheckoutMobilePresentation, CheckoutMobileStepLabels, MapPinSelectorProps, AddressFormProps, AddressFormInitialValues, PhoneStepProps, OtpStepProps, EmailStepProps, EmailOtpStepProps, SavedAddressStepProps, PaymentStepProps, PrepaidNudgeProps, CompleteAddress, AddressLabel, ADDRESS_LABELS, AdministrativeInfo, LocationAlternative, LocationLookupResponse, Coordinates, CheckoutEvent, CheckoutEventType, } from './core/types';